diff --git a/CHANGELOG.md b/CHANGELOG.md index 4dd47fb73..c3da178d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,50 @@ +# 5.0.0 Release Notes +### Breaking Changes +* `SDLProxy.streamingMediaManager` is now removed. If you wish to use a streaming media manager, you must use `SDLManager.streamingMediaManager`. The streaming media manager has been entirely redesigned and now takes into account both phone and head unit app lifecycles [SDL-0033](https://github.com/smartdevicelink/sdl_ios/issues/583). There is now a streaming media configuration added to `SDLConfiguration`. +* `SDLJingle` constants have been removed [#7](https://github.com/smartdevicelink/sdl_ios/issues/7). +* Public files `SDLJsonEncoder.h`, `SDLJsonDecoder.h`, `SDLDecoder.h`, and `SDLEncoder.h` have been removed [#8](https://github.com/smartdevicelink/sdl_ios/issues/8). +* `SDLSiphonServer` has been removed; if something similar is needed, it may be custom built and inserted into the `SDLLogManager` [#85](https://github.com/smartdevicelink/sdl_ios/issues/85). +* RPC array and dictionary properties are now immutable [#152](https://github.com/smartdevicelink/sdl_ios/issues/152). +* `SDLOnWaypointChange`, a misspelling of `SDLOnWayPointChange` has been removed [#489](https://github.com/smartdevicelink/sdl_ios/issues/489). +* `SDLRPCStruct` and all RPC subclasses now take an immutable dictionary to decode [#122](https://github.com/smartdevicelink/sdl_ios/issues/122) [SDL-0005](https://github.com/smartdevicelink/sdl_ios/issues/151), [SDL-0005](https://github.com/smartdevicelink/sdl_ios/issues/507). +* SDL enums are now all stringly typed in Objective-C, and swift enums in Swift [#20](https://github.com/smartdevicelink/sdl_ios/issues/20) [SDL-0006](https://github.com/smartdevicelink/sdl_ios/issues/425). +* iOS 6 and iOS 7 are no longer supported [SDL-0008](https://github.com/smartdevicelink/sdl_ios/issues/419) [SDL-0024](https://github.com/smartdevicelink/sdl_ios/issues/526). +* Use nullability annotations throughout the project [#73](https://github.com/smartdevicelink/sdl_ios/issues/73) [SDL-0018](https://github.com/smartdevicelink/sdl_ios/issues/484). +* Remove `SDLRPCRequestFactory`, initializers now exist on most RPC classes [SDL-0020](https://github.com/smartdevicelink/sdl_ios/issues/485). +* `SDLTTSChunkFactory` was removed, use the initializers on `SDLTTSChunk` instead [SDL-0021](https://github.com/smartdevicelink/sdl_ios/issues/486). +* Handler events now provide better parameters instead of generic ones [SDL-0027](https://github.com/smartdevicelink/sdl_ios/issues/537). + +### Enhancements +* Most properties are now nonatomic, which should speed up the library significantly [#49](https://github.com/smartdevicelink/sdl_ios/issues/49). +* `SDLLockScreenViewController` now uses template images, reducing the size of the library [#450](https://github.com/smartdevicelink/sdl_ios/issues/450). +* RPC classes now conform to `NSCopying` [SDL-0011](https://github.com/smartdevicelink/sdl_ios/issues/523). +* Added convenience methods for pulling out SDL notifications from `NSNotification` callbacks [#553](https://github.com/smartdevicelink/sdl_ios/issues/553). +* `SDLTouchManager` now supports gesture cancellation [#673](https://github.com/smartdevicelink/sdl_ios/issues/673). +* `SDLStreamingMediaManager` now supports automatic `GetSystemCapability` calls [#686](https://github.com/smartdevicelink/sdl_ios/issues/686). +* `SDLRegisterAppInterfaceResponse` fixed `pcmCapabilities` not being exposed [#714](https://github.com/smartdevicelink/sdl_ios/issues/714). +* Generics have been added for collections throughout the library [SDL-0007](https://github.com/smartdevicelink/sdl_ios/issues/444). +* `SDLFileManager` will not stream from a file on disk if possible [SDL-0025](https://github.com/smartdevicelink/sdl_ios/issues/536). +* `SDLFileManager` added methods for sending multiple files in one call [SDL-0029](https://github.com/smartdevicelink/sdl_ios/issues/558). +* Added additional `SDLManager` delegate methods for all `onHMIStatus` state changes [SDL-0032](https://github.com/smartdevicelink/sdl_ios/issues/569). +* Added a handler to `SDLPerformAudioPassThru` [SDL-0035](https://github.com/smartdevicelink/sdl_ios/issues/585). +* `SDLStreamingMediaManager` now supports H.264 + RTP [SDL-0048](https://github.com/smartdevicelink/sdl_ios/issues/619). +* Added SDL Remote Control baseline [SDL-0071](https://github.com/smartdevicelink/sdl_ios/issues/650). +* Focusable items can now be sent (to Core 4.4+) and a manager exists that will automatically handle finding and sending those rects if a `UIWindow` is set in the `SDLStreamingMediaConfiguration`. They will also be passed back to the developer through the `SDLTouchManagerDelegate` [SDL-0075](https://github.com/smartdevicelink/sdl_ios/issues/664) [SDL-0081](https://github.com/smartdevicelink/sdl_ios/issues/698) [SDL-0090](https://github.com/smartdevicelink/sdl_ios/issues/728). + +### Bug Fixes +* Services are now properly ended with hash ids [#661](https://github.com/smartdevicelink/sdl_ios/issues/661). +* Constants are now unified into one style [#711](https://github.com/smartdevicelink/sdl_ios/issues/711). +* Fix streaming media manager always assumed 30fps streaming; it can now be custom set by developers in the video encoding dictionary [#717](https://github.com/smartdevicelink/sdl_ios/issues/717). + +### Example App + +### Other +* SDL constants are now constants instead of `#define` [#3](https://github.com/smartdevicelink/sdl_ios/issues/3). +* Some protocol property and enum names were incorrect but now fixed [#275](https://github.com/smartdevicelink/sdl_ios/issues/275). +* Internal getters and setters on RPC classes no longer repeat code everywhere [#493](https://github.com/smartdevicelink/sdl_ios/issues/493). +* `SDLOnLockScreenStatus` does not use constants for property keys [#497](https://github.com/smartdevicelink/sdl_ios/issues/497). +* Removed deprecated methods [#679](https://github.com/smartdevicelink/sdl_ios/issues/679). + # 4.7.4 Release Notes ### Bug Fixes * Fix for connecting video streaming on Core 4.4.0 (to be released) and above. diff --git a/README.md b/README.md index 98aaf77a7..d9e9e85f9 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -[![Version](https://img.shields.io/cocoapods/v/SmartDeviceLink.svg?style=flat)](https://cocoapods.org/pods/SmartDeviceLink) -[![License](https://img.shields.io/cocoapods/l/SmartDeviceLink.svg?style=flat)](https://cocoapods.org/pods/SmartDeviceLink) +[![Version](https://img.shields.io/cocoapods/v/SmartDeviceLink-iOS.svg?style=flat)](https://cocoapods.org/pods/SmartDeviceLink-iOS) +[![License](https://img.shields.io/cocoapods/l/SmartDeviceLink-iOS.svg?style=flat)](https://cocoapods.org/pods/SmartDeviceLink-iOS) [![Build Status](https://img.shields.io/travis/smartdevicelink/sdl_ios/master.svg?style=flat)](https://travis-ci.org/smartdevicelink/sdl_ios) [![codecov](https://codecov.io/gh/smartdevicelink/sdl_ios/branch/master/graph/badge.svg)](https://codecov.io/gh/smartdevicelink/sdl_ios) -[![documentation](https://img.shields.io/badge/documentation-51%25-yellow.svg)]() -[![CocoaPods Downloads](https://img.shields.io/cocoapods/dt/SmartDeviceLink.svg?maxAge=172800)](https://cocoapods.org/pods/SmartDeviceLink) +[![Documentation](https://img.shields.io/cocoapods/metrics/doc-percent/SmartDeviceLink-iOS.svg)](http://cocoadocs.org/docsets/SmartDeviceLink-iOS/) +[![CocoaPods Downloads](https://img.shields.io/cocoapods/dt/SmartDeviceLink-iOS.svg?maxAge=172800)](https://cocoapods.org/pods/SmartDeviceLink-iOS) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![Slack Status](http://sdlslack.herokuapp.com/badge.svg)](http://slack.smartdevicelink.com) @@ -39,14 +39,20 @@ See the [roadmap](https://github.com/smartdevicelink/sdl_ios/wiki/Roadmap) to se ##### Cocoapods -You can install this library using [Cocoapods](https://cocoapods.org/pods/SmartDeviceLink). 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). +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', '~> 4.7'`. Then run `pod install` inside your terminal. With Cocoapods, we support iOS 6.0+. +In your podfile, you want to add `pod 'SmartDeviceLink', '~> 5.0'`. 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-iOS/Swift', '~> 2.0'`. Then run `pod install` in your terminal. ##### Carthage SDL iOS supports Carthage! Install using Carthage by following [this guide](https://github.com/Carthage/Carthage#adding-frameworks-to-an-application). Carthage supports iOS 8+. +###### Swift +If you are building a Swift app, then include both packaged frameworks for expanded logging support. + ##### Dynamic Framework Tagged to our releases is a dynamic framework file that can be drag-and-dropped into the application. Dynamic frameworks are supported on iOS 8+. **WARNING: You cannot submit your app to the app store with the framework as is. You MUST strip the simulator part of the framework first. Use a script such as Carthage's to accomplish this**. diff --git a/SmartDeviceLink-iOS.podspec b/SmartDeviceLink-iOS.podspec index 6c8381902..b785b857a 100644 --- a/SmartDeviceLink-iOS.podspec +++ b/SmartDeviceLink-iOS.podspec @@ -1,306 +1,344 @@ Pod::Spec.new do |s| s.name = "SmartDeviceLink-iOS" -s.version = "4.7.4" +s.version = "5.0.0" s.summary = "Connect your app with cars!" s.homepage = "https://github.com/smartdevicelink/SmartDeviceLink-iOS" s.license = { :type => "New BSD", :file => "LICENSE" } s.author = { "SmartDeviceLink Team" => "developer@smartdevicelink.com" } -s.platform = :ios, "7.0" -s.source = { :git => "https://github.com/smartdevicelink/sdl_ios.git", :tag => s.version.to_s } +s.platform = :ios, "8.0" s.dependency 'BiSON', '~> 1.0' -s.source_files = "SmartDeviceLink/*.{h,m}" +s.source = { :git => "https://github.com/smartdevicelink/sdl_ios.git", :tag => s.version.to_s } s.requires_arc = true -s.resource_bundles = { 'SmartDeviceLink' => ['SmartDeviceLink/Assets/**/*', 'SmartDeviceLink/iOS 7 Assets/*'] } -s.public_header_files = [ -'SmartDeviceLink/SmartDeviceLink.h', -'SmartDeviceLink/SDLJingle.h', -'SmartDeviceLink/SDLProxy.h', -'SmartDeviceLink/SDLProxyFactory.h', -'SmartDeviceLink/SDLProxyListener.h', -'SmartDeviceLink/SDLSecurityType.h', -'SmartDeviceLink/SDLStreamingMediaManager.h', -'SmartDeviceLink/SDLTTSChunkFactory.h', -'SmartDeviceLink/SDLTouchManager.h', -'SmartDeviceLink/SDLTouchManagerDelegate.h', -'SmartDeviceLink/SDLConsoleController.h', -'SmartDeviceLink/SDLDebugTool.h', -'SmartDeviceLink/SDLDebugToolConsole.h', -'SmartDeviceLink/SDLSiphonServer.h', -'SmartDeviceLink/SDLAbstractTransport.h', -'SmartDeviceLink/SDLIAPSessionDelegate.h', -'SmartDeviceLink/SDLIAPTransport.h', -'SmartDeviceLink/SDLTCPTransport.h', -'SmartDeviceLink/SDLTransportDelegate.h', +s.resource_bundles = { 'SmartDeviceLink' => ['SmartDeviceLink/Assets/**/*'] } + +s.default_subspecs = 'Default' + +s.subspec 'Default' do |ss| +ss.source_files = 'SmartDeviceLink/*.{h,m}' + +ss.public_header_files = [ +'SmartDeviceLink/NSNumber+NumberType.h', 'SmartDeviceLink/SDLAbstractProtocol.h', -'SmartDeviceLink/SDLProtocol.h', -'SmartDeviceLink/SDLProtocolListener.h', -'SmartDeviceLink/SDLProtocolHeader.h', -'SmartDeviceLink/SDLProtocolMessage.h', -'SmartDeviceLink/SDLEnum.h', -'SmartDeviceLink/SDLRPCMessage.h', -'SmartDeviceLink/SDLRPCNotification.h', -'SmartDeviceLink/SDLRPCRequest.h', -'SmartDeviceLink/SDLRPCResponse.h', -'SmartDeviceLink/SDLRPCStruct.h', -'SmartDeviceLink/SDLRPCRequestFactory.h', +'SmartDeviceLink/SDLAbstractTransport.h', 'SmartDeviceLink/SDLAddCommand.h', +'SmartDeviceLink/SDLAddCommandResponse.h', 'SmartDeviceLink/SDLAddSubMenu.h', +'SmartDeviceLink/SDLAddSubMenuResponse.h', +'SmartDeviceLink/SDLAirbagStatus.h', 'SmartDeviceLink/SDLAlert.h', 'SmartDeviceLink/SDLAlertManeuver.h', -'SmartDeviceLink/SDLChangeRegistration.h', -'SmartDeviceLink/SDLCreateInteractionChoiceSet.h', -'SmartDeviceLink/SDLDeleteCommand.h', -'SmartDeviceLink/SDLDeleteFile.h', -'SmartDeviceLink/SDLDeleteInteractionChoiceSet.h', -'SmartDeviceLink/SDLDeleteSubMenu.h', -'SmartDeviceLink/SDLDiagnosticMessage.h', -'SmartDeviceLink/SDLDialNumber.h', -'SmartDeviceLink/SDLEncodedSyncPData.h', -'SmartDeviceLink/SDLEndAudioPassThru.h', -'SmartDeviceLink/SDLGetDTCs.h', -'SmartDeviceLink/SDLGetSystemCapability.h', -'SmartDeviceLink/SDLGetVehicleData.h', -'SmartDeviceLink/SDLGetWaypoints.h', -'SmartDeviceLink/SDLListFiles.h', -'SmartDeviceLink/SDLPerformAudioPassThru.h', -'SmartDeviceLink/SDLPerformInteraction.h', -'SmartDeviceLink/SDLPutFile.h', -'SmartDeviceLink/SDLReadDID.h', -'SmartDeviceLink/SDLRegisterAppInterface.h', -'SmartDeviceLink/SDLResetGlobalProperties.h', -'SmartDeviceLink/SDLScrollableMessage.h', -'SmartDeviceLink/SDLSendHapticData.h', -'SmartDeviceLink/SDLSendLocation.h', -'SmartDeviceLink/SDLSetAppIcon.h', -'SmartDeviceLink/SDLSetDisplayLayout.h', -'SmartDeviceLink/SDLSetGlobalProperties.h', -'SmartDeviceLink/SDLSetMediaClockTimer.h', -'SmartDeviceLink/SDLShow.h', -'SmartDeviceLink/SDLShowConstantTBT.h', -'SmartDeviceLink/SDLSlider.h', -'SmartDeviceLink/SDLSpeak.h', -'SmartDeviceLink/SDLSubscribeButton.h', -'SmartDeviceLink/SDLSubscribeVehicleData.h', -'SmartDeviceLink/SDLSubscribeWaypoints.h', -'SmartDeviceLink/SDLSyncPData.h', -'SmartDeviceLink/SDLUnregisterAppInterface.h', -'SmartDeviceLink/SDLUnsubscribeButton.h', -'SmartDeviceLink/SDLUnsubscribeVehicleData.h', -'SmartDeviceLink/SDLUnsubscribeWaypoints.h', -'SmartDeviceLink/SDLUpdateTurnList.h', -'SmartDeviceLink/SDLAddCommandResponse.h', -'SmartDeviceLink/SDLAddSubMenuResponse.h', 'SmartDeviceLink/SDLAlertManeuverResponse.h', 'SmartDeviceLink/SDLAlertResponse.h', -'SmartDeviceLink/SDLChangeRegistrationResponse.h', -'SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h', -'SmartDeviceLink/SDLDeleteCommandResponse.h', -'SmartDeviceLink/SDLDeleteFileResponse.h', -'SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h', -'SmartDeviceLink/SDLDeleteSubMenuResponse.h', -'SmartDeviceLink/SDLDiagnosticMessageResponse.h', -'SmartDeviceLink/SDLDialNumberResponse.h', -'SmartDeviceLink/SDLEncodedSyncPDataResponse.h', -'SmartDeviceLink/SDLEndAudioPassThruResponse.h', -'SmartDeviceLink/SDLGenericResponse.h', -'SmartDeviceLink/SDLGetDTCsResponse.h', -'SmartDeviceLink/SDLGetSystemCapabilityResponse.h', -'SmartDeviceLink/SDLGetVehicleDataResponse.h', -'SmartDeviceLink/SDLGetWaypointsResponse.h', -'SmartDeviceLink/SDLListFilesResponse.h', -'SmartDeviceLink/SDLPerformAudioPassThruResponse.h', -'SmartDeviceLink/SDLPerformInteractionResponse.h', -'SmartDeviceLink/SDLPutFileResponse.h', -'SmartDeviceLink/SDLReadDIDResponse.h', -'SmartDeviceLink/SDLRegisterAppInterfaceResponse.h', -'SmartDeviceLink/SDLResetGlobalPropertiesResponse.h', -'SmartDeviceLink/SDLScrollableMessageResponse.h', -'SmartDeviceLink/SDLSendHapticDataResponse.h', -'SmartDeviceLink/SDLSendLocationResponse.h', -'SmartDeviceLink/SDLSetAppIconResponse.h', -'SmartDeviceLink/SDLSetDisplayLayoutResponse.h', -'SmartDeviceLink/SDLSetGlobalPropertiesResponse.h', -'SmartDeviceLink/SDLSetMediaClockTimerResponse.h', -'SmartDeviceLink/SDLShowConstantTBTResponse.h', -'SmartDeviceLink/SDLShowResponse.h', -'SmartDeviceLink/SDLSliderResponse.h', -'SmartDeviceLink/SDLSpeakResponse.h', -'SmartDeviceLink/SDLSubscribeButtonResponse.h', -'SmartDeviceLink/SDLSubscribeVehicleDataResponse.h', -'SmartDeviceLink/SDLSubscribeWaypointsResponse.h', -'SmartDeviceLink/SDLSyncPDataResponse.h', -'SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h', -'SmartDeviceLink/SDLUnsubscribeButtonResponse.h', -'SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h', -'SmartDeviceLink/SDLUnsubscribeWaypointsResponse.h', -'SmartDeviceLink/SDLUpdateTurnListResponse.h', -'SmartDeviceLink/SDLOnAppInterfaceUnregistered.h', -'SmartDeviceLink/SDLOnAudioPassThru.h', -'SmartDeviceLink/SDLOnButtonEvent.h', -'SmartDeviceLink/SDLOnButtonPress.h', -'SmartDeviceLink/SDLOnCommand.h', -'SmartDeviceLink/SDLOnDriverDistraction.h', -'SmartDeviceLink/SDLOnEncodedSyncPData.h', -'SmartDeviceLink/SDLOnHMIStatus.h', -'SmartDeviceLink/SDLOnHashChange.h', -'SmartDeviceLink/SDLOnKeyboardInput.h', -'SmartDeviceLink/SDLOnLanguageChange.h', -'SmartDeviceLink/SDLOnLockScreenStatus.h', -'SmartDeviceLink/SDLOnPermissionsChange.h', -'SmartDeviceLink/SDLOnSyncPData.h', -'SmartDeviceLink/SDLOnSystemRequest.h', -'SmartDeviceLink/SDLOnTBTClientState.h', -'SmartDeviceLink/SDLOnTouchEvent.h', -'SmartDeviceLink/SDLOnVehicleData.h', -'SmartDeviceLink/SDLOnWaypointChange.h', -'SmartDeviceLink/SDLAirbagStatus.h', -'SmartDeviceLink/SDLAppInfo.h', -'SmartDeviceLink/SDLAudioPassThruCapabilities.h', -'SmartDeviceLink/SDLBeltStatus.h', -'SmartDeviceLink/SDLBodyInformation.h', -'SmartDeviceLink/SDLButtonCapabilities.h', -'SmartDeviceLink/SDLChoice.h', -'SmartDeviceLink/SDLClusterModeStatus.h', -'SmartDeviceLink/SDLDIDResult.h', -'SmartDeviceLink/SDLDateTime.h', -'SmartDeviceLink/SDLDeviceInfo.h', -'SmartDeviceLink/SDLDeviceStatus.h', -'SmartDeviceLink/SDLDisplayCapabilities.h', -'SmartDeviceLink/SDLECallInfo.h', -'SmartDeviceLink/SDLEmergencyEvent.h', -'SmartDeviceLink/SDLGPSData.h', -'SmartDeviceLink/SDLHMICapabilities.h', -'SmartDeviceLink/SDLHMIPermissions.h', -'SmartDeviceLink/SDLHeadLampStatus.h', -'SmartDeviceLink/SDLImage.h', -'SmartDeviceLink/SDLImageField.h', -'SmartDeviceLink/SDLImageResolution.h', -'SmartDeviceLink/SDLKeyboardProperties.h', -'SmartDeviceLink/SDLMenuParams.h', -'SmartDeviceLink/SDLMetadataTags.h', -'SmartDeviceLink/SDLMyKey.h', -'SmartDeviceLink/SDLNavigationCapability.h', -'SmartDeviceLink/SDLOasisAddress.h', -'SmartDeviceLink/SDLParameterPermissions.h', -'SmartDeviceLink/SDLPermissionItem.h', -'SmartDeviceLink/SDLPhoneCapability.h', -'SmartDeviceLink/SDLPresetBankCapabilities.h', -'SmartDeviceLink/SDLRectangle.h', -'SmartDeviceLink/SDLScreenParams.h', -'SmartDeviceLink/SDLSingleTireStatus.h', -'SmartDeviceLink/SDLSoftButton.h', -'SmartDeviceLink/SDLSoftButtonCapabilities.h', -'SmartDeviceLink/SDLStartTime.h', -'SmartDeviceLink/SDLSyncMsgVersion.h', -'SmartDeviceLink/SDLSystemCapability.h', -'SmartDeviceLink/SDLTTSChunk.h', -'SmartDeviceLink/SDLTextField.h', -'SmartDeviceLink/SDLTireStatus.h', -'SmartDeviceLink/SDLTouchCoord.h', -'SmartDeviceLink/SDLTouchEvent.h', -'SmartDeviceLink/SDLTouchEventCapabilities.h', -'SmartDeviceLink/SDLTurn.h', -'SmartDeviceLink/SDLVehicleDataResult.h', -'SmartDeviceLink/SDLVehicleType.h', -'SmartDeviceLink/SDLVideoStreamingFormat.h', -'SmartDeviceLink/SDLVideoStreamingCapability.h', -'SmartDeviceLink/SDLVRHelpItem.h', +'SmartDeviceLink/SDLButtonPressResponse.h', 'SmartDeviceLink/SDLAmbientLightStatus.h', 'SmartDeviceLink/SDLAppHMIType.h', +'SmartDeviceLink/SDLAppInfo.h', 'SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h', +'SmartDeviceLink/SDLArtwork.h', +'SmartDeviceLink/SDLAudioPassThruCapabilities.h', 'SmartDeviceLink/SDLAudioStreamingState.h', 'SmartDeviceLink/SDLAudioType.h', +'SmartDeviceLink/SDLBeltStatus.h', 'SmartDeviceLink/SDLBitsPerSample.h', +'SmartDeviceLink/SDLBodyInformation.h', +'SmartDeviceLink/SDLButtonCapabilities.h', 'SmartDeviceLink/SDLButtonEventMode.h', 'SmartDeviceLink/SDLButtonName.h', 'SmartDeviceLink/SDLButtonPressMode.h', 'SmartDeviceLink/SDLCarModeStatus.h', +'SmartDeviceLink/SDLChangeRegistration.h', +'SmartDeviceLink/SDLChangeRegistrationResponse.h', 'SmartDeviceLink/SDLCharacterSet.h', +'SmartDeviceLink/SDLChoice.h', +'SmartDeviceLink/SDLClimateControlCapabilities.h', +'SmartDeviceLink/SDLClimateControlData.h', +'SmartDeviceLink/SDLClusterModeStatus.h', 'SmartDeviceLink/SDLCompassDirection.h', 'SmartDeviceLink/SDLComponentVolumeStatus.h', +'SmartDeviceLink/SDLConfiguration.h', +'SmartDeviceLink/SDLCreateInteractionChoiceSet.h', +'SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h', +'SmartDeviceLink/SDLDateTime.h', +'SmartDeviceLink/SDLDefrostZone.h', +'SmartDeviceLink/SDLDeleteCommand.h', +'SmartDeviceLink/SDLDeleteCommandResponse.h', +'SmartDeviceLink/SDLDeleteFile.h', +'SmartDeviceLink/SDLDeleteFileResponse.h', +'SmartDeviceLink/SDLDeleteInteractionChoiceSet.h', +'SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h', +'SmartDeviceLink/SDLDeleteSubMenu.h', +'SmartDeviceLink/SDLDeleteSubMenuResponse.h', 'SmartDeviceLink/SDLDeliveryMode.h', +'SmartDeviceLink/SDLDeviceInfo.h', 'SmartDeviceLink/SDLDeviceLevelStatus.h', +'SmartDeviceLink/SDLDeviceStatus.h', +'SmartDeviceLink/SDLDiagnosticMessage.h', +'SmartDeviceLink/SDLDiagnosticMessageResponse.h', +'SmartDeviceLink/SDLDialNumber.h', +'SmartDeviceLink/SDLDialNumberResponse.h', +'SmartDeviceLink/SDLDIDResult.h', 'SmartDeviceLink/SDLDimension.h', +'SmartDeviceLink/SDLDisplayCapabilities.h', 'SmartDeviceLink/SDLDisplayType.h', 'SmartDeviceLink/SDLDriverDistractionState.h', 'SmartDeviceLink/SDLECallConfirmationStatus.h', +'SmartDeviceLink/SDLECallInfo.h', +'SmartDeviceLink/SDLEmergencyEvent.h', 'SmartDeviceLink/SDLEmergencyEventType.h', +'SmartDeviceLink/SDLEncodedSyncPData.h', +'SmartDeviceLink/SDLEncodedSyncPDataResponse.h', +'SmartDeviceLink/SDLEndAudioPassThru.h', +'SmartDeviceLink/SDLEndAudioPassThruResponse.h', +'SmartDeviceLink/SDLEnum.h', +'SmartDeviceLink/SDLErrorConstants.h', +'SmartDeviceLink/SDLFile.h', +'SmartDeviceLink/SDLFileManager.h', +'SmartDeviceLink/SDLFileManagerConstants.h', 'SmartDeviceLink/SDLFileType.h', 'SmartDeviceLink/SDLFuelCutoffStatus.h', +'SmartDeviceLink/SDLGenericResponse.h', +'SmartDeviceLink/SDLGetDTCs.h', +'SmartDeviceLink/SDLGetInteriorVehicleData.h', +'SmartDeviceLink/SDLGetDTCsResponse.h', +'SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h', +'SmartDeviceLink/SDLGetSystemCapability.h', +'SmartDeviceLink/SDLGetSystemCapabilityResponse.h', +'SmartDeviceLink/SDLGetVehicleData.h', +'SmartDeviceLink/SDLGetVehicleDataResponse.h', +'SmartDeviceLink/SDLGetWaypoints.h', +'SmartDeviceLink/SDLGetWaypointsResponse.h', 'SmartDeviceLink/SDLGlobalProperty.h', +'SmartDeviceLink/SDLGPSData.h', +'SmartDeviceLink/SDLHapticRect.h', +'SmartDeviceLink/SDLHeadLampStatus.h', +'SmartDeviceLink/SDLHMICapabilities.h', 'SmartDeviceLink/SDLHMILevel.h', +'SmartDeviceLink/SDLHMIPermissions.h', 'SmartDeviceLink/SDLHMIZoneCapabilities.h', +'SmartDeviceLink/SDLIAPSessionDelegate.h', +'SmartDeviceLink/SDLIAPTransport.h', 'SmartDeviceLink/SDLIgnitionStableStatus.h', 'SmartDeviceLink/SDLIgnitionStatus.h', +'SmartDeviceLink/SDLImage.h', +'SmartDeviceLink/SDLImageField.h', 'SmartDeviceLink/SDLImageFieldName.h', +'SmartDeviceLink/SDLImageResolution.h', 'SmartDeviceLink/SDLImageType.h', 'SmartDeviceLink/SDLInteractionMode.h', 'SmartDeviceLink/SDLKeyboardEvent.h', 'SmartDeviceLink/SDLKeyboardLayout.h', +'SmartDeviceLink/SDLKeyboardProperties.h', 'SmartDeviceLink/SDLKeypressMode.h', 'SmartDeviceLink/SDLLanguage.h', 'SmartDeviceLink/SDLLayoutMode.h', +'SmartDeviceLink/SDLLifecycleConfiguration.h', +'SmartDeviceLink/SDLListFiles.h', +'SmartDeviceLink/SDLListFilesResponse.h', 'SmartDeviceLink/SDLLocationCoordinate.h', 'SmartDeviceLink/SDLLocationDetails.h', +'SmartDeviceLink/SDLLockScreenConfiguration.h', 'SmartDeviceLink/SDLLockScreenStatus.h', +'SmartDeviceLink/SDLLockScreenViewController.h', +'SmartDeviceLink/SDLLogConfiguration.h', +'SmartDeviceLink/SDLLogConstants.h', +'SmartDeviceLink/SDLLogFileModule.h', +'SmartDeviceLink/SDLLogFilter.h', +'SmartDeviceLink/SDLLogMacros.h', +'SmartDeviceLink/SDLLogManager.h', +'SmartDeviceLink/SDLLogTarget.h', +'SmartDeviceLink/SDLLogTargetAppleSystemLog.h', +'SmartDeviceLink/SDLLogTargetFile.h', +'SmartDeviceLink/SDLLogTargetOSLog.h', +'SmartDeviceLink/SDLMacros.h', 'SmartDeviceLink/SDLMaintenanceModeStatus.h', +'SmartDeviceLink/SDLManager.h', +'SmartDeviceLink/SDLManagerDelegate.h', 'SmartDeviceLink/SDLMediaClockFormat.h', +'SmartDeviceLink/SDLModuleData.h', +'SmartDeviceLink/SDLModuleType.h', +'SmartDeviceLink/SDLMenuParams.h', +'SmartDeviceLink/SDLMetadataTags.h', 'SmartDeviceLink/SDLMetadataType.h', -'SmartDeviceLink/SDLPRNDL.h', +'SmartDeviceLink/SDLMyKey.h', +'SmartDeviceLink/SDLNavigationCapability.h', +'SmartDeviceLink/SDLNotificationConstants.h', +'SmartDeviceLink/SDLOasisAddress.h', +'SmartDeviceLink/SDLOnAppInterfaceUnregistered.h', +'SmartDeviceLink/SDLOnAudioPassThru.h', +'SmartDeviceLink/SDLOnButtonEvent.h', +'SmartDeviceLink/SDLOnButtonPress.h', +'SmartDeviceLink/SDLOnCommand.h', +'SmartDeviceLink/SDLOnDriverDistraction.h', +'SmartDeviceLink/SDLOnEncodedSyncPData.h', +'SmartDeviceLink/SDLOnHashChange.h', +'SmartDeviceLink/SDLOnInteriorVehicleData.h', +'SmartDeviceLink/SDLOnHMIStatus.h', +'SmartDeviceLink/SDLOnKeyboardInput.h', +'SmartDeviceLink/SDLOnLanguageChange.h', +'SmartDeviceLink/SDLOnLockScreenStatus.h', +'SmartDeviceLink/SDLOnPermissionsChange.h', +'SmartDeviceLink/SDLOnSyncPData.h', +'SmartDeviceLink/SDLOnSystemRequest.h', +'SmartDeviceLink/SDLOnTBTClientState.h', +'SmartDeviceLink/SDLOnTouchEvent.h', +'SmartDeviceLink/SDLOnVehicleData.h', +'SmartDeviceLink/SDLOnWayPointChange.h', +'SmartDeviceLink/SDLParameterPermissions.h', +'SmartDeviceLink/SDLPerformAudioPassThru.h', +'SmartDeviceLink/SDLPerformAudioPassThruResponse.h', +'SmartDeviceLink/SDLPerformInteraction.h', +'SmartDeviceLink/SDLPerformInteractionResponse.h', +'SmartDeviceLink/SDLPermissionConstants.h', +'SmartDeviceLink/SDLPermissionItem.h', +'SmartDeviceLink/SDLPermissionManager.h', 'SmartDeviceLink/SDLPermissionStatus.h', +'SmartDeviceLink/SDLPhoneCapability.h', +'SmartDeviceLink/SDLPinchGesture.h', 'SmartDeviceLink/SDLPowerModeQualificationStatus.h', 'SmartDeviceLink/SDLPowerModeStatus.h', 'SmartDeviceLink/SDLPredefinedLayout.h', 'SmartDeviceLink/SDLPrerecordedSpeech.h', +'SmartDeviceLink/SDLPresetBankCapabilities.h', 'SmartDeviceLink/SDLPrimaryAudioSource.h', -'SmartDeviceLink/SDLRPCMessageType.h', +'SmartDeviceLink/SDLPRNDL.h', +'SmartDeviceLink/SDLProtocol.h', +'SmartDeviceLink/SDLProtocolHeader.h', +'SmartDeviceLink/SDLProtocolListener.h', +'SmartDeviceLink/SDLProtocolMessage.h', +'SmartDeviceLink/SDLProxy.h', +'SmartDeviceLink/SDLProxyFactory.h', +'SmartDeviceLink/SDLProxyListener.h', +'SmartDeviceLink/SDLPutFile.h', +'SmartDeviceLink/SDLPutFileResponse.h', +'SmartDeviceLink/SDLReadDID.h', +'SmartDeviceLink/SDLReadDIDResponse.h', +'SmartDeviceLink/SDLRectangle.h', +'SmartDeviceLink/SDLRegisterAppInterface.h', +'SmartDeviceLink/SDLRegisterAppInterfaceResponse.h', 'SmartDeviceLink/SDLRequestType.h', +'SmartDeviceLink/SDLResetGlobalProperties.h', +'SmartDeviceLink/SDLResetGlobalPropertiesResponse.h', 'SmartDeviceLink/SDLResult.h', +'SmartDeviceLink/SDLRPCMessage.h', +'SmartDeviceLink/SDLRPCMessageType.h', +'SmartDeviceLink/SDLRadioBand.h', +'SmartDeviceLink/SDLRadioControlCapabilities.h', +'SmartDeviceLink/SDLRadioControlData.h', +'SmartDeviceLink/SDLRadioState.h', +'SmartDeviceLink/SDLRDSData.h', +'SmartDeviceLink/SDLRemoteControlCapabilities.h', +'SmartDeviceLink/SDLRPCNotification.h', +'SmartDeviceLink/SDLRPCNotificationNotification.h', +'SmartDeviceLink/SDLRPCRequest.h', +'SmartDeviceLink/SDLRPCResponse.h', +'SmartDeviceLink/SDLRPCResponseNotification.h', +'SmartDeviceLink/SDLRPCStruct.h', 'SmartDeviceLink/SDLSamplingRate.h', +'SmartDeviceLink/SDLScreenParams.h', +'SmartDeviceLink/SDLScrollableMessage.h', +'SmartDeviceLink/SDLScrollableMessageResponse.h', +'SmartDeviceLink/SDLSecurityType.h', +'SmartDeviceLink/SDLSendHapticData.h', +'SmartDeviceLink/SDLSendHapticDataResponse.h', +'SmartDeviceLink/SDLSendLocation.h', +'SmartDeviceLink/SDLSendLocationResponse.h', +'SmartDeviceLink/SDLSetAppIcon.h', +'SmartDeviceLink/SDLSetAppIconResponse.h', +'SmartDeviceLink/SDLSetDisplayLayout.h', +'SmartDeviceLink/SDLSetDisplayLayoutResponse.h', +'SmartDeviceLink/SDLSetGlobalProperties.h', +'SmartDeviceLink/SDLSetInteriorVehicleData.h', +'SmartDeviceLink/SDLSetGlobalPropertiesResponse.h', +'SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h', +'SmartDeviceLink/SDLSetMediaClockTimer.h', +'SmartDeviceLink/SDLSetMediaClockTimerResponse.h', +'SmartDeviceLink/SDLShow.h', +'SmartDeviceLink/SDLShowConstantTBT.h', +'SmartDeviceLink/SDLShowConstantTBTResponse.h', +'SmartDeviceLink/SDLShowResponse.h', +'SmartDeviceLink/SDLSingleTireStatus.h', +'SmartDeviceLink/SDLSlider.h', +'SmartDeviceLink/SDLSliderResponse.h', +'SmartDeviceLink/SDLSoftButton.h', +'SmartDeviceLink/SDLSoftButtonCapabilities.h', 'SmartDeviceLink/SDLSoftButtonType.h', -'SmartDeviceLink/SDLHapticRect.h', +'SmartDeviceLink/SDLSpeak.h', +'SmartDeviceLink/SDLSpeakResponse.h', 'SmartDeviceLink/SDLSpeechCapabilities.h', +'SmartDeviceLink/SDLStartTime.h', +'SmartDeviceLink/SDLStreamingMediaConfiguration.h', +'SmartDeviceLink/SDLStreamingMediaManager.h', +'SmartDeviceLink/SDLStreamingMediaManagerConstants.h', +'SmartDeviceLink/SDLSubscribeButton.h', +'SmartDeviceLink/SDLSubscribeButtonResponse.h', +'SmartDeviceLink/SDLSubscribeVehicleData.h', +'SmartDeviceLink/SDLSubscribeVehicleDataResponse.h', +'SmartDeviceLink/SDLSubscribeWaypoints.h', +'SmartDeviceLink/SDLSubscribeWaypointsResponse.h', +'SmartDeviceLink/SDLSyncMsgVersion.h', +'SmartDeviceLink/SDLSyncPData.h', +'SmartDeviceLink/SDLSyncPDataResponse.h', 'SmartDeviceLink/SDLSystemAction.h', +'SmartDeviceLink/SDLSystemCapability.h', 'SmartDeviceLink/SDLSystemCapabilityType.h', 'SmartDeviceLink/SDLSystemContext.h', 'SmartDeviceLink/SDLTBTState.h', +'SmartDeviceLink/SDLTemperature.h', +'SmartDeviceLink/SDLTemperatureUnit.h', +'SmartDeviceLink/SDLTCPTransport.h', 'SmartDeviceLink/SDLTextAlignment.h', +'SmartDeviceLink/SDLTextField.h', 'SmartDeviceLink/SDLTextFieldName.h', 'SmartDeviceLink/SDLTimerMode.h', +'SmartDeviceLink/SDLTireStatus.h', +'SmartDeviceLink/SDLTouch.h', +'SmartDeviceLink/SDLTouchCoord.h', +'SmartDeviceLink/SDLTouchEvent.h', +'SmartDeviceLink/SDLTouchEventCapabilities.h', +'SmartDeviceLink/SDLTouchManager.h', +'SmartDeviceLink/SDLTouchManagerDelegate.h', 'SmartDeviceLink/SDLTouchType.h', +'SmartDeviceLink/SDLTransportDelegate.h', 'SmartDeviceLink/SDLTriggerSource.h', +'SmartDeviceLink/SDLTTSChunk.h', +'SmartDeviceLink/SDLTurn.h', +'SmartDeviceLink/SDLUnregisterAppInterface.h', +'SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h', +'SmartDeviceLink/SDLUnsubscribeButton.h', +'SmartDeviceLink/SDLUnsubscribeButtonResponse.h', +'SmartDeviceLink/SDLUnsubscribeVehicleData.h', +'SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h', +'SmartDeviceLink/SDLUnsubscribeWaypoints.h', +'SmartDeviceLink/SDLUnsubscribeWaypointsResponse.h', 'SmartDeviceLink/SDLUpdateMode.h', -'SmartDeviceLink/SDLVRCapabilities.h', +'SmartDeviceLink/SDLUpdateTurnList.h', +'SmartDeviceLink/SDLUpdateTurnListResponse.h', 'SmartDeviceLink/SDLVehicleDataActiveStatus.h', 'SmartDeviceLink/SDLVehicleDataEventStatus.h', 'SmartDeviceLink/SDLVehicleDataNotificationStatus.h', +'SmartDeviceLink/SDLVehicleDataResult.h', 'SmartDeviceLink/SDLVehicleDataResultCode.h', 'SmartDeviceLink/SDLVehicleDataStatus.h', 'SmartDeviceLink/SDLVehicleDataType.h', +'SmartDeviceLink/SDLVentilationMode.h', +'SmartDeviceLink/SDLVehicleType.h', +'SmartDeviceLink/SDLVideoStreamingCapability.h', 'SmartDeviceLink/SDLVideoStreamingCodec.h', +'SmartDeviceLink/SDLVideoStreamingFormat.h', 'SmartDeviceLink/SDLVideoStreamingProtocol.h', +'SmartDeviceLink/SDLVrCapabilities.h', +'SmartDeviceLink/SDLVrHelpItem.h', 'SmartDeviceLink/SDLWarningLightStatus.h', -'SmartDeviceLink/SDLWaypointType.h', +'SmartDeviceLink/SDLWayPointType.h', 'SmartDeviceLink/SDLWiperStatus.h', -'SmartDeviceLink/SDLConfiguration.h', -'SmartDeviceLink/SDLLifecycleConfiguration.h', -'SmartDeviceLink/SDLLockScreenConfiguration.h', -'SmartDeviceLink/SDLArtwork.h', -'SmartDeviceLink/SDLFile.h', -'SmartDeviceLink/SDLFileManager.h', -'SmartDeviceLink/SDLFileManagerConstants.h', -'SmartDeviceLink/SDLLockScreenViewController.h', -'SmartDeviceLink/SDLManager.h', -'SmartDeviceLink/SDLManagerDelegate.h', -'SmartDeviceLink/SDLPermissionConstants.h', -'SmartDeviceLink/SDLPermissionManager.h', -'SmartDeviceLink/NSNumber+NumberType.h', -'SmartDeviceLink/SDLErrorConstants.h', -'SmartDeviceLink/SDLNotificationConstants.h', -'SmartDeviceLink/SDLRequestHandler.h', -'SmartDeviceLink/SDLRPCNotificationNotification.h', -'SmartDeviceLink/SDLRPCResponseNotification.h', +'SmartDeviceLink/SmartDeviceLink.h', ] +end + +s.subspec 'Swift' do |ss| +ss.dependency 'SmartDeviceLink-iOS/Default' +ss.source_files = 'SmartDeviceLinkSwift/*.swift' +end end diff --git a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj index 6168f8630..088571848 100644 --- a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj +++ b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 48; objects = { /* Begin PBXBuildFile section */ @@ -74,7 +74,6 @@ 162E830B1A9BDE8B00906325 /* SDLVrCapabilitiesSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 162E82231A9BDE8A00906325 /* SDLVrCapabilitiesSpec.m */; }; 162E830C1A9BDE8B00906325 /* SDLWarningLightStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 162E82241A9BDE8A00906325 /* SDLWarningLightStatusSpec.m */; }; 162E830D1A9BDE8B00906325 /* SDLWiperStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 162E82251A9BDE8A00906325 /* SDLWiperStatusSpec.m */; }; - 162E830E1A9BDE8B00906325 /* SDLRPCRequestFactorySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 162E82271A9BDE8A00906325 /* SDLRPCRequestFactorySpec.m */; }; 162E830F1A9BDE8B00906325 /* SDLOnAppInterfaceUnregisteredSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 162E82291A9BDE8A00906325 /* SDLOnAppInterfaceUnregisteredSpec.m */; }; 162E83101A9BDE8B00906325 /* SDLOnAudioPassThruSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 162E822A1A9BDE8A00906325 /* SDLOnAudioPassThruSpec.m */; }; 162E83111A9BDE8B00906325 /* SDLOnButtonEventSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 162E822B1A9BDE8A00906325 /* SDLOnButtonEventSpec.m */; }; @@ -213,7 +212,6 @@ 162E83961A9BDE8B00906325 /* SDLVehicleDataResultSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 162E82B41A9BDE8A00906325 /* SDLVehicleDataResultSpec.m */; }; 162E83971A9BDE8B00906325 /* SDLVehicleTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 162E82B51A9BDE8A00906325 /* SDLVehicleTypeSpec.m */; }; 162E83981A9BDE8B00906325 /* SDLVrHelpItemSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 162E82B61A9BDE8A00906325 /* SDLVrHelpItemSpec.m */; }; - 162E83991A9BDE8B00906325 /* SDLEnumSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 162E82B81A9BDE8A00906325 /* SDLEnumSpec.m */; }; 162E839A1A9BDE8B00906325 /* SDLRPCMessageSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 162E82B91A9BDE8A00906325 /* SDLRPCMessageSpec.m */; }; 162E839B1A9BDE8B00906325 /* SDLRPCNotificationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 162E82BA1A9BDE8A00906325 /* SDLRPCNotificationSpec.m */; }; 162E839C1A9BDE8B00906325 /* SDLRPCRequestSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 162E82BB1A9BDE8A00906325 /* SDLRPCRequestSpec.m */; }; @@ -233,6 +231,72 @@ 1680B11C1A9CD7AD00DBD79E /* SDLProtocolMessageAssemblerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1680B1101A9CD7AD00DBD79E /* SDLProtocolMessageAssemblerSpec.m */; }; 1680B11D1A9CD7AD00DBD79E /* SDLProtocolMessageDisassemblerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1680B1111A9CD7AD00DBD79E /* SDLProtocolMessageDisassemblerSpec.m */; }; 1680B11E1A9CD7AD00DBD79E /* SDLProtocolReceivedMessageRouterSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1680B1121A9CD7AD00DBD79E /* SDLProtocolReceivedMessageRouterSpec.m */; }; + 1E4920B11F6A6443008F2CC3 /* SDLRadioState.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AD05F1F207AB10029B8AF /* SDLRadioState.m */; }; + 1E4920B21F6A6455008F2CC3 /* SDLGetInteriorVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AD08B1F20BC320029B8AF /* SDLGetInteriorVehicleDataResponse.m */; }; + 1E4920B31F6A6463008F2CC3 /* SDLOnInteriorVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AD0971F20C0FB0029B8AF /* SDLOnInteriorVehicleData.m */; }; + 1E5AD0341F1F3AA30029B8AF /* SDLRemoteControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5AD0321F1F3AA30029B8AF /* SDLRemoteControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5AD0351F1F3AA30029B8AF /* SDLRemoteControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AD0331F1F3AA30029B8AF /* SDLRemoteControlCapabilities.m */; }; + 1E5AD0381F1F4E390029B8AF /* SDLClimateControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5AD0361F1F4E390029B8AF /* SDLClimateControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5AD0391F1F4E390029B8AF /* SDLClimateControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AD0371F1F4E390029B8AF /* SDLClimateControlCapabilities.m */; }; + 1E5AD0401F1F58480029B8AF /* SDLVentilationMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5AD03E1F1F58480029B8AF /* SDLVentilationMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5AD0411F1F58480029B8AF /* SDLVentilationMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AD03F1F1F58480029B8AF /* SDLVentilationMode.m */; }; + 1E5AD0441F1F5A1F0029B8AF /* SDLRadioControlCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5AD0421F1F5A1F0029B8AF /* SDLRadioControlCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5AD0451F1F5A1F0029B8AF /* SDLRadioControlCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AD0431F1F5A1F0029B8AF /* SDLRadioControlCapabilities.m */; }; + 1E5AD0481F1F773E0029B8AF /* SDLModuleType.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5AD0461F1F773E0029B8AF /* SDLModuleType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5AD0491F1F773E0029B8AF /* SDLModuleType.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AD0471F1F773E0029B8AF /* SDLModuleType.m */; }; + 1E5AD04C1F1F79640029B8AF /* SDLDefrostZone.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5AD04A1F1F79640029B8AF /* SDLDefrostZone.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5AD04D1F1F79640029B8AF /* SDLDefrostZone.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AD04B1F1F79640029B8AF /* SDLDefrostZone.m */; }; + 1E5AD0501F1F7BF10029B8AF /* SDLRadioBand.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5AD04E1F1F7BF10029B8AF /* SDLRadioBand.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5AD0511F1F7BF10029B8AF /* SDLRadioBand.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AD04F1F1F7BF10029B8AF /* SDLRadioBand.m */; }; + 1E5AD05C1F2064A80029B8AF /* SDLRDSData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5AD05A1F2064A80029B8AF /* SDLRDSData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5AD05D1F2064A80029B8AF /* SDLRDSData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AD05B1F2064A80029B8AF /* SDLRDSData.m */; }; + 1E5AD0601F207AB10029B8AF /* SDLRadioState.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5AD05E1F207AB10029B8AF /* SDLRadioState.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5AD0641F207DD50029B8AF /* SDLTemperature.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5AD0621F207DD50029B8AF /* SDLTemperature.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5AD0651F207DD50029B8AF /* SDLTemperature.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AD0631F207DD50029B8AF /* SDLTemperature.m */; }; + 1E5AD0681F2080B50029B8AF /* SDLRadioControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5AD0661F2080B50029B8AF /* SDLRadioControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5AD0691F2080B50029B8AF /* SDLRadioControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AD0671F2080B50029B8AF /* SDLRadioControlData.m */; }; + 1E5AD06C1F208BAB0029B8AF /* SDLClimateControlData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5AD06A1F208BAB0029B8AF /* SDLClimateControlData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5AD06D1F208BAB0029B8AF /* SDLClimateControlData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AD06B1F208BAB0029B8AF /* SDLClimateControlData.m */; }; + 1E5AD0701F209C880029B8AF /* SDLModuleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5AD06E1F209C880029B8AF /* SDLModuleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5AD0711F209C880029B8AF /* SDLModuleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AD06F1F209C880029B8AF /* SDLModuleData.m */; }; + 1E5AD0801F20B73E0029B8AF /* SDLButtonPress.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5AD07E1F20B73E0029B8AF /* SDLButtonPress.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5AD0811F20B73E0029B8AF /* SDLButtonPress.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AD07F1F20B73E0029B8AF /* SDLButtonPress.m */; }; + 1E5AD0841F20B9290029B8AF /* SDLButtonPressResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5AD0821F20B9290029B8AF /* SDLButtonPressResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5AD0851F20B9290029B8AF /* SDLButtonPressResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AD0831F20B9290029B8AF /* SDLButtonPressResponse.m */; }; + 1E5AD0881F20B9AA0029B8AF /* SDLGetInteriorVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5AD0861F20B9AA0029B8AF /* SDLGetInteriorVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5AD0891F20B9AA0029B8AF /* SDLGetInteriorVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AD0871F20B9AA0029B8AF /* SDLGetInteriorVehicleData.m */; }; + 1E5AD08C1F20BC320029B8AF /* SDLGetInteriorVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5AD08A1F20BC320029B8AF /* SDLGetInteriorVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5AD0901F20BE820029B8AF /* SDLSetInteriorVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5AD08E1F20BE820029B8AF /* SDLSetInteriorVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5AD0911F20BE820029B8AF /* SDLSetInteriorVehicleData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AD08F1F20BE820029B8AF /* SDLSetInteriorVehicleData.m */; }; + 1E5AD0941F20BEAD0029B8AF /* SDLSetInteriorVehicleDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5AD0921F20BEAD0029B8AF /* SDLSetInteriorVehicleDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5AD0951F20BEAD0029B8AF /* SDLSetInteriorVehicleDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5AD0931F20BEAD0029B8AF /* SDLSetInteriorVehicleDataResponse.m */; }; + 1E5AD0981F20C0FB0029B8AF /* SDLOnInteriorVehicleData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5AD0961F20C0FB0029B8AF /* SDLOnInteriorVehicleData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1EE48E901F2F0EE700B98D08 /* SDLTemperatureUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EE48E8E1F2F0EE700B98D08 /* SDLTemperatureUnit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1EE48E911F2F0EE700B98D08 /* SDLTemperatureUnit.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE48E8F1F2F0EE700B98D08 /* SDLTemperatureUnit.m */; }; + 1EE8C4381F347C7300FDC2CF /* SDLRadioBandSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE8C4371F347C7300FDC2CF /* SDLRadioBandSpec.m */; }; + 1EE8C43A1F347D4D00FDC2CF /* SDLRadioStateSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE8C4391F347D4D00FDC2CF /* SDLRadioStateSpec.m */; }; + 1EE8C43C1F347EAE00FDC2CF /* SDLTemperatureUnitSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE8C43B1F347EAE00FDC2CF /* SDLTemperatureUnitSpec.m */; }; + 1EE8C43E1F347F0500FDC2CF /* SDLVentilationModeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE8C43D1F347F0500FDC2CF /* SDLVentilationModeSpec.m */; }; + 1EE8C4401F348D3200FDC2CF /* SDLClimateControlCapabilitiesSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE8C43F1F348D3200FDC2CF /* SDLClimateControlCapabilitiesSpec.m */; }; + 1EE8C4441F34A1B900FDC2CF /* SDLClimateControlDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE8C4431F34A1B900FDC2CF /* SDLClimateControlDataSpec.m */; }; + 1EE8C4461F3837D200FDC2CF /* SDLModuleDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE8C4451F3837D200FDC2CF /* SDLModuleDataSpec.m */; }; + 1EE8C4481F38430900FDC2CF /* SDLRadioControlCapabilitiesSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE8C4471F38430900FDC2CF /* SDLRadioControlCapabilitiesSpec.m */; }; + 1EE8C44A1F3846D300FDC2CF /* SDLRadioControlDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE8C4491F3846D300FDC2CF /* SDLRadioControlDataSpec.m */; }; + 1EE8C44C1F385C7100FDC2CF /* SDLRDSDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE8C44B1F385C7100FDC2CF /* SDLRDSDataSpec.m */; }; + 1EE8C4501F38629200FDC2CF /* SDLRemoteControlCapabilitiesSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE8C44F1F38629200FDC2CF /* SDLRemoteControlCapabilitiesSpec.m */; }; + 1EE8C4521F38657D00FDC2CF /* SDLTemperatureSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE8C4511F38657D00FDC2CF /* SDLTemperatureSpec.m */; }; + 1EE8C4541F38762E00FDC2CF /* SDLOnInteriorVehicleDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE8C4531F38762E00FDC2CF /* SDLOnInteriorVehicleDataSpec.m */; }; + 1EE8C4561F38788A00FDC2CF /* SDLButtonPressSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE8C4551F38788A00FDC2CF /* SDLButtonPressSpec.m */; }; + 1EE8C4581F387ABD00FDC2CF /* SDLButtonPressResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE8C4571F387ABD00FDC2CF /* SDLButtonPressResponseSpec.m */; }; + 1EE8C45A1F387BBB00FDC2CF /* SDLGetInteriorVehicleDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE8C4591F387BBB00FDC2CF /* SDLGetInteriorVehicleDataSpec.m */; }; + 1EE8C45D1F387D1C00FDC2CF /* SDLGetInteriorVehicleDataResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE8C45C1F387D1C00FDC2CF /* SDLGetInteriorVehicleDataResponseSpec.m */; }; + 1EE8C45F1F3884FF00FDC2CF /* SDLSetInteriorVehicleDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE8C45E1F3884FF00FDC2CF /* SDLSetInteriorVehicleDataSpec.m */; }; + 1EE8C4611F38865B00FDC2CF /* SDLSetInteriorVehicleDataResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EE8C4601F38865B00FDC2CF /* SDLSetInteriorVehicleDataResponseSpec.m */; }; + 1FF7DAB61F75B27300B46C30 /* SDLFocusableItemLocatorType.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FF7DAB51F75B27300B46C30 /* SDLFocusableItemLocatorType.h */; }; + 1FF7DAB81F75B28E00B46C30 /* SDLFocusableItemHitTester.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FF7DAB71F75B28E00B46C30 /* SDLFocusableItemHitTester.h */; }; + 1FF7DABA1F75B2A800B46C30 /* SDLFocusableItemLocator.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FF7DAB91F75B2A800B46C30 /* SDLFocusableItemLocator.h */; }; + 1FF7DABC1F75B2BF00B46C30 /* SDLFocusableItemLocator.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FF7DABB1F75B2BF00B46C30 /* SDLFocusableItemLocator.m */; }; + 1FF7DAC01F75CF6C00B46C30 /* SDLHapticManagerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FF7DABF1F75CF6C00B46C30 /* SDLHapticManagerSpec.m */; }; 332A914F1CED9CC60043824C /* SDLAppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 332A913D1CED87F80043824C /* SDLAppInfo.m */; }; 332A91501CED9CF10043824C /* SDLAppInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 332A913C1CED87F80043824C /* SDLAppInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D00AC671F140F0A004000D9 /* SDLSystemCapabilityType.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D00AC651F140F0A004000D9 /* SDLSystemCapabilityType.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -257,18 +321,16 @@ 5D0A9F951F15585B00CC80DD /* SDLPhoneCapabilitySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D0A9F941F15585B00CC80DD /* SDLPhoneCapabilitySpec.m */; }; 5D0A9F971F1559EC00CC80DD /* SDLSystemCapabilitySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D0A9F961F1559EC00CC80DD /* SDLSystemCapabilitySpec.m */; }; 5D0A9F9A1F15636800CC80DD /* SDLGetSystemCapabilitiesSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D0A9F991F15636800CC80DD /* SDLGetSystemCapabilitiesSpec.m */; }; - 5D0A9F9C1F1565EB00CC80DD /* SDLGetSystemCapabilitiesResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D0A9F9B1F1565EB00CC80DD /* SDLGetSystemCapabilitiesResponseSpec.m */; }; + 5D0A9F9C1F1565EB00CC80DD /* SDLGetSystemCapabilityResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D0A9F9B1F1565EB00CC80DD /* SDLGetSystemCapabilityResponseSpec.m */; }; 5D1654561D3E754F00554D93 /* SDLLifecycleManagerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D1654551D3E754F00554D93 /* SDLLifecycleManagerSpec.m */; }; 5D16545A1D3E7A1600554D93 /* SDLLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D1654581D3E7A1600554D93 /* SDLLifecycleManager.h */; }; 5D16545B1D3E7A1600554D93 /* SDLLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D1654591D3E7A1600554D93 /* SDLLifecycleManager.m */; }; - 5D1665AB1CF5F7D000CC4CA1 /* (null) in Sources */ = {isa = PBXBuildFile; }; 5D1665C41CF8CA2700CC4CA1 /* SDLListFilesOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D1665C21CF8CA2700CC4CA1 /* SDLListFilesOperation.h */; }; 5D1665C51CF8CA2700CC4CA1 /* SDLListFilesOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D1665C31CF8CA2700CC4CA1 /* SDLListFilesOperation.m */; }; 5D1665C81CF8CA3D00CC4CA1 /* SDLPermissionFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D1665C61CF8CA3D00CC4CA1 /* SDLPermissionFilter.h */; }; 5D1665C91CF8CA3D00CC4CA1 /* SDLPermissionFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D1665C71CF8CA3D00CC4CA1 /* SDLPermissionFilter.m */; }; 5D1665CB1CF8CA6700CC4CA1 /* NSNumber+NumberType.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D1665CA1CF8CA6700CC4CA1 /* NSNumber+NumberType.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D1665CD1CF8CA8A00CC4CA1 /* SDLPermissionConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D1665CC1CF8CA8A00CC4CA1 /* SDLPermissionConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5D2996EA1BFCC0E3006106BF /* (null) in Sources */ = {isa = PBXBuildFile; }; 5D2F58081D0717D5001085CE /* SDLManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D2F58071D0717D5001085CE /* SDLManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D3E48751D6F3B330000BFEF /* SDLAsynchronousOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D3E48731D6F3B330000BFEF /* SDLAsynchronousOperation.h */; }; 5D3E48761D6F3B330000BFEF /* SDLAsynchronousOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D3E48741D6F3B330000BFEF /* SDLAsynchronousOperation.m */; }; @@ -281,6 +343,14 @@ 5D4029D41A76F0340006B0C2 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5D4029D31A76F0340006B0C2 /* Images.xcassets */; }; 5D4029E31A76F0760006B0C2 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5D4029DF1A76F0760006B0C2 /* LaunchScreen.xib */; }; 5D4029E41A76F0760006B0C2 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5D4029E11A76F0760006B0C2 /* Main.storyboard */; }; + 5D4346471E6F0BDA00B639C6 /* SDLLogFileModuleSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D4346461E6F0BDA00B639C6 /* SDLLogFileModuleSpec.m */; }; + 5D43465B1E6F154400B639C6 /* SDLLogConfigurationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D43465A1E6F154400B639C6 /* SDLLogConfigurationSpec.m */; }; + 5D4346651E6F38E600B639C6 /* SmartDeviceLinkSwift.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D4346631E6F38E600B639C6 /* SmartDeviceLinkSwift.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5D43466B1E6F3B4C00B639C6 /* SDLLogFilterSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D43466A1E6F3B4C00B639C6 /* SDLLogFilterSpec.m */; }; + 5D43466D1E6F522000B639C6 /* SDLLogModelSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D43466C1E6F522000B639C6 /* SDLLogModelSpec.m */; }; + 5D43466F1E6F55BD00B639C6 /* SDLLogManagerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D43466E1E6F55BD00B639C6 /* SDLLogManagerSpec.m */; }; + 5D4346731E6F617D00B639C6 /* TestLogTarget.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D4346721E6F617D00B639C6 /* TestLogTarget.m */; }; + 5D4346861E771B5700B639C6 /* SDLLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D4346851E771B5700B639C6 /* SDLLog.swift */; }; 5D4631041F2120A30092EFDC /* SDLControlFramePayloadType.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D4631031F2120A30092EFDC /* SDLControlFramePayloadType.h */; }; 5D4631081F21261A0092EFDC /* SDLControlFramePayloadRPCStartServiceAck.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D4631061F21261A0092EFDC /* SDLControlFramePayloadRPCStartServiceAck.h */; }; 5D4631091F21261B0092EFDC /* SDLControlFramePayloadRPCStartServiceAck.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D4631071F21261A0092EFDC /* SDLControlFramePayloadRPCStartServiceAck.m */; }; @@ -380,15 +450,10 @@ 5D61FC661A84238C00846EE7 /* SDLCompassDirection.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FA791A84238A00846EE7 /* SDLCompassDirection.m */; }; 5D61FC671A84238C00846EE7 /* SDLComponentVolumeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FA7A1A84238A00846EE7 /* SDLComponentVolumeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FC681A84238C00846EE7 /* SDLComponentVolumeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FA7B1A84238A00846EE7 /* SDLComponentVolumeStatus.m */; }; - 5D61FC691A84238C00846EE7 /* SDLConsoleController.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FA7C1A84238A00846EE7 /* SDLConsoleController.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5D61FC6A1A84238C00846EE7 /* SDLConsoleController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FA7D1A84238A00846EE7 /* SDLConsoleController.m */; }; 5D61FC6B1A84238C00846EE7 /* SDLCreateInteractionChoiceSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FA7E1A84238A00846EE7 /* SDLCreateInteractionChoiceSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FC6C1A84238C00846EE7 /* SDLCreateInteractionChoiceSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FA7F1A84238A00846EE7 /* SDLCreateInteractionChoiceSet.m */; }; 5D61FC6D1A84238C00846EE7 /* SDLCreateInteractionChoiceSetResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FA801A84238A00846EE7 /* SDLCreateInteractionChoiceSetResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FC6E1A84238C00846EE7 /* SDLCreateInteractionChoiceSetResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FA811A84238A00846EE7 /* SDLCreateInteractionChoiceSetResponse.m */; }; - 5D61FC6F1A84238C00846EE7 /* SDLDebugTool.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FA821A84238A00846EE7 /* SDLDebugTool.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5D61FC701A84238C00846EE7 /* SDLDebugTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FA831A84238A00846EE7 /* SDLDebugTool.m */; }; - 5D61FC711A84238C00846EE7 /* SDLDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FA841A84238A00846EE7 /* SDLDecoder.h */; }; 5D61FC721A84238C00846EE7 /* SDLDeleteCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FA851A84238A00846EE7 /* SDLDeleteCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FC731A84238C00846EE7 /* SDLDeleteCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FA861A84238A00846EE7 /* SDLDeleteCommand.m */; }; 5D61FC741A84238C00846EE7 /* SDLDeleteCommandResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FA871A84238A00846EE7 /* SDLDeleteCommandResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -437,13 +502,11 @@ 5D61FC9F1A84238C00846EE7 /* SDLEncodedSyncPData.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FAB21A84238A00846EE7 /* SDLEncodedSyncPData.m */; }; 5D61FCA01A84238C00846EE7 /* SDLEncodedSyncPDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FAB31A84238A00846EE7 /* SDLEncodedSyncPDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FCA11A84238C00846EE7 /* SDLEncodedSyncPDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FAB41A84238A00846EE7 /* SDLEncodedSyncPDataResponse.m */; }; - 5D61FCA21A84238C00846EE7 /* SDLEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FAB51A84238A00846EE7 /* SDLEncoder.h */; }; 5D61FCA31A84238C00846EE7 /* SDLEndAudioPassThru.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FAB61A84238A00846EE7 /* SDLEndAudioPassThru.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FCA41A84238C00846EE7 /* SDLEndAudioPassThru.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FAB71A84238A00846EE7 /* SDLEndAudioPassThru.m */; }; 5D61FCA51A84238C00846EE7 /* SDLEndAudioPassThruResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FAB81A84238A00846EE7 /* SDLEndAudioPassThruResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FCA61A84238C00846EE7 /* SDLEndAudioPassThruResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FAB91A84238A00846EE7 /* SDLEndAudioPassThruResponse.m */; }; 5D61FCA71A84238C00846EE7 /* SDLEnum.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FABA1A84238A00846EE7 /* SDLEnum.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5D61FCA81A84238C00846EE7 /* SDLEnum.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FABB1A84238A00846EE7 /* SDLEnum.m */; }; 5D61FCA91A84238C00846EE7 /* SDLFileType.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FABC1A84238A00846EE7 /* SDLFileType.h */; settings = {ATTRIBUTES = (Public, ); }; }; 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, ); }; }; @@ -492,12 +555,6 @@ 5D61FCD61A84238C00846EE7 /* SDLImageType.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FAE91A84238A00846EE7 /* SDLImageType.m */; }; 5D61FCD71A84238C00846EE7 /* SDLInteractionMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FAEA1A84238A00846EE7 /* SDLInteractionMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FCD81A84238C00846EE7 /* SDLInteractionMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FAEB1A84238A00846EE7 /* SDLInteractionMode.m */; }; - 5D61FCDA1A84238C00846EE7 /* SDLJingle.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FAED1A84238A00846EE7 /* SDLJingle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5D61FCDB1A84238C00846EE7 /* SDLJingle.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FAEE1A84238A00846EE7 /* SDLJingle.m */; }; - 5D61FCDC1A84238C00846EE7 /* SDLJsonDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FAEF1A84238A00846EE7 /* SDLJsonDecoder.h */; }; - 5D61FCDD1A84238C00846EE7 /* SDLJsonDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FAF01A84238A00846EE7 /* SDLJsonDecoder.m */; }; - 5D61FCDE1A84238C00846EE7 /* SDLJsonEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FAF11A84238A00846EE7 /* SDLJsonEncoder.h */; }; - 5D61FCDF1A84238C00846EE7 /* SDLJsonEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FAF21A84238A00846EE7 /* SDLJsonEncoder.m */; }; 5D61FCE01A84238C00846EE7 /* SDLKeyboardEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FAF31A84238A00846EE7 /* SDLKeyboardEvent.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FCE11A84238C00846EE7 /* SDLKeyboardEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FAF41A84238A00846EE7 /* SDLKeyboardEvent.m */; }; 5D61FCE21A84238C00846EE7 /* SDLKeyboardLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FAF51A84238A00846EE7 /* SDLKeyboardLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -644,8 +701,6 @@ 5D61FD701A84238C00846EE7 /* SDLRPCPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FB831A84238B00846EE7 /* SDLRPCPayload.m */; }; 5D61FD711A84238C00846EE7 /* SDLRPCRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FB841A84238B00846EE7 /* SDLRPCRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FD721A84238C00846EE7 /* SDLRPCRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FB851A84238B00846EE7 /* SDLRPCRequest.m */; }; - 5D61FD731A84238C00846EE7 /* SDLRPCRequestFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FB861A84238B00846EE7 /* SDLRPCRequestFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5D61FD741A84238C00846EE7 /* SDLRPCRequestFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FB871A84238B00846EE7 /* SDLRPCRequestFactory.m */; }; 5D61FD751A84238C00846EE7 /* SDLRPCResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FB881A84238B00846EE7 /* SDLRPCResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FD761A84238C00846EE7 /* SDLRPCResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FB891A84238B00846EE7 /* SDLRPCResponse.m */; }; 5D61FD771A84238C00846EE7 /* SDLSamplingRate.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FB8A1A84238B00846EE7 /* SDLSamplingRate.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -682,8 +737,6 @@ 5D61FD961A84238C00846EE7 /* SDLShowResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FBA91A84238B00846EE7 /* SDLShowResponse.m */; }; 5D61FD971A84238C00846EE7 /* SDLSingleTireStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FBAA1A84238B00846EE7 /* SDLSingleTireStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FD981A84238C00846EE7 /* SDLSingleTireStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FBAB1A84238B00846EE7 /* SDLSingleTireStatus.m */; }; - 5D61FD991A84238C00846EE7 /* SDLSiphonServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FBAC1A84238B00846EE7 /* SDLSiphonServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5D61FD9A1A84238C00846EE7 /* SDLSiphonServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FBAD1A84238B00846EE7 /* SDLSiphonServer.m */; }; 5D61FD9B1A84238C00846EE7 /* SDLSlider.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FBAE1A84238B00846EE7 /* SDLSlider.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FD9C1A84238C00846EE7 /* SDLSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FBAF1A84238B00846EE7 /* SDLSlider.m */; }; 5D61FD9D1A84238C00846EE7 /* SDLSliderResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FBB01A84238B00846EE7 /* SDLSliderResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -749,8 +802,6 @@ 5D61FDDC1A84238C00846EE7 /* SDLTriggerSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FBEF1A84238C00846EE7 /* SDLTriggerSource.m */; }; 5D61FDDD1A84238C00846EE7 /* SDLTTSChunk.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FBF01A84238C00846EE7 /* SDLTTSChunk.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FDDE1A84238C00846EE7 /* SDLTTSChunk.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FBF11A84238C00846EE7 /* SDLTTSChunk.m */; }; - 5D61FDDF1A84238C00846EE7 /* SDLTTSChunkFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FBF21A84238C00846EE7 /* SDLTTSChunkFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5D61FDE01A84238C00846EE7 /* SDLTTSChunkFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FBF31A84238C00846EE7 /* SDLTTSChunkFactory.m */; }; 5D61FDE11A84238C00846EE7 /* SDLTurn.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FBF41A84238C00846EE7 /* SDLTurn.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FDE21A84238C00846EE7 /* SDLTurn.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FBF51A84238C00846EE7 /* SDLTurn.m */; }; 5D61FDE31A84238C00846EE7 /* SDLUnregisterAppInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FBF61A84238C00846EE7 /* SDLUnregisterAppInterface.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -805,7 +856,6 @@ 5D61FE141A84238C00846EE7 /* SDLWiperStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FC271A84238C00846EE7 /* SDLWiperStatus.m */; }; 5D6CC8EF1C610E660027F60A /* SDLSecurityType.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D6CC8EE1C610E660027F60A /* SDLSecurityType.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D6EB4CC1BF28DC600693731 /* NSMapTable+SubscriptingSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D6EB4CB1BF28DC600693731 /* NSMapTable+SubscriptingSpec.m */; }; - 5D6F7A2B1BC45BF70070BF37 /* SDLRequestHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D6F7A2A1BC45BF70070BF37 /* SDLRequestHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D6F7A2E1BC5650B0070BF37 /* SDLLifecycleConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D6F7A2C1BC5650B0070BF37 /* SDLLifecycleConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D6F7A2F1BC5650B0070BF37 /* SDLLifecycleConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D6F7A2D1BC5650B0070BF37 /* SDLLifecycleConfiguration.m */; }; 5D6F7A351BC5B9B60070BF37 /* SDLLockScreenViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D6F7A331BC5B9B60070BF37 /* SDLLockScreenViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -837,6 +887,7 @@ 5D8204311BD001C700D0A41B /* SDLArtwork.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D82042F1BD001C700D0A41B /* SDLArtwork.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D8204321BD001C700D0A41B /* SDLArtwork.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D8204301BD001C700D0A41B /* SDLArtwork.m */; }; 5D850AB01D4907C500E6E7EE /* TestLockScreenAppIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 5D850AAF1D4907C500E6E7EE /* TestLockScreenAppIcon.png */; }; + 5D8A09811F54B4E5002502A2 /* SDLStreamingMediaManagerDataSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D8A09801F54B4E5002502A2 /* SDLStreamingMediaManagerDataSource.h */; }; 5D8B174F1AC9D266006A6E1C /* SDLDialNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D8B174D1AC9D266006A6E1C /* SDLDialNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D8B17501AC9D266006A6E1C /* SDLDialNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D8B174E1AC9D266006A6E1C /* SDLDialNumber.m */; }; 5D8B17531AC9E11B006A6E1C /* SDLDialNumberResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D8B17511AC9E11B006A6E1C /* SDLDialNumberResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -876,6 +927,9 @@ 5DA23FF31F2FA35C009C0313 /* SDLControlFramePayloadAudioStartServiceAckSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DA23FF21F2FA35C009C0313 /* SDLControlFramePayloadAudioStartServiceAckSpec.m */; }; 5DA23FF61F2FAA31009C0313 /* SDLControlFramePayloadRPCStartServiceSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DA23FF51F2FAA31009C0313 /* SDLControlFramePayloadRPCStartServiceSpec.m */; }; 5DA23FF81F2FAF2D009C0313 /* SDLControlFramePayloadRPCStartServiceAckSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DA23FF71F2FAF2D009C0313 /* SDLControlFramePayloadRPCStartServiceAckSpec.m */; }; + 5DA23FFD1F312DBA009C0313 /* SDLVideoEncoderDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DA23FFC1F312DBA009C0313 /* SDLVideoEncoderDelegate.h */; }; + 5DA240001F325621009C0313 /* SDLStreamingMediaConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DA23FFE1F325621009C0313 /* SDLStreamingMediaConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5DA240011F325621009C0313 /* SDLStreamingMediaConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DA23FFF1F325621009C0313 /* SDLStreamingMediaConfiguration.m */; }; 5DA3F3541BC448060026F2D0 /* NSMapTable+Subscripting.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DA3F3521BC448060026F2D0 /* NSMapTable+Subscripting.h */; }; 5DA3F3551BC448060026F2D0 /* NSMapTable+Subscripting.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DA3F3531BC448060026F2D0 /* NSMapTable+Subscripting.m */; }; 5DA3F35A1BC448480026F2D0 /* SDLError.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DA3F3581BC448480026F2D0 /* SDLError.h */; }; @@ -886,9 +940,11 @@ 5DA3F3711BC4489A0026F2D0 /* SDLManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DA3F36F1BC4489A0026F2D0 /* SDLManager.m */; }; 5DA49CE51F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DA49CE31F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.h */; }; 5DA49CE61F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DA49CE41F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.m */; }; - 5DADA76F1F4DF5180084D17D /* SDLRectangle.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DADA76D1F4DF5180084D17D /* SDLRectangle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5DADA7701F4DF5180084D17D /* SDLRectangle.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DADA76E1F4DF5180084D17D /* SDLRectangle.m */; }; - 5DADA7721F4DFB9B0084D17D /* SDLRectangleSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DADA7711F4DFB9B0084D17D /* SDLRectangleSpec.m */; }; + 5DA8A0E91E955F710039C50D /* SDLStreamingMediaManagerConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8966F31E56977C00413EAB /* SDLStreamingMediaManagerConstants.m */; }; + 5DA8A0EA1E955FE00039C50D /* SDLLogModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DBF06301E64A9C600A5CF03 /* SDLLogModel.m */; }; + 5DADA7751F4DFED60084D17D /* SDLRectangle.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DADA7731F4DFED60084D17D /* SDLRectangle.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5DADA7761F4DFED60084D17D /* SDLRectangle.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DADA7741F4DFED60084D17D /* SDLRectangle.m */; }; + 5DADA7781F4E059E0084D17D /* SDLRectangleSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DADA7771F4E059E0084D17D /* SDLRectangleSpec.m */; }; 5DAE06731BDEC6C000F9B498 /* SDLFileSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DAE06721BDEC6C000F9B498 /* SDLFileSpec.m */; }; 5DAE06751BDEC6D600F9B498 /* SDLArtworkSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DAE06741BDEC6D600F9B498 /* SDLArtworkSpec.m */; }; 5DB1BCD31D243A8E002FFC37 /* SDLDeleteFileOperationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DB1BCD01D243A8E002FFC37 /* SDLDeleteFileOperationSpec.m */; }; @@ -900,8 +956,9 @@ 5DB1BCDF1D243DD3002FFC37 /* SDLLockScreenConfigurationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DB1BCDE1D243DD3002FFC37 /* SDLLockScreenConfigurationSpec.m */; }; 5DB1BCE11D243DDE002FFC37 /* SDLConfigurationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DB1BCE01D243DDE002FFC37 /* SDLConfigurationSpec.m */; }; 5DB1BCE71D245647002FFC37 /* TestStateMachineTarget.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DB1BCE61D245647002FFC37 /* TestStateMachineTarget.m */; }; + 5DB202271F5F2D030061D189 /* SDLImageResolutionSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DB202261F5F2D030061D189 /* SDLImageResolutionSpec.m */; }; + 5DB2022A1F5F38B60061D189 /* SDLFakeStreamingManagerDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DB202291F5F38B60061D189 /* SDLFakeStreamingManagerDataSource.m */; }; 5DB92D241AC47B2C00C15BB0 /* SDLHexUtilitySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DB92D231AC47B2C00C15BB0 /* SDLHexUtilitySpec.m */; }; - 5DB92D261AC4836F00C15BB0 /* SDLJingleSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DB92D251AC4836F00C15BB0 /* SDLJingleSpec.m */; }; 5DB92D2D1AC4A34F00C15BB0 /* SDLPrioritizedObjectCollectionSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DB92D2C1AC4A34F00C15BB0 /* SDLPrioritizedObjectCollectionSpec.m */; }; 5DB92D2F1AC59F0000C15BB0 /* SDLObjectWithPrioritySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DB92D2E1AC59F0000C15BB0 /* SDLObjectWithPrioritySpec.m */; }; 5DB92D321AC9C8BA00C15BB0 /* SDLRPCStruct.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DB92D301AC9C8BA00C15BB0 /* SDLRPCStruct.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -916,81 +973,93 @@ 5DB996611F28C6ED002D8795 /* SDLControlFramePayloadVideoStartServiceAck.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DB9965F1F28C6ED002D8795 /* SDLControlFramePayloadVideoStartServiceAck.m */; }; 5DBAE0AB1D3588AC00CE00BF /* SDLNotificationDispatcherSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DBAE0AA1D3588AC00CE00BF /* SDLNotificationDispatcherSpec.m */; }; 5DBAE0AD1D368D1A00CE00BF /* SDLResponseDispatcherSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DBAE0AC1D368D1A00CE00BF /* SDLResponseDispatcherSpec.m */; }; + 5DBEFA541F434B9E009EE295 /* SDLStreamingMediaConfigurationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DBEFA531F434B9E009EE295 /* SDLStreamingMediaConfigurationSpec.m */; }; + 5DBEFA581F436132009EE295 /* SDLFakeSecurityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DBEFA571F436132009EE295 /* SDLFakeSecurityManager.m */; }; + 5DBF06231E64A83F00A5CF03 /* SDLLogManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DBF06211E64A83F00A5CF03 /* SDLLogManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5DBF06241E64A83F00A5CF03 /* SDLLogManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DBF06221E64A83F00A5CF03 /* SDLLogManager.m */; }; + 5DBF06271E64A91D00A5CF03 /* SDLLogFileModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DBF06251E64A91D00A5CF03 /* SDLLogFileModule.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5DBF06281E64A91D00A5CF03 /* SDLLogFileModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DBF06261E64A91D00A5CF03 /* SDLLogFileModule.m */; }; + 5DBF062A1E64A92C00A5CF03 /* SDLLogTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DBF06291E64A92C00A5CF03 /* SDLLogTarget.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5DBF062D1E64A93A00A5CF03 /* SDLLogFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DBF062B1E64A93A00A5CF03 /* SDLLogFilter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5DBF062E1E64A93A00A5CF03 /* SDLLogFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DBF062C1E64A93A00A5CF03 /* SDLLogFilter.m */; }; + 5DBF06311E64A9C600A5CF03 /* SDLLogModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DBF062F1E64A9C600A5CF03 /* SDLLogModel.h */; }; + 5DBF06351E64A9FE00A5CF03 /* SDLLogConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DBF06331E64A9FE00A5CF03 /* SDLLogConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5DBF06391E64ABBE00A5CF03 /* SDLLogConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DBF06371E64ABBE00A5CF03 /* SDLLogConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5DBF063A1E64ABBE00A5CF03 /* SDLLogConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DBF06381E64ABBE00A5CF03 /* SDLLogConfiguration.m */; }; 5DBF0D5E1F3A68C0008AF2C9 /* SDLControlFramePayloadVideoStartServiceSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DBF0D5D1F3A68C0008AF2C9 /* SDLControlFramePayloadVideoStartServiceSpec.m */; }; 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 */; }; - 5DCC19A01B8221F3004FFAD9 /* SDLURLSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DCC199E1B8221F3004FFAD9 /* SDLURLSession.h */; }; - 5DCC19A11B8221F3004FFAD9 /* SDLURLSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DCC199F1B8221F3004FFAD9 /* SDLURLSession.m */; }; - 5DCC19A41B822804004FFAD9 /* SDLURLRequestTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DCC19A21B822804004FFAD9 /* SDLURLRequestTask.h */; }; - 5DCC19A51B822804004FFAD9 /* SDLURLRequestTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DCC19A31B822804004FFAD9 /* SDLURLRequestTask.m */; }; 5DCF76F51ACDBAD300BB647B /* SDLSendLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DCF76F31ACDBAD300BB647B /* SDLSendLocation.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5DCF76F61ACDBAD300BB647B /* SDLSendLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DCF76F41ACDBAD300BB647B /* SDLSendLocation.m */; }; 5DCF76F91ACDD7CD00BB647B /* SDLSendLocationResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DCF76F71ACDD7CD00BB647B /* SDLSendLocationResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; 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 */; }; + 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, ); }; }; + 5DD67CB91E661C4A009CD394 /* SDLLogTargetFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DD67CB71E661C4A009CD394 /* SDLLogTargetFile.m */; }; + 5DD67CBC1E661C84009CD394 /* SDLLogTargetOSLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DD67CBA1E661C84009CD394 /* SDLLogTargetOSLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5DD67CBD1E661C84009CD394 /* SDLLogTargetOSLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DD67CBB1E661C84009CD394 /* SDLLogTargetOSLog.m */; }; + 5DD67CC31E68AE82009CD394 /* SDLLogFileModuleMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DD67CC11E68AE82009CD394 /* SDLLogFileModuleMap.h */; }; + 5DD67CC41E68AE82009CD394 /* SDLLogFileModuleMap.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DD67CC21E68AE82009CD394 /* SDLLogFileModuleMap.m */; }; + 5DD67CC71E68B568009CD394 /* SDLLogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DD67CC51E68B568009CD394 /* SDLLogMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; 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 */; }; - 5DE372A61ACC35B400849FAA /* SDLDebugToolConsole.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DE372A51ACC35B400849FAA /* SDLDebugToolConsole.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5DE5ABB71B0E38C90067BB02 /* SDLSystemRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FBD21A84238B00846EE7 /* SDLSystemRequest.h */; }; 5DE5ABB81B0E38C90067BB02 /* SDLSystemRequestResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FBD41A84238B00846EE7 /* SDLSystemRequestResponse.h */; }; - 5DEE55C01B8509CB004F0D0F /* SDLURLRequestTaskSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DEE55BF1B8509CB004F0D0F /* SDLURLRequestTaskSpec.m */; }; - 5DF2BB9D1B94E38A00CE5994 /* SDLURLSessionSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DF2BB9C1B94E38A00CE5994 /* SDLURLSessionSpec.m */; }; 5DFFB9151BD7C89700DB3F04 /* SDLConnectionManagerType.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DFFB9141BD7C89700DB3F04 /* SDLConnectionManagerType.h */; }; - 8872772F1F33542000368CCD /* SDLSendHapticDataResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8872772E1F33542000368CCD /* SDLSendHapticDataResponseSpec.m */; }; - 88E0719B1F3221F000C9CB2F /* SDLHapticRect.h in Headers */ = {isa = PBXBuildFile; fileRef = 88E071991F3221F000C9CB2F /* SDLHapticRect.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 88E0719C1F3221F000C9CB2F /* SDLHapticRect.m in Sources */ = {isa = PBXBuildFile; fileRef = 88E0719A1F3221F000C9CB2F /* SDLHapticRect.m */; }; - 88E0719F1F322C3100C9CB2F /* SDLSendHapticData.h in Headers */ = {isa = PBXBuildFile; fileRef = 88E0719D1F322C3100C9CB2F /* SDLSendHapticData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 88E071A01F322C3100C9CB2F /* SDLSendHapticData.m in Sources */ = {isa = PBXBuildFile; fileRef = 88E0719E1F322C3100C9CB2F /* SDLSendHapticData.m */; }; - 88E071A31F32454600C9CB2F /* SDLSendHapticDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 88E071A11F32454600C9CB2F /* SDLSendHapticDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 88E071A41F32454600C9CB2F /* SDLSendHapticDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 88E071A21F32454600C9CB2F /* SDLSendHapticDataResponse.m */; }; - 88E071A61F327A8B00C9CB2F /* SDLHapticRectSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88E071A51F327A8B00C9CB2F /* SDLHapticRectSpec.m */; }; - 88E071A81F327E3C00C9CB2F /* SDLSendHapticDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88E071A71F327E3C00C9CB2F /* SDLSendHapticDataSpec.m */; }; - 8B06061F1F30BCED005ADB2F /* SDLMetadataType.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B06061D1F30BCED005ADB2F /* SDLMetadataType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8B0606201F30BCED005ADB2F /* SDLMetadataType.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B06061E1F30BCED005ADB2F /* SDLMetadataType.m */; }; - 8B0606221F30C108005ADB2F /* SDLMetadataTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B0606211F30C108005ADB2F /* SDLMetadataTypeSpec.m */; }; - 8B0606291F3103CE005ADB2F /* SDLMetadataTags.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B0606271F3103CE005ADB2F /* SDLMetadataTags.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8B06062A1F3103CE005ADB2F /* SDLMetadataTags.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B0606281F3103CE005ADB2F /* SDLMetadataTags.m */; }; - 8B06062C1F310ED2005ADB2F /* SDLMetadataTagsSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B06062B1F310ED2005ADB2F /* SDLMetadataTagsSpec.m */; }; - 8BD729A61F2A2CF30029AC93 /* SDLVideoStreamingCodec.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD729A41F2A2CF30029AC93 /* SDLVideoStreamingCodec.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8BD729A71F2A2CF30029AC93 /* SDLVideoStreamingCodec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BD729A51F2A2CF30029AC93 /* SDLVideoStreamingCodec.m */; }; - 8BD729AA1F2A41F40029AC93 /* SDLVideoStreamingProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD729A81F2A41F40029AC93 /* SDLVideoStreamingProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8BD729AB1F2A41F40029AC93 /* SDLVideoStreamingProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BD729A91F2A41F40029AC93 /* SDLVideoStreamingProtocol.m */; }; - 8BD729AE1F2A5AA10029AC93 /* SDLVideoStreamingFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD729AC1F2A5AA10029AC93 /* SDLVideoStreamingFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8BD729AF1F2A5AA10029AC93 /* SDLVideoStreamingFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BD729AD1F2A5AA10029AC93 /* SDLVideoStreamingFormat.m */; }; - 8BD729B21F2A61DF0029AC93 /* SDLVideoStreamingCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BD729B01F2A61DF0029AC93 /* SDLVideoStreamingCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8BD729B31F2A61DF0029AC93 /* SDLVideoStreamingCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BD729B11F2A61DF0029AC93 /* SDLVideoStreamingCapability.m */; }; - 8BD729B51F2A711D0029AC93 /* SDLVideoStreamingCodecSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BD729B41F2A711D0029AC93 /* SDLVideoStreamingCodecSpec.m */; }; - 8BD729B71F2A75FD0029AC93 /* SDLVideoStreamingProtocolSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BD729B61F2A75FD0029AC93 /* SDLVideoStreamingProtocolSpec.m */; }; - 8BF9DE071F2BAEEE004FFCBB /* SDLVideoStreamingFormatSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BF9DE061F2BAEEE004FFCBB /* SDLVideoStreamingFormatSpec.m */; }; - 8BF9DE091F2BAF0C004FFCBB /* SDLVideoStreamingCapabilitySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BF9DE081F2BAF0C004FFCBB /* SDLVideoStreamingCapabilitySpec.m */; }; + 8850DB601F4475D30053A48D /* TestMultipleFilesConnectionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8850DB5F1F4475D30053A48D /* TestMultipleFilesConnectionManager.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 */; }; + 88B848C31F45E1A600DED768 /* TestResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B848C21F45E1A600DED768 /* TestResponse.m */; }; + 88B848C91F462E3600DED768 /* TestProgressResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B848C81F462E3600DED768 /* TestProgressResponse.m */; }; + 88D2AAE41F682BB20078D5B2 /* SDLLogConstantsSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88D2AAE31F682BB20078D5B2 /* SDLLogConstantsSpec.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 */; }; + 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, ); }; }; + 8B7B319F1F2F7CF700BDC38D /* SDLVideoStreamingProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B7B319D1F2F7CF700BDC38D /* SDLVideoStreamingProtocol.m */; }; + 8B7B31A21F2F7FEA00BDC38D /* SDLVideoStreamingFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7B31A01F2F7FEA00BDC38D /* SDLVideoStreamingFormat.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8B7B31A31F2F7FEA00BDC38D /* SDLVideoStreamingFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B7B31A11F2F7FEA00BDC38D /* SDLVideoStreamingFormat.m */; }; + 8B7B31A61F2F875200BDC38D /* SDLVideoStreamingCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B7B31A41F2F875200BDC38D /* SDLVideoStreamingCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8B7B31A71F2F875200BDC38D /* SDLVideoStreamingCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B7B31A51F2F875200BDC38D /* SDLVideoStreamingCapability.m */; }; + 8B7B31A91F2FB8BC00BDC38D /* SDLVideoStreamingProtocolSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B7B31A81F2FB8BC00BDC38D /* SDLVideoStreamingProtocolSpec.m */; }; + 8B7B31AB1F2FB93500BDC38D /* SDLVideoStreamingCodecSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B7B31AA1F2FB93500BDC38D /* SDLVideoStreamingCodecSpec.m */; }; + 8B7B31AF1F2FBA0200BDC38D /* SDLVideoStreamingCapabilitySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B7B31AE1F2FBA0200BDC38D /* SDLVideoStreamingCapabilitySpec.m */; }; + 8B7B31B11F2FBD9500BDC38D /* SDLVideoStreamingFormatSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B7B31B01F2FBD9500BDC38D /* SDLVideoStreamingFormatSpec.m */; }; + 8B9376D71F3349FC009605C4 /* SDLMetadataTags.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B9376D51F3349FC009605C4 /* SDLMetadataTags.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8B9376D81F3349FC009605C4 /* SDLMetadataTags.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B9376D61F3349FC009605C4 /* SDLMetadataTags.m */; }; + 8B9376DB1F33656C009605C4 /* SDLMetadataTagsSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B9376DA1F33656C009605C4 /* SDLMetadataTagsSpec.m */; }; + 8BBEA6061F324165003EEA26 /* SDLMetadataType.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BBEA6041F324165003EEA26 /* SDLMetadataType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8BBEA6071F324165003EEA26 /* SDLMetadataType.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BBEA6051F324165003EEA26 /* SDLMetadataType.m */; }; + 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 */; }; + 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 */; }; DA4353DF1D271FD10099B8C4 /* CGPointUtilSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA4353DE1D271FD10099B8C4 /* CGPointUtilSpec.m */; }; DA4353E31D2720A30099B8C4 /* SDLPinchGestureSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA4353E21D2720A30099B8C4 /* SDLPinchGestureSpec.m */; }; DA4353E91D2721680099B8C4 /* DispatchTimerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA4353E61D2721680099B8C4 /* DispatchTimerSpec.m */; }; DA4353EA1D2721680099B8C4 /* SDLTouchManagerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA4353E71D2721680099B8C4 /* SDLTouchManagerSpec.m */; }; DA4353EB1D2721680099B8C4 /* SDLTouchSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA4353E81D2721680099B8C4 /* SDLTouchSpec.m */; }; - DA7515B11D95FAA000F29323 /* lock_arrow_down_black.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7515981D95FAA000F29323 /* lock_arrow_down_black.png */; }; - DA7515B21D95FAA000F29323 /* lock_arrow_down_black@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7515991D95FAA000F29323 /* lock_arrow_down_black@2x.png */; }; - DA7515B31D95FAA000F29323 /* lock_arrow_down_black@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA75159A1D95FAA000F29323 /* lock_arrow_down_black@3x.png */; }; - DA7515B41D95FAA000F29323 /* lock_arrow_down_white.png in Resources */ = {isa = PBXBuildFile; fileRef = DA75159C1D95FAA000F29323 /* lock_arrow_down_white.png */; }; - DA7515B51D95FAA000F29323 /* lock_arrow_down_white@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA75159D1D95FAA000F29323 /* lock_arrow_down_white@2x.png */; }; - DA7515B61D95FAA000F29323 /* lock_arrow_down_white@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA75159E1D95FAA000F29323 /* lock_arrow_down_white@3x.png */; }; - DA7515B71D95FAA000F29323 /* lock_arrow_up_black.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7515A11D95FAA000F29323 /* lock_arrow_up_black.png */; }; - DA7515B81D95FAA000F29323 /* lock_arrow_up_black@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7515A21D95FAA000F29323 /* lock_arrow_up_black@2x.png */; }; - DA7515B91D95FAA000F29323 /* lock_arrow_up_black@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7515A31D95FAA000F29323 /* lock_arrow_up_black@3x.png */; }; - DA7515BA1D95FAA000F29323 /* lock_arrow_up_white.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7515A51D95FAA000F29323 /* lock_arrow_up_white.png */; }; - DA7515BB1D95FAA000F29323 /* lock_arrow_up_white@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7515A61D95FAA000F29323 /* lock_arrow_up_white@2x.png */; }; - DA7515BC1D95FAA000F29323 /* lock_arrow_up_white@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7515A71D95FAA000F29323 /* lock_arrow_up_white@3x.png */; }; - DA7515BD1D95FAA000F29323 /* sdl_logo_black.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7515AA1D95FAA000F29323 /* sdl_logo_black.png */; }; - DA7515BE1D95FAA000F29323 /* sdl_logo_black@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7515AB1D95FAA000F29323 /* sdl_logo_black@2x.png */; }; - DA7515BF1D95FAA000F29323 /* sdl_logo_black@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7515AC1D95FAA000F29323 /* sdl_logo_black@3x.png */; }; - DA7515C01D95FAA000F29323 /* sdl_logo_white.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7515AE1D95FAA000F29323 /* sdl_logo_white.png */; }; - DA7515C11D95FAA000F29323 /* sdl_logo_white@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7515AF1D95FAA000F29323 /* sdl_logo_white@2x.png */; }; - DA7515C21D95FAA000F29323 /* sdl_logo_white@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7515B01D95FAA000F29323 /* sdl_logo_white@3x.png */; }; + DA4F47961E771AA100FC809E /* SDLEnum.m in Sources */ = {isa = PBXBuildFile; fileRef = DA4F47951E771AA100FC809E /* SDLEnum.m */; }; + DA6223BD1E7B088200878689 /* CVPixelBufferRef+SDLUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = DA6223BB1E7B088200878689 /* CVPixelBufferRef+SDLUtil.h */; }; + DA6223BE1E7B088200878689 /* CVPixelBufferRef+SDLUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = DA6223BC1E7B088200878689 /* CVPixelBufferRef+SDLUtil.m */; }; + DA8966EB1E56939F00413EAB /* SDLStreamingMediaLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = DA8966E91E56939F00413EAB /* SDLStreamingMediaLifecycleManager.h */; }; + DA8966EC1E56939F00413EAB /* SDLStreamingMediaLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8966EA1E56939F00413EAB /* SDLStreamingMediaLifecycleManager.m */; }; + DA8966EF1E5693E300413EAB /* SDLStreamingMediaLifecycleManagerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8966EE1E5693E300413EAB /* SDLStreamingMediaLifecycleManagerSpec.m */; }; + DA8966F21E56973700413EAB /* SDLStreamingMediaManagerConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = DA8966F11E56973700413EAB /* SDLStreamingMediaManagerConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; DA96C0661D4D4F730022F520 /* SDLAppInfoSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA96C0651D4D4F730022F520 /* SDLAppInfoSpec.m */; }; DA9F7E631DCBFAC800ACAE48 /* SDLDateTime.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E611DCBFAC800ACAE48 /* SDLDateTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; DA9F7E641DCBFAC800ACAE48 /* SDLDateTime.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E621DCBFAC800ACAE48 /* SDLDateTime.m */; }; @@ -998,22 +1067,22 @@ DA9F7E681DCBFAD400ACAE48 /* SDLOasisAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E661DCBFAD400ACAE48 /* SDLOasisAddress.m */; }; DA9F7E6B1DCBFB0700ACAE48 /* SDLDeliveryMode.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E691DCBFB0700ACAE48 /* SDLDeliveryMode.h */; settings = {ATTRIBUTES = (Public, ); }; }; DA9F7E6C1DCBFB0700ACAE48 /* SDLDeliveryMode.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E6A1DCBFB0700ACAE48 /* SDLDeliveryMode.m */; }; - DA9F7E6F1DCBFFDB00ACAE48 /* SDLGetWaypoints.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E6D1DCBFFDB00ACAE48 /* SDLGetWaypoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA9F7E701DCBFFDB00ACAE48 /* SDLGetWaypoints.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E6E1DCBFFDB00ACAE48 /* SDLGetWaypoints.m */; }; - DA9F7E731DCC004C00ACAE48 /* SDLGetWaypointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E711DCC004C00ACAE48 /* SDLGetWaypointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA9F7E741DCC004C00ACAE48 /* SDLGetWaypointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E721DCC004C00ACAE48 /* SDLGetWaypointsResponse.m */; }; - DA9F7E7F1DCC028B00ACAE48 /* SDLOnWaypointChange.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E7D1DCC028B00ACAE48 /* SDLOnWaypointChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA9F7E801DCC028B00ACAE48 /* SDLOnWaypointChange.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E7E1DCC028B00ACAE48 /* SDLOnWaypointChange.m */; }; - DA9F7E831DCC047200ACAE48 /* SDLWaypointType.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E811DCC047200ACAE48 /* SDLWaypointType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA9F7E841DCC047200ACAE48 /* SDLWaypointType.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E821DCC047200ACAE48 /* SDLWaypointType.m */; }; - DA9F7E871DCC049900ACAE48 /* SDLSubscribeWaypoints.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E851DCC049900ACAE48 /* SDLSubscribeWaypoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA9F7E881DCC049900ACAE48 /* SDLSubscribeWaypoints.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E861DCC049900ACAE48 /* SDLSubscribeWaypoints.m */; }; - DA9F7E8B1DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E891DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA9F7E8C1DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E8A1DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.m */; }; - DA9F7E8F1DCC04C000ACAE48 /* SDLUnsubscribeWaypointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E8D1DCC04C000ACAE48 /* SDLUnsubscribeWaypointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA9F7E901DCC04C000ACAE48 /* SDLUnsubscribeWaypointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E8E1DCC04C000ACAE48 /* SDLUnsubscribeWaypointsResponse.m */; }; - DA9F7E931DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E911DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA9F7E941DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E921DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.m */; }; + DA9F7E6F1DCBFFDB00ACAE48 /* SDLGetWayPoints.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E6D1DCBFFDB00ACAE48 /* SDLGetWayPoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DA9F7E701DCBFFDB00ACAE48 /* SDLGetWayPoints.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E6E1DCBFFDB00ACAE48 /* SDLGetWayPoints.m */; }; + DA9F7E731DCC004C00ACAE48 /* SDLGetWayPointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E711DCC004C00ACAE48 /* SDLGetWayPointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DA9F7E741DCC004C00ACAE48 /* SDLGetWayPointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E721DCC004C00ACAE48 /* SDLGetWayPointsResponse.m */; }; + DA9F7E7F1DCC028B00ACAE48 /* SDLOnWayPointChange.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E7D1DCC028B00ACAE48 /* SDLOnWayPointChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DA9F7E801DCC028B00ACAE48 /* SDLOnWayPointChange.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E7E1DCC028B00ACAE48 /* SDLOnWayPointChange.m */; }; + DA9F7E831DCC047200ACAE48 /* SDLWayPointType.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E811DCC047200ACAE48 /* SDLWayPointType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DA9F7E841DCC047200ACAE48 /* SDLWayPointType.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E821DCC047200ACAE48 /* SDLWayPointType.m */; }; + DA9F7E871DCC049900ACAE48 /* SDLSubscribeWayPoints.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E851DCC049900ACAE48 /* SDLSubscribeWayPoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DA9F7E881DCC049900ACAE48 /* SDLSubscribeWayPoints.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E861DCC049900ACAE48 /* SDLSubscribeWayPoints.m */; }; + DA9F7E8B1DCC04B000ACAE48 /* SDLSubscribeWayPointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E891DCC04B000ACAE48 /* SDLSubscribeWayPointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DA9F7E8C1DCC04B000ACAE48 /* SDLSubscribeWayPointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E8A1DCC04B000ACAE48 /* SDLSubscribeWayPointsResponse.m */; }; + DA9F7E8F1DCC04C000ACAE48 /* SDLUnsubscribeWayPointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E8D1DCC04C000ACAE48 /* SDLUnsubscribeWayPointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DA9F7E901DCC04C000ACAE48 /* SDLUnsubscribeWayPointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E8E1DCC04C000ACAE48 /* SDLUnsubscribeWayPointsResponse.m */; }; + DA9F7E931DCC04E400ACAE48 /* SDLUnsubscribeWayPoints.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E911DCC04E400ACAE48 /* SDLUnsubscribeWayPoints.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DA9F7E941DCC04E400ACAE48 /* SDLUnsubscribeWayPoints.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E921DCC04E400ACAE48 /* SDLUnsubscribeWayPoints.m */; }; DA9F7E991DCC052C00ACAE48 /* SDLLocationCoordinate.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E951DCC052C00ACAE48 /* SDLLocationCoordinate.h */; settings = {ATTRIBUTES = (Public, ); }; }; DA9F7E9A1DCC052C00ACAE48 /* SDLLocationCoordinate.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E961DCC052C00ACAE48 /* SDLLocationCoordinate.m */; }; DA9F7E9B1DCC052C00ACAE48 /* SDLLocationDetails.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E971DCC052C00ACAE48 /* SDLLocationDetails.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -1031,19 +1100,20 @@ DA9F7EB21DCC084300ACAE48 /* SDLDeliveryModeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7EB11DCC084300ACAE48 /* SDLDeliveryModeSpec.m */; }; DA9F7EB41DCC086400ACAE48 /* SDLDateTimeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7EB31DCC086400ACAE48 /* SDLDateTimeSpec.m */; }; DA9F7EB61DCC086A00ACAE48 /* SDLOasisAddressSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7EB51DCC086A00ACAE48 /* SDLOasisAddressSpec.m */; }; + DAA41D551DF66B2000BC7337 /* SDLH264VideoEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = DAA41D531DF66B2000BC7337 /* SDLH264VideoEncoder.h */; }; + DAA41D561DF66B2000BC7337 /* SDLH264VideoEncoder.m in Sources */ = {isa = PBXBuildFile; fileRef = DAA41D541DF66B2000BC7337 /* SDLH264VideoEncoder.m */; }; + DABB62171E4A900C0034C567 /* SDLH264VideoEncoderSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DABB62161E4A900C0034C567 /* SDLH264VideoEncoderSpec.m */; }; DAC572571D1067270004288B /* SDLTouchManager.h in Headers */ = {isa = PBXBuildFile; fileRef = DAC572551D1067270004288B /* SDLTouchManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; DAC572581D1067270004288B /* SDLTouchManager.m in Sources */ = {isa = PBXBuildFile; fileRef = DAC572561D1067270004288B /* SDLTouchManager.m */; }; DAC5725B1D10B81E0004288B /* SDLTouch.m in Sources */ = {isa = PBXBuildFile; fileRef = DAC572591D10B81E0004288B /* SDLTouch.m */; }; - DAC5725C1D10B81E0004288B /* SDLTouch.h in Headers */ = {isa = PBXBuildFile; fileRef = DAC5725A1D10B81E0004288B /* SDLTouch.h */; }; + DAC5725C1D10B81E0004288B /* SDLTouch.h in Headers */ = {isa = PBXBuildFile; fileRef = DAC5725A1D10B81E0004288B /* SDLTouch.h */; settings = {ATTRIBUTES = (Public, ); }; }; DAC572621D10C5020004288B /* SDLPinchGesture.m in Sources */ = {isa = PBXBuildFile; fileRef = DAC572601D10C5020004288B /* SDLPinchGesture.m */; }; - DAC572631D10C5020004288B /* SDLPinchGesture.h in Headers */ = {isa = PBXBuildFile; fileRef = DAC572611D10C5020004288B /* SDLPinchGesture.h */; }; + DAC572631D10C5020004288B /* SDLPinchGesture.h in Headers */ = {isa = PBXBuildFile; fileRef = DAC572611D10C5020004288B /* SDLPinchGesture.h */; settings = {ATTRIBUTES = (Public, ); }; }; DAC572661D10C5640004288B /* CGPoint_Util.m in Sources */ = {isa = PBXBuildFile; fileRef = DAC572641D10C5640004288B /* CGPoint_Util.m */; }; DAC572671D10C5640004288B /* CGPoint_Util.h in Headers */ = {isa = PBXBuildFile; fileRef = DAC572651D10C5640004288B /* CGPoint_Util.h */; }; DAC5726A1D10D5FC0004288B /* dispatch_timer.m in Sources */ = {isa = PBXBuildFile; fileRef = DAC572681D10D5FC0004288B /* dispatch_timer.m */; }; DAC5726B1D10D5FC0004288B /* dispatch_timer.h in Headers */ = {isa = PBXBuildFile; fileRef = DAC572691D10D5FC0004288B /* dispatch_timer.h */; }; DAC5726C1D11B4840004288B /* SDLTouchManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = DAC5725F1D10BD690004288B /* SDLTouchManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E9C32B861AB20B4300F283AF /* NSThread+ThreadIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = E9C32B841AB20B4300F283AF /* NSThread+ThreadIndex.h */; }; - E9C32B871AB20B4300F283AF /* NSThread+ThreadIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = E9C32B851AB20B4300F283AF /* NSThread+ThreadIndex.m */; }; E9C32B911AB20BA200F283AF /* SDLIAPSession.h in Headers */ = {isa = PBXBuildFile; fileRef = E9C32B891AB20BA200F283AF /* SDLIAPSession.h */; }; E9C32B921AB20BA200F283AF /* SDLIAPSession.m in Sources */ = {isa = PBXBuildFile; fileRef = E9C32B8A1AB20BA200F283AF /* SDLIAPSession.m */; }; E9C32B931AB20BA200F283AF /* SDLIAPSessionDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = E9C32B8B1AB20BA200F283AF /* SDLIAPSessionDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -1055,9 +1125,23 @@ E9C32B9D1AB20C5900F283AF /* EAAccessory+SDLProtocols.m in Sources */ = {isa = PBXBuildFile; fileRef = E9C32B991AB20C5900F283AF /* EAAccessory+SDLProtocols.m */; }; E9C32B9E1AB20C5900F283AF /* EAAccessoryManager+SDLProtocols.h in Headers */ = {isa = PBXBuildFile; fileRef = E9C32B9A1AB20C5900F283AF /* EAAccessoryManager+SDLProtocols.h */; }; E9C32B9F1AB20C5900F283AF /* EAAccessoryManager+SDLProtocols.m in Sources */ = {isa = PBXBuildFile; fileRef = E9C32B9B1AB20C5900F283AF /* EAAccessoryManager+SDLProtocols.m */; }; + EED5C9FE1F4D18D100F04000 /* SDLH264Packetizer.h in Headers */ = {isa = PBXBuildFile; fileRef = EED5C9FD1F4D18D100F04000 /* SDLH264Packetizer.h */; }; + EED5CA001F4D18DC00F04000 /* SDLRAWH264Packetizer.h in Headers */ = {isa = PBXBuildFile; fileRef = EED5C9FF1F4D18DC00F04000 /* SDLRAWH264Packetizer.h */; }; + EED5CA021F4D18EC00F04000 /* SDLRAWH264Packetizer.m in Sources */ = {isa = PBXBuildFile; fileRef = EED5CA011F4D18EC00F04000 /* SDLRAWH264Packetizer.m */; }; + EED5CA041F4D1D5E00F04000 /* SDLRAWH264PacketizerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = EED5CA031F4D1D5E00F04000 /* SDLRAWH264PacketizerSpec.m */; }; + EED5CA061F4D1E2300F04000 /* SDLRTPH264Packetizer.h in Headers */ = {isa = PBXBuildFile; fileRef = EED5CA051F4D1E2300F04000 /* SDLRTPH264Packetizer.h */; }; + EED5CA081F4D1E2E00F04000 /* SDLRTPH264Packetizer.m in Sources */ = {isa = PBXBuildFile; fileRef = EED5CA071F4D1E2E00F04000 /* SDLRTPH264Packetizer.m */; }; + EED5CA0A1F4D206800F04000 /* SDLRTPH264PacketizerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = EED5CA091F4D206800F04000 /* SDLRTPH264PacketizerSpec.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + 5D43468B1E788E2200B639C6 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 5D4019A71A76EC350006B0C2 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 5D61FA1B1A84237100846EE7; + remoteInfo = SmartDeviceLink; + }; 5D61FA281A84237100846EE7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 5D4019A71A76EC350006B0C2 /* Project object */; @@ -1178,7 +1262,6 @@ 162E82231A9BDE8A00906325 /* SDLVrCapabilitiesSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVrCapabilitiesSpec.m; sourceTree = ""; }; 162E82241A9BDE8A00906325 /* SDLWarningLightStatusSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLWarningLightStatusSpec.m; sourceTree = ""; }; 162E82251A9BDE8A00906325 /* SDLWiperStatusSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLWiperStatusSpec.m; sourceTree = ""; }; - 162E82271A9BDE8A00906325 /* SDLRPCRequestFactorySpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRPCRequestFactorySpec.m; sourceTree = ""; }; 162E82291A9BDE8A00906325 /* SDLOnAppInterfaceUnregisteredSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLOnAppInterfaceUnregisteredSpec.m; sourceTree = ""; }; 162E822A1A9BDE8A00906325 /* SDLOnAudioPassThruSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLOnAudioPassThruSpec.m; sourceTree = ""; }; 162E822B1A9BDE8A00906325 /* SDLOnButtonEventSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLOnButtonEventSpec.m; sourceTree = ""; }; @@ -1317,7 +1400,6 @@ 162E82B41A9BDE8A00906325 /* SDLVehicleDataResultSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVehicleDataResultSpec.m; sourceTree = ""; }; 162E82B51A9BDE8A00906325 /* SDLVehicleTypeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVehicleTypeSpec.m; sourceTree = ""; }; 162E82B61A9BDE8A00906325 /* SDLVrHelpItemSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVrHelpItemSpec.m; sourceTree = ""; }; - 162E82B81A9BDE8A00906325 /* SDLEnumSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLEnumSpec.m; sourceTree = ""; }; 162E82B91A9BDE8A00906325 /* SDLRPCMessageSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRPCMessageSpec.m; sourceTree = ""; }; 162E82BA1A9BDE8A00906325 /* SDLRPCNotificationSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRPCNotificationSpec.m; sourceTree = ""; }; 162E82BB1A9BDE8A00906325 /* SDLRPCRequestSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRPCRequestSpec.m; sourceTree = ""; }; @@ -1336,6 +1418,72 @@ 1680B1101A9CD7AD00DBD79E /* SDLProtocolMessageAssemblerSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLProtocolMessageAssemblerSpec.m; sourceTree = ""; }; 1680B1111A9CD7AD00DBD79E /* SDLProtocolMessageDisassemblerSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLProtocolMessageDisassemblerSpec.m; sourceTree = ""; }; 1680B1121A9CD7AD00DBD79E /* SDLProtocolReceivedMessageRouterSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLProtocolReceivedMessageRouterSpec.m; sourceTree = ""; }; + 1E5AD0321F1F3AA30029B8AF /* SDLRemoteControlCapabilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRemoteControlCapabilities.h; sourceTree = ""; }; + 1E5AD0331F1F3AA30029B8AF /* SDLRemoteControlCapabilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRemoteControlCapabilities.m; sourceTree = ""; }; + 1E5AD0361F1F4E390029B8AF /* SDLClimateControlCapabilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLClimateControlCapabilities.h; sourceTree = ""; }; + 1E5AD0371F1F4E390029B8AF /* SDLClimateControlCapabilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLClimateControlCapabilities.m; sourceTree = ""; }; + 1E5AD03E1F1F58480029B8AF /* SDLVentilationMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLVentilationMode.h; sourceTree = ""; }; + 1E5AD03F1F1F58480029B8AF /* SDLVentilationMode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVentilationMode.m; sourceTree = ""; }; + 1E5AD0421F1F5A1F0029B8AF /* SDLRadioControlCapabilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRadioControlCapabilities.h; sourceTree = ""; }; + 1E5AD0431F1F5A1F0029B8AF /* SDLRadioControlCapabilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRadioControlCapabilities.m; sourceTree = ""; }; + 1E5AD0461F1F773E0029B8AF /* SDLModuleType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLModuleType.h; sourceTree = ""; }; + 1E5AD0471F1F773E0029B8AF /* SDLModuleType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLModuleType.m; sourceTree = ""; }; + 1E5AD04A1F1F79640029B8AF /* SDLDefrostZone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLDefrostZone.h; sourceTree = ""; }; + 1E5AD04B1F1F79640029B8AF /* SDLDefrostZone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLDefrostZone.m; sourceTree = ""; }; + 1E5AD04E1F1F7BF10029B8AF /* SDLRadioBand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRadioBand.h; sourceTree = ""; }; + 1E5AD04F1F1F7BF10029B8AF /* SDLRadioBand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRadioBand.m; sourceTree = ""; }; + 1E5AD05A1F2064A80029B8AF /* SDLRDSData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRDSData.h; sourceTree = ""; }; + 1E5AD05B1F2064A80029B8AF /* SDLRDSData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRDSData.m; sourceTree = ""; }; + 1E5AD05E1F207AB10029B8AF /* SDLRadioState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRadioState.h; sourceTree = ""; }; + 1E5AD05F1F207AB10029B8AF /* SDLRadioState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRadioState.m; sourceTree = ""; }; + 1E5AD0621F207DD50029B8AF /* SDLTemperature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLTemperature.h; sourceTree = ""; }; + 1E5AD0631F207DD50029B8AF /* SDLTemperature.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTemperature.m; sourceTree = ""; }; + 1E5AD0661F2080B50029B8AF /* SDLRadioControlData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRadioControlData.h; sourceTree = ""; }; + 1E5AD0671F2080B50029B8AF /* SDLRadioControlData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRadioControlData.m; sourceTree = ""; }; + 1E5AD06A1F208BAB0029B8AF /* SDLClimateControlData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLClimateControlData.h; sourceTree = ""; }; + 1E5AD06B1F208BAB0029B8AF /* SDLClimateControlData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLClimateControlData.m; sourceTree = ""; }; + 1E5AD06E1F209C880029B8AF /* SDLModuleData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLModuleData.h; sourceTree = ""; }; + 1E5AD06F1F209C880029B8AF /* SDLModuleData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLModuleData.m; sourceTree = ""; }; + 1E5AD07E1F20B73E0029B8AF /* SDLButtonPress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLButtonPress.h; sourceTree = ""; }; + 1E5AD07F1F20B73E0029B8AF /* SDLButtonPress.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLButtonPress.m; sourceTree = ""; }; + 1E5AD0821F20B9290029B8AF /* SDLButtonPressResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLButtonPressResponse.h; sourceTree = ""; }; + 1E5AD0831F20B9290029B8AF /* SDLButtonPressResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLButtonPressResponse.m; sourceTree = ""; }; + 1E5AD0861F20B9AA0029B8AF /* SDLGetInteriorVehicleData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLGetInteriorVehicleData.h; sourceTree = ""; }; + 1E5AD0871F20B9AA0029B8AF /* SDLGetInteriorVehicleData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetInteriorVehicleData.m; sourceTree = ""; }; + 1E5AD08A1F20BC320029B8AF /* SDLGetInteriorVehicleDataResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLGetInteriorVehicleDataResponse.h; sourceTree = ""; }; + 1E5AD08B1F20BC320029B8AF /* SDLGetInteriorVehicleDataResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetInteriorVehicleDataResponse.m; sourceTree = ""; }; + 1E5AD08E1F20BE820029B8AF /* SDLSetInteriorVehicleData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSetInteriorVehicleData.h; sourceTree = ""; }; + 1E5AD08F1F20BE820029B8AF /* SDLSetInteriorVehicleData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSetInteriorVehicleData.m; sourceTree = ""; }; + 1E5AD0921F20BEAD0029B8AF /* SDLSetInteriorVehicleDataResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSetInteriorVehicleDataResponse.h; sourceTree = ""; }; + 1E5AD0931F20BEAD0029B8AF /* SDLSetInteriorVehicleDataResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSetInteriorVehicleDataResponse.m; sourceTree = ""; }; + 1E5AD0961F20C0FB0029B8AF /* SDLOnInteriorVehicleData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLOnInteriorVehicleData.h; sourceTree = ""; }; + 1E5AD0971F20C0FB0029B8AF /* SDLOnInteriorVehicleData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLOnInteriorVehicleData.m; sourceTree = ""; }; + 1EE48E8E1F2F0EE700B98D08 /* SDLTemperatureUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLTemperatureUnit.h; sourceTree = ""; }; + 1EE48E8F1F2F0EE700B98D08 /* SDLTemperatureUnit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTemperatureUnit.m; sourceTree = ""; }; + 1EE8C4371F347C7300FDC2CF /* SDLRadioBandSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRadioBandSpec.m; sourceTree = ""; }; + 1EE8C4391F347D4D00FDC2CF /* SDLRadioStateSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRadioStateSpec.m; sourceTree = ""; }; + 1EE8C43B1F347EAE00FDC2CF /* SDLTemperatureUnitSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTemperatureUnitSpec.m; sourceTree = ""; }; + 1EE8C43D1F347F0500FDC2CF /* SDLVentilationModeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVentilationModeSpec.m; sourceTree = ""; }; + 1EE8C43F1F348D3200FDC2CF /* SDLClimateControlCapabilitiesSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLClimateControlCapabilitiesSpec.m; sourceTree = ""; }; + 1EE8C4431F34A1B900FDC2CF /* SDLClimateControlDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLClimateControlDataSpec.m; sourceTree = ""; }; + 1EE8C4451F3837D200FDC2CF /* SDLModuleDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLModuleDataSpec.m; sourceTree = ""; }; + 1EE8C4471F38430900FDC2CF /* SDLRadioControlCapabilitiesSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRadioControlCapabilitiesSpec.m; sourceTree = ""; }; + 1EE8C4491F3846D300FDC2CF /* SDLRadioControlDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRadioControlDataSpec.m; sourceTree = ""; }; + 1EE8C44B1F385C7100FDC2CF /* SDLRDSDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRDSDataSpec.m; sourceTree = ""; }; + 1EE8C44F1F38629200FDC2CF /* SDLRemoteControlCapabilitiesSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRemoteControlCapabilitiesSpec.m; sourceTree = ""; }; + 1EE8C4511F38657D00FDC2CF /* SDLTemperatureSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTemperatureSpec.m; sourceTree = ""; }; + 1EE8C4531F38762E00FDC2CF /* SDLOnInteriorVehicleDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLOnInteriorVehicleDataSpec.m; sourceTree = ""; }; + 1EE8C4551F38788A00FDC2CF /* SDLButtonPressSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLButtonPressSpec.m; sourceTree = ""; }; + 1EE8C4571F387ABD00FDC2CF /* SDLButtonPressResponseSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLButtonPressResponseSpec.m; sourceTree = ""; }; + 1EE8C4591F387BBB00FDC2CF /* SDLGetInteriorVehicleDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetInteriorVehicleDataSpec.m; sourceTree = ""; }; + 1EE8C45C1F387D1C00FDC2CF /* SDLGetInteriorVehicleDataResponseSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetInteriorVehicleDataResponseSpec.m; sourceTree = ""; }; + 1EE8C45E1F3884FF00FDC2CF /* SDLSetInteriorVehicleDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSetInteriorVehicleDataSpec.m; sourceTree = ""; }; + 1EE8C4601F38865B00FDC2CF /* SDLSetInteriorVehicleDataResponseSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSetInteriorVehicleDataResponseSpec.m; sourceTree = ""; }; + 1FF7DAB51F75B27300B46C30 /* SDLFocusableItemLocatorType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLFocusableItemLocatorType.h; sourceTree = ""; }; + 1FF7DAB71F75B28E00B46C30 /* SDLFocusableItemHitTester.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLFocusableItemHitTester.h; sourceTree = ""; }; + 1FF7DAB91F75B2A800B46C30 /* SDLFocusableItemLocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLFocusableItemLocator.h; sourceTree = ""; }; + 1FF7DABB1F75B2BF00B46C30 /* SDLFocusableItemLocator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLFocusableItemLocator.m; sourceTree = ""; }; + 1FF7DABF1F75CF6C00B46C30 /* SDLHapticManagerSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLHapticManagerSpec.m; path = ProxySpecs/SDLHapticManagerSpec.m; sourceTree = ""; }; 332A913C1CED87F80043824C /* SDLAppInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLAppInfo.h; sourceTree = ""; }; 332A913D1CED87F80043824C /* SDLAppInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLAppInfo.m; sourceTree = ""; }; 5D00AC651F140F0A004000D9 /* SDLSystemCapabilityType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSystemCapabilityType.h; sourceTree = ""; }; @@ -1363,7 +1511,7 @@ 5D0A9F941F15585B00CC80DD /* SDLPhoneCapabilitySpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLPhoneCapabilitySpec.m; sourceTree = ""; }; 5D0A9F961F1559EC00CC80DD /* SDLSystemCapabilitySpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSystemCapabilitySpec.m; sourceTree = ""; }; 5D0A9F991F15636800CC80DD /* SDLGetSystemCapabilitiesSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetSystemCapabilitiesSpec.m; sourceTree = ""; }; - 5D0A9F9B1F1565EB00CC80DD /* SDLGetSystemCapabilitiesResponseSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetSystemCapabilitiesResponseSpec.m; sourceTree = ""; }; + 5D0A9F9B1F1565EB00CC80DD /* SDLGetSystemCapabilityResponseSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetSystemCapabilityResponseSpec.m; sourceTree = ""; }; 5D1654551D3E754F00554D93 /* SDLLifecycleManagerSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleManagerSpec.m; path = DevAPISpecs/SDLLifecycleManagerSpec.m; sourceTree = ""; }; 5D1654581D3E7A1600554D93 /* SDLLifecycleManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLifecycleManager.h; sourceTree = ""; }; 5D1654591D3E7A1600554D93 /* SDLLifecycleManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLLifecycleManager.m; sourceTree = ""; }; @@ -1395,6 +1543,17 @@ 5D4029D51A76F0410006B0C2 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = SmartDeviceLink_Example/Info.plist; sourceTree = SOURCE_ROOT; }; 5D4029E01A76F0760006B0C2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = SmartDeviceLink_Example/Base.lproj/LaunchScreen.xib; sourceTree = SOURCE_ROOT; }; 5D4029E21A76F0760006B0C2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = SmartDeviceLink_Example/Base.lproj/Main.storyboard; sourceTree = SOURCE_ROOT; }; + 5D4346461E6F0BDA00B639C6 /* SDLLogFileModuleSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLLogFileModuleSpec.m; path = LoggingSpecs/SDLLogFileModuleSpec.m; sourceTree = ""; }; + 5D43465A1E6F154400B639C6 /* SDLLogConfigurationSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLLogConfigurationSpec.m; path = LoggingSpecs/SDLLogConfigurationSpec.m; sourceTree = ""; }; + 5D4346611E6F38E600B639C6 /* SmartDeviceLinkSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SmartDeviceLinkSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5D4346631E6F38E600B639C6 /* SmartDeviceLinkSwift.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmartDeviceLinkSwift.h; sourceTree = ""; }; + 5D4346641E6F38E600B639C6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 5D43466A1E6F3B4C00B639C6 /* SDLLogFilterSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLLogFilterSpec.m; path = LoggingSpecs/SDLLogFilterSpec.m; sourceTree = ""; }; + 5D43466C1E6F522000B639C6 /* SDLLogModelSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLLogModelSpec.m; path = LoggingSpecs/SDLLogModelSpec.m; sourceTree = ""; }; + 5D43466E1E6F55BD00B639C6 /* SDLLogManagerSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLLogManagerSpec.m; path = LoggingSpecs/SDLLogManagerSpec.m; sourceTree = ""; }; + 5D4346711E6F617D00B639C6 /* TestLogTarget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestLogTarget.h; path = LoggingSpecs/TestLogTarget.h; sourceTree = ""; }; + 5D4346721E6F617D00B639C6 /* TestLogTarget.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestLogTarget.m; path = LoggingSpecs/TestLogTarget.m; sourceTree = ""; }; + 5D4346851E771B5700B639C6 /* SDLLog.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SDLLog.swift; sourceTree = ""; }; 5D4631031F2120A30092EFDC /* SDLControlFramePayloadType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLControlFramePayloadType.h; sourceTree = ""; }; 5D4631061F21261A0092EFDC /* SDLControlFramePayloadRPCStartServiceAck.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLControlFramePayloadRPCStartServiceAck.h; sourceTree = ""; }; 5D4631071F21261A0092EFDC /* SDLControlFramePayloadRPCStartServiceAck.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLControlFramePayloadRPCStartServiceAck.m; sourceTree = ""; }; @@ -1438,7 +1597,7 @@ 5D616B5B1D5A23E400553F6B /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/SDLLockScreen.strings; sourceTree = ""; }; 5D61FA1C1A84237100846EE7 /* SmartDeviceLink.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SmartDeviceLink.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5D61FA1F1A84237100846EE7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 5D61FA201A84237100846EE7 /* SmartDeviceLink.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmartDeviceLink.h; sourceTree = ""; }; + 5D61FA201A84237100846EE7 /* SmartDeviceLink.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmartDeviceLink.h; sourceTree = ""; wrapsLines = 0; }; 5D61FA261A84237100846EE7 /* SmartDeviceLinkTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SmartDeviceLinkTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 5D61FA2E1A84237100846EE7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 5D61FA3C1A84238A00846EE7 /* SDLAbstractProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLAbstractProtocol.h; sourceTree = ""; }; @@ -1505,15 +1664,10 @@ 5D61FA791A84238A00846EE7 /* SDLCompassDirection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLCompassDirection.m; sourceTree = ""; }; 5D61FA7A1A84238A00846EE7 /* SDLComponentVolumeStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLComponentVolumeStatus.h; sourceTree = ""; }; 5D61FA7B1A84238A00846EE7 /* SDLComponentVolumeStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLComponentVolumeStatus.m; sourceTree = ""; }; - 5D61FA7C1A84238A00846EE7 /* SDLConsoleController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLConsoleController.h; sourceTree = ""; }; - 5D61FA7D1A84238A00846EE7 /* SDLConsoleController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLConsoleController.m; sourceTree = ""; }; 5D61FA7E1A84238A00846EE7 /* SDLCreateInteractionChoiceSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLCreateInteractionChoiceSet.h; sourceTree = ""; }; 5D61FA7F1A84238A00846EE7 /* SDLCreateInteractionChoiceSet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLCreateInteractionChoiceSet.m; sourceTree = ""; }; 5D61FA801A84238A00846EE7 /* SDLCreateInteractionChoiceSetResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLCreateInteractionChoiceSetResponse.h; sourceTree = ""; }; 5D61FA811A84238A00846EE7 /* SDLCreateInteractionChoiceSetResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLCreateInteractionChoiceSetResponse.m; sourceTree = ""; }; - 5D61FA821A84238A00846EE7 /* SDLDebugTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLDebugTool.h; sourceTree = ""; }; - 5D61FA831A84238A00846EE7 /* SDLDebugTool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLDebugTool.m; sourceTree = ""; }; - 5D61FA841A84238A00846EE7 /* SDLDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLDecoder.h; sourceTree = ""; }; 5D61FA851A84238A00846EE7 /* SDLDeleteCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLDeleteCommand.h; sourceTree = ""; }; 5D61FA861A84238A00846EE7 /* SDLDeleteCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLDeleteCommand.m; sourceTree = ""; }; 5D61FA871A84238A00846EE7 /* SDLDeleteCommandResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLDeleteCommandResponse.h; sourceTree = ""; }; @@ -1562,13 +1716,11 @@ 5D61FAB21A84238A00846EE7 /* SDLEncodedSyncPData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLEncodedSyncPData.m; sourceTree = ""; }; 5D61FAB31A84238A00846EE7 /* SDLEncodedSyncPDataResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLEncodedSyncPDataResponse.h; sourceTree = ""; }; 5D61FAB41A84238A00846EE7 /* SDLEncodedSyncPDataResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLEncodedSyncPDataResponse.m; sourceTree = ""; }; - 5D61FAB51A84238A00846EE7 /* SDLEncoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLEncoder.h; sourceTree = ""; }; 5D61FAB61A84238A00846EE7 /* SDLEndAudioPassThru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLEndAudioPassThru.h; sourceTree = ""; }; 5D61FAB71A84238A00846EE7 /* SDLEndAudioPassThru.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLEndAudioPassThru.m; sourceTree = ""; }; 5D61FAB81A84238A00846EE7 /* SDLEndAudioPassThruResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLEndAudioPassThruResponse.h; sourceTree = ""; }; 5D61FAB91A84238A00846EE7 /* SDLEndAudioPassThruResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLEndAudioPassThruResponse.m; sourceTree = ""; }; 5D61FABA1A84238A00846EE7 /* SDLEnum.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLEnum.h; sourceTree = ""; }; - 5D61FABB1A84238A00846EE7 /* SDLEnum.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLEnum.m; sourceTree = ""; }; 5D61FABC1A84238A00846EE7 /* SDLFileType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLFileType.h; sourceTree = ""; }; 5D61FABD1A84238A00846EE7 /* SDLFileType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLFileType.m; sourceTree = ""; }; 5D61FABE1A84238A00846EE7 /* SDLFuelCutoffStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLFuelCutoffStatus.h; sourceTree = ""; }; @@ -1617,12 +1769,6 @@ 5D61FAE91A84238A00846EE7 /* SDLImageType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLImageType.m; sourceTree = ""; }; 5D61FAEA1A84238A00846EE7 /* SDLInteractionMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLInteractionMode.h; sourceTree = ""; }; 5D61FAEB1A84238A00846EE7 /* SDLInteractionMode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLInteractionMode.m; sourceTree = ""; }; - 5D61FAED1A84238A00846EE7 /* SDLJingle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLJingle.h; sourceTree = ""; }; - 5D61FAEE1A84238A00846EE7 /* SDLJingle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLJingle.m; sourceTree = ""; }; - 5D61FAEF1A84238A00846EE7 /* SDLJsonDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLJsonDecoder.h; sourceTree = ""; }; - 5D61FAF01A84238A00846EE7 /* SDLJsonDecoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLJsonDecoder.m; sourceTree = ""; }; - 5D61FAF11A84238A00846EE7 /* SDLJsonEncoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLJsonEncoder.h; sourceTree = ""; }; - 5D61FAF21A84238A00846EE7 /* SDLJsonEncoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLJsonEncoder.m; sourceTree = ""; }; 5D61FAF31A84238A00846EE7 /* SDLKeyboardEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLKeyboardEvent.h; sourceTree = ""; }; 5D61FAF41A84238A00846EE7 /* SDLKeyboardEvent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLKeyboardEvent.m; sourceTree = ""; }; 5D61FAF51A84238A00846EE7 /* SDLKeyboardLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLKeyboardLayout.h; sourceTree = ""; }; @@ -1769,8 +1915,6 @@ 5D61FB831A84238B00846EE7 /* SDLRPCPayload.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRPCPayload.m; sourceTree = ""; }; 5D61FB841A84238B00846EE7 /* SDLRPCRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRPCRequest.h; sourceTree = ""; }; 5D61FB851A84238B00846EE7 /* SDLRPCRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRPCRequest.m; sourceTree = ""; }; - 5D61FB861A84238B00846EE7 /* SDLRPCRequestFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRPCRequestFactory.h; sourceTree = ""; }; - 5D61FB871A84238B00846EE7 /* SDLRPCRequestFactory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRPCRequestFactory.m; sourceTree = ""; }; 5D61FB881A84238B00846EE7 /* SDLRPCResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRPCResponse.h; sourceTree = ""; }; 5D61FB891A84238B00846EE7 /* SDLRPCResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRPCResponse.m; sourceTree = ""; }; 5D61FB8A1A84238B00846EE7 /* SDLSamplingRate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSamplingRate.h; sourceTree = ""; }; @@ -1807,8 +1951,6 @@ 5D61FBA91A84238B00846EE7 /* SDLShowResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLShowResponse.m; sourceTree = ""; }; 5D61FBAA1A84238B00846EE7 /* SDLSingleTireStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSingleTireStatus.h; sourceTree = ""; }; 5D61FBAB1A84238B00846EE7 /* SDLSingleTireStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSingleTireStatus.m; sourceTree = ""; }; - 5D61FBAC1A84238B00846EE7 /* SDLSiphonServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSiphonServer.h; sourceTree = ""; }; - 5D61FBAD1A84238B00846EE7 /* SDLSiphonServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSiphonServer.m; sourceTree = ""; }; 5D61FBAE1A84238B00846EE7 /* SDLSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSlider.h; sourceTree = ""; }; 5D61FBAF1A84238B00846EE7 /* SDLSlider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSlider.m; sourceTree = ""; }; 5D61FBB01A84238B00846EE7 /* SDLSliderResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSliderResponse.h; sourceTree = ""; }; @@ -1876,8 +2018,6 @@ 5D61FBEF1A84238C00846EE7 /* SDLTriggerSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTriggerSource.m; sourceTree = ""; }; 5D61FBF01A84238C00846EE7 /* SDLTTSChunk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLTTSChunk.h; sourceTree = ""; }; 5D61FBF11A84238C00846EE7 /* SDLTTSChunk.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTTSChunk.m; sourceTree = ""; }; - 5D61FBF21A84238C00846EE7 /* SDLTTSChunkFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLTTSChunkFactory.h; sourceTree = ""; }; - 5D61FBF31A84238C00846EE7 /* SDLTTSChunkFactory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTTSChunkFactory.m; sourceTree = ""; }; 5D61FBF41A84238C00846EE7 /* SDLTurn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLTurn.h; sourceTree = ""; }; 5D61FBF51A84238C00846EE7 /* SDLTurn.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTurn.m; sourceTree = ""; }; 5D61FBF61A84238C00846EE7 /* SDLUnregisterAppInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLUnregisterAppInterface.h; sourceTree = ""; }; @@ -1932,7 +2072,6 @@ 5D61FC271A84238C00846EE7 /* SDLWiperStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLWiperStatus.m; sourceTree = ""; }; 5D6CC8EE1C610E660027F60A /* SDLSecurityType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSecurityType.h; sourceTree = ""; }; 5D6EB4CB1BF28DC600693731 /* NSMapTable+SubscriptingSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSMapTable+SubscriptingSpec.m"; path = "DevAPISpecs/NSMapTable+SubscriptingSpec.m"; sourceTree = ""; }; - 5D6F7A2A1BC45BF70070BF37 /* SDLRequestHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRequestHandler.h; sourceTree = ""; }; 5D6F7A2C1BC5650B0070BF37 /* SDLLifecycleConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLifecycleConfiguration.h; sourceTree = ""; }; 5D6F7A2D1BC5650B0070BF37 /* SDLLifecycleConfiguration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLLifecycleConfiguration.m; sourceTree = ""; }; 5D6F7A331BC5B9B60070BF37 /* SDLLockScreenViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLockScreenViewController.h; sourceTree = ""; }; @@ -1964,6 +2103,7 @@ 5D82042F1BD001C700D0A41B /* SDLArtwork.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLArtwork.h; sourceTree = ""; }; 5D8204301BD001C700D0A41B /* SDLArtwork.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLArtwork.m; sourceTree = ""; }; 5D850AAF1D4907C500E6E7EE /* TestLockScreenAppIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = TestLockScreenAppIcon.png; sourceTree = ""; }; + 5D8A09801F54B4E5002502A2 /* SDLStreamingMediaManagerDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLStreamingMediaManagerDataSource.h; sourceTree = ""; }; 5D8B174D1AC9D266006A6E1C /* SDLDialNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLDialNumber.h; sourceTree = ""; }; 5D8B174E1AC9D266006A6E1C /* SDLDialNumber.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLDialNumber.m; sourceTree = ""; }; 5D8B17511AC9E11B006A6E1C /* SDLDialNumberResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLDialNumberResponse.h; sourceTree = ""; }; @@ -1999,6 +2139,9 @@ 5DA23FF21F2FA35C009C0313 /* SDLControlFramePayloadAudioStartServiceAckSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLControlFramePayloadAudioStartServiceAckSpec.m; sourceTree = ""; }; 5DA23FF51F2FAA31009C0313 /* SDLControlFramePayloadRPCStartServiceSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLControlFramePayloadRPCStartServiceSpec.m; sourceTree = ""; }; 5DA23FF71F2FAF2D009C0313 /* SDLControlFramePayloadRPCStartServiceAckSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLControlFramePayloadRPCStartServiceAckSpec.m; sourceTree = ""; }; + 5DA23FFC1F312DBA009C0313 /* SDLVideoEncoderDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLVideoEncoderDelegate.h; sourceTree = ""; }; + 5DA23FFE1F325621009C0313 /* SDLStreamingMediaConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLStreamingMediaConfiguration.h; sourceTree = ""; }; + 5DA23FFF1F325621009C0313 /* SDLStreamingMediaConfiguration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLStreamingMediaConfiguration.m; sourceTree = ""; }; 5DA3F3521BC448060026F2D0 /* NSMapTable+Subscripting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSMapTable+Subscripting.h"; sourceTree = ""; }; 5DA3F3531BC448060026F2D0 /* NSMapTable+Subscripting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMapTable+Subscripting.m"; sourceTree = ""; }; 5DA3F3581BC448480026F2D0 /* SDLError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLError.h; sourceTree = ""; }; @@ -2009,9 +2152,9 @@ 5DA3F36F1BC4489A0026F2D0 /* SDLManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLManager.m; sourceTree = ""; }; 5DA49CE31F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLControlFramePayloadRPCStartService.h; sourceTree = ""; }; 5DA49CE41F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLControlFramePayloadRPCStartService.m; sourceTree = ""; }; - 5DADA76D1F4DF5180084D17D /* SDLRectangle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRectangle.h; sourceTree = ""; }; - 5DADA76E1F4DF5180084D17D /* SDLRectangle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRectangle.m; sourceTree = ""; }; - 5DADA7711F4DFB9B0084D17D /* SDLRectangleSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRectangleSpec.m; sourceTree = ""; }; + 5DADA7731F4DFED60084D17D /* SDLRectangle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRectangle.h; sourceTree = ""; }; + 5DADA7741F4DFED60084D17D /* SDLRectangle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRectangle.m; sourceTree = ""; }; + 5DADA7771F4E059E0084D17D /* SDLRectangleSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRectangleSpec.m; sourceTree = ""; }; 5DAE06721BDEC6C000F9B498 /* SDLFileSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLFileSpec.m; path = DevAPISpecs/SDLFileSpec.m; sourceTree = ""; }; 5DAE06741BDEC6D600F9B498 /* SDLArtworkSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLArtworkSpec.m; path = DevAPISpecs/SDLArtworkSpec.m; sourceTree = ""; }; 5DB1BCD01D243A8E002FFC37 /* SDLDeleteFileOperationSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteFileOperationSpec.m; path = DevAPISpecs/SDLDeleteFileOperationSpec.m; sourceTree = ""; }; @@ -2024,8 +2167,10 @@ 5DB1BCE01D243DDE002FFC37 /* SDLConfigurationSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLConfigurationSpec.m; path = DevAPISpecs/SDLConfigurationSpec.m; sourceTree = ""; }; 5DB1BCE51D245647002FFC37 /* TestStateMachineTarget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TestStateMachineTarget.h; path = TestUtilities/TestStateMachineTarget.h; sourceTree = ""; }; 5DB1BCE61D245647002FFC37 /* TestStateMachineTarget.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TestStateMachineTarget.m; path = TestUtilities/TestStateMachineTarget.m; sourceTree = ""; }; + 5DB202261F5F2D030061D189 /* SDLImageResolutionSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLImageResolutionSpec.m; sourceTree = ""; }; + 5DB202281F5F38B60061D189 /* SDLFakeStreamingManagerDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLFakeStreamingManagerDataSource.h; path = DevAPISpecs/SDLFakeStreamingManagerDataSource.h; sourceTree = ""; }; + 5DB202291F5F38B60061D189 /* SDLFakeStreamingManagerDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLFakeStreamingManagerDataSource.m; path = DevAPISpecs/SDLFakeStreamingManagerDataSource.m; sourceTree = ""; }; 5DB92D231AC47B2C00C15BB0 /* SDLHexUtilitySpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLHexUtilitySpec.m; path = UtilitiesSpecs/SDLHexUtilitySpec.m; sourceTree = ""; }; - 5DB92D251AC4836F00C15BB0 /* SDLJingleSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLJingleSpec.m; path = UtilitiesSpecs/SDLJingleSpec.m; sourceTree = ""; }; 5DB92D2C1AC4A34F00C15BB0 /* SDLPrioritizedObjectCollectionSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLPrioritizedObjectCollectionSpec.m; path = "UtilitiesSpecs/Prioritized Objects/SDLPrioritizedObjectCollectionSpec.m"; sourceTree = ""; }; 5DB92D2E1AC59F0000C15BB0 /* SDLObjectWithPrioritySpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLObjectWithPrioritySpec.m; path = "UtilitiesSpecs/Prioritized Objects/SDLObjectWithPrioritySpec.m"; sourceTree = ""; }; 5DB92D301AC9C8BA00C15BB0 /* SDLRPCStruct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRPCStruct.h; sourceTree = ""; }; @@ -2040,80 +2185,101 @@ 5DB9965F1F28C6ED002D8795 /* SDLControlFramePayloadVideoStartServiceAck.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLControlFramePayloadVideoStartServiceAck.m; sourceTree = ""; }; 5DBAE0AA1D3588AC00CE00BF /* SDLNotificationDispatcherSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLNotificationDispatcherSpec.m; path = DevAPISpecs/SDLNotificationDispatcherSpec.m; sourceTree = ""; }; 5DBAE0AC1D368D1A00CE00BF /* SDLResponseDispatcherSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLResponseDispatcherSpec.m; path = DevAPISpecs/SDLResponseDispatcherSpec.m; sourceTree = ""; }; + 5DBEFA531F434B9E009EE295 /* SDLStreamingMediaConfigurationSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLStreamingMediaConfigurationSpec.m; path = DevAPISpecs/SDLStreamingMediaConfigurationSpec.m; sourceTree = ""; }; + 5DBEFA561F436132009EE295 /* SDLFakeSecurityManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLFakeSecurityManager.h; path = DevAPISpecs/SDLFakeSecurityManager.h; sourceTree = ""; }; + 5DBEFA571F436132009EE295 /* SDLFakeSecurityManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLFakeSecurityManager.m; path = DevAPISpecs/SDLFakeSecurityManager.m; sourceTree = ""; }; + 5DBF06211E64A83F00A5CF03 /* SDLLogManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLogManager.h; sourceTree = ""; }; + 5DBF06221E64A83F00A5CF03 /* SDLLogManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLLogManager.m; sourceTree = ""; }; + 5DBF06251E64A91D00A5CF03 /* SDLLogFileModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLogFileModule.h; sourceTree = ""; }; + 5DBF06261E64A91D00A5CF03 /* SDLLogFileModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLLogFileModule.m; sourceTree = ""; }; + 5DBF06291E64A92C00A5CF03 /* SDLLogTarget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLogTarget.h; sourceTree = ""; }; + 5DBF062B1E64A93A00A5CF03 /* SDLLogFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLogFilter.h; sourceTree = ""; }; + 5DBF062C1E64A93A00A5CF03 /* SDLLogFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLLogFilter.m; sourceTree = ""; }; + 5DBF062F1E64A9C600A5CF03 /* SDLLogModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLogModel.h; sourceTree = ""; }; + 5DBF06301E64A9C600A5CF03 /* SDLLogModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLLogModel.m; sourceTree = ""; }; + 5DBF06331E64A9FE00A5CF03 /* SDLLogConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLogConstants.h; sourceTree = ""; }; + 5DBF06371E64ABBE00A5CF03 /* SDLLogConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLogConfiguration.h; sourceTree = ""; }; + 5DBF06381E64ABBE00A5CF03 /* SDLLogConfiguration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLLogConfiguration.m; sourceTree = ""; }; 5DBF0D5D1F3A68C0008AF2C9 /* SDLControlFramePayloadVideoStartServiceSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadVideoStartServiceSpec.m; path = ControlFramePayloadSpecs/SDLControlFramePayloadVideoStartServiceSpec.m; sourceTree = ""; }; 5DBF0D5F1F3B3DB4008AF2C9 /* SDLControlFrameVideoStartServiceAckSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLControlFrameVideoStartServiceAckSpec.m; path = ControlFramePayloadSpecs/SDLControlFrameVideoStartServiceAckSpec.m; sourceTree = ""; }; 5DC09ED91F2F7FEC00F4AB1D /* SDLControlFramePayloadNakSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLControlFramePayloadNakSpec.m; path = ControlFramePayloadSpecs/SDLControlFramePayloadNakSpec.m; sourceTree = ""; }; 5DC978251B7A38640012C2F1 /* SDLGlobalsSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLGlobalsSpec.m; path = UtilitiesSpecs/SDLGlobalsSpec.m; sourceTree = ""; }; 5DCA93821EE0844D0015768E /* SmartDeviceLink.podspec */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmartDeviceLink.podspec; sourceTree = SOURCE_ROOT; }; - 5DCC199E1B8221F3004FFAD9 /* SDLURLSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLURLSession.h; sourceTree = ""; }; - 5DCC199F1B8221F3004FFAD9 /* SDLURLSession.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLURLSession.m; sourceTree = ""; }; - 5DCC19A21B822804004FFAD9 /* SDLURLRequestTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLURLRequestTask.h; sourceTree = ""; }; - 5DCC19A31B822804004FFAD9 /* SDLURLRequestTask.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLURLRequestTask.m; sourceTree = ""; }; 5DCF76F31ACDBAD300BB647B /* SDLSendLocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSendLocation.h; sourceTree = ""; }; 5DCF76F41ACDBAD300BB647B /* SDLSendLocation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendLocation.m; sourceTree = ""; }; 5DCF76F71ACDD7CD00BB647B /* SDLSendLocationResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSendLocationResponse.h; sourceTree = ""; }; 5DCF76F81ACDD7CD00BB647B /* SDLSendLocationResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendLocationResponse.m; sourceTree = ""; }; 5DCF76FB1ACDDB4200BB647B /* SDLSendLocationSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendLocationSpec.m; sourceTree = ""; }; 5DCF76FD1ACDDB5A00BB647B /* SDLSendLocationResponseSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendLocationResponseSpec.m; sourceTree = ""; }; + 5DD67CAE1E65DDB7009CD394 /* SDLLogTargetAppleSystemLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLogTargetAppleSystemLog.h; sourceTree = ""; }; + 5DD67CAF1E65DDB7009CD394 /* SDLLogTargetAppleSystemLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLLogTargetAppleSystemLog.m; sourceTree = ""; }; + 5DD67CB61E661C4A009CD394 /* SDLLogTargetFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLogTargetFile.h; sourceTree = ""; }; + 5DD67CB71E661C4A009CD394 /* SDLLogTargetFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLLogTargetFile.m; sourceTree = ""; }; + 5DD67CBA1E661C84009CD394 /* SDLLogTargetOSLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLogTargetOSLog.h; sourceTree = ""; }; + 5DD67CBB1E661C84009CD394 /* SDLLogTargetOSLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLLogTargetOSLog.m; sourceTree = ""; }; + 5DD67CC11E68AE82009CD394 /* SDLLogFileModuleMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLogFileModuleMap.h; sourceTree = ""; }; + 5DD67CC21E68AE82009CD394 /* SDLLogFileModuleMap.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLLogFileModuleMap.m; sourceTree = ""; }; + 5DD67CC51E68B568009CD394 /* SDLLogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLogMacros.h; sourceTree = ""; }; 5DE3729F1ACB2ED300849FAA /* SDLHMICapabilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLHMICapabilities.h; sourceTree = ""; }; 5DE372A01ACB2ED300849FAA /* SDLHMICapabilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLHMICapabilities.m; sourceTree = ""; }; 5DE372A31ACB336600849FAA /* SDLHMICapabilitiesSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLHMICapabilitiesSpec.m; sourceTree = ""; }; - 5DE372A51ACC35B400849FAA /* SDLDebugToolConsole.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLDebugToolConsole.h; sourceTree = ""; }; 5DEE55BF1B8509CB004F0D0F /* SDLURLRequestTaskSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLURLRequestTaskSpec.m; path = "UtilitiesSpecs/HTTP Connection/SDLURLRequestTaskSpec.m"; sourceTree = ""; }; 5DF2BB9C1B94E38A00CE5994 /* SDLURLSessionSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLURLSessionSpec.m; path = "UtilitiesSpecs/HTTP Connection/SDLURLSessionSpec.m"; sourceTree = ""; }; 5DFFB9141BD7C89700DB3F04 /* SDLConnectionManagerType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLConnectionManagerType.h; sourceTree = ""; }; - 8872772E1F33542000368CCD /* SDLSendHapticDataResponseSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendHapticDataResponseSpec.m; sourceTree = ""; }; - 88E071991F3221F000C9CB2F /* SDLHapticRect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLHapticRect.h; sourceTree = ""; }; - 88E0719A1F3221F000C9CB2F /* SDLHapticRect.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLHapticRect.m; sourceTree = ""; }; - 88E0719D1F322C3100C9CB2F /* SDLSendHapticData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSendHapticData.h; sourceTree = ""; }; - 88E0719E1F322C3100C9CB2F /* SDLSendHapticData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendHapticData.m; sourceTree = ""; }; - 88E071A11F32454600C9CB2F /* SDLSendHapticDataResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSendHapticDataResponse.h; sourceTree = ""; }; - 88E071A21F32454600C9CB2F /* SDLSendHapticDataResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendHapticDataResponse.m; sourceTree = ""; }; - 88E071A51F327A8B00C9CB2F /* SDLHapticRectSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLHapticRectSpec.m; sourceTree = ""; }; - 88E071A71F327E3C00C9CB2F /* SDLSendHapticDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendHapticDataSpec.m; sourceTree = ""; }; - 8B06061D1F30BCED005ADB2F /* SDLMetadataType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLMetadataType.h; sourceTree = ""; }; - 8B06061E1F30BCED005ADB2F /* SDLMetadataType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMetadataType.m; sourceTree = ""; }; - 8B0606211F30C108005ADB2F /* SDLMetadataTypeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMetadataTypeSpec.m; sourceTree = ""; }; - 8B0606271F3103CE005ADB2F /* SDLMetadataTags.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLMetadataTags.h; sourceTree = ""; }; - 8B0606281F3103CE005ADB2F /* SDLMetadataTags.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMetadataTags.m; sourceTree = ""; }; - 8B06062B1F310ED2005ADB2F /* SDLMetadataTagsSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMetadataTagsSpec.m; sourceTree = ""; }; - 8BD729A41F2A2CF30029AC93 /* SDLVideoStreamingCodec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLVideoStreamingCodec.h; sourceTree = ""; }; - 8BD729A51F2A2CF30029AC93 /* SDLVideoStreamingCodec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingCodec.m; sourceTree = ""; }; - 8BD729A81F2A41F40029AC93 /* SDLVideoStreamingProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLVideoStreamingProtocol.h; sourceTree = ""; }; - 8BD729A91F2A41F40029AC93 /* SDLVideoStreamingProtocol.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingProtocol.m; sourceTree = ""; }; - 8BD729AC1F2A5AA10029AC93 /* SDLVideoStreamingFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLVideoStreamingFormat.h; sourceTree = ""; }; - 8BD729AD1F2A5AA10029AC93 /* SDLVideoStreamingFormat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingFormat.m; sourceTree = ""; }; - 8BD729B01F2A61DF0029AC93 /* SDLVideoStreamingCapability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLVideoStreamingCapability.h; sourceTree = ""; }; - 8BD729B11F2A61DF0029AC93 /* SDLVideoStreamingCapability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingCapability.m; sourceTree = ""; }; - 8BD729B41F2A711D0029AC93 /* SDLVideoStreamingCodecSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingCodecSpec.m; sourceTree = ""; }; - 8BD729B61F2A75FD0029AC93 /* SDLVideoStreamingProtocolSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingProtocolSpec.m; sourceTree = ""; }; - 8BF9DE061F2BAEEE004FFCBB /* SDLVideoStreamingFormatSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingFormatSpec.m; sourceTree = ""; }; - 8BF9DE081F2BAF0C004FFCBB /* SDLVideoStreamingCapabilitySpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingCapabilitySpec.m; sourceTree = ""; }; + 8850DB5E1F4475D30053A48D /* TestMultipleFilesConnectionManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestMultipleFilesConnectionManager.h; sourceTree = ""; }; + 8850DB5F1F4475D30053A48D /* TestMultipleFilesConnectionManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestMultipleFilesConnectionManager.m; sourceTree = ""; }; + 8877F5EA1F34A3BE00DC128A /* SDLSendHapticDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendHapticDataSpec.m; sourceTree = ""; }; + 8877F5EC1F34A72200DC128A /* SDLSendHapticDataResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSendHapticDataResponse.h; sourceTree = ""; }; + 8877F5ED1F34A72200DC128A /* SDLSendHapticDataResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendHapticDataResponse.m; sourceTree = ""; }; + 8877F5F01F34AA2D00DC128A /* SDLSendHapticDataResponseSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendHapticDataResponseSpec.m; sourceTree = ""; }; + 88B848C11F45E1A600DED768 /* TestResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestResponse.h; sourceTree = ""; }; + 88B848C21F45E1A600DED768 /* TestResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestResponse.m; sourceTree = ""; }; + 88B848C71F462E3600DED768 /* TestProgressResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestProgressResponse.h; sourceTree = ""; }; + 88B848C81F462E3600DED768 /* TestProgressResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestProgressResponse.m; sourceTree = ""; }; + 88D2AAE31F682BB20078D5B2 /* SDLLogConstantsSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLLogConstantsSpec.m; sourceTree = ""; }; + 88EED8361F33AE1700E6C42E /* SDLHapticRect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLHapticRect.h; sourceTree = ""; }; + 88EED8371F33AE1700E6C42E /* SDLHapticRect.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLHapticRect.m; sourceTree = ""; }; + 88EED83A1F33BECB00E6C42E /* SDLHapticRectSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLHapticRectSpec.m; sourceTree = ""; }; + 88EED83C1F33C5A400E6C42E /* SDLSendHapticData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSendHapticData.h; sourceTree = ""; }; + 88EED83D1F33C5A400E6C42E /* SDLSendHapticData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendHapticData.m; sourceTree = ""; }; + 8B7B31981F2F7B5700BDC38D /* SDLVideoStreamingCodec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLVideoStreamingCodec.h; sourceTree = ""; }; + 8B7B31991F2F7B5700BDC38D /* SDLVideoStreamingCodec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingCodec.m; sourceTree = ""; }; + 8B7B319C1F2F7CF700BDC38D /* SDLVideoStreamingProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLVideoStreamingProtocol.h; sourceTree = ""; }; + 8B7B319D1F2F7CF700BDC38D /* SDLVideoStreamingProtocol.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingProtocol.m; sourceTree = ""; }; + 8B7B31A01F2F7FEA00BDC38D /* SDLVideoStreamingFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLVideoStreamingFormat.h; sourceTree = ""; }; + 8B7B31A11F2F7FEA00BDC38D /* SDLVideoStreamingFormat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingFormat.m; sourceTree = ""; }; + 8B7B31A41F2F875200BDC38D /* SDLVideoStreamingCapability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLVideoStreamingCapability.h; sourceTree = ""; }; + 8B7B31A51F2F875200BDC38D /* SDLVideoStreamingCapability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingCapability.m; sourceTree = ""; }; + 8B7B31A81F2FB8BC00BDC38D /* SDLVideoStreamingProtocolSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingProtocolSpec.m; sourceTree = ""; }; + 8B7B31AA1F2FB93500BDC38D /* SDLVideoStreamingCodecSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingCodecSpec.m; sourceTree = ""; }; + 8B7B31AE1F2FBA0200BDC38D /* SDLVideoStreamingCapabilitySpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingCapabilitySpec.m; sourceTree = ""; }; + 8B7B31B01F2FBD9500BDC38D /* SDLVideoStreamingFormatSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLVideoStreamingFormatSpec.m; sourceTree = ""; }; + 8B9376D51F3349FC009605C4 /* SDLMetadataTags.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLMetadataTags.h; sourceTree = ""; }; + 8B9376D61F3349FC009605C4 /* SDLMetadataTags.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMetadataTags.m; sourceTree = ""; }; + 8B9376DA1F33656C009605C4 /* SDLMetadataTagsSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMetadataTagsSpec.m; sourceTree = ""; }; + 8BBEA6041F324165003EEA26 /* SDLMetadataType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLMetadataType.h; sourceTree = ""; }; + 8BBEA6051F324165003EEA26 /* SDLMetadataType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMetadataType.m; sourceTree = ""; }; + 8BBEA6081F324832003EEA26 /* SDLMetadataTypeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMetadataTypeSpec.m; sourceTree = ""; }; 97E26DEA1E807AD70074A3C7 /* SDLMutableDataQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLMutableDataQueue.h; sourceTree = ""; }; 97E26DEB1E807AD70074A3C7 /* SDLMutableDataQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMutableDataQueue.m; sourceTree = ""; }; + DA0C46AC1DCD35080001F2A8 /* SDLNames.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLNames.m; sourceTree = ""; }; + DA0C46AE1DCD41E30001F2A8 /* SDLMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLMacros.h; sourceTree = ""; }; + DA318C1D1DD0F06C00C035AC /* NSMutableDictionary+Store.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSMutableDictionary+Store.h"; sourceTree = ""; }; + DA318C1E1DD0F06C00C035AC /* NSMutableDictionary+Store.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMutableDictionary+Store.m"; sourceTree = ""; }; DA4353DE1D271FD10099B8C4 /* CGPointUtilSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CGPointUtilSpec.m; path = UtilitiesSpecs/Touches/CGPointUtilSpec.m; sourceTree = ""; }; DA4353E21D2720A30099B8C4 /* SDLPinchGestureSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLPinchGestureSpec.m; path = UtilitiesSpecs/Touches/SDLPinchGestureSpec.m; sourceTree = ""; }; DA4353E61D2721680099B8C4 /* DispatchTimerSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DispatchTimerSpec.m; path = UtilitiesSpecs/Touches/DispatchTimerSpec.m; sourceTree = ""; }; DA4353E71D2721680099B8C4 /* SDLTouchManagerSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLTouchManagerSpec.m; path = UtilitiesSpecs/Touches/SDLTouchManagerSpec.m; sourceTree = ""; }; DA4353E81D2721680099B8C4 /* SDLTouchSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLTouchSpec.m; path = UtilitiesSpecs/Touches/SDLTouchSpec.m; sourceTree = ""; }; - DA7515981D95FAA000F29323 /* lock_arrow_down_black.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lock_arrow_down_black.png; sourceTree = ""; }; - DA7515991D95FAA000F29323 /* lock_arrow_down_black@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "lock_arrow_down_black@2x.png"; sourceTree = ""; }; - DA75159A1D95FAA000F29323 /* lock_arrow_down_black@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "lock_arrow_down_black@3x.png"; sourceTree = ""; }; - DA75159C1D95FAA000F29323 /* lock_arrow_down_white.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lock_arrow_down_white.png; sourceTree = ""; }; - DA75159D1D95FAA000F29323 /* lock_arrow_down_white@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "lock_arrow_down_white@2x.png"; sourceTree = ""; }; - DA75159E1D95FAA000F29323 /* lock_arrow_down_white@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "lock_arrow_down_white@3x.png"; sourceTree = ""; }; - DA7515A11D95FAA000F29323 /* lock_arrow_up_black.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lock_arrow_up_black.png; sourceTree = ""; }; - DA7515A21D95FAA000F29323 /* lock_arrow_up_black@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "lock_arrow_up_black@2x.png"; sourceTree = ""; }; - DA7515A31D95FAA000F29323 /* lock_arrow_up_black@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "lock_arrow_up_black@3x.png"; sourceTree = ""; }; - DA7515A51D95FAA000F29323 /* lock_arrow_up_white.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = lock_arrow_up_white.png; sourceTree = ""; }; - DA7515A61D95FAA000F29323 /* lock_arrow_up_white@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "lock_arrow_up_white@2x.png"; sourceTree = ""; }; - DA7515A71D95FAA000F29323 /* lock_arrow_up_white@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "lock_arrow_up_white@3x.png"; sourceTree = ""; }; - DA7515AA1D95FAA000F29323 /* sdl_logo_black.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = sdl_logo_black.png; sourceTree = ""; }; - DA7515AB1D95FAA000F29323 /* sdl_logo_black@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "sdl_logo_black@2x.png"; sourceTree = ""; }; - DA7515AC1D95FAA000F29323 /* sdl_logo_black@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "sdl_logo_black@3x.png"; sourceTree = ""; }; - DA7515AE1D95FAA000F29323 /* sdl_logo_white.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = sdl_logo_white.png; sourceTree = ""; }; - DA7515AF1D95FAA000F29323 /* sdl_logo_white@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "sdl_logo_white@2x.png"; sourceTree = ""; }; - DA7515B01D95FAA000F29323 /* sdl_logo_white@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "sdl_logo_white@3x.png"; sourceTree = ""; }; + DA4F47951E771AA100FC809E /* SDLEnum.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLEnum.m; sourceTree = ""; }; + DA6223BB1E7B088200878689 /* CVPixelBufferRef+SDLUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CVPixelBufferRef+SDLUtil.h"; sourceTree = ""; }; + DA6223BC1E7B088200878689 /* CVPixelBufferRef+SDLUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "CVPixelBufferRef+SDLUtil.m"; sourceTree = ""; }; + DA661E2B1E553E7E001C1345 /* SDLStreamingMediaManagerSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLStreamingMediaManagerSpec.m; sourceTree = ""; }; + DA8966E91E56939F00413EAB /* SDLStreamingMediaLifecycleManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLStreamingMediaLifecycleManager.h; sourceTree = ""; }; + DA8966EA1E56939F00413EAB /* SDLStreamingMediaLifecycleManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLStreamingMediaLifecycleManager.m; sourceTree = ""; }; + DA8966EE1E5693E300413EAB /* SDLStreamingMediaLifecycleManagerSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLStreamingMediaLifecycleManagerSpec.m; sourceTree = ""; }; + DA8966F11E56973700413EAB /* SDLStreamingMediaManagerConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLStreamingMediaManagerConstants.h; sourceTree = ""; }; + DA8966F31E56977C00413EAB /* SDLStreamingMediaManagerConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLStreamingMediaManagerConstants.m; sourceTree = ""; }; DA96C0651D4D4F730022F520 /* SDLAppInfoSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLAppInfoSpec.m; sourceTree = ""; }; DA9F7E611DCBFAC800ACAE48 /* SDLDateTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLDateTime.h; sourceTree = ""; }; DA9F7E621DCBFAC800ACAE48 /* SDLDateTime.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLDateTime.m; sourceTree = ""; }; @@ -2121,22 +2287,22 @@ DA9F7E661DCBFAD400ACAE48 /* SDLOasisAddress.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLOasisAddress.m; sourceTree = ""; }; DA9F7E691DCBFB0700ACAE48 /* SDLDeliveryMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLDeliveryMode.h; sourceTree = ""; }; DA9F7E6A1DCBFB0700ACAE48 /* SDLDeliveryMode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLDeliveryMode.m; sourceTree = ""; }; - DA9F7E6D1DCBFFDB00ACAE48 /* SDLGetWaypoints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLGetWaypoints.h; sourceTree = ""; }; - DA9F7E6E1DCBFFDB00ACAE48 /* SDLGetWaypoints.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetWaypoints.m; sourceTree = ""; }; - DA9F7E711DCC004C00ACAE48 /* SDLGetWaypointsResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLGetWaypointsResponse.h; sourceTree = ""; }; - DA9F7E721DCC004C00ACAE48 /* SDLGetWaypointsResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetWaypointsResponse.m; sourceTree = ""; }; - DA9F7E7D1DCC028B00ACAE48 /* SDLOnWaypointChange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLOnWaypointChange.h; sourceTree = ""; }; - DA9F7E7E1DCC028B00ACAE48 /* SDLOnWaypointChange.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLOnWaypointChange.m; sourceTree = ""; }; - DA9F7E811DCC047200ACAE48 /* SDLWaypointType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLWaypointType.h; sourceTree = ""; }; - DA9F7E821DCC047200ACAE48 /* SDLWaypointType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLWaypointType.m; sourceTree = ""; }; - DA9F7E851DCC049900ACAE48 /* SDLSubscribeWaypoints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSubscribeWaypoints.h; sourceTree = ""; }; - DA9F7E861DCC049900ACAE48 /* SDLSubscribeWaypoints.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSubscribeWaypoints.m; sourceTree = ""; }; - DA9F7E891DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSubscribeWaypointsResponse.h; sourceTree = ""; }; - DA9F7E8A1DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSubscribeWaypointsResponse.m; sourceTree = ""; }; - DA9F7E8D1DCC04C000ACAE48 /* SDLUnsubscribeWaypointsResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLUnsubscribeWaypointsResponse.h; sourceTree = ""; }; - DA9F7E8E1DCC04C000ACAE48 /* SDLUnsubscribeWaypointsResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLUnsubscribeWaypointsResponse.m; sourceTree = ""; }; - DA9F7E911DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLUnsubscribeWaypoints.h; sourceTree = ""; }; - DA9F7E921DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLUnsubscribeWaypoints.m; sourceTree = ""; }; + DA9F7E6D1DCBFFDB00ACAE48 /* SDLGetWayPoints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLGetWayPoints.h; sourceTree = ""; }; + DA9F7E6E1DCBFFDB00ACAE48 /* SDLGetWayPoints.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetWayPoints.m; sourceTree = ""; }; + DA9F7E711DCC004C00ACAE48 /* SDLGetWayPointsResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLGetWayPointsResponse.h; sourceTree = ""; }; + DA9F7E721DCC004C00ACAE48 /* SDLGetWayPointsResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetWayPointsResponse.m; sourceTree = ""; }; + DA9F7E7D1DCC028B00ACAE48 /* SDLOnWayPointChange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLOnWayPointChange.h; sourceTree = ""; }; + DA9F7E7E1DCC028B00ACAE48 /* SDLOnWayPointChange.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLOnWayPointChange.m; sourceTree = ""; }; + DA9F7E811DCC047200ACAE48 /* SDLWayPointType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLWayPointType.h; sourceTree = ""; }; + DA9F7E821DCC047200ACAE48 /* SDLWayPointType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLWayPointType.m; sourceTree = ""; }; + DA9F7E851DCC049900ACAE48 /* SDLSubscribeWayPoints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSubscribeWayPoints.h; sourceTree = ""; }; + DA9F7E861DCC049900ACAE48 /* SDLSubscribeWayPoints.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSubscribeWayPoints.m; sourceTree = ""; }; + DA9F7E891DCC04B000ACAE48 /* SDLSubscribeWayPointsResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSubscribeWayPointsResponse.h; sourceTree = ""; }; + DA9F7E8A1DCC04B000ACAE48 /* SDLSubscribeWayPointsResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSubscribeWayPointsResponse.m; sourceTree = ""; }; + DA9F7E8D1DCC04C000ACAE48 /* SDLUnsubscribeWayPointsResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLUnsubscribeWayPointsResponse.h; sourceTree = ""; }; + DA9F7E8E1DCC04C000ACAE48 /* SDLUnsubscribeWayPointsResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLUnsubscribeWayPointsResponse.m; sourceTree = ""; }; + DA9F7E911DCC04E400ACAE48 /* SDLUnsubscribeWayPoints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLUnsubscribeWayPoints.h; sourceTree = ""; }; + DA9F7E921DCC04E400ACAE48 /* SDLUnsubscribeWayPoints.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLUnsubscribeWayPoints.m; sourceTree = ""; }; DA9F7E951DCC052C00ACAE48 /* SDLLocationCoordinate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLocationCoordinate.h; sourceTree = ""; }; DA9F7E961DCC052C00ACAE48 /* SDLLocationCoordinate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLLocationCoordinate.m; sourceTree = ""; }; DA9F7E971DCC052C00ACAE48 /* SDLLocationDetails.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLocationDetails.h; sourceTree = ""; }; @@ -2154,6 +2320,9 @@ DA9F7EB11DCC084300ACAE48 /* SDLDeliveryModeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLDeliveryModeSpec.m; sourceTree = ""; }; DA9F7EB31DCC086400ACAE48 /* SDLDateTimeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLDateTimeSpec.m; sourceTree = ""; }; DA9F7EB51DCC086A00ACAE48 /* SDLOasisAddressSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLOasisAddressSpec.m; sourceTree = ""; }; + DAA41D531DF66B2000BC7337 /* SDLH264VideoEncoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLH264VideoEncoder.h; sourceTree = ""; }; + DAA41D541DF66B2000BC7337 /* SDLH264VideoEncoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLH264VideoEncoder.m; sourceTree = ""; }; + DABB62161E4A900C0034C567 /* SDLH264VideoEncoderSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLH264VideoEncoderSpec.m; sourceTree = ""; }; DAC572551D1067270004288B /* SDLTouchManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLTouchManager.h; sourceTree = ""; }; DAC572561D1067270004288B /* SDLTouchManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTouchManager.m; sourceTree = ""; }; DAC572591D10B81E0004288B /* SDLTouch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTouch.m; sourceTree = ""; }; @@ -2165,8 +2334,6 @@ DAC572651D10C5640004288B /* CGPoint_Util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGPoint_Util.h; sourceTree = ""; }; DAC572681D10D5FC0004288B /* dispatch_timer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = dispatch_timer.m; sourceTree = ""; }; DAC572691D10D5FC0004288B /* dispatch_timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dispatch_timer.h; sourceTree = ""; }; - E9C32B841AB20B4300F283AF /* NSThread+ThreadIndex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSThread+ThreadIndex.h"; sourceTree = ""; }; - E9C32B851AB20B4300F283AF /* NSThread+ThreadIndex.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSThread+ThreadIndex.m"; sourceTree = ""; }; E9C32B891AB20BA200F283AF /* SDLIAPSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLIAPSession.h; sourceTree = ""; }; E9C32B8A1AB20BA200F283AF /* SDLIAPSession.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLIAPSession.m; sourceTree = ""; }; E9C32B8B1AB20BA200F283AF /* SDLIAPSessionDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLIAPSessionDelegate.h; sourceTree = ""; }; @@ -2178,6 +2345,13 @@ E9C32B991AB20C5900F283AF /* EAAccessory+SDLProtocols.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "EAAccessory+SDLProtocols.m"; sourceTree = ""; }; E9C32B9A1AB20C5900F283AF /* EAAccessoryManager+SDLProtocols.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "EAAccessoryManager+SDLProtocols.h"; sourceTree = ""; }; E9C32B9B1AB20C5900F283AF /* EAAccessoryManager+SDLProtocols.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "EAAccessoryManager+SDLProtocols.m"; sourceTree = ""; }; + EED5C9FD1F4D18D100F04000 /* SDLH264Packetizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLH264Packetizer.h; sourceTree = ""; }; + EED5C9FF1F4D18DC00F04000 /* SDLRAWH264Packetizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRAWH264Packetizer.h; sourceTree = ""; }; + EED5CA011F4D18EC00F04000 /* SDLRAWH264Packetizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRAWH264Packetizer.m; sourceTree = ""; }; + EED5CA031F4D1D5E00F04000 /* SDLRAWH264PacketizerSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLRAWH264PacketizerSpec.m; path = DevAPISpecs/SDLRAWH264PacketizerSpec.m; sourceTree = ""; }; + EED5CA051F4D1E2300F04000 /* SDLRTPH264Packetizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRTPH264Packetizer.h; sourceTree = ""; }; + EED5CA071F4D1E2E00F04000 /* SDLRTPH264Packetizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRTPH264Packetizer.m; sourceTree = ""; }; + EED5CA091F4D206800F04000 /* SDLRTPH264PacketizerSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLRTPH264PacketizerSpec.m; path = DevAPISpecs/SDLRTPH264PacketizerSpec.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -2189,6 +2363,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 5D43465D1E6F38E600B639C6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 5D61FA181A84237100846EE7 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -2216,7 +2397,6 @@ isa = PBXGroup; children = ( 162E81E11A9BDE8A00906325 /* EnumSpecs */, - 162E82261A9BDE8A00906325 /* FactorySpecs */, 162E82281A9BDE8A00906325 /* NotificationSpecs */, 162E823B1A9BDE8A00906325 /* PayloadSpecs */, 162E823D1A9BDE8A00906325 /* RequestSpecs */, @@ -2268,6 +2448,7 @@ 162E82041A9BDE8A00906325 /* SDLLockScreenStatusSpec.m */, 162E82051A9BDE8A00906325 /* SDLMaintenanceModeStatusSpec.m */, 162E82061A9BDE8A00906325 /* SDLMediaClockFormatSpec.m */, + 8BBEA6081F324832003EEA26 /* SDLMetadataTypeSpec.m */, 162E82071A9BDE8A00906325 /* SDLPermissionStatusSpec.m */, 162E82081A9BDE8A00906325 /* SDLPowerModeQualificationStatusSpec.m */, 162E82091A9BDE8A00906325 /* SDLPowerModeStatusSpec.m */, @@ -2275,6 +2456,7 @@ 162E820B1A9BDE8A00906325 /* SDLPrerecordedSpeechSpec.m */, 162E820C1A9BDE8A00906325 /* SDLPrimaryAudioSource.m */, 162E820D1A9BDE8A00906325 /* SDLPRNDLSpec.m */, + 1EE8C4371F347C7300FDC2CF /* SDLRadioBandSpec.m */, 162E820E1A9BDE8A00906325 /* SDLRequestTypeSpec.m */, 162E820F1A9BDE8A00906325 /* SDLResultSpec.m */, 162E82111A9BDE8A00906325 /* SDLSamplingRateSpec.m */, @@ -2286,7 +2468,6 @@ 162E82161A9BDE8A00906325 /* SDLTBTStateSpec.m */, 162E82171A9BDE8A00906325 /* SDLTextAlignmentSpec.m */, 162E82181A9BDE8A00906325 /* SDLTextFieldNameSpec.m */, - 8B0606211F30C108005ADB2F /* SDLMetadataTypeSpec.m */, 162E82191A9BDE8A00906325 /* SDLTimerModeSpec.m */, 162E821A1A9BDE8A00906325 /* SDLTouchTypeSpec.m */, 162E821B1A9BDE8A00906325 /* SDLTriggerSource.m */, @@ -2301,20 +2482,15 @@ 162E82241A9BDE8A00906325 /* SDLWarningLightStatusSpec.m */, DA9F7E9D1DCC05B900ACAE48 /* SDLWaypointTypeSpec.m */, 162E82251A9BDE8A00906325 /* SDLWiperStatusSpec.m */, - 8BD729B41F2A711D0029AC93 /* SDLVideoStreamingCodecSpec.m */, - 8BD729B61F2A75FD0029AC93 /* SDLVideoStreamingProtocolSpec.m */, + 8B7B31A81F2FB8BC00BDC38D /* SDLVideoStreamingProtocolSpec.m */, + 8B7B31AA1F2FB93500BDC38D /* SDLVideoStreamingCodecSpec.m */, + 1EE8C4391F347D4D00FDC2CF /* SDLRadioStateSpec.m */, + 1EE8C43B1F347EAE00FDC2CF /* SDLTemperatureUnitSpec.m */, + 1EE8C43D1F347F0500FDC2CF /* SDLVentilationModeSpec.m */, ); path = EnumSpecs; sourceTree = ""; }; - 162E82261A9BDE8A00906325 /* FactorySpecs */ = { - isa = PBXGroup; - children = ( - 162E82271A9BDE8A00906325 /* SDLRPCRequestFactorySpec.m */, - ); - path = FactorySpecs; - sourceTree = ""; - }; 162E82281A9BDE8A00906325 /* NotificationSpecs */ = { isa = PBXGroup; children = ( @@ -2327,6 +2503,7 @@ 162E822F1A9BDE8A00906325 /* SDLOnEncodedSyncPDataSpec.m */, 162E82301A9BDE8A00906325 /* SDLOnHashChangeSpec.m */, 162E82311A9BDE8A00906325 /* SDLOnHMIStatusSpec.m */, + 1EE8C4531F38762E00FDC2CF /* SDLOnInteriorVehicleDataSpec.m */, 162E82321A9BDE8A00906325 /* SDLOnKeyboardInputSpec.m */, 162E82331A9BDE8A00906325 /* SDLOnLanguageChangeSpec.m */, 162E82341A9BDE8A00906325 /* SDLOnLockScreenStatusSpec.m */, @@ -2356,6 +2533,7 @@ 162E823F1A9BDE8A00906325 /* SDLAddSubMenuSpec.m */, 162E82401A9BDE8A00906325 /* SDLAlertManeuverSpec.m */, 162E82411A9BDE8A00906325 /* SDLAlertSpec.m */, + 1EE8C4551F38788A00FDC2CF /* SDLButtonPressSpec.m */, 162E82421A9BDE8A00906325 /* SDLChangeRegistrationSpec.m */, 162E82431A9BDE8A00906325 /* SDLCreateInteractionChoiceSetSpec.m */, 162E82441A9BDE8A00906325 /* SDLDeleteCommandSpec.m */, @@ -2367,6 +2545,7 @@ 162E82491A9BDE8A00906325 /* SDLEncodedSyncPDataSpec.m */, 162E824A1A9BDE8A00906325 /* SDLEndAudioPassThruSpec.m */, 162E824B1A9BDE8A00906325 /* SDLGetDTCsSpec.m */, + 1EE8C4591F387BBB00FDC2CF /* SDLGetInteriorVehicleDataSpec.m */, 5D0A9F991F15636800CC80DD /* SDLGetSystemCapabilitiesSpec.m */, 162E824C1A9BDE8A00906325 /* SDLGetVehicleDataSpec.m */, DA9F7EA11DCC05E100ACAE48 /* SDLGetWaypointsSpec.m */, @@ -2378,7 +2557,6 @@ 162E82521A9BDE8A00906325 /* SDLRegisterAppInterfaceSpec.m */, 162E82531A9BDE8A00906325 /* SDLResetGlobalPropertiesSpec.m */, 162E82541A9BDE8A00906325 /* SDLScrollableMessageSpec.m */, - 88E071A71F327E3C00C9CB2F /* SDLSendHapticDataSpec.m */, 5DCF76FB1ACDDB4200BB647B /* SDLSendLocationSpec.m */, 162E82551A9BDE8A00906325 /* SDLSetAppIconSpec.m */, 162E82561A9BDE8A00906325 /* SDLSetDisplayLayoutSpec.m */, @@ -2398,6 +2576,8 @@ 162E82631A9BDE8A00906325 /* SDLUnsubscribeVehicleDataSpec.m */, DA9F7EA51DCC05F500ACAE48 /* SDLUnsubscribeWaypointsSpec.m */, 162E82641A9BDE8A00906325 /* SDLUpdateTurnListSpec.m */, + 1EE8C45E1F3884FF00FDC2CF /* SDLSetInteriorVehicleDataSpec.m */, + 8877F5EA1F34A3BE00DC128A /* SDLSendHapticDataSpec.m */, ); path = RequestSpecs; sourceTree = ""; @@ -2409,6 +2589,7 @@ 162E82671A9BDE8A00906325 /* SDLAddSubMenuResponseSpec.m */, 162E82681A9BDE8A00906325 /* SDLAlertManeuverResponseSpec.m */, 162E82691A9BDE8A00906325 /* SDLAlertResponseSpec.m */, + 1EE8C4571F387ABD00FDC2CF /* SDLButtonPressResponseSpec.m */, 162E826A1A9BDE8A00906325 /* SDLChangeRegistrationResponseSpec.m */, 162E826B1A9BDE8A00906325 /* SDLCreateInteractionChoiceSetResponseSpec.m */, 162E826C1A9BDE8A00906325 /* SDLDeleteCommandResponseSpec.m */, @@ -2421,7 +2602,8 @@ 162E82721A9BDE8A00906325 /* SDLEndAudioPassThruResponseSpec.m */, 162E82731A9BDE8A00906325 /* SDLGenericResponseSpec.m */, 162E82741A9BDE8A00906325 /* SDLGetDTCsResponseSpec.m */, - 5D0A9F9B1F1565EB00CC80DD /* SDLGetSystemCapabilitiesResponseSpec.m */, + 1EE8C45C1F387D1C00FDC2CF /* SDLGetInteriorVehicleDataResponseSpec.m */, + 5D0A9F9B1F1565EB00CC80DD /* SDLGetSystemCapabilityResponseSpec.m */, 162E82751A9BDE8A00906325 /* SDLGetVehicleDataResponseSpec.m */, DA9F7EA71DCC060B00ACAE48 /* SDLGetWaypointsResponseSpec.m */, 162E82761A9BDE8A00906325 /* SDLListFilesResponseSpec.m */, @@ -2432,11 +2614,11 @@ 162E827B1A9BDE8A00906325 /* SDLRegisterAppInterfaceResponseSpec.m */, 162E827C1A9BDE8A00906325 /* SDLResetGlobalPropertiesResponseSpec.m */, 162E827D1A9BDE8A00906325 /* SDLScrollableMessageResponseSpec.m */, - 8872772E1F33542000368CCD /* SDLSendHapticDataResponseSpec.m */, 5DCF76FD1ACDDB5A00BB647B /* SDLSendLocationResponseSpec.m */, 162E827E1A9BDE8A00906325 /* SDLSetAppIconResponseSpec.m */, 162E827F1A9BDE8A00906325 /* SDLSetDisplayLayoutResponseSpec.m */, 162E82801A9BDE8A00906325 /* SDLSetGlobalPropertiesResponseSpec.m */, + 1EE8C4601F38865B00FDC2CF /* SDLSetInteriorVehicleDataResponseSpec.m */, 162E82811A9BDE8A00906325 /* SDLSetMediaClockTimerResponseSpec.m */, 162E82821A9BDE8A00906325 /* SDLShowConstantTBTResponseSpec.m */, 162E82831A9BDE8A00906325 /* SDLShowResponseSpec.m */, @@ -2452,6 +2634,7 @@ 162E828C1A9BDE8A00906325 /* SDLUnsubscribeVehicleDataResponseSpec.m */, DA9F7EAB1DCC062400ACAE48 /* SDLUnsubscribeWaypointsResponseSpec.m */, 162E828D1A9BDE8A00906325 /* SDLUpdateTurnListResponseSpec.m */, + 8877F5F01F34AA2D00DC128A /* SDLSendHapticDataResponseSpec.m */, ); path = ResponseSpecs; sourceTree = ""; @@ -2466,6 +2649,8 @@ 162E82921A9BDE8A00906325 /* SDLBodyInformationSpec.m */, 162E82931A9BDE8A00906325 /* SDLButtonCapabilitiesSpec.m */, 162E82941A9BDE8A00906325 /* SDLChoiceSpec.m */, + 1EE8C43F1F348D3200FDC2CF /* SDLClimateControlCapabilitiesSpec.m */, + 1EE8C4431F34A1B900FDC2CF /* SDLClimateControlDataSpec.m */, 162E82951A9BDE8A00906325 /* SDLClusterModeStatusSpec.m */, DA9F7EB31DCC086400ACAE48 /* SDLDateTimeSpec.m */, 162E82961A9BDE8A00906325 /* SDLDeviceInfoSpec.m */, @@ -2475,17 +2660,19 @@ 162E829A1A9BDE8A00906325 /* SDLECallInfoSpec.m */, 162E829B1A9BDE8A00906325 /* SDLEmergencyEventSpec.m */, 162E829C1A9BDE8A00906325 /* SDLGPSDataSpec.m */, - 88E071A51F327A8B00C9CB2F /* SDLHapticRectSpec.m */, + 88EED83A1F33BECB00E6C42E /* SDLHapticRectSpec.m */, 162E829D1A9BDE8A00906325 /* SDLHeadLampStatusSpec.m */, 5DE372A31ACB336600849FAA /* SDLHMICapabilitiesSpec.m */, 162E829E1A9BDE8A00906325 /* SDLHMIPermissionsSpec.m */, 162E829F1A9BDE8A00906325 /* SDLImageFieldSpec.m */, + 5DB202261F5F2D030061D189 /* SDLImageResolutionSpec.m */, 162E82A01A9BDE8A00906325 /* SDLImageSpec.m */, 162E82A11A9BDE8A00906325 /* SDLKeyboardPropertiesSpec.m */, DA9F7EAD1DCC063400ACAE48 /* SDLLocationCoordinateSpec.m */, DA9F7EAE1DCC063400ACAE48 /* SDLLocationDetailsSpec.m */, 162E82A21A9BDE8A00906325 /* SDLMenuParamsSpec.m */, - 8B06062B1F310ED2005ADB2F /* SDLMetadataTagsSpec.m */, + 1EE8C4451F3837D200FDC2CF /* SDLModuleDataSpec.m */, + 8B9376DA1F33656C009605C4 /* SDLMetadataTagsSpec.m */, 162E82A31A9BDE8A00906325 /* SDLMyKeySpec.m */, 5D0A9F921F15560B00CC80DD /* SDLNavigationCapabilitySpec.m */, DA9F7EB51DCC086A00ACAE48 /* SDLOasisAddressSpec.m */, @@ -2493,7 +2680,11 @@ 162E82A51A9BDE8A00906325 /* SDLPermissionItemSpec.m */, 5D0A9F941F15585B00CC80DD /* SDLPhoneCapabilitySpec.m */, 162E82A61A9BDE8A00906325 /* SDLPresetBankCapabilitiesSpec.m */, - 5DADA7711F4DFB9B0084D17D /* SDLRectangleSpec.m */, + 1EE8C4471F38430900FDC2CF /* SDLRadioControlCapabilitiesSpec.m */, + 1EE8C4491F3846D300FDC2CF /* SDLRadioControlDataSpec.m */, + 1EE8C44B1F385C7100FDC2CF /* SDLRDSDataSpec.m */, + 1EE8C44F1F38629200FDC2CF /* SDLRemoteControlCapabilitiesSpec.m */, + 5DADA7771F4E059E0084D17D /* SDLRectangleSpec.m */, 162E82A71A9BDE8A00906325 /* SDLScreenParamsSpec.m */, 162E82A81A9BDE8A00906325 /* SDLSingleTireStatusSpec.m */, 162E82A91A9BDE8A00906325 /* SDLSoftButtonCapabilitiesSpec.m */, @@ -2501,6 +2692,7 @@ 162E82AB1A9BDE8A00906325 /* SDLStartTimeSpec.m */, 162E82AC1A9BDE8A00906325 /* SDLSyncMsgVersionSpec.m */, 5D0A9F961F1559EC00CC80DD /* SDLSystemCapabilitySpec.m */, + 1EE8C4511F38657D00FDC2CF /* SDLTemperatureSpec.m */, 162E82AD1A9BDE8A00906325 /* SDLTextFieldSpec.m */, 162E82AE1A9BDE8A00906325 /* SDLTireStatusSpec.m */, 162E82AF1A9BDE8A00906325 /* SDLTouchCoordSpec.m */, @@ -2510,9 +2702,9 @@ 162E82B31A9BDE8A00906325 /* SDLTurnSpec.m */, 162E82B41A9BDE8A00906325 /* SDLVehicleDataResultSpec.m */, 162E82B51A9BDE8A00906325 /* SDLVehicleTypeSpec.m */, - 8BF9DE061F2BAEEE004FFCBB /* SDLVideoStreamingFormatSpec.m */, - 8BF9DE081F2BAF0C004FFCBB /* SDLVideoStreamingCapabilitySpec.m */, 162E82B61A9BDE8A00906325 /* SDLVrHelpItemSpec.m */, + 8B7B31AE1F2FBA0200BDC38D /* SDLVideoStreamingCapabilitySpec.m */, + 8B7B31B01F2FBD9500BDC38D /* SDLVideoStreamingFormatSpec.m */, ); path = StructSpecs; sourceTree = ""; @@ -2520,7 +2712,6 @@ 162E82B71A9BDE8A00906325 /* SuperclassSpecs */ = { isa = PBXGroup; children = ( - 162E82B81A9BDE8A00906325 /* SDLEnumSpec.m */, 162E82B91A9BDE8A00906325 /* SDLRPCMessageSpec.m */, 162E82BA1A9BDE8A00906325 /* SDLRPCNotificationSpec.m */, 162E82BB1A9BDE8A00906325 /* SDLRPCRequestSpec.m */, @@ -2663,6 +2854,7 @@ 5D4019B11A76EC350006B0C2 /* Example */, 5D61FA1D1A84237100846EE7 /* SmartDeviceLink */, 5D61FA2C1A84237100846EE7 /* SmartDeviceLinkTests */, + 5D4346621E6F38E600B639C6 /* SmartDeviceLinkSwift */, 5D4019B01A76EC350006B0C2 /* Products */, ); sourceTree = ""; @@ -2673,6 +2865,7 @@ 5D4019AF1A76EC350006B0C2 /* SDL Example.app */, 5D61FA1C1A84237100846EE7 /* SmartDeviceLink.framework */, 5D61FA261A84237100846EE7 /* SmartDeviceLinkTests.xctest */, + 5D4346611E6F38E600B639C6 /* SmartDeviceLinkSwift.framework */, ); name = Products; sourceTree = ""; @@ -2704,6 +2897,39 @@ name = "Supporting Files"; sourceTree = ""; }; + 5D4346431E6F0B5600B639C6 /* LoggingSpecs */ = { + isa = PBXGroup; + children = ( + 5D4346701E6F616500B639C6 /* Mocks */, + 5D4346461E6F0BDA00B639C6 /* SDLLogFileModuleSpec.m */, + 5D43465A1E6F154400B639C6 /* SDLLogConfigurationSpec.m */, + 5D43466A1E6F3B4C00B639C6 /* SDLLogFilterSpec.m */, + 5D43466C1E6F522000B639C6 /* SDLLogModelSpec.m */, + 5D43466E1E6F55BD00B639C6 /* SDLLogManagerSpec.m */, + 88D2AAE31F682BB20078D5B2 /* SDLLogConstantsSpec.m */, + ); + name = LoggingSpecs; + sourceTree = ""; + }; + 5D4346621E6F38E600B639C6 /* SmartDeviceLinkSwift */ = { + isa = PBXGroup; + children = ( + 5D4346851E771B5700B639C6 /* SDLLog.swift */, + 5D4346631E6F38E600B639C6 /* SmartDeviceLinkSwift.h */, + 5D4346641E6F38E600B639C6 /* Info.plist */, + ); + path = SmartDeviceLinkSwift; + sourceTree = ""; + }; + 5D4346701E6F616500B639C6 /* Mocks */ = { + isa = PBXGroup; + children = ( + 5D4346711E6F617D00B639C6 /* TestLogTarget.h */, + 5D4346721E6F617D00B639C6 /* TestLogTarget.m */, + ); + name = Mocks; + sourceTree = ""; + }; 5D4631051F2125F70092EFDC /* @protocols */ = { isa = PBXGroup; children = ( @@ -2785,10 +3011,6 @@ 5D61FB641A84238B00846EE7 /* SDLProxy.m */, 5D61FB651A84238B00846EE7 /* SDLProxyFactory.h */, 5D61FB661A84238B00846EE7 /* SDLProxyFactory.m */, - 5D61FBF21A84238C00846EE7 /* SDLTTSChunkFactory.h */, - 5D61FBF31A84238C00846EE7 /* SDLTTSChunkFactory.m */, - 5D53C46B1B7A99B9003526EA /* SDLStreamingMediaManager.h */, - 5D53C46C1B7A99B9003526EA /* SDLStreamingMediaManager.m */, ); name = Proxy; sourceTree = ""; @@ -2796,7 +3018,7 @@ 5D5934EE1A85160900687FB9 /* Protocol */ = { isa = PBXGroup; children = ( - 5DA49C8C1F1E549000E65FC5 /* BSON */, + 5DA49C8C1F1E549000E65FC5 /* BSON library */, 5D5934FA1A851AC900687FB9 /* @protocols */, 5D5935011A851D7E00687FB9 /* Header */, 5D5935021A851D8700687FB9 /* Message */, @@ -2821,7 +3043,6 @@ children = ( 5D5934FF1A851B8400687FB9 /* Superclasses */, 5D5935041A851E1A00687FB9 /* Payload */, - 5D5935031A851E1100687FB9 /* Factories */, 5D5934F11A85162800687FB9 /* Requests */, 5D5934F21A85163200687FB9 /* Responses */, 5D5934F31A85164500687FB9 /* Structs */, @@ -2861,6 +3082,8 @@ 5D61FA4B1A84238A00846EE7 /* SDLAlert.m */, 5D61FA4C1A84238A00846EE7 /* SDLAlertManeuver.h */, 5D61FA4D1A84238A00846EE7 /* SDLAlertManeuver.m */, + 1E5AD07E1F20B73E0029B8AF /* SDLButtonPress.h */, + 1E5AD07F1F20B73E0029B8AF /* SDLButtonPress.m */, 5D61FA6E1A84238A00846EE7 /* SDLChangeRegistration.h */, 5D61FA6F1A84238A00846EE7 /* SDLChangeRegistration.m */, 5D61FA7E1A84238A00846EE7 /* SDLCreateInteractionChoiceSet.h */, @@ -2883,12 +3106,14 @@ 5D61FAB71A84238A00846EE7 /* SDLEndAudioPassThru.m */, 5D61FAC41A84238A00846EE7 /* SDLGetDTCs.h */, 5D61FAC51A84238A00846EE7 /* SDLGetDTCs.m */, + 1E5AD0861F20B9AA0029B8AF /* SDLGetInteriorVehicleData.h */, + 1E5AD0871F20B9AA0029B8AF /* SDLGetInteriorVehicleData.m */, 5D00AC6D1F1511B9004000D9 /* SDLGetSystemCapability.h */, 5D00AC6E1F1511B9004000D9 /* SDLGetSystemCapability.m */, 5D61FAC81A84238A00846EE7 /* SDLGetVehicleData.h */, 5D61FAC91A84238A00846EE7 /* SDLGetVehicleData.m */, - DA9F7E6D1DCBFFDB00ACAE48 /* SDLGetWaypoints.h */, - DA9F7E6E1DCBFFDB00ACAE48 /* SDLGetWaypoints.m */, + DA9F7E6D1DCBFFDB00ACAE48 /* SDLGetWayPoints.h */, + DA9F7E6E1DCBFFDB00ACAE48 /* SDLGetWayPoints.m */, 5D61FAFF1A84238A00846EE7 /* SDLListFiles.h */, 5D61FB001A84238A00846EE7 /* SDLListFiles.m */, 5D61FB381A84238B00846EE7 /* SDLPerformAudioPassThru.h */, @@ -2905,8 +3130,8 @@ 5D61FB771A84238B00846EE7 /* SDLResetGlobalProperties.m */, 5D61FB8E1A84238B00846EE7 /* SDLScrollableMessage.h */, 5D61FB8F1A84238B00846EE7 /* SDLScrollableMessage.m */, - 88E0719D1F322C3100C9CB2F /* SDLSendHapticData.h */, - 88E0719E1F322C3100C9CB2F /* SDLSendHapticData.m */, + 88EED83C1F33C5A400E6C42E /* SDLSendHapticData.h */, + 88EED83D1F33C5A400E6C42E /* SDLSendHapticData.m */, 5DCF76F31ACDBAD300BB647B /* SDLSendLocation.h */, 5DCF76F41ACDBAD300BB647B /* SDLSendLocation.m */, 5D61FB921A84238B00846EE7 /* SDLSetAppIcon.h */, @@ -2915,6 +3140,8 @@ 5D61FB971A84238B00846EE7 /* SDLSetDisplayLayout.m */, 5D61FB9A1A84238B00846EE7 /* SDLSetGlobalProperties.h */, 5D61FB9B1A84238B00846EE7 /* SDLSetGlobalProperties.m */, + 1E5AD08E1F20BE820029B8AF /* SDLSetInteriorVehicleData.h */, + 1E5AD08F1F20BE820029B8AF /* SDLSetInteriorVehicleData.m */, 5D61FB9E1A84238B00846EE7 /* SDLSetMediaClockTimer.h */, 5D61FB9F1A84238B00846EE7 /* SDLSetMediaClockTimer.m */, 5D61FBA21A84238B00846EE7 /* SDLShow.h */, @@ -2929,8 +3156,8 @@ 5D61FBC11A84238B00846EE7 /* SDLSubscribeButton.m */, 5D61FBC41A84238B00846EE7 /* SDLSubscribeVehicleData.h */, 5D61FBC51A84238B00846EE7 /* SDLSubscribeVehicleData.m */, - DA9F7E851DCC049900ACAE48 /* SDLSubscribeWaypoints.h */, - DA9F7E861DCC049900ACAE48 /* SDLSubscribeWaypoints.m */, + DA9F7E851DCC049900ACAE48 /* SDLSubscribeWayPoints.h */, + DA9F7E861DCC049900ACAE48 /* SDLSubscribeWayPoints.m */, 5D61FBCA1A84238B00846EE7 /* SDLSyncPData.h */, 5D61FBCB1A84238B00846EE7 /* SDLSyncPData.m */, 5D61FBD21A84238B00846EE7 /* SDLSystemRequest.h */, @@ -2941,8 +3168,8 @@ 5D61FBFB1A84238C00846EE7 /* SDLUnsubscribeButton.m */, 5D61FBFE1A84238C00846EE7 /* SDLUnsubscribeVehicleData.h */, 5D61FBFF1A84238C00846EE7 /* SDLUnsubscribeVehicleData.m */, - DA9F7E911DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.h */, - DA9F7E921DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.m */, + DA9F7E911DCC04E400ACAE48 /* SDLUnsubscribeWayPoints.h */, + DA9F7E921DCC04E400ACAE48 /* SDLUnsubscribeWayPoints.m */, 5D61FC041A84238C00846EE7 /* SDLUpdateTurnList.h */, 5D61FC051A84238C00846EE7 /* SDLUpdateTurnList.m */, ); @@ -2960,6 +3187,8 @@ 5D61FA4F1A84238A00846EE7 /* SDLAlertManeuverResponse.m */, 5D61FA501A84238A00846EE7 /* SDLAlertResponse.h */, 5D61FA511A84238A00846EE7 /* SDLAlertResponse.m */, + 1E5AD0821F20B9290029B8AF /* SDLButtonPressResponse.h */, + 1E5AD0831F20B9290029B8AF /* SDLButtonPressResponse.m */, 5D61FA701A84238A00846EE7 /* SDLChangeRegistrationResponse.h */, 5D61FA711A84238A00846EE7 /* SDLChangeRegistrationResponse.m */, 5D61FA801A84238A00846EE7 /* SDLCreateInteractionChoiceSetResponse.h */, @@ -2984,12 +3213,14 @@ 5D61FAC31A84238A00846EE7 /* SDLGenericResponse.m */, 5D61FAC61A84238A00846EE7 /* SDLGetDTCsResponse.h */, 5D61FAC71A84238A00846EE7 /* SDLGetDTCsResponse.m */, + 1E5AD08A1F20BC320029B8AF /* SDLGetInteriorVehicleDataResponse.h */, + 1E5AD08B1F20BC320029B8AF /* SDLGetInteriorVehicleDataResponse.m */, 5D00AC711F151CFE004000D9 /* SDLGetSystemCapabilityResponse.h */, 5D00AC721F151CFE004000D9 /* SDLGetSystemCapabilityResponse.m */, 5D61FACA1A84238A00846EE7 /* SDLGetVehicleDataResponse.h */, 5D61FACB1A84238A00846EE7 /* SDLGetVehicleDataResponse.m */, - DA9F7E711DCC004C00ACAE48 /* SDLGetWaypointsResponse.h */, - DA9F7E721DCC004C00ACAE48 /* SDLGetWaypointsResponse.m */, + DA9F7E711DCC004C00ACAE48 /* SDLGetWayPointsResponse.h */, + DA9F7E721DCC004C00ACAE48 /* SDLGetWayPointsResponse.m */, 5D61FB011A84238A00846EE7 /* SDLListFilesResponse.h */, 5D61FB021A84238A00846EE7 /* SDLListFilesResponse.m */, 5D61FB3A1A84238B00846EE7 /* SDLPerformAudioPassThruResponse.h */, @@ -3006,14 +3237,18 @@ 5D61FB791A84238B00846EE7 /* SDLResetGlobalPropertiesResponse.m */, 5D61FB901A84238B00846EE7 /* SDLScrollableMessageResponse.h */, 5D61FB911A84238B00846EE7 /* SDLScrollableMessageResponse.m */, - 88E071A11F32454600C9CB2F /* SDLSendHapticDataResponse.h */, - 88E071A21F32454600C9CB2F /* SDLSendHapticDataResponse.m */, + 8877F5EC1F34A72200DC128A /* SDLSendHapticDataResponse.h */, + 8877F5ED1F34A72200DC128A /* SDLSendHapticDataResponse.m */, + 5DCF76F71ACDD7CD00BB647B /* SDLSendLocationResponse.h */, + 5DCF76F81ACDD7CD00BB647B /* SDLSendLocationResponse.m */, 5D61FB941A84238B00846EE7 /* SDLSetAppIconResponse.h */, 5D61FB951A84238B00846EE7 /* SDLSetAppIconResponse.m */, 5D61FB981A84238B00846EE7 /* SDLSetDisplayLayoutResponse.h */, 5D61FB991A84238B00846EE7 /* SDLSetDisplayLayoutResponse.m */, 5D61FB9C1A84238B00846EE7 /* SDLSetGlobalPropertiesResponse.h */, 5D61FB9D1A84238B00846EE7 /* SDLSetGlobalPropertiesResponse.m */, + 1E5AD0921F20BEAD0029B8AF /* SDLSetInteriorVehicleDataResponse.h */, + 1E5AD0931F20BEAD0029B8AF /* SDLSetInteriorVehicleDataResponse.m */, 5D61FBA01A84238B00846EE7 /* SDLSetMediaClockTimerResponse.h */, 5D61FBA11A84238B00846EE7 /* SDLSetMediaClockTimerResponse.m */, 5D61FBA61A84238B00846EE7 /* SDLShowConstantTBTResponse.h */, @@ -3028,8 +3263,8 @@ 5D61FBC31A84238B00846EE7 /* SDLSubscribeButtonResponse.m */, 5D61FBC61A84238B00846EE7 /* SDLSubscribeVehicleDataResponse.h */, 5D61FBC71A84238B00846EE7 /* SDLSubscribeVehicleDataResponse.m */, - DA9F7E891DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.h */, - DA9F7E8A1DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.m */, + DA9F7E891DCC04B000ACAE48 /* SDLSubscribeWayPointsResponse.h */, + DA9F7E8A1DCC04B000ACAE48 /* SDLSubscribeWayPointsResponse.m */, 5D61FBCC1A84238B00846EE7 /* SDLSyncPDataResponse.h */, 5D61FBCD1A84238B00846EE7 /* SDLSyncPDataResponse.m */, 5D61FBD41A84238B00846EE7 /* SDLSystemRequestResponse.h */, @@ -3040,12 +3275,10 @@ 5D61FBFD1A84238C00846EE7 /* SDLUnsubscribeButtonResponse.m */, 5D61FC001A84238C00846EE7 /* SDLUnsubscribeVehicleDataResponse.h */, 5D61FC011A84238C00846EE7 /* SDLUnsubscribeVehicleDataResponse.m */, - DA9F7E8D1DCC04C000ACAE48 /* SDLUnsubscribeWaypointsResponse.h */, - DA9F7E8E1DCC04C000ACAE48 /* SDLUnsubscribeWaypointsResponse.m */, + DA9F7E8D1DCC04C000ACAE48 /* SDLUnsubscribeWayPointsResponse.h */, + DA9F7E8E1DCC04C000ACAE48 /* SDLUnsubscribeWayPointsResponse.m */, 5D61FC061A84238C00846EE7 /* SDLUpdateTurnListResponse.h */, 5D61FC071A84238C00846EE7 /* SDLUpdateTurnListResponse.m */, - 5DCF76F71ACDD7CD00BB647B /* SDLSendLocationResponse.h */, - 5DCF76F81ACDD7CD00BB647B /* SDLSendLocationResponse.m */, ); name = Responses; sourceTree = ""; @@ -3067,6 +3300,10 @@ 5D61FA651A84238A00846EE7 /* SDLButtonCapabilities.m */, 5D61FA741A84238A00846EE7 /* SDLChoice.h */, 5D61FA751A84238A00846EE7 /* SDLChoice.m */, + 1E5AD0361F1F4E390029B8AF /* SDLClimateControlCapabilities.h */, + 1E5AD0371F1F4E390029B8AF /* SDLClimateControlCapabilities.m */, + 1E5AD06A1F208BAB0029B8AF /* SDLClimateControlData.h */, + 1E5AD06B1F208BAB0029B8AF /* SDLClimateControlData.m */, 5D61FA761A84238A00846EE7 /* SDLClusterModeStatus.h */, 5D61FA771A84238A00846EE7 /* SDLClusterModeStatus.m */, DA9F7E611DCBFAC800ACAE48 /* SDLDateTime.h */, @@ -3085,8 +3322,8 @@ 5D61FAAE1A84238A00846EE7 /* SDLEmergencyEvent.m */, 5D61FACE1A84238A00846EE7 /* SDLGPSData.h */, 5D61FACF1A84238A00846EE7 /* SDLGPSData.m */, - 88E071991F3221F000C9CB2F /* SDLHapticRect.h */, - 88E0719A1F3221F000C9CB2F /* SDLHapticRect.m */, + 88EED8361F33AE1700E6C42E /* SDLHapticRect.h */, + 88EED8371F33AE1700E6C42E /* SDLHapticRect.m */, 5D61FAD01A84238A00846EE7 /* SDLHeadLampStatus.h */, 5D61FAD11A84238A00846EE7 /* SDLHeadLampStatus.m */, 5DE3729F1ACB2ED300849FAA /* SDLHMICapabilities.h */, @@ -3107,8 +3344,10 @@ DA9F7E981DCC052C00ACAE48 /* SDLLocationDetails.m */, 5D61FB0B1A84238A00846EE7 /* SDLMenuParams.h */, 5D61FB0C1A84238A00846EE7 /* SDLMenuParams.m */, - 8B0606271F3103CE005ADB2F /* SDLMetadataTags.h */, - 8B0606281F3103CE005ADB2F /* SDLMetadataTags.m */, + 1E5AD06E1F209C880029B8AF /* SDLModuleData.h */, + 1E5AD06F1F209C880029B8AF /* SDLModuleData.m */, + 8B9376D51F3349FC009605C4 /* SDLMetadataTags.h */, + 8B9376D61F3349FC009605C4 /* SDLMetadataTags.m */, 5D61FB0D1A84238A00846EE7 /* SDLMyKey.h */, 5D61FB0E1A84238A00846EE7 /* SDLMyKey.m */, 5D00AC751F15283E004000D9 /* SDLNavigationCapability.h */, @@ -3123,8 +3362,16 @@ 5D00AC7A1F15287E004000D9 /* SDLPhoneCapability.m */, 5D61FB4E1A84238B00846EE7 /* SDLPresetBankCapabilities.h */, 5D61FB4F1A84238B00846EE7 /* SDLPresetBankCapabilities.m */, - 5DADA76D1F4DF5180084D17D /* SDLRectangle.h */, - 5DADA76E1F4DF5180084D17D /* SDLRectangle.m */, + 1E5AD0421F1F5A1F0029B8AF /* SDLRadioControlCapabilities.h */, + 1E5AD0431F1F5A1F0029B8AF /* SDLRadioControlCapabilities.m */, + 1E5AD0661F2080B50029B8AF /* SDLRadioControlData.h */, + 1E5AD0671F2080B50029B8AF /* SDLRadioControlData.m */, + 1E5AD0321F1F3AA30029B8AF /* SDLRemoteControlCapabilities.h */, + 1E5AD0331F1F3AA30029B8AF /* SDLRemoteControlCapabilities.m */, + 1E5AD05A1F2064A80029B8AF /* SDLRDSData.h */, + 1E5AD05B1F2064A80029B8AF /* SDLRDSData.m */, + 5DADA7731F4DFED60084D17D /* SDLRectangle.h */, + 5DADA7741F4DFED60084D17D /* SDLRectangle.m */, 5D61FB8C1A84238B00846EE7 /* SDLScreenParams.h */, 5D61FB8D1A84238B00846EE7 /* SDLScreenParams.m */, 5D61FBAA1A84238B00846EE7 /* SDLSingleTireStatus.h */, @@ -3139,6 +3386,8 @@ 5D61FBC91A84238B00846EE7 /* SDLSyncMsgVersion.m */, 5D00AC691F141339004000D9 /* SDLSystemCapability.h */, 5D00AC6A1F141339004000D9 /* SDLSystemCapability.m */, + 1E5AD0621F207DD50029B8AF /* SDLTemperature.h */, + 1E5AD0631F207DD50029B8AF /* SDLTemperature.m */, 5D61FBDC1A84238C00846EE7 /* SDLTextField.h */, 5D61FBDD1A84238C00846EE7 /* SDLTextField.m */, 5D61FBE21A84238C00846EE7 /* SDLTireStatus.h */, @@ -3159,10 +3408,10 @@ 5D61FC1F1A84238C00846EE7 /* SDLVehicleType.m */, 5D61FC221A84238C00846EE7 /* SDLVrHelpItem.h */, 5D61FC231A84238C00846EE7 /* SDLVrHelpItem.m */, - 8BD729AC1F2A5AA10029AC93 /* SDLVideoStreamingFormat.h */, - 8BD729AD1F2A5AA10029AC93 /* SDLVideoStreamingFormat.m */, - 8BD729B01F2A61DF0029AC93 /* SDLVideoStreamingCapability.h */, - 8BD729B11F2A61DF0029AC93 /* SDLVideoStreamingCapability.m */, + 8B7B31A01F2F7FEA00BDC38D /* SDLVideoStreamingFormat.h */, + 8B7B31A11F2F7FEA00BDC38D /* SDLVideoStreamingFormat.m */, + 8B7B31A41F2F875200BDC38D /* SDLVideoStreamingCapability.h */, + 8B7B31A51F2F875200BDC38D /* SDLVideoStreamingCapability.m */, ); name = Structs; sourceTree = ""; @@ -3196,6 +3445,8 @@ 5D61FA791A84238A00846EE7 /* SDLCompassDirection.m */, 5D61FA7A1A84238A00846EE7 /* SDLComponentVolumeStatus.h */, 5D61FA7B1A84238A00846EE7 /* SDLComponentVolumeStatus.m */, + 1E5AD04A1F1F79640029B8AF /* SDLDefrostZone.h */, + 1E5AD04B1F1F79640029B8AF /* SDLDefrostZone.m */, DA9F7E691DCBFB0700ACAE48 /* SDLDeliveryMode.h */, DA9F7E6A1DCBFB0700ACAE48 /* SDLDeliveryMode.m */, 5D61FA971A84238A00846EE7 /* SDLDeviceLevelStatus.h */, @@ -3246,6 +3497,10 @@ 5D61FB081A84238A00846EE7 /* SDLMaintenanceModeStatus.m */, 5D61FB091A84238A00846EE7 /* SDLMediaClockFormat.h */, 5D61FB0A1A84238A00846EE7 /* SDLMediaClockFormat.m */, + 1E5AD0461F1F773E0029B8AF /* SDLModuleType.h */, + 1E5AD0471F1F773E0029B8AF /* SDLModuleType.m */, + 8BBEA6041F324165003EEA26 /* SDLMetadataType.h */, + 8BBEA6051F324165003EEA26 /* SDLMetadataType.m */, 5D61FB421A84238B00846EE7 /* SDLPermissionStatus.h */, 5D61FB431A84238B00846EE7 /* SDLPermissionStatus.m */, 5D61FB461A84238B00846EE7 /* SDLPowerModeQualificationStatus.h */, @@ -3260,6 +3515,10 @@ 5D61FB511A84238B00846EE7 /* SDLPrimaryAudioSource.m */, 5D61FB541A84238B00846EE7 /* SDLPRNDL.h */, 5D61FB551A84238B00846EE7 /* SDLPRNDL.m */, + 1E5AD04E1F1F7BF10029B8AF /* SDLRadioBand.h */, + 1E5AD04F1F1F7BF10029B8AF /* SDLRadioBand.m */, + 1E5AD05E1F207AB10029B8AF /* SDLRadioState.h */, + 1E5AD05F1F207AB10029B8AF /* SDLRadioState.m */, 5D61FB741A84238B00846EE7 /* SDLRequestType.h */, 5D61FB751A84238B00846EE7 /* SDLRequestType.m */, 5D61FB7A1A84238B00846EE7 /* SDLResult.h */, @@ -3279,12 +3538,12 @@ 5D61FBD11A84238B00846EE7 /* SDLSystemContext.m */, 5D61FBD61A84238B00846EE7 /* SDLTBTState.h */, 5D61FBD71A84238B00846EE7 /* SDLTBTState.m */, + 1EE48E8E1F2F0EE700B98D08 /* SDLTemperatureUnit.h */, + 1EE48E8F1F2F0EE700B98D08 /* SDLTemperatureUnit.m */, 5D61FBDA1A84238B00846EE7 /* SDLTextAlignment.h */, 5D61FBDB1A84238C00846EE7 /* SDLTextAlignment.m */, 5D61FBDE1A84238C00846EE7 /* SDLTextFieldName.h */, 5D61FBDF1A84238C00846EE7 /* SDLTextFieldName.m */, - 8B06061D1F30BCED005ADB2F /* SDLMetadataType.h */, - 8B06061E1F30BCED005ADB2F /* SDLMetadataType.m */, 5D61FBE01A84238C00846EE7 /* SDLTimerMode.h */, 5D61FBE11A84238C00846EE7 /* SDLTimerMode.m */, 5D61FBEA1A84238C00846EE7 /* SDLTouchType.h */, @@ -3305,34 +3564,41 @@ 5D61FC1B1A84238C00846EE7 /* SDLVehicleDataStatus.m */, 5D61FC1C1A84238C00846EE7 /* SDLVehicleDataType.h */, 5D61FC1D1A84238C00846EE7 /* SDLVehicleDataType.m */, + 1E5AD03E1F1F58480029B8AF /* SDLVentilationMode.h */, + 1E5AD03F1F1F58480029B8AF /* SDLVentilationMode.m */, 5D61FC201A84238C00846EE7 /* SDLVrCapabilities.h */, 5D61FC211A84238C00846EE7 /* SDLVrCapabilities.m */, 5D61FC241A84238C00846EE7 /* SDLWarningLightStatus.h */, 5D61FC251A84238C00846EE7 /* SDLWarningLightStatus.m */, - DA9F7E811DCC047200ACAE48 /* SDLWaypointType.h */, - DA9F7E821DCC047200ACAE48 /* SDLWaypointType.m */, + DA9F7E811DCC047200ACAE48 /* SDLWayPointType.h */, + DA9F7E821DCC047200ACAE48 /* SDLWayPointType.m */, 5D61FC261A84238C00846EE7 /* SDLWiperStatus.h */, 5D61FC271A84238C00846EE7 /* SDLWiperStatus.m */, - 8BD729A41F2A2CF30029AC93 /* SDLVideoStreamingCodec.h */, - 8BD729A51F2A2CF30029AC93 /* SDLVideoStreamingCodec.m */, - 8BD729A81F2A41F40029AC93 /* SDLVideoStreamingProtocol.h */, - 8BD729A91F2A41F40029AC93 /* SDLVideoStreamingProtocol.m */, + 8B7B31981F2F7B5700BDC38D /* SDLVideoStreamingCodec.h */, + 8B7B31991F2F7B5700BDC38D /* SDLVideoStreamingCodec.m */, + 8B7B319C1F2F7CF700BDC38D /* SDLVideoStreamingProtocol.h */, + 8B7B319D1F2F7CF700BDC38D /* SDLVideoStreamingProtocol.m */, ); name = Enums; sourceTree = ""; }; - 5D5934F51A8516C800687FB9 /* Debug */ = { + 5D5934F51A8516C800687FB9 /* Logging */ = { isa = PBXGroup; children = ( - 5DE372A71ACC35C100849FAA /* @protocols */, - 5D61FA7C1A84238A00846EE7 /* SDLConsoleController.h */, - 5D61FA7D1A84238A00846EE7 /* SDLConsoleController.m */, - 5D61FA821A84238A00846EE7 /* SDLDebugTool.h */, - 5D61FA831A84238A00846EE7 /* SDLDebugTool.m */, - 5D61FBAC1A84238B00846EE7 /* SDLSiphonServer.h */, - 5D61FBAD1A84238B00846EE7 /* SDLSiphonServer.m */, - ); - name = Debug; + 5DD67CC01E68AE66009CD394 /* Modules */, + 5DBF063D1E64BDAE00A5CF03 /* Log Targets */, + 5DBF06211E64A83F00A5CF03 /* SDLLogManager.h */, + 5DBF06221E64A83F00A5CF03 /* SDLLogManager.m */, + 5DBF062B1E64A93A00A5CF03 /* SDLLogFilter.h */, + 5DBF062C1E64A93A00A5CF03 /* SDLLogFilter.m */, + 5DBF062F1E64A9C600A5CF03 /* SDLLogModel.h */, + 5DBF06301E64A9C600A5CF03 /* SDLLogModel.m */, + 5DBF06331E64A9FE00A5CF03 /* SDLLogConstants.h */, + 5DBF06371E64ABBE00A5CF03 /* SDLLogConfiguration.h */, + 5DBF06381E64ABBE00A5CF03 /* SDLLogConfiguration.m */, + 5DD67CC51E68B568009CD394 /* SDLLogMacros.h */, + ); + name = Logging; sourceTree = ""; }; 5D5934F61A85189500687FB9 /* Utilities */ = { @@ -3340,36 +3606,21 @@ children = ( 97E26DEA1E807AD70074A3C7 /* SDLMutableDataQueue.h */, 97E26DEB1E807AD70074A3C7 /* SDLMutableDataQueue.m */, - DAC5724C1D0FE3B60004288B /* Touches */, - 5DCC199D1B8221D2004FFAD9 /* HTTP Connection */, E9C32B831AB20B2900F283AF /* @categories */, - 5D5934F71A8519A700687FB9 /* JSON */, 5D5934F91A851A8000687FB9 /* Prioritized Objects */, 5D61FAD21A84238A00846EE7 /* SDLHexUtility.h */, 5D61FAD31A84238A00846EE7 /* SDLHexUtility.m */, - 5D61FAED1A84238A00846EE7 /* SDLJingle.h */, - 5D61FAEE1A84238A00846EE7 /* SDLJingle.m */, E9C32B8E1AB20BA200F283AF /* SDLTimer.h */, E9C32B8F1AB20BA200F283AF /* SDLTimer.m */, 5D61FB0F1A84238A00846EE7 /* SDLNames.h */, + DA0C46AC1DCD35080001F2A8 /* SDLNames.m */, 5D535DC31B72473800CF7760 /* SDLGlobals.h */, 5D535DC41B72473800CF7760 /* SDLGlobals.m */, + DA0C46AE1DCD41E30001F2A8 /* SDLMacros.h */, ); name = Utilities; sourceTree = ""; }; - 5D5934F71A8519A700687FB9 /* JSON */ = { - isa = PBXGroup; - children = ( - 5D5934FD1A851B1500687FB9 /* @protocols */, - 5D61FAEF1A84238A00846EE7 /* SDLJsonDecoder.h */, - 5D61FAF01A84238A00846EE7 /* SDLJsonDecoder.m */, - 5D61FAF11A84238A00846EE7 /* SDLJsonEncoder.h */, - 5D61FAF21A84238A00846EE7 /* SDLJsonEncoder.m */, - ); - name = JSON; - sourceTree = ""; - }; 5D5934F81A8519C300687FB9 /* Notification */ = { isa = PBXGroup; children = ( @@ -3391,6 +3642,8 @@ 5D61FB211A84238B00846EE7 /* SDLOnHashChange.m */, 5D61FB221A84238B00846EE7 /* SDLOnHMIStatus.h */, 5D61FB231A84238B00846EE7 /* SDLOnHMIStatus.m */, + 1E5AD0961F20C0FB0029B8AF /* SDLOnInteriorVehicleData.h */, + 1E5AD0971F20C0FB0029B8AF /* SDLOnInteriorVehicleData.m */, 5D61FB241A84238B00846EE7 /* SDLOnKeyboardInput.h */, 5D61FB251A84238B00846EE7 /* SDLOnKeyboardInput.m */, 5D61FB261A84238B00846EE7 /* SDLOnLanguageChange.h */, @@ -3409,8 +3662,8 @@ 5D61FB331A84238B00846EE7 /* SDLOnTouchEvent.m */, 5D61FB341A84238B00846EE7 /* SDLOnVehicleData.h */, 5D61FB351A84238B00846EE7 /* SDLOnVehicleData.m */, - DA9F7E7D1DCC028B00ACAE48 /* SDLOnWaypointChange.h */, - DA9F7E7E1DCC028B00ACAE48 /* SDLOnWaypointChange.m */, + DA9F7E7D1DCC028B00ACAE48 /* SDLOnWayPointChange.h */, + DA9F7E7E1DCC028B00ACAE48 /* SDLOnWayPointChange.m */, ); name = Notification; sourceTree = ""; @@ -3434,15 +3687,6 @@ name = "@protocols"; sourceTree = ""; }; - 5D5934FD1A851B1500687FB9 /* @protocols */ = { - isa = PBXGroup; - children = ( - 5D61FA841A84238A00846EE7 /* SDLDecoder.h */, - 5D61FAB51A84238A00846EE7 /* SDLEncoder.h */, - ); - name = "@protocols"; - sourceTree = ""; - }; 5D5934FE1A851B2500687FB9 /* @protocols */ = { isa = PBXGroup; children = ( @@ -3455,7 +3699,7 @@ isa = PBXGroup; children = ( 5D61FABA1A84238A00846EE7 /* SDLEnum.h */, - 5D61FABB1A84238A00846EE7 /* SDLEnum.m */, + DA4F47951E771AA100FC809E /* SDLEnum.m */, 5DB92D301AC9C8BA00C15BB0 /* SDLRPCStruct.h */, 5DB92D311AC9C8BA00C15BB0 /* SDLRPCStruct.m */, 5D61FB7C1A84238B00846EE7 /* SDLRPCMessage.h */, @@ -3505,15 +3749,6 @@ name = Message; sourceTree = ""; }; - 5D5935031A851E1100687FB9 /* Factories */ = { - isa = PBXGroup; - children = ( - 5D61FB861A84238B00846EE7 /* SDLRPCRequestFactory.h */, - 5D61FB871A84238B00846EE7 /* SDLRPCRequestFactory.m */, - ); - name = Factories; - sourceTree = ""; - }; 5D5935041A851E1A00687FB9 /* Payload */ = { isa = PBXGroup; children = ( @@ -3526,7 +3761,9 @@ 5D59DD451B14FDD000BE744D /* ProxySpecs */ = { isa = PBXGroup; children = ( + 1FF7DABF1F75CF6C00B46C30 /* SDLHapticManagerSpec.m */, 5D59DD461B14FDEE00BE744D /* SDLLockScreenStatusManagerSpec.m */, + DA661E2B1E553E7E001C1345 /* SDLStreamingMediaManagerSpec.m */, ); name = ProxySpecs; sourceTree = ""; @@ -3555,7 +3792,7 @@ children = ( 5DA3F3511BC4477B0026F2D0 /* Developer API */, 5D5934F61A85189500687FB9 /* Utilities */, - 5D5934F51A8516C800687FB9 /* Debug */, + 5D5934F51A8516C800687FB9 /* Logging */, 5D5934F01A85161A00687FB9 /* Transport */, 5D5934EF1A85160F00687FB9 /* RPCs */, 5D5934EE1A85160900687FB9 /* Protocol */, @@ -3588,6 +3825,7 @@ children = ( 167ED9231A9BB86300797BE5 /* Libraries */, 5DAE06711BDEC68700F9B498 /* Developer API Tests */, + 5D4346431E6F0B5600B639C6 /* LoggingSpecs */, 5D59DD451B14FDD000BE744D /* ProxySpecs */, 5DB92D201AC47AC400C15BB0 /* UtilitiesSpecs */, 1680B1041A9CD7AD00DBD79E /* ProtocolSpecs */, @@ -3635,7 +3873,6 @@ 5D6F7A301BC5B7100070BF37 /* Lock Screen UI */ = { isa = PBXGroup; children = ( - DA7515951D95FAA000F29323 /* iOS 7 Assets */, 5D6F7A3D1BC811FC0070BF37 /* SDLAssets.xcassets */, 5D616B481D552F7A00553F6B /* SDLLockScreen.storyboard */, 5D6F7A331BC5B9B60070BF37 /* SDLLockScreenViewController.h */, @@ -3710,12 +3947,14 @@ 5D8204171BCD80A200D0A41B /* Configurations */ = { isa = PBXGroup; children = ( + 5D82041C1BCD8E6100D0A41B /* SDLConfiguration.h */, + 5D82041D1BCD8E6100D0A41B /* SDLConfiguration.m */, 5D6F7A2C1BC5650B0070BF37 /* SDLLifecycleConfiguration.h */, 5D6F7A2D1BC5650B0070BF37 /* SDLLifecycleConfiguration.m */, 5D8204181BCD80BA00D0A41B /* SDLLockScreenConfiguration.h */, 5D8204191BCD80BA00D0A41B /* SDLLockScreenConfiguration.m */, - 5D82041C1BCD8E6100D0A41B /* SDLConfiguration.h */, - 5D82041D1BCD8E6100D0A41B /* SDLConfiguration.m */, + 5DA23FFE1F325621009C0313 /* SDLStreamingMediaConfiguration.h */, + 5DA23FFF1F325621009C0313 /* SDLStreamingMediaConfiguration.m */, ); name = Configurations; sourceTree = ""; @@ -3766,6 +4005,7 @@ 5DAE06721BDEC6C000F9B498 /* SDLFileSpec.m */, 5DAE06741BDEC6D600F9B498 /* SDLArtworkSpec.m */, 5D9F50821BEA5C6100FEF399 /* SDLFileManagerSpec.m */, + 88B848C41F45E20900DED768 /* Helpers */, ); name = Files; sourceTree = ""; @@ -3808,8 +4048,6 @@ 5DA3F3511BC4477B0026F2D0 /* Developer API */ = { isa = PBXGroup; children = ( - 5D6F7A301BC5B7100070BF37 /* Lock Screen UI */, - 5DA3F3611BC448690026F2D0 /* Handler Additions */, 5DA3F3561BC4480E0026F2D0 /* Utilities */, 5D8204171BCD80A200D0A41B /* Configurations */, 5DBAE0A61D355EF200CE00BF /* Managers */, @@ -3853,15 +4091,7 @@ name = Notifications; sourceTree = ""; }; - 5DA3F3611BC448690026F2D0 /* Handler Additions */ = { - isa = PBXGroup; - children = ( - 5D6F7A2A1BC45BF70070BF37 /* SDLRequestHandler.h */, - ); - name = "Handler Additions"; - sourceTree = ""; - }; - 5DA49C8C1F1E549000E65FC5 /* BSON */ = { + 5DA49C8C1F1E549000E65FC5 /* BSON library */ = { isa = PBXGroup; children = ( 5D9FDA891F2A7D3400A495C8 /* bson_array.c */, @@ -3872,7 +4102,7 @@ 5D9FDA8E1F2A7D3400A495C8 /* bson_util.h */, 5DA49CB51F1E64BB00E65FC5 /* emhashmap */, ); - name = BSON; + name = "BSON library"; sourceTree = ""; }; 5DA49CB51F1E64BB00E65FC5 /* emhashmap */ = { @@ -3899,6 +4129,17 @@ name = "Control Frame Payloads"; sourceTree = ""; }; + 5DA5918E1F96820F003264C3 /* Focus / Haptic */ = { + isa = PBXGroup; + children = ( + 1FF7DAB71F75B28E00B46C30 /* SDLFocusableItemHitTester.h */, + 1FF7DAB51F75B27300B46C30 /* SDLFocusableItemLocatorType.h */, + 1FF7DAB91F75B2A800B46C30 /* SDLFocusableItemLocator.h */, + 1FF7DABB1F75B2BF00B46C30 /* SDLFocusableItemLocator.m */, + ); + name = "Focus / Haptic"; + sourceTree = ""; + }; 5DAE06711BDEC68700F9B498 /* Developer API Tests */ = { isa = PBXGroup; children = ( @@ -3923,8 +4164,10 @@ 5DB1BCDB1D243DA8002FFC37 /* Configurations */ = { isa = PBXGroup; children = ( + 5DBEFA551F434F8A009EE295 /* Utilities */, 5DB1BCDC1D243DC3002FFC37 /* SDLLifecycleConfigurationSpec.m */, 5DB1BCDE1D243DD3002FFC37 /* SDLLockScreenConfigurationSpec.m */, + 5DBEFA531F434B9E009EE295 /* SDLStreamingMediaConfigurationSpec.m */, 5DB1BCE01D243DDE002FFC37 /* SDLConfigurationSpec.m */, ); name = Configurations; @@ -3935,6 +4178,8 @@ children = ( 5D9F50851BED412E00FEF399 /* TestConnectionManager.h */, 5D9F50861BED412E00FEF399 /* TestConnectionManager.m */, + 8850DB5E1F4475D30053A48D /* TestMultipleFilesConnectionManager.h */, + 8850DB5F1F4475D30053A48D /* TestMultipleFilesConnectionManager.m */, ); name = "Connection Manager"; sourceTree = ""; @@ -3960,11 +4205,9 @@ 5DB92D201AC47AC400C15BB0 /* UtilitiesSpecs */ = { isa = PBXGroup; children = ( - DA1166D71D14601C00438CEA /* Touches */, 5DEE55BE1B8509A5004F0D0F /* HTTP Connection */, 5DB92D2B1AC4A32A00C15BB0 /* Prioritized Objects */, 5DB92D231AC47B2C00C15BB0 /* SDLHexUtilitySpec.m */, - 5DB92D251AC4836F00C15BB0 /* SDLJingleSpec.m */, 5DC978251B7A38640012C2F1 /* SDLGlobalsSpec.m */, ); name = UtilitiesSpecs; @@ -4002,6 +4245,7 @@ 5DBAE0A51D355EE700CE00BF /* Lock Screen */ = { isa = PBXGroup; children = ( + 5D6F7A301BC5B7100070BF37 /* Lock Screen UI */, 5D76E31F1D39731100647CFA /* Utilities */, 5D4D67B21D30161600468B4A /* SDLLockScreenManager.h */, 5D4D67B31D30161600468B4A /* SDLLockScreenManager.m */, @@ -4019,6 +4263,7 @@ 5DBAE0A51D355EE700CE00BF /* Lock Screen */, 5D82042A1BCEA91E00D0A41B /* Files */, 5D8204291BCEA91400D0A41B /* Permissions */, + DA8966E71E56937100413EAB /* Streaming */, ); name = Managers; sourceTree = ""; @@ -4035,6 +4280,7 @@ 5DBAE0A81D35886E00CE00BF /* Managers */ = { isa = PBXGroup; children = ( + DA8966ED1E5693D100413EAB /* Streaming */, 5D1654541D3E753100554D93 /* Lifecycle */, 5D76E31A1D3805E600647CFA /* LockScreen */, 5D9F507F1BE7E6C900FEF399 /* Permissions */, @@ -4053,161 +4299,178 @@ name = Dispatchers; sourceTree = ""; }; - 5DC09ED71F2F7F1A00F4AB1D /* Control Frame Payloads */ = { + 5DBEFA551F434F8A009EE295 /* Utilities */ = { isa = PBXGroup; children = ( - 5DA23FF11F2FA32A009C0313 /* Audio Service */, - 5DC09ED81F2F7FC000F4AB1D /* General */, - 5DA23FF41F2FAA06009C0313 /* RPC Service */, - 5DA23FF91F2FB485009C0313 /* Video Service */, + 5DBEFA561F436132009EE295 /* SDLFakeSecurityManager.h */, + 5DBEFA571F436132009EE295 /* SDLFakeSecurityManager.m */, + 5DB202281F5F38B60061D189 /* SDLFakeStreamingManagerDataSource.h */, + 5DB202291F5F38B60061D189 /* SDLFakeStreamingManagerDataSource.m */, ); - name = "Control Frame Payloads"; + name = Utilities; sourceTree = ""; }; - 5DC09ED81F2F7FC000F4AB1D /* General */ = { + 5DBF063D1E64BDAE00A5CF03 /* Log Targets */ = { isa = PBXGroup; children = ( - 5DC09ED91F2F7FEC00F4AB1D /* SDLControlFramePayloadNakSpec.m */, - 5DA23FEF1F2FA0FF009C0313 /* SDLControlFramePayloadEndServiceSpec.m */, + 5DD67CAD1E65DD9C009CD394 /* Apple SysLog */, + 5DBF06401E64BDC500A5CF03 /* File */, + 5DBF063F1E64BDBE00A5CF03 /* OS_LOG */, + 5DBF06291E64A92C00A5CF03 /* SDLLogTarget.h */, ); - name = General; + name = "Log Targets"; sourceTree = ""; }; - 5DCC199D1B8221D2004FFAD9 /* HTTP Connection */ = { + 5DBF063F1E64BDBE00A5CF03 /* OS_LOG */ = { isa = PBXGroup; children = ( - 5DCC199E1B8221F3004FFAD9 /* SDLURLSession.h */, - 5DCC199F1B8221F3004FFAD9 /* SDLURLSession.m */, - 5DCC19A21B822804004FFAD9 /* SDLURLRequestTask.h */, - 5DCC19A31B822804004FFAD9 /* SDLURLRequestTask.m */, + 5DD67CBA1E661C84009CD394 /* SDLLogTargetOSLog.h */, + 5DD67CBB1E661C84009CD394 /* SDLLogTargetOSLog.m */, ); - name = "HTTP Connection"; + name = OS_LOG; sourceTree = ""; }; - 5DE372A71ACC35C100849FAA /* @protocols */ = { + 5DBF06401E64BDC500A5CF03 /* File */ = { isa = PBXGroup; children = ( - 5DE372A51ACC35B400849FAA /* SDLDebugToolConsole.h */, + 5DD67CB61E661C4A009CD394 /* SDLLogTargetFile.h */, + 5DD67CB71E661C4A009CD394 /* SDLLogTargetFile.m */, ); - name = "@protocols"; + name = File; sourceTree = ""; }; - 5DEE55BE1B8509A5004F0D0F /* HTTP Connection */ = { + 5DC09ED71F2F7F1A00F4AB1D /* Control Frame Payloads */ = { isa = PBXGroup; children = ( - 5DEE55BF1B8509CB004F0D0F /* SDLURLRequestTaskSpec.m */, - 5DF2BB9C1B94E38A00CE5994 /* SDLURLSessionSpec.m */, + 5DA23FF11F2FA32A009C0313 /* Audio Service */, + 5DC09ED81F2F7FC000F4AB1D /* General */, + 5DA23FF41F2FAA06009C0313 /* RPC Service */, + 5DA23FF91F2FB485009C0313 /* Video Service */, ); - name = "HTTP Connection"; + name = "Control Frame Payloads"; sourceTree = ""; }; - DA1166D71D14601C00438CEA /* Touches */ = { + 5DC09ED81F2F7FC000F4AB1D /* General */ = { isa = PBXGroup; children = ( - DA4353E61D2721680099B8C4 /* DispatchTimerSpec.m */, - DA4353E71D2721680099B8C4 /* SDLTouchManagerSpec.m */, - DA4353E81D2721680099B8C4 /* SDLTouchSpec.m */, - DA4353DE1D271FD10099B8C4 /* CGPointUtilSpec.m */, - DA4353E21D2720A30099B8C4 /* SDLPinchGestureSpec.m */, + 5DC09ED91F2F7FEC00F4AB1D /* SDLControlFramePayloadNakSpec.m */, + 5DA23FEF1F2FA0FF009C0313 /* SDLControlFramePayloadEndServiceSpec.m */, ); - name = Touches; + name = General; sourceTree = ""; }; - DA7515951D95FAA000F29323 /* iOS 7 Assets */ = { + 5DD67CAD1E65DD9C009CD394 /* Apple SysLog */ = { isa = PBXGroup; children = ( - DA7515961D95FAA000F29323 /* lock_arrow_down */, - DA75159F1D95FAA000F29323 /* lock_arrow_up */, - DA7515A81D95FAA000F29323 /* sdl_logo */, + 5DD67CAE1E65DDB7009CD394 /* SDLLogTargetAppleSystemLog.h */, + 5DD67CAF1E65DDB7009CD394 /* SDLLogTargetAppleSystemLog.m */, ); - path = "iOS 7 Assets"; + name = "Apple SysLog"; sourceTree = ""; }; - DA7515961D95FAA000F29323 /* lock_arrow_down */ = { + 5DD67CC01E68AE66009CD394 /* Modules */ = { isa = PBXGroup; children = ( - DA7515971D95FAA000F29323 /* black */, - DA75159B1D95FAA000F29323 /* white */, + 5DBF06251E64A91D00A5CF03 /* SDLLogFileModule.h */, + 5DBF06261E64A91D00A5CF03 /* SDLLogFileModule.m */, + 5DD67CC11E68AE82009CD394 /* SDLLogFileModuleMap.h */, + 5DD67CC21E68AE82009CD394 /* SDLLogFileModuleMap.m */, ); - path = lock_arrow_down; + name = Modules; sourceTree = ""; }; - DA7515971D95FAA000F29323 /* black */ = { + 5DEE55BE1B8509A5004F0D0F /* HTTP Connection */ = { isa = PBXGroup; children = ( - DA7515981D95FAA000F29323 /* lock_arrow_down_black.png */, - DA7515991D95FAA000F29323 /* lock_arrow_down_black@2x.png */, - DA75159A1D95FAA000F29323 /* lock_arrow_down_black@3x.png */, + 5DEE55BF1B8509CB004F0D0F /* SDLURLRequestTaskSpec.m */, + 5DF2BB9C1B94E38A00CE5994 /* SDLURLSessionSpec.m */, ); - path = black; + name = "HTTP Connection"; sourceTree = ""; }; - DA75159B1D95FAA000F29323 /* white */ = { + 88B848C41F45E20900DED768 /* Helpers */ = { isa = PBXGroup; children = ( - DA75159C1D95FAA000F29323 /* lock_arrow_down_white.png */, - DA75159D1D95FAA000F29323 /* lock_arrow_down_white@2x.png */, - DA75159E1D95FAA000F29323 /* lock_arrow_down_white@3x.png */, + 88B848C11F45E1A600DED768 /* TestResponse.h */, + 88B848C21F45E1A600DED768 /* TestResponse.m */, + 88B848C71F462E3600DED768 /* TestProgressResponse.h */, + 88B848C81F462E3600DED768 /* TestProgressResponse.m */, ); - path = white; + name = Helpers; sourceTree = ""; }; - DA75159F1D95FAA000F29323 /* lock_arrow_up */ = { + DA1166D71D14601C00438CEA /* Touches */ = { isa = PBXGroup; children = ( - DA7515A01D95FAA000F29323 /* black */, - DA7515A41D95FAA000F29323 /* white */, + DA4353E61D2721680099B8C4 /* DispatchTimerSpec.m */, + DA4353E71D2721680099B8C4 /* SDLTouchManagerSpec.m */, + DA4353E81D2721680099B8C4 /* SDLTouchSpec.m */, + DA4353DE1D271FD10099B8C4 /* CGPointUtilSpec.m */, + DA4353E21D2720A30099B8C4 /* SDLPinchGestureSpec.m */, ); - path = lock_arrow_up; + name = Touches; sourceTree = ""; }; - DA7515A01D95FAA000F29323 /* black */ = { + DA8966E71E56937100413EAB /* Streaming */ = { isa = PBXGroup; children = ( - DA7515A11D95FAA000F29323 /* lock_arrow_up_black.png */, - DA7515A21D95FAA000F29323 /* lock_arrow_up_black@2x.png */, - DA7515A31D95FAA000F29323 /* lock_arrow_up_black@3x.png */, + 5DA5918E1F96820F003264C3 /* Focus / Haptic */, + DAC5724C1D0FE3B60004288B /* Touches */, + DA8966F01E56970C00413EAB /* Utilities */, + DAA41D521DF66B1100BC7337 /* Video Encoding */, + DA8966E81E56938C00413EAB /* Lifecycle */, + 5D53C46B1B7A99B9003526EA /* SDLStreamingMediaManager.h */, + 5D53C46C1B7A99B9003526EA /* SDLStreamingMediaManager.m */, + 5D8A09801F54B4E5002502A2 /* SDLStreamingMediaManagerDataSource.h */, ); - path = black; + name = Streaming; sourceTree = ""; }; - DA7515A41D95FAA000F29323 /* white */ = { + DA8966E81E56938C00413EAB /* Lifecycle */ = { isa = PBXGroup; children = ( - DA7515A51D95FAA000F29323 /* lock_arrow_up_white.png */, - DA7515A61D95FAA000F29323 /* lock_arrow_up_white@2x.png */, - DA7515A71D95FAA000F29323 /* lock_arrow_up_white@3x.png */, + DA8966E91E56939F00413EAB /* SDLStreamingMediaLifecycleManager.h */, + DA8966EA1E56939F00413EAB /* SDLStreamingMediaLifecycleManager.m */, ); - path = white; + name = Lifecycle; sourceTree = ""; }; - DA7515A81D95FAA000F29323 /* sdl_logo */ = { + DA8966ED1E5693D100413EAB /* Streaming */ = { isa = PBXGroup; children = ( - DA7515A91D95FAA000F29323 /* black */, - DA7515AD1D95FAA000F29323 /* white */, + DA1166D71D14601C00438CEA /* Touches */, + DA8966EE1E5693E300413EAB /* SDLStreamingMediaLifecycleManagerSpec.m */, + DABB62161E4A900C0034C567 /* SDLH264VideoEncoderSpec.m */, + EED5CA031F4D1D5E00F04000 /* SDLRAWH264PacketizerSpec.m */, + EED5CA091F4D206800F04000 /* SDLRTPH264PacketizerSpec.m */, ); - path = sdl_logo; + name = Streaming; sourceTree = ""; }; - DA7515A91D95FAA000F29323 /* black */ = { + DA8966F01E56970C00413EAB /* Utilities */ = { isa = PBXGroup; children = ( - DA7515AA1D95FAA000F29323 /* sdl_logo_black.png */, - DA7515AB1D95FAA000F29323 /* sdl_logo_black@2x.png */, - DA7515AC1D95FAA000F29323 /* sdl_logo_black@3x.png */, + DA6223BB1E7B088200878689 /* CVPixelBufferRef+SDLUtil.h */, + DA6223BC1E7B088200878689 /* CVPixelBufferRef+SDLUtil.m */, + DA8966F11E56973700413EAB /* SDLStreamingMediaManagerConstants.h */, + DA8966F31E56977C00413EAB /* SDLStreamingMediaManagerConstants.m */, ); - path = black; + name = Utilities; sourceTree = ""; }; - DA7515AD1D95FAA000F29323 /* white */ = { + DAA41D521DF66B1100BC7337 /* Video Encoding */ = { isa = PBXGroup; children = ( - DA7515AE1D95FAA000F29323 /* sdl_logo_white.png */, - DA7515AF1D95FAA000F29323 /* sdl_logo_white@2x.png */, - DA7515B01D95FAA000F29323 /* sdl_logo_white@3x.png */, - ); - path = white; + 5DA23FFC1F312DBA009C0313 /* SDLVideoEncoderDelegate.h */, + DAA41D531DF66B2000BC7337 /* SDLH264VideoEncoder.h */, + DAA41D541DF66B2000BC7337 /* SDLH264VideoEncoder.m */, + EED5C9FD1F4D18D100F04000 /* SDLH264Packetizer.h */, + EED5C9FF1F4D18DC00F04000 /* SDLRAWH264Packetizer.h */, + EED5CA011F4D18EC00F04000 /* SDLRAWH264Packetizer.m */, + EED5CA051F4D1E2300F04000 /* SDLRTPH264Packetizer.h */, + EED5CA071F4D1E2E00F04000 /* SDLRTPH264Packetizer.m */, + ); + name = "Video Encoding"; sourceTree = ""; }; DAC5724C1D0FE3B60004288B /* Touches */ = { @@ -4235,8 +4498,8 @@ E9C32B991AB20C5900F283AF /* EAAccessory+SDLProtocols.m */, E9C32B9A1AB20C5900F283AF /* EAAccessoryManager+SDLProtocols.h */, E9C32B9B1AB20C5900F283AF /* EAAccessoryManager+SDLProtocols.m */, - E9C32B841AB20B4300F283AF /* NSThread+ThreadIndex.h */, - E9C32B851AB20B4300F283AF /* NSThread+ThreadIndex.m */, + DA318C1D1DD0F06C00C035AC /* NSMutableDictionary+Store.h */, + DA318C1E1DD0F06C00C035AC /* NSMutableDictionary+Store.m */, ); name = "@categories"; sourceTree = ""; @@ -4244,10 +4507,19 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ + 5D43465E1E6F38E600B639C6 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 5D4346651E6F38E600B639C6 /* SmartDeviceLinkSwift.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 5D61FA191A84237100846EE7 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + 8BBEA6061F324165003EEA26 /* SDLMetadataType.h in Headers */, 5DA3F35A1BC448480026F2D0 /* SDLError.h in Headers */, 5DA3F35F1BC448590026F2D0 /* SDLNotificationConstants.h in Headers */, 5DE5ABB71B0E38C90067BB02 /* SDLSystemRequest.h in Headers */, @@ -4258,6 +4530,7 @@ 5D3E48CB1D7722FE0000BFEF /* NSBundle+SDLBundle.h in Headers */, 5D61FD851A84238C00846EE7 /* SDLSetDisplayLayoutResponse.h in Headers */, 5D61FD751A84238C00846EE7 /* SDLRPCResponse.h in Headers */, + 8B7B31A21F2F7FEA00BDC38D /* SDLVideoStreamingFormat.h in Headers */, 5D61FC901A84238C00846EE7 /* SDLDisplayCapabilities.h in Headers */, 5D61FCE81A84238C00846EE7 /* SDLLanguage.h in Headers */, 5D61FC841A84238C00846EE7 /* SDLDeviceLevelStatus.h in Headers */, @@ -4266,11 +4539,14 @@ 5D61FD291A84238C00846EE7 /* SDLPerformInteraction.h in Headers */, DAC572571D1067270004288B /* SDLTouchManager.h in Headers */, 5D61FD521A84238C00846EE7 /* SDLProxyFactory.h in Headers */, - 5D61FCDA1A84238C00846EE7 /* SDLJingle.h in Headers */, 5D61FE0D1A84238C00846EE7 /* SDLVrCapabilities.h in Headers */, + 5DBF06271E64A91D00A5CF03 /* SDLLogFileModule.h in Headers */, 5D61FC531A84238C00846EE7 /* SDLButtonEventMode.h in Headers */, + 1FF7DAB61F75B27300B46C30 /* SDLFocusableItemLocatorType.h in Headers */, 5D61FC781A84238C00846EE7 /* SDLDeleteFileResponse.h in Headers */, + 5DA240001F325621009C0313 /* SDLStreamingMediaConfiguration.h in Headers */, 5D61FC5F1A84238C00846EE7 /* SDLCharacterSet.h in Headers */, + 5DD67CC71E68B568009CD394 /* SDLLogMacros.h in Headers */, 5D61FCFF1A84238C00846EE7 /* SDLOnAppInterfaceUnregistered.h in Headers */, 5D61FDC51A84238C00846EE7 /* SDLTCPTransport.h in Headers */, 5D6CC8EF1C610E660027F60A /* SDLSecurityType.h in Headers */, @@ -4279,12 +4555,12 @@ 5D61FCC91A84238C00846EE7 /* SDLIgnitionStableStatus.h in Headers */, DA9F7E6B1DCBFB0700ACAE48 /* SDLDeliveryMode.h in Headers */, E9C32B941AB20BA200F283AF /* SDLStreamDelegate.h in Headers */, - DA9F7E871DCC049900ACAE48 /* SDLSubscribeWaypoints.h in Headers */, + DA9F7E871DCC049900ACAE48 /* SDLSubscribeWayPoints.h in Headers */, 5D61FDBB1A84238C00846EE7 /* SDLSystemAction.h in Headers */, + 5D8A09811F54B4E5002502A2 /* SDLStreamingMediaManagerDataSource.h in Headers */, 5D61FC9C1A84238C00846EE7 /* SDLEmergencyEventType.h in Headers */, 5D61FD131A84238C00846EE7 /* SDLOnLanguageChange.h in Headers */, 5D61FDE71A84238C00846EE7 /* SDLUnsubscribeButton.h in Headers */, - 5D61FC691A84238C00846EE7 /* SDLConsoleController.h in Headers */, 5D61FCAB1A84238C00846EE7 /* SDLFuelCutoffStatus.h in Headers */, 5DB9965C1F268F97002D8795 /* SDLControlFramePayloadVideoStartService.h in Headers */, 5D1665C81CF8CA3D00CC4CA1 /* SDLPermissionFilter.h in Headers */, @@ -4292,10 +4568,10 @@ 5D61FCD71A84238C00846EE7 /* SDLInteractionMode.h in Headers */, 5D61FC391A84238C00846EE7 /* SDLAlertManeuver.h in Headers */, 5D61FC861A84238C00846EE7 /* SDLDeviceStatus.h in Headers */, + DA0C46AF1DCD41E30001F2A8 /* SDLMacros.h in Headers */, 5D61FCC71A84238C00846EE7 /* SDLIAPTransport.h in Headers */, 5D61FC6D1A84238C00846EE7 /* SDLCreateInteractionChoiceSetResponse.h in Headers */, 5D8204221BCEA89A00D0A41B /* SDLFileManager.h in Headers */, - 88E0719B1F3221F000C9CB2F /* SDLHapticRect.h in Headers */, 5D4D67B41D30161600468B4A /* SDLLockScreenManager.h in Headers */, 5D00AC7B1F15287E004000D9 /* SDLPhoneCapability.h in Headers */, 5D61FE111A84238C00846EE7 /* SDLWarningLightStatus.h in Headers */, @@ -4303,12 +4579,12 @@ 5D61FC3B1A84238C00846EE7 /* SDLAlertManeuverResponse.h in Headers */, 5DB9964E1F26886C002D8795 /* SDLControlFramePayloadEndService.h in Headers */, 5D9FDA991F2A7D3F00A495C8 /* emhashmap.h in Headers */, - 5D61FC6F1A84238C00846EE7 /* SDLDebugTool.h in Headers */, 5D61FDB71A84238C00846EE7 /* SDLSyncPData.h in Headers */, 5D61FD011A84238C00846EE7 /* SDLOnAudioPassThru.h in Headers */, 5D9FDA901F2A7D3400A495C8 /* bson_array.h in Headers */, 5D61FDCB1A84238C00846EE7 /* SDLTextFieldName.h in Headers */, 5D61FD8B1A84238C00846EE7 /* SDLSetMediaClockTimer.h in Headers */, + DA6223BD1E7B088200878689 /* CVPixelBufferRef+SDLUtil.h in Headers */, 5D61FD031A84238C00846EE7 /* SDLOnButtonEvent.h in Headers */, 5D61FDAF1A84238C00846EE7 /* SDLSubscribeButtonResponse.h in Headers */, 5D61FCB51A84238C00846EE7 /* SDLGetVehicleData.h in Headers */, @@ -4320,13 +4596,13 @@ 5D61FD791A84238C00846EE7 /* SDLScreenParams.h in Headers */, 5D61FDCF1A84238C00846EE7 /* SDLTireStatus.h in Headers */, 5D61FDFD1A84238C00846EE7 /* SDLVehicleDataActiveStatus.h in Headers */, - 88E071A31F32454600C9CB2F /* SDLSendHapticDataResponse.h in Headers */, 5D61FD811A84238C00846EE7 /* SDLSetAppIconResponse.h in Headers */, 5D61FC551A84238C00846EE7 /* SDLButtonName.h in Headers */, 5D616B531D59044400553F6B /* SDLErrorConstants.h in Headers */, + 5DADA7751F4DFED60084D17D /* SDLRectangle.h in Headers */, 5D61FD9F1A84238C00846EE7 /* SDLSoftButton.h in Headers */, + 5DD67CBC1E661C84009CD394 /* SDLLogTargetOSLog.h in Headers */, 5D61FD551A84238C00846EE7 /* SDLPutFile.h in Headers */, - 5DE372A61ACC35B400849FAA /* SDLDebugToolConsole.h in Headers */, 5D61FD091A84238C00846EE7 /* SDLOnDriverDistraction.h in Headers */, E9C32B9E1AB20C5900F283AF /* EAAccessoryManager+SDLProtocols.h in Headers */, 5D61FC4B1A84238C00846EE7 /* SDLBeltStatus.h in Headers */, @@ -4336,20 +4612,26 @@ 5D61FC8A1A84238C00846EE7 /* SDLDiagnosticMessageResponse.h in Headers */, 5D61FC2D1A84238C00846EE7 /* SDLAddCommand.h in Headers */, 5D61FD931A84238C00846EE7 /* SDLShowConstantTBTResponse.h in Headers */, + 5DBF06391E64ABBE00A5CF03 /* SDLLogConfiguration.h in Headers */, 5D61FCCB1A84238C00846EE7 /* SDLIgnitionStatus.h in Headers */, 5D61FCB71A84238C00846EE7 /* SDLGetVehicleDataResponse.h in Headers */, 5D61FDA91A84238C00846EE7 /* SDLSpeechCapabilities.h in Headers */, + 5DA23FFD1F312DBA009C0313 /* SDLVideoEncoderDelegate.h in Headers */, 5D61FCE01A84238C00846EE7 /* SDLKeyboardEvent.h in Headers */, 5D3E48751D6F3B330000BFEF /* SDLAsynchronousOperation.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 */, 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 */, + DAA41D551DF66B2000BC7337 /* SDLH264VideoEncoder.h in Headers */, + 8B7B319A1F2F7B5700BDC38D /* SDLVideoStreamingCodec.h in Headers */, 5D61FCAF1A84238C00846EE7 /* SDLGenericResponse.h in Headers */, 5D61FC4F1A84238C00846EE7 /* SDLBodyInformation.h in Headers */, 5D61FDAB1A84238C00846EE7 /* SDLStartTime.h in Headers */, @@ -4365,17 +4647,18 @@ 5D61FC491A84238C00846EE7 /* SDLAudioType.h in Headers */, 5D61FC761A84238C00846EE7 /* SDLDeleteFile.h in Headers */, 5D61FD211A84238C00846EE7 /* SDLOnVehicleData.h in Headers */, - DA9F7E731DCC004C00ACAE48 /* SDLGetWaypointsResponse.h in Headers */, + DA9F7E731DCC004C00ACAE48 /* SDLGetWayPointsResponse.h in Headers */, + 88EED8381F33AE1700E6C42E /* SDLHapticRect.h in Headers */, + 5DD67CC31E68AE82009CD394 /* SDLLogFileModuleMap.h in Headers */, + EED5C9FE1F4D18D100F04000 /* SDLH264Packetizer.h in Headers */, 5D61FD7D1A84238C00846EE7 /* SDLScrollableMessageResponse.h in Headers */, 5D61FD431A84238C00846EE7 /* SDLProtocol.h in Headers */, 5D8B17531AC9E11B006A6E1C /* SDLDialNumberResponse.h in Headers */, 5D61FC921A84238C00846EE7 /* SDLDisplayType.h in Headers */, 5D61FD0D1A84238C00846EE7 /* SDLOnHashChange.h in Headers */, - 5D61FDDF1A84238C00846EE7 /* SDLTTSChunkFactory.h in Headers */, 5D61FC6B1A84238C00846EE7 /* SDLCreateInteractionChoiceSet.h in Headers */, 5D61FCE61A84238C00846EE7 /* SDLKeypressMode.h in Headers */, 5D61FD871A84238C00846EE7 /* SDLSetGlobalProperties.h in Headers */, - E9C32B861AB20B4300F283AF /* NSThread+ThreadIndex.h in Headers */, 5D61FC741A84238C00846EE7 /* SDLDeleteCommandResponse.h in Headers */, 5D61FDF11A84238C00846EE7 /* SDLUpdateTurnList.h in Headers */, 5DB996571F268ECB002D8795 /* SDLControlFramePayloadAudioStartServiceAck.h in Headers */, @@ -4387,7 +4670,6 @@ 5D00AC6F1F1511B9004000D9 /* SDLGetSystemCapability.h in Headers */, 5D61FD891A84238C00846EE7 /* SDLSetGlobalPropertiesResponse.h in Headers */, 5D61FD8D1A84238C00846EE7 /* SDLSetMediaClockTimerResponse.h in Headers */, - 8B0606291F3103CE005ADB2F /* SDLMetadataTags.h in Headers */, 5D61FD3B1A84238C00846EE7 /* SDLPresetBankCapabilities.h in Headers */, 5D8204311BD001C700D0A41B /* SDLArtwork.h in Headers */, 5D53C46D1B7A99B9003526EA /* SDLStreamingMediaManager.h in Headers */, @@ -4395,12 +4677,11 @@ 5D61FD5F1A84238C00846EE7 /* SDLRegisterAppInterfaceResponse.h in Headers */, 5D61FD191A84238C00846EE7 /* SDLOnSyncPData.h in Headers */, 5D61FE091A84238C00846EE7 /* SDLVehicleDataType.h in Headers */, - 5DCC19A01B8221F3004FFAD9 /* SDLURLSession.h in Headers */, 5D61FDB11A84238C00846EE7 /* SDLSubscribeVehicleData.h in Headers */, 5DB996601F28C6ED002D8795 /* SDLControlFramePayloadVideoStartServiceAck.h in Headers */, 5DCF76F51ACDBAD300BB647B /* SDLSendLocation.h in Headers */, 5D61FC9E1A84238C00846EE7 /* SDLEncodedSyncPData.h in Headers */, - 88E0719F1F322C3100C9CB2F /* SDLSendHapticData.h in Headers */, + 1FF7DABA1F75B2A800B46C30 /* SDLFocusableItemLocator.h in Headers */, 5D61FC291A84238C00846EE7 /* SDLAbstractProtocol.h in Headers */, 5D61FDE11A84238C00846EE7 /* SDLTurn.h in Headers */, 5D61FC801A84238C00846EE7 /* SDLDeleteSubMenuResponse.h in Headers */, @@ -4415,10 +4696,11 @@ 5D61FDD31A84238C00846EE7 /* SDLTouchEvent.h in Headers */, 5D61FD451A84238C00846EE7 /* SDLProtocolHeader.h in Headers */, 5D61FCFA1A84238C00846EE7 /* SDLMyKey.h in Headers */, + 8B7B31A61F2F875200BDC38D /* SDLVideoStreamingCapability.h in Headers */, 5D61FC981A84238C00846EE7 /* SDLECallInfo.h in Headers */, 5D9FDA921F2A7D3400A495C8 /* bson_object.h in Headers */, 5D61FD7B1A84238C00846EE7 /* SDLScrollableMessage.h in Headers */, - DA9F7E931DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.h in Headers */, + DA9F7E931DCC04E400ACAE48 /* SDLUnsubscribeWayPoints.h in Headers */, 5D61FD3D1A84238C00846EE7 /* SDLPrimaryAudioSource.h in Headers */, DAC5725C1D10B81E0004288B /* SDLTouch.h in Headers */, 5D6F7A2E1BC5650B0070BF37 /* SDLLifecycleConfiguration.h in Headers */, @@ -4441,12 +4723,11 @@ 5D61FD651A84238C00846EE7 /* SDLResetGlobalPropertiesResponse.h in Headers */, DA9F7E671DCBFAD400ACAE48 /* SDLOasisAddress.h in Headers */, 5D61FD611A84238C00846EE7 /* SDLRequestType.h in Headers */, - DA9F7E8B1DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.h in Headers */, + DA9F7E8B1DCC04B000ACAE48 /* SDLSubscribeWayPointsResponse.h in Headers */, 5D61FCEC1A84238C00846EE7 /* SDLListFiles.h in Headers */, 5D2F58081D0717D5001085CE /* SDLManagerDelegate.h in Headers */, 5D61FC881A84238C00846EE7 /* SDLDiagnosticMessage.h in Headers */, 5D61FDB31A84238C00846EE7 /* SDLSubscribeVehicleDataResponse.h in Headers */, - 5D61FD991A84238C00846EE7 /* SDLSiphonServer.h in Headers */, 5D61FC961A84238C00846EE7 /* SDLECallConfirmationStatus.h in Headers */, 5D4D67AC1D2ED37A00468B4A /* SDLNotificationDispatcher.h in Headers */, 5D61FDA51A84238C00846EE7 /* SDLSpeak.h in Headers */, @@ -4457,13 +4738,14 @@ 5D4D67B01D2FE2F900468B4A /* SDLResponseDispatcher.h in Headers */, 5D61FCF21A84238C00846EE7 /* SDLLockScreenStatus.h in Headers */, 5D00AC771F15283E004000D9 /* SDLNavigationCapability.h in Headers */, - 8BD729AE1F2A5AA10029AC93 /* SDLVideoStreamingFormat.h in Headers */, + 88EED83E1F33C5A400E6C42E /* SDLSendHapticData.h in Headers */, 5D61FCD31A84238C00846EE7 /* SDLImageResolution.h in Headers */, + 8B7B319E1F2F7CF700BDC38D /* SDLVideoStreamingProtocol.h in Headers */, 5D61FD541A84238C00846EE7 /* SDLProxyListener.h in Headers */, - 5D61FD731A84238C00846EE7 /* SDLRPCRequestFactory.h in Headers */, 5D61FC5D1A84238C00846EE7 /* SDLChangeRegistrationResponse.h in Headers */, 5D61FDCD1A84238C00846EE7 /* SDLTimerMode.h in Headers */, E9C32B961AB20BA200F283AF /* SDLTimer.h in Headers */, + 1FF7DAB81F75B28E00B46C30 /* SDLFocusableItemHitTester.h in Headers */, 5D61FC3D1A84238C00846EE7 /* SDLAlertResponse.h in Headers */, 5D61FDAD1A84238C00846EE7 /* SDLSubscribeButton.h in Headers */, 5D8204261BCEA8A600D0A41B /* SDLPermissionManager.h in Headers */, @@ -4474,6 +4756,7 @@ 5D61FE071A84238C00846EE7 /* SDLVehicleDataStatus.h in Headers */, 5D61FD2D1A84238C00846EE7 /* SDLPermissionItem.h in Headers */, 5D61FCD11A84238C00846EE7 /* SDLImageFieldName.h in Headers */, + 5DBF062D1E64A93A00A5CF03 /* SDLLogFilter.h in Headers */, 5DCF76F91ACDD7CD00BB647B /* SDLSendLocationResponse.h in Headers */, 5D61FD391A84238C00846EE7 /* SDLPrerecordedSpeech.h in Headers */, 5D61FC671A84238C00846EE7 /* SDLComponentVolumeStatus.h in Headers */, @@ -4482,6 +4765,9 @@ 5D61FC721A84238C00846EE7 /* SDLDeleteCommand.h in Headers */, 5D61FC821A84238C00846EE7 /* SDLDeviceInfo.h in Headers */, 5D61FCA91A84238C00846EE7 /* SDLFileType.h in Headers */, + 8877F5EE1F34A72200DC128A /* SDLSendHapticDataResponse.h in Headers */, + DA8966F21E56973700413EAB /* SDLStreamingMediaManagerConstants.h in Headers */, + 5DD67CB81E661C4A009CD394 /* SDLLogTargetFile.h in Headers */, 5D61FD591A84238C00846EE7 /* SDLReadDID.h in Headers */, 5D82041A1BCD80BA00D0A41B /* SDLLockScreenConfiguration.h in Headers */, 5D61FC611A84238C00846EE7 /* SDLChoice.h in Headers */, @@ -4501,29 +4787,48 @@ 5D61FE011A84238C00846EE7 /* SDLVehicleDataNotificationStatus.h in Headers */, 5D61FDC91A84238C00846EE7 /* SDLTextField.h in Headers */, 5D6F7A351BC5B9B60070BF37 /* SDLLockScreenViewController.h in Headers */, - DA9F7E7F1DCC028B00ACAE48 /* SDLOnWaypointChange.h in Headers */, + DA9F7E7F1DCC028B00ACAE48 /* SDLOnWayPointChange.h in Headers */, 5D61FCE41A84238C00846EE7 /* SDLKeyboardProperties.h in Headers */, 5D61FDED1A84238C00846EE7 /* SDLUnsubscribeVehicleDataResponse.h in Headers */, 5D4631041F2120A30092EFDC /* SDLControlFramePayloadType.h in Headers */, - 5DCC19A41B822804004FFAD9 /* SDLURLRequestTask.h in Headers */, + EED5CA061F4D1E2300F04000 /* SDLRTPH264Packetizer.h in Headers */, 5D61FCCF1A84238C00846EE7 /* SDLImageField.h in Headers */, 5D535DC51B72473800CF7760 /* SDLGlobals.h in Headers */, 5D79A03B1CE36F030035797B /* SDLUploadFileOperation.h in Headers */, - DA9F7E6F1DCBFFDB00ACAE48 /* SDLGetWaypoints.h in Headers */, + DA9F7E6F1DCBFFDB00ACAE48 /* SDLGetWayPoints.h in Headers */, 5D61FD231A84238C00846EE7 /* SDLParameterPermissions.h in Headers */, 5D61FCB91A84238C00846EE7 /* SDLGlobalProperty.h in Headers */, 5D61FE051A84238C00846EE7 /* SDLVehicleDataResultCode.h in Headers */, 5D61FD2B1A84238C00846EE7 /* SDLPerformInteractionResponse.h in Headers */, 5D61FDA11A84238C00846EE7 /* SDLSoftButtonCapabilities.h in Headers */, - 5D6F7A2B1BC45BF70070BF37 /* SDLRequestHandler.h in Headers */, 5D61FDB51A84238C00846EE7 /* SDLSyncMsgVersion.h in Headers */, + 1E5AD08C1F20BC320029B8AF /* SDLGetInteriorVehicleDataResponse.h in Headers */, + 1E5AD0701F209C880029B8AF /* SDLModuleData.h in Headers */, + 1E5AD0981F20C0FB0029B8AF /* SDLOnInteriorVehicleData.h in Headers */, + 1E5AD0641F207DD50029B8AF /* SDLTemperature.h in Headers */, + 1E5AD0901F20BE820029B8AF /* SDLSetInteriorVehicleData.h in Headers */, + 1E5AD0441F1F5A1F0029B8AF /* SDLRadioControlCapabilities.h in Headers */, + 1E5AD0841F20B9290029B8AF /* SDLButtonPressResponse.h in Headers */, + 1E5AD0681F2080B50029B8AF /* SDLRadioControlData.h in Headers */, + 1E5AD0481F1F773E0029B8AF /* SDLModuleType.h in Headers */, + 1E5AD06C1F208BAB0029B8AF /* SDLClimateControlData.h in Headers */, + 1E5AD0381F1F4E390029B8AF /* SDLClimateControlCapabilities.h in Headers */, + 1E5AD0501F1F7BF10029B8AF /* SDLRadioBand.h in Headers */, + 1E5AD0401F1F58480029B8AF /* SDLVentilationMode.h in Headers */, + 1E5AD0941F20BEAD0029B8AF /* SDLSetInteriorVehicleDataResponse.h in Headers */, + 1E5AD0881F20B9AA0029B8AF /* SDLGetInteriorVehicleData.h in Headers */, + 1E5AD04C1F1F79640029B8AF /* SDLDefrostZone.h in Headers */, + 1E5AD0601F207AB10029B8AF /* SDLRadioState.h in Headers */, + 1E5AD0801F20B73E0029B8AF /* SDLButtonPress.h in Headers */, + 1E5AD05C1F2064A80029B8AF /* SDLRDSData.h in Headers */, + 1E5AD0341F1F3AA30029B8AF /* SDLRemoteControlCapabilities.h in Headers */, 5DA102A41D4122C700C15826 /* NSMutableDictionary+SafeRemove.h in Headers */, + 5DBF062A1E64A92C00A5CF03 /* SDLLogTarget.h in Headers */, 5DA49CE51F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.h in Headers */, 5D61FE031A84238C00846EE7 /* SDLVehicleDataResult.h in Headers */, 5D61FD911A84238C00846EE7 /* SDLShowConstantTBT.h in Headers */, 5D61FC331A84238C00846EE7 /* SDLAddSubMenuResponse.h in Headers */, 5D61FD5D1A84238C00846EE7 /* SDLRegisterAppInterface.h in Headers */, - 8BD729A61F2A2CF30029AC93 /* SDLVideoStreamingCodec.h in Headers */, 5D61FC9A1A84238C00846EE7 /* SDLEmergencyEvent.h in Headers */, 5D61FC651A84238C00846EE7 /* SDLCompassDirection.h in Headers */, 5D61FC8E1A84238C00846EE7 /* SDLDimension.h in Headers */, @@ -4538,20 +4843,21 @@ 5D16545A1D3E7A1600554D93 /* SDLLifecycleManager.h in Headers */, 5D61FCBD1A84238C00846EE7 /* SDLHeadLampStatus.h in Headers */, 5D61FDC31A84238C00846EE7 /* SDLTBTState.h in Headers */, - 8B06061F1F30BCED005ADB2F /* SDLMetadataType.h in Headers */, 5D61FD951A84238C00846EE7 /* SDLShowResponse.h in Headers */, 5D61FCA31A84238C00846EE7 /* SDLEndAudioPassThru.h in Headers */, 5D61FCB11A84238C00846EE7 /* SDLGetDTCs.h in Headers */, 5D61FDFF1A84238C00846EE7 /* SDLVehicleDataEventStatus.h in Headers */, - 8BD729AA1F2A41F40029AC93 /* SDLVideoStreamingProtocol.h in Headers */, 5D61FC5B1A84238C00846EE7 /* SDLChangeRegistration.h in Headers */, 5D61FD5B1A84238C00846EE7 /* SDLReadDIDResponse.h in Headers */, 5D61FDEF1A84238C00846EE7 /* SDLUpdateMode.h in Headers */, + EED5CA001F4D18DC00F04000 /* SDLRAWH264Packetizer.h in Headers */, + DA8966EB1E56939F00413EAB /* SDLStreamingMediaLifecycleManager.h in Headers */, 5D61FDDB1A84238C00846EE7 /* SDLTriggerSource.h in Headers */, 5D61FD8F1A84238C00846EE7 /* SDLShow.h in Headers */, 5D61FDDD1A84238C00846EE7 /* SDLTTSChunk.h in Headers */, 5D61FC371A84238C00846EE7 /* SDLAlert.h in Headers */, 5D61FCC11A84238C00846EE7 /* SDLHMILevel.h in Headers */, + 8B9376D71F3349FC009605C4 /* SDLMetadataTags.h in Headers */, 5D61FD471A84238C00846EE7 /* SDLProtocolListener.h in Headers */, 5D61FCA01A84238C00846EE7 /* SDLEncodedSyncPDataResponse.h in Headers */, 5D61FD271A84238C00846EE7 /* SDLPerformAudioPassThruResponse.h in Headers */, @@ -4573,11 +4879,12 @@ 5D4631101F2135850092EFDC /* SDLControlFramePayloadConstants.h in Headers */, 5D7F87EF1CE3C294002DD7C4 /* SDLFileManagerConstants.h in Headers */, 5D61FCAD1A84238C00846EE7 /* SDLFunctionID.h in Headers */, - DA9F7E831DCC047200ACAE48 /* SDLWaypointType.h in Headers */, + DA9F7E831DCC047200ACAE48 /* SDLWayPointType.h in Headers */, 5D61FDF51A84238C00846EE7 /* SDLV1ProtocolHeader.h in Headers */, + 5DBF06351E64A9FE00A5CF03 /* SDLLogConstants.h in Headers */, DAC572671D10C5640004288B /* CGPoint_Util.h in Headers */, - 5DADA76F1F4DF5180084D17D /* SDLRectangle.h in Headers */, 5D61FDF91A84238C00846EE7 /* SDLV2ProtocolHeader.h in Headers */, + 5DBF06231E64A83F00A5CF03 /* SDLLogManager.h in Headers */, 5D82041E1BCD8E6100D0A41B /* SDLConfiguration.h in Headers */, 5D61FD4A1A84238C00846EE7 /* SDLProtocolMessageAssembler.h in Headers */, 5D61FD4C1A84238C00846EE7 /* SDLProtocolMessageDisassembler.h in Headers */, @@ -4586,22 +4893,19 @@ 97E26DEC1E807AD70074A3C7 /* SDLMutableDataQueue.h in Headers */, 5D61FDF71A84238C00846EE7 /* SDLV1ProtocolMessage.h in Headers */, 5D61FDFB1A84238C00846EE7 /* SDLV2ProtocolMessage.h in Headers */, + 5DBF06311E64A9C600A5CF03 /* SDLLogModel.h in Headers */, 5D7F87EB1CE3C1A1002DD7C4 /* SDLDeleteFileOperation.h in Headers */, 5D61FCFC1A84238C00846EE7 /* SDLNames.h in Headers */, - DA9F7E8F1DCC04C000ACAE48 /* SDLUnsubscribeWaypointsResponse.h in Headers */, + DA9F7E8F1DCC04C000ACAE48 /* SDLUnsubscribeWayPointsResponse.h in Headers */, 5D61FCFD1A84238C00846EE7 /* SDLObjectWithPriority.h in Headers */, DAC5726C1D11B4840004288B /* SDLTouchManagerDelegate.h in Headers */, 5D61FD3F1A84238C00846EE7 /* SDLPrioritizedObjectCollection.h in Headers */, + 5DD67CB01E65DDB7009CD394 /* SDLLogTargetAppleSystemLog.h in Headers */, 5D61FCBF1A84238C00846EE7 /* SDLHexUtility.h in Headers */, 5D00AC6B1F141339004000D9 /* SDLSystemCapability.h in Headers */, - 5D61FCA21A84238C00846EE7 /* SDLEncoder.h in Headers */, - 5D61FCDE1A84238C00846EE7 /* SDLJsonEncoder.h in Headers */, - 5D61FCDC1A84238C00846EE7 /* SDLJsonDecoder.h in Headers */, - 5D61FC711A84238C00846EE7 /* SDLDecoder.h in Headers */, 5D61FD6F1A84238C00846EE7 /* SDLRPCPayload.h in Headers */, 5D61FCF01A84238C00846EE7 /* SDLLockScreenStatusManager.h in Headers */, 5D61FD311A84238C00846EE7 /* SDLPolicyDataParser.h in Headers */, - 8BD729B21F2A61DF0029AC93 /* SDLVideoStreamingCapability.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4627,6 +4931,25 @@ productReference = 5D4019AF1A76EC350006B0C2 /* SDL Example.app */; productType = "com.apple.product-type.application"; }; + 5D4346601E6F38E600B639C6 /* SmartDeviceLinkSwift */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5D4346661E6F38E600B639C6 /* Build configuration list for PBXNativeTarget "SmartDeviceLinkSwift" */; + buildPhases = ( + 5D43465C1E6F38E600B639C6 /* Sources */, + 5D43465D1E6F38E600B639C6 /* Frameworks */, + 5D43465E1E6F38E600B639C6 /* Headers */, + 5D43465F1E6F38E600B639C6 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 5D43468C1E788E2200B639C6 /* PBXTargetDependency */, + ); + name = SmartDeviceLinkSwift; + productName = SmartDeviceLinkSwift; + productReference = 5D4346611E6F38E600B639C6 /* SmartDeviceLinkSwift.framework */; + productType = "com.apple.product-type.framework"; + }; 5D61FA1B1A84237100846EE7 /* SmartDeviceLink */ = { isa = PBXNativeTarget; buildConfigurationList = 5D61FA351A84237100846EE7 /* Build configuration list for PBXNativeTarget "SmartDeviceLink" */; @@ -4671,6 +4994,7 @@ 5D4019A71A76EC350006B0C2 /* Project object */ = { isa = PBXProject; attributes = { + CLASSPREFIX = SDL; LastSwiftUpdateCheck = 0710; LastUpgradeCheck = 0900; ORGANIZATIONNAME = smartdevicelink; @@ -4687,8 +5011,14 @@ }; }; }; + 5D4346601E6F38E600B639C6 = { + CreatedOnToolsVersion = 8.2.1; + LastSwiftMigration = 0900; + ProvisioningStyle = Automatic; + }; 5D61FA1B1A84237100846EE7 = { CreatedOnToolsVersion = 6.1.1; + LastSwiftMigration = 0820; }; 5D61FA251A84237100846EE7 = { CreatedOnToolsVersion = 6.1.1; @@ -4697,7 +5027,7 @@ }; }; buildConfigurationList = 5D4019AA1A76EC350006B0C2 /* Build configuration list for PBXProject "SmartDeviceLink-iOS" */; - compatibilityVersion = "Xcode 3.2"; + compatibilityVersion = "Xcode 8.0"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( @@ -4712,6 +5042,7 @@ 5D4019AE1A76EC350006B0C2 /* SmartDeviceLink-Example */, 5D61FA1B1A84237100846EE7 /* SmartDeviceLink */, 5D61FA251A84237100846EE7 /* SmartDeviceLinkTests */, + 5D4346601E6F38E600B639C6 /* SmartDeviceLinkSwift */, ); }; /* End PBXProject section */ @@ -4729,31 +5060,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 5D43465F1E6F38E600B639C6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 5D61FA1A1A84237100846EE7 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - DA7515B51D95FAA000F29323 /* lock_arrow_down_white@2x.png in Resources */, - DA7515BE1D95FAA000F29323 /* sdl_logo_black@2x.png in Resources */, - DA7515B91D95FAA000F29323 /* lock_arrow_up_black@3x.png in Resources */, 5D9FDA9A1F2A7D3F00A495C8 /* LICENSE in Resources */, - DA7515B71D95FAA000F29323 /* lock_arrow_up_black.png in Resources */, - DA7515BC1D95FAA000F29323 /* lock_arrow_up_white@3x.png in Resources */, - DA7515B81D95FAA000F29323 /* lock_arrow_up_black@2x.png in Resources */, - DA7515C21D95FAA000F29323 /* sdl_logo_white@3x.png in Resources */, - DA7515C01D95FAA000F29323 /* sdl_logo_white.png in Resources */, - DA7515C11D95FAA000F29323 /* sdl_logo_white@2x.png in Resources */, - DA7515BD1D95FAA000F29323 /* sdl_logo_black.png in Resources */, - DA7515B11D95FAA000F29323 /* lock_arrow_down_black.png in Resources */, - DA7515BA1D95FAA000F29323 /* lock_arrow_up_white.png in Resources */, 5D6F7A3E1BC811FC0070BF37 /* SDLAssets.xcassets in Resources */, 5D616B451D552F7A00553F6B /* SDLLockScreen.storyboard in Resources */, - DA7515BB1D95FAA000F29323 /* lock_arrow_up_white@2x.png in Resources */, - DA7515B61D95FAA000F29323 /* lock_arrow_down_white@3x.png in Resources */, - DA7515B21D95FAA000F29323 /* lock_arrow_down_black@2x.png in Resources */, - DA7515B41D95FAA000F29323 /* lock_arrow_down_white.png in Resources */, - DA7515B31D95FAA000F29323 /* lock_arrow_down_black@3x.png in Resources */, - DA7515BF1D95FAA000F29323 /* sdl_logo_black@3x.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -4792,14 +5112,26 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 5D43465C1E6F38E600B639C6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5D4346861E771B5700B639C6 /* SDLLog.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 5D61FA171A84237100846EE7 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8BD729AB1F2A41F40029AC93 /* SDLVideoStreamingProtocol.m in Sources */, + 1E4920B31F6A6463008F2CC3 /* SDLOnInteriorVehicleData.m in Sources */, + 1E4920B21F6A6455008F2CC3 /* SDLGetInteriorVehicleDataResponse.m in Sources */, + 1E4920B11F6A6443008F2CC3 /* SDLRadioState.m in Sources */, + 5DA8A0EA1E955FE00039C50D /* SDLLogModel.m in Sources */, + 5DA8A0E91E955F710039C50D /* SDLStreamingMediaManagerConstants.m in Sources */, 332A914F1CED9CC60043824C /* SDLAppInfo.m in Sources */, - 5DCC19A51B822804004FFAD9 /* SDLURLRequestTask.m in Sources */, - DA9F7E841DCC047200ACAE48 /* SDLWaypointType.m in Sources */, + 1E5AD0491F1F773E0029B8AF /* SDLModuleType.m in Sources */, + DA9F7E841DCC047200ACAE48 /* SDLWayPointType.m in Sources */, 5D61FC561A84238C00846EE7 /* SDLButtonName.m in Sources */, 5D61FCC21A84238C00846EE7 /* SDLHMILevel.m in Sources */, 5D61FDEC1A84238C00846EE7 /* SDLUnsubscribeVehicleData.m in Sources */, @@ -4807,32 +5139,30 @@ 5D61FC441A84238C00846EE7 /* SDLAppInterfaceUnregisteredReason.m in Sources */, 5D61FD531A84238C00846EE7 /* SDLProxyFactory.m in Sources */, 5D61FDCA1A84238C00846EE7 /* SDLTextField.m in Sources */, + DAA41D561DF66B2000BC7337 /* SDLH264VideoEncoder.m in Sources */, 5D61FC9D1A84238C00846EE7 /* SDLEmergencyEventType.m in Sources */, - 88E0719C1F3221F000C9CB2F /* SDLHapticRect.m in Sources */, 5D61FCAC1A84238C00846EE7 /* SDLFuelCutoffStatus.m in Sources */, 5D61FC871A84238C00846EE7 /* SDLDeviceStatus.m in Sources */, 5D61FD561A84238C00846EE7 /* SDLPutFile.m in Sources */, 5D61FCE71A84238C00846EE7 /* SDLKeypressMode.m in Sources */, - 5D61FD9A1A84238C00846EE7 /* SDLSiphonServer.m in Sources */, - 5D61FCDF1A84238C00846EE7 /* SDLJsonEncoder.m in Sources */, 5D7F87F41CE3C29E002DD7C4 /* SDLFileWrapper.m in Sources */, 5D61FD941A84238C00846EE7 /* SDLShowConstantTBTResponse.m in Sources */, 5D61FE0A1A84238C00846EE7 /* SDLVehicleDataType.m in Sources */, 5D61FD1A1A84238C00846EE7 /* SDLOnSyncPData.m in Sources */, + 8B7B319F1F2F7CF700BDC38D /* SDLVideoStreamingProtocol.m in Sources */, 5D61FC461A84238C00846EE7 /* SDLAudioPassThruCapabilities.m in Sources */, 5D61FD301A84238C00846EE7 /* SDLPermissionStatus.m in Sources */, 5D61FDEE1A84238C00846EE7 /* SDLUnsubscribeVehicleDataResponse.m in Sources */, + 8B7B319B1F2F7B5700BDC38D /* SDLVideoStreamingCodec.m in Sources */, 5D535DC61B72473800CF7760 /* SDLGlobals.m in Sources */, 5D61FCAE1A84238C00846EE7 /* SDLFunctionID.m in Sources */, 5D61FC421A84238C00846EE7 /* SDLAppHMIType.m in Sources */, 5D61FD421A84238C00846EE7 /* SDLPRNDL.m in Sources */, E9C32B921AB20BA200F283AF /* SDLIAPSession.m in Sources */, 5D61FD0C1A84238C00846EE7 /* SDLOnEncodedSyncPData.m in Sources */, - 5D61FCA81A84238C00846EE7 /* SDLEnum.m in Sources */, - 5D61FDE01A84238C00846EE7 /* SDLTTSChunkFactory.m in Sources */, 5D61FD0A1A84238C00846EE7 /* SDLOnDriverDistraction.m in Sources */, 5D61FCED1A84238C00846EE7 /* SDLListFiles.m in Sources */, - DA9F7E801DCC028B00ACAE48 /* SDLOnWaypointChange.m in Sources */, + DA9F7E801DCC028B00ACAE48 /* SDLOnWayPointChange.m in Sources */, 5D61FC6E1A84238C00846EE7 /* SDLCreateInteractionChoiceSetResponse.m in Sources */, 5D61FD061A84238C00846EE7 /* SDLOnButtonPress.m in Sources */, 5D61FD5E1A84238C00846EE7 /* SDLRegisterAppInterface.m in Sources */, @@ -4840,17 +5170,21 @@ 5D61FD491A84238C00846EE7 /* SDLProtocolMessage.m in Sources */, 5D61FCCE1A84238C00846EE7 /* SDLImage.m in Sources */, 5D61FD241A84238C00846EE7 /* SDLParameterPermissions.m in Sources */, + 1E5AD0711F209C880029B8AF /* SDLModuleData.m in Sources */, 5D61FDD21A84238C00846EE7 /* SDLTouchCoord.m in Sources */, 5D61FCEF1A84238C00846EE7 /* SDLListFilesResponse.m in Sources */, + 5DD67CB11E65DDB7009CD394 /* SDLLogTargetAppleSystemLog.m in Sources */, 5D61FD1C1A84238C00846EE7 /* SDLOnSystemRequest.m in Sources */, 5D61FC911A84238C00846EE7 /* SDLDisplayCapabilities.m in Sources */, 5D61FD261A84238C00846EE7 /* SDLPerformAudioPassThru.m in Sources */, 5D61FC971A84238C00846EE7 /* SDLECallConfirmationStatus.m in Sources */, + 1E5AD04D1F1F79640029B8AF /* SDLDefrostZone.m in Sources */, 5D61FC4A1A84238C00846EE7 /* SDLAudioType.m in Sources */, 5D61FDE61A84238C00846EE7 /* SDLUnregisterAppInterfaceResponse.m in Sources */, 5D61FC481A84238C00846EE7 /* SDLAudioStreamingState.m in Sources */, 5D61FCC81A84238C00846EE7 /* SDLIAPTransport.m in Sources */, 5D61FE101A84238C00846EE7 /* SDLVrHelpItem.m in Sources */, + 1E5AD0691F2080B50029B8AF /* SDLRadioControlData.m in Sources */, 5D61FCC01A84238C00846EE7 /* SDLHexUtility.m in Sources */, 5DB9964F1F26886C002D8795 /* SDLControlFramePayloadEndService.m in Sources */, 5D61FD821A84238C00846EE7 /* SDLSetAppIconResponse.m in Sources */, @@ -4860,22 +5194,24 @@ 5D82042E1BCEC32F00D0A41B /* SDLFile.m in Sources */, 5DA3F3601BC448590026F2D0 /* SDLNotificationConstants.m in Sources */, 5D61FD5A1A84238C00846EE7 /* SDLReadDID.m in Sources */, + 1E5AD0351F1F3AA30029B8AF /* SDLRemoteControlCapabilities.m in Sources */, 5D61FC8F1A84238C00846EE7 /* SDLDimension.m in Sources */, 5D61FC9B1A84238C00846EE7 /* SDLEmergencyEvent.m in Sources */, 5D61FDFE1A84238C00846EE7 /* SDLVehicleDataActiveStatus.m in Sources */, + 1E5AD0411F1F58480029B8AF /* SDLVentilationMode.m in Sources */, 5D61FCD01A84238C00846EE7 /* SDLImageField.m in Sources */, 5D61FC3C1A84238C00846EE7 /* SDLAlertManeuverResponse.m in Sources */, - 5D61FC6A1A84238C00846EE7 /* SDLConsoleController.m in Sources */, - DA9F7E741DCC004C00ACAE48 /* SDLGetWaypointsResponse.m in Sources */, + DA9F7E741DCC004C00ACAE48 /* SDLGetWayPointsResponse.m in Sources */, 5D61FD4D1A84238C00846EE7 /* SDLProtocolMessageDisassembler.m in Sources */, - 5D61FC701A84238C00846EE7 /* SDLDebugTool.m in Sources */, 5D61FD4B1A84238C00846EE7 /* SDLProtocolMessageAssembler.m in Sources */, 5D61FCC41A84238C00846EE7 /* SDLHMIPermissions.m in Sources */, 5D61FE141A84238C00846EE7 /* SDLWiperStatus.m in Sources */, 5D61FC8B1A84238C00846EE7 /* SDLDiagnosticMessageResponse.m in Sources */, + 5DBF063A1E64ABBE00A5CF03 /* SDLLogConfiguration.m in Sources */, 5D61FD2E1A84238C00846EE7 /* SDLPermissionItem.m in Sources */, 5D61FD041A84238C00846EE7 /* SDLOnButtonEvent.m in Sources */, 5D61FD201A84238C00846EE7 /* SDLOnTouchEvent.m in Sources */, + 8B7B31A71F2F875200BDC38D /* SDLVideoStreamingCapability.m in Sources */, 5DA3F35B1BC448480026F2D0 /* SDLError.m in Sources */, 5D61FD781A84238C00846EE7 /* SDLSamplingRate.m in Sources */, 5D61FC681A84238C00846EE7 /* SDLComponentVolumeStatus.m in Sources */, @@ -4887,14 +5223,13 @@ 5D61FDB21A84238C00846EE7 /* SDLSubscribeVehicleData.m in Sources */, 5D61FC991A84238C00846EE7 /* SDLECallInfo.m in Sources */, 5D61FD601A84238C00846EE7 /* SDLRegisterAppInterfaceResponse.m in Sources */, - 8B0606201F30BCED005ADB2F /* SDLMetadataType.m in Sources */, 5DB996581F268ECB002D8795 /* SDLControlFramePayloadAudioStartServiceAck.m in Sources */, DAC572621D10C5020004288B /* SDLPinchGesture.m in Sources */, 5D61FCF51A84238C00846EE7 /* SDLMaintenanceModeStatus.m in Sources */, + 1EE48E911F2F0EE700B98D08 /* SDLTemperatureUnit.m in Sources */, 5D61FCD81A84238C00846EE7 /* SDLInteractionMode.m in Sources */, 5D61FCB01A84238C00846EE7 /* SDLGenericResponse.m in Sources */, 5D61FD681A84238C00846EE7 /* SDLResult.m in Sources */, - E9C32B871AB20B4300F283AF /* NSThread+ThreadIndex.m in Sources */, 5D61FDE21A84238C00846EE7 /* SDLTurn.m in Sources */, 5D61FC5A1A84238C00846EE7 /* SDLCarModeStatus.m in Sources */, 5D82041B1BCD80BA00D0A41B /* SDLLockScreenConfiguration.m in Sources */, @@ -4904,12 +5239,13 @@ 5D61FC891A84238C00846EE7 /* SDLDiagnosticMessage.m in Sources */, 5D61FD6E1A84238C00846EE7 /* SDLRPCNotification.m in Sources */, 5D8B17501AC9D266006A6E1C /* SDLDialNumber.m in Sources */, + 5DBF06281E64A91D00A5CF03 /* SDLLogFileModule.m in Sources */, 5D6F7A361BC5B9B60070BF37 /* SDLLockScreenViewController.m in Sources */, 5D61FDE81A84238C00846EE7 /* SDLUnsubscribeButton.m in Sources */, 5D61FCF71A84238C00846EE7 /* SDLMediaClockFormat.m in Sources */, 5D61FD8A1A84238C00846EE7 /* SDLSetGlobalPropertiesResponse.m in Sources */, 5D61FC4C1A84238C00846EE7 /* SDLBeltStatus.m in Sources */, - DA9F7E8C1DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.m in Sources */, + DA9F7E8C1DCC04B000ACAE48 /* SDLSubscribeWayPointsResponse.m in Sources */, 5D61FDA41A84238C00846EE7 /* SDLSoftButtonType.m in Sources */, 5D00AC6C1F141339004000D9 /* SDLSystemCapability.m in Sources */, 5D61FC521A84238C00846EE7 /* SDLButtonCapabilities.m in Sources */, @@ -4934,14 +5270,14 @@ 5D61FC541A84238C00846EE7 /* SDLButtonEventMode.m in Sources */, 5D61FC8D1A84238C00846EE7 /* SDLDIDResult.m in Sources */, 5D61FC601A84238C00846EE7 /* SDLCharacterSet.m in Sources */, + 5DD67CB91E661C4A009CD394 /* SDLLogTargetFile.m in Sources */, 5D61FCBE1A84238C00846EE7 /* SDLHeadLampStatus.m in Sources */, 5D61FD921A84238C00846EE7 /* SDLShowConstantTBT.m in Sources */, 5D61FC4E1A84238C00846EE7 /* SDLBitsPerSample.m in Sources */, 5D00AC701F1511B9004000D9 /* SDLGetSystemCapability.m in Sources */, 5D61FDEA1A84238C00846EE7 /* SDLUnsubscribeButtonResponse.m in Sources */, + 1E5AD05D1F2064A80029B8AF /* SDLRDSData.m in Sources */, 5D61FCA61A84238C00846EE7 /* SDLEndAudioPassThruResponse.m in Sources */, - 88E071A41F32454600C9CB2F /* SDLSendHapticDataResponse.m in Sources */, - 5DCC19A11B8221F3004FFAD9 /* SDLURLSession.m in Sources */, 5D61FD281A84238C00846EE7 /* SDLPerformAudioPassThruResponse.m in Sources */, 5D61FDCE1A84238C00846EE7 /* SDLTimerMode.m in Sources */, 5D61FD701A84238C00846EE7 /* SDLRPCPayload.m in Sources */, @@ -4950,6 +5286,7 @@ 5D9FDA8F1F2A7D3400A495C8 /* bson_array.c in Sources */, 5D61FD661A84238C00846EE7 /* SDLResetGlobalPropertiesResponse.m in Sources */, 5D61FCFE1A84238C00846EE7 /* SDLObjectWithPriority.m in Sources */, + 5DBF06241E64A83F00A5CF03 /* SDLLogManager.m in Sources */, 5D61FC401A84238C00846EE7 /* SDLAmbientLightStatus.m in Sources */, 5D61FC951A84238C00846EE7 /* SDLDriverDistractionState.m in Sources */, 5DB996611F28C6ED002D8795 /* SDLControlFramePayloadVideoStartServiceAck.m in Sources */, @@ -4958,10 +5295,10 @@ 5D9FDA931F2A7D3400A495C8 /* bson_util.c in Sources */, 5D61FD511A84238C00846EE7 /* SDLProxy.m in Sources */, 5D61FD461A84238C00846EE7 /* SDLProtocolHeader.m in Sources */, + 8BBEA6071F324165003EEA26 /* SDLMetadataType.m in Sources */, 5D61FDBC1A84238C00846EE7 /* SDLSystemAction.m in Sources */, 5D61FC381A84238C00846EE7 /* SDLAlert.m in Sources */, 5D61FD2C1A84238C00846EE7 /* SDLPerformInteractionResponse.m in Sources */, - 5DADA7701F4DF5180084D17D /* SDLRectangle.m in Sources */, 5D00AC7C1F15287E004000D9 /* SDLPhoneCapability.m in Sources */, 5D61FDF21A84238C00846EE7 /* SDLUpdateTurnList.m in Sources */, 5D61FD101A84238C00846EE7 /* SDLOnHMIStatus.m in Sources */, @@ -4977,7 +5314,6 @@ 5D61FCC61A84238C00846EE7 /* SDLHMIZoneCapabilities.m in Sources */, 5D61FD161A84238C00846EE7 /* SDLOnLockScreenStatus.m in Sources */, 5D61FDAE1A84238C00846EE7 /* SDLSubscribeButton.m in Sources */, - 8BD729AF1F2A5AA10029AC93 /* SDLVideoStreamingFormat.m in Sources */, DA9F7E6C1DCBFB0700ACAE48 /* SDLDeliveryMode.m in Sources */, 5D61FC581A84238C00846EE7 /* SDLButtonPressMode.m in Sources */, 5D00AC781F15283E004000D9 /* SDLNavigationCapability.m in Sources */, @@ -4991,46 +5327,48 @@ 5D61FDC01A84238C00846EE7 /* SDLSystemRequest.m in Sources */, 5D61FD021A84238C00846EE7 /* SDLOnAudioPassThru.m in Sources */, 5D61FCE51A84238C00846EE7 /* SDLKeyboardProperties.m in Sources */, + 5DBF062E1E64A93A00A5CF03 /* SDLLogFilter.m in Sources */, 5D61FDFA1A84238C00846EE7 /* SDLV2ProtocolHeader.m in Sources */, 5D61FDD01A84238C00846EE7 /* SDLTireStatus.m in Sources */, 5D61FC321A84238C00846EE7 /* SDLAddSubMenu.m in Sources */, 5D61FDF61A84238C00846EE7 /* SDLV1ProtocolHeader.m in Sources */, - 8BD729B31F2A61DF0029AC93 /* SDLVideoStreamingCapability.m in Sources */, 5D61FDAA1A84238C00846EE7 /* SDLSpeechCapabilities.m in Sources */, + 1E5AD0951F20BEAD0029B8AF /* SDLSetInteriorVehicleDataResponse.m in Sources */, 5D61FDB41A84238C00846EE7 /* SDLSubscribeVehicleDataResponse.m in Sources */, 5D61FD121A84238C00846EE7 /* SDLOnKeyboardInput.m in Sources */, DA9F7E9A1DCC052C00ACAE48 /* SDLLocationCoordinate.m in Sources */, 5D61FCCA1A84238C00846EE7 /* SDLIgnitionStableStatus.m in Sources */, 5D61FCFB1A84238C00846EE7 /* SDLMyKey.m in Sources */, 5D61FCAA1A84238C00846EE7 /* SDLFileType.m in Sources */, - DA9F7E901DCC04C000ACAE48 /* SDLUnsubscribeWaypointsResponse.m in Sources */, + 1E5AD0651F207DD50029B8AF /* SDLTemperature.m in Sources */, + DA9F7E901DCC04C000ACAE48 /* SDLUnsubscribeWayPointsResponse.m in Sources */, 5DE372A21ACB2ED300849FAA /* SDLHMICapabilities.m in Sources */, 5D61FDD41A84238C00846EE7 /* SDLTouchEvent.m in Sources */, 5D61FD881A84238C00846EE7 /* SDLSetGlobalProperties.m in Sources */, 5D61FC7F1A84238C00846EE7 /* SDLDeleteSubMenu.m in Sources */, 5D61FCE91A84238C00846EE7 /* SDLLanguage.m in Sources */, 5D61FC3E1A84238C00846EE7 /* SDLAlertResponse.m in Sources */, - 8BD729A71F2A2CF30029AC93 /* SDLVideoStreamingCodec.m in Sources */, 5D61FD8C1A84238C00846EE7 /* SDLSetMediaClockTimer.m in Sources */, - 5D2996EA1BFCC0E3006106BF /* (null) in Sources */, 5D61FE121A84238C00846EE7 /* SDLWarningLightStatus.m in Sources */, - 5D61FCDD1A84238C00846EE7 /* SDLJsonDecoder.m in Sources */, 5D61FCB81A84238C00846EE7 /* SDLGetVehicleDataResponse.m in Sources */, 5D61FC661A84238C00846EE7 /* SDLCompassDirection.m in Sources */, 5D61FD841A84238C00846EE7 /* SDLSetDisplayLayout.m in Sources */, - DA9F7E701DCBFFDB00ACAE48 /* SDLGetWaypoints.m in Sources */, + DA9F7E701DCBFFDB00ACAE48 /* SDLGetWayPoints.m in Sources */, 5D00AC741F151CFE004000D9 /* SDLGetSystemCapabilityResponse.m in Sources */, 5D61FE001A84238C00846EE7 /* SDLVehicleDataEventStatus.m in Sources */, 5D61FDC41A84238C00846EE7 /* SDLTBTState.m in Sources */, 5D61FDA61A84238C00846EE7 /* SDLSpeak.m in Sources */, 5D4631111F2135850092EFDC /* SDLControlFramePayloadConstants.m in Sources */, - DA9F7E881DCC049900ACAE48 /* SDLSubscribeWaypoints.m in Sources */, + DA9F7E881DCC049900ACAE48 /* SDLSubscribeWayPoints.m in Sources */, 5D61FDDE1A84238C00846EE7 /* SDLTTSChunk.m in Sources */, 5D61FD9E1A84238C00846EE7 /* SDLSliderResponse.m in Sources */, 5D61FC5C1A84238C00846EE7 /* SDLChangeRegistration.m in Sources */, 5D1665C91CF8CA3D00CC4CA1 /* SDLPermissionFilter.m in Sources */, 5D61FDBA1A84238C00846EE7 /* SDLSyncPDataResponse.m in Sources */, + 1E5AD0511F1F7BF10029B8AF /* SDLRadioBand.m in Sources */, 5D61FDDC1A84238C00846EE7 /* SDLTriggerSource.m in Sources */, + 5DADA7761F4DFED60084D17D /* SDLRectangle.m in Sources */, + 88EED83F1F33C5A400E6C42E /* SDLSendHapticData.m in Sources */, 5D16545B1D3E7A1600554D93 /* SDLLifecycleManager.m in Sources */, E9C32B971AB20BA200F283AF /* SDLTimer.m in Sources */, 5D61FCB61A84238C00846EE7 /* SDLGetVehicleData.m in Sources */, @@ -5038,28 +5376,35 @@ 5D61FE061A84238C00846EE7 /* SDLVehicleDataResultCode.m in Sources */, 5D61FCA41A84238C00846EE7 /* SDLEndAudioPassThru.m in Sources */, 5D8B17541AC9E11B006A6E1C /* SDLDialNumberResponse.m in Sources */, + DA6223BE1E7B088200878689 /* CVPixelBufferRef+SDLUtil.m in Sources */, + 1FF7DABC1F75B2BF00B46C30 /* SDLFocusableItemLocator.m in Sources */, + EED5CA021F4D18EC00F04000 /* SDLRAWH264Packetizer.m in Sources */, 5D61FC851A84238C00846EE7 /* SDLDeviceLevelStatus.m in Sources */, - 5D1665AB1CF5F7D000CC4CA1 /* (null) in Sources */, 5D9FDA981F2A7D3F00A495C8 /* emhashmap.c in Sources */, 5D61FD1E1A84238C00846EE7 /* SDLOnTBTClientState.m in Sources */, + 5DD67CBD1E661C84009CD394 /* SDLLogTargetOSLog.m in Sources */, DA9F7E641DCBFAC800ACAE48 /* SDLDateTime.m in Sources */, 5D61FD581A84238C00846EE7 /* SDLPutFileResponse.m in Sources */, 5D61FCB21A84238C00846EE7 /* SDLGetDTCs.m in Sources */, 5D61FD441A84238C00846EE7 /* SDLProtocol.m in Sources */, 5D61FC341A84238C00846EE7 /* SDLAddSubMenuResponse.m in Sources */, + 5DA240011F325621009C0313 /* SDLStreamingMediaConfiguration.m in Sources */, 5D6F7A2F1BC5650B0070BF37 /* SDLLifecycleConfiguration.m in Sources */, 5D61FD141A84238C00846EE7 /* SDLOnLanguageChange.m in Sources */, + 1E5AD0891F20B9AA0029B8AF /* SDLGetInteriorVehicleData.m in Sources */, 5D61FE041A84238C00846EE7 /* SDLVehicleDataResult.m in Sources */, 5D61FD5C1A84238C00846EE7 /* SDLReadDIDResponse.m in Sources */, 5D61FD321A84238C00846EE7 /* SDLPolicyDataParser.m in Sources */, 5D61FC621A84238C00846EE7 /* SDLChoice.m in Sources */, + 1E5AD0811F20B73E0029B8AF /* SDLButtonPress.m in Sources */, DAC5725B1D10B81E0004288B /* SDLTouch.m in Sources */, 5D61FCEB1A84238C00846EE7 /* SDLLayoutMode.m in Sources */, 5D61FC2E1A84238C00846EE7 /* SDLAddCommand.m in Sources */, 5D1665C51CF8CA2700CC4CA1 /* SDLListFilesOperation.m in Sources */, + 8B9376D81F3349FC009605C4 /* SDLMetadataTags.m in Sources */, 5D61FE021A84238C00846EE7 /* SDLVehicleDataNotificationStatus.m in Sources */, 5D61FDD81A84238C00846EE7 /* SDLTouchType.m in Sources */, - 8B06062A1F3103CE005ADB2F /* SDLMetadataTags.m in Sources */, + DA4F47961E771AA100FC809E /* SDLEnum.m in Sources */, 5D61FDD61A84238C00846EE7 /* SDLTouchEventCapabilities.m in Sources */, 5DA49CE61F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.m in Sources */, 5DA102A51D4122C700C15826 /* NSMutableDictionary+SafeRemove.m in Sources */, @@ -5070,24 +5415,31 @@ 5D61FCD21A84238C00846EE7 /* SDLImageFieldName.m in Sources */, 5D61FD761A84238C00846EE7 /* SDLRPCResponse.m in Sources */, 5D3E48761D6F3B330000BFEF /* SDLAsynchronousOperation.m in Sources */, + 1E5AD06D1F208BAB0029B8AF /* SDLClimateControlData.m in Sources */, 5D61FE081A84238C00846EE7 /* SDLVehicleDataStatus.m in Sources */, E9C32B9F1AB20C5900F283AF /* EAAccessoryManager+SDLProtocols.m in Sources */, 5D61FDA81A84238C00846EE7 /* SDLSpeakResponse.m in Sources */, - 88E071A01F322C3100C9CB2F /* SDLSendHapticData.m in Sources */, 5DB92D331AC9C8BA00C15BB0 /* SDLRPCStruct.m in Sources */, + 8B7B31A31F2F7FEA00BDC38D /* SDLVideoStreamingFormat.m in Sources */, + DA0C46AD1DCD35080001F2A8 /* SDLNames.m in Sources */, 5DA3F3551BC448060026F2D0 /* NSMapTable+Subscripting.m in Sources */, 5D61FCD61A84238C00846EE7 /* SDLImageType.m in Sources */, 5D4D67AD1D2ED37A00468B4A /* SDLNotificationDispatcher.m in Sources */, + 88EED8391F33AE1700E6C42E /* SDLHapticRect.m in Sources */, DA9F7E9C1DCC052C00ACAE48 /* SDLLocationDetails.m in Sources */, 5D61FD7A1A84238C00846EE7 /* SDLScreenParams.m in Sources */, 5D61FC831A84238C00846EE7 /* SDLDeviceInfo.m in Sources */, + DA318C201DD0F06C00C035AC /* NSMutableDictionary+Store.m in Sources */, 5D7F87EC1CE3C1A1002DD7C4 /* SDLDeleteFileOperation.m in Sources */, 97E26DED1E807AD70074A3C7 /* SDLMutableDataQueue.m in Sources */, 5D61FD641A84238C00846EE7 /* SDLResetGlobalProperties.m in Sources */, + 1E5AD0911F20BE820029B8AF /* SDLSetInteriorVehicleData.m in Sources */, 5D60088B1BE3ED540094A505 /* SDLStateMachine.m in Sources */, + 8877F5EF1F34A72200DC128A /* SDLSendHapticDataResponse.m in Sources */, 5D61FD181A84238C00846EE7 /* SDLOnPermissionsChange.m in Sources */, 5D61FD3E1A84238C00846EE7 /* SDLPrimaryAudioSource.m in Sources */, 5D61FC2A1A84238C00846EE7 /* SDLAbstractProtocol.m in Sources */, + 1E5AD0851F20B9290029B8AF /* SDLButtonPressResponse.m in Sources */, 5D82041F1BCD8E6100D0A41B /* SDLConfiguration.m in Sources */, 5D61FD381A84238C00846EE7 /* SDLPredefinedLayout.m in Sources */, 5D3E487C1D6F888E0000BFEF /* SDLRPCResponseNotification.m in Sources */, @@ -5098,29 +5450,31 @@ 5D61FD7E1A84238C00846EE7 /* SDLScrollableMessageResponse.m in Sources */, 5D61FD3A1A84238C00846EE7 /* SDLPrerecordedSpeech.m in Sources */, 5D61FCA11A84238C00846EE7 /* SDLEncodedSyncPDataResponse.m in Sources */, + 5DD67CC41E68AE82009CD394 /* SDLLogFileModuleMap.m in Sources */, 5D61FD401A84238C00846EE7 /* SDLPrioritizedObjectCollection.m in Sources */, - 5D61FD741A84238C00846EE7 /* SDLRPCRequestFactory.m in Sources */, 5D61FDC61A84238C00846EE7 /* SDLTCPTransport.m in Sources */, 5D61FE0E1A84238C00846EE7 /* SDLVrCapabilities.m in Sources */, 5D61FDC21A84238C00846EE7 /* SDLSystemRequestResponse.m in Sources */, 5D9FDA911F2A7D3400A495C8 /* bson_object.c in Sources */, 5D61FD001A84238C00846EE7 /* SDLOnAppInterfaceUnregistered.m in Sources */, + DA8966EC1E56939F00413EAB /* SDLStreamingMediaLifecycleManager.m in Sources */, DAC5726A1D10D5FC0004288B /* dispatch_timer.m in Sources */, 5D61FC6C1A84238C00846EE7 /* SDLCreateInteractionChoiceSet.m in Sources */, 5D61FD081A84238C00846EE7 /* SDLOnCommand.m in Sources */, 5D53C46E1B7A99B9003526EA /* SDLStreamingMediaManager.m in Sources */, 5D61FD6A1A84238C00846EE7 /* SDLRPCMessage.m in Sources */, - 5D61FCDB1A84238C00846EE7 /* SDLJingle.m in Sources */, + 1E5AD0391F1F4E390029B8AF /* SDLClimateControlCapabilities.m in Sources */, 5D61FDA21A84238C00846EE7 /* SDLSoftButtonCapabilities.m in Sources */, 5D8204321BD001C700D0A41B /* SDLArtwork.m in Sources */, 5D61FC2C1A84238C00846EE7 /* SDLAbstractTransport.m in Sources */, 5D61FD8E1A84238C00846EE7 /* SDLSetMediaClockTimerResponse.m in Sources */, 5D61FD721A84238C00846EE7 /* SDLRPCRequest.m in Sources */, + EED5CA081F4D1E2E00F04000 /* SDLRTPH264Packetizer.m in Sources */, 5D61FDF01A84238C00846EE7 /* SDLUpdateMode.m in Sources */, 5D61FC931A84238C00846EE7 /* SDLDisplayType.m in Sources */, 5D61FCE31A84238C00846EE7 /* SDLKeyboardLayout.m in Sources */, 5D61FE0C1A84238C00846EE7 /* SDLVehicleType.m in Sources */, - DA9F7E941DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.m in Sources */, + DA9F7E941DCC04E400ACAE48 /* SDLUnsubscribeWayPoints.m in Sources */, 5D61FDCC1A84238C00846EE7 /* SDLTextFieldName.m in Sources */, 5D61FC751A84238C00846EE7 /* SDLDeleteCommandResponse.m in Sources */, 5DA3F3711BC4489A0026F2D0 /* SDLManager.m in Sources */, @@ -5131,6 +5485,7 @@ 5D61FD621A84238C00846EE7 /* SDLRequestType.m in Sources */, 5D61FCBA1A84238C00846EE7 /* SDLGlobalProperty.m in Sources */, 5D61FD4F1A84238C00846EE7 /* SDLProtocolReceivedMessageRouter.m in Sources */, + 1E5AD0451F1F5A1F0029B8AF /* SDLRadioControlCapabilities.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -5140,7 +5495,6 @@ files = ( 5DBAE0AD1D368D1A00CE00BF /* SDLResponseDispatcherSpec.m in Sources */, 162E83951A9BDE8B00906325 /* SDLTurnSpec.m in Sources */, - 8872772F1F33542000368CCD /* SDLSendHapticDataResponseSpec.m in Sources */, 162E83481A9BDE8B00906325 /* SDLUpdateTurnListSpec.m in Sources */, 1680B11E1A9CD7AD00DBD79E /* SDLProtocolReceivedMessageRouterSpec.m in Sources */, 162E82FD1A9BDE8B00906325 /* SDLSystemContextSpec.m in Sources */, @@ -5153,6 +5507,7 @@ 162E83041A9BDE8B00906325 /* SDLUpdateModeSpec.m in Sources */, 162E83801A9BDE8B00906325 /* SDLHMIPermissionsSpec.m in Sources */, 5D1654561D3E754F00554D93 /* SDLLifecycleManagerSpec.m in Sources */, + 1EE8C43A1F347D4D00FDC2CF /* SDLRadioStateSpec.m in Sources */, 162E83021A9BDE8B00906325 /* SDLTouchTypeSpec.m in Sources */, 5DB92D2F1AC59F0000C15BB0 /* SDLObjectWithPrioritySpec.m in Sources */, 162E838A1A9BDE8B00906325 /* SDLSingleTireStatusSpec.m in Sources */, @@ -5163,29 +5518,35 @@ 5DCF76FE1ACDDB5A00BB647B /* SDLSendLocationResponseSpec.m in Sources */, 162E837D1A9BDE8B00906325 /* SDLEmergencyEventSpec.m in Sources */, 162E82D31A9BDE8A00906325 /* SDLCarModeStatusSpec.m in Sources */, - 8BD729B71F2A75FD0029AC93 /* SDLVideoStreamingProtocolSpec.m in Sources */, + 8B7B31A91F2FB8BC00BDC38D /* SDLVideoStreamingProtocolSpec.m in Sources */, + 88EED83B1F33BECB00E6C42E /* SDLHapticRectSpec.m in Sources */, 162E82EA1A9BDE8B00906325 /* SDLLanguageSpec.m in Sources */, 5D76E3291D3D0A8800647CFA /* SDLFakeViewControllerPresenter.m in Sources */, + 5DB2022A1F5F38B60061D189 /* SDLFakeStreamingManagerDataSource.m in Sources */, 162E83331A9BDE8B00906325 /* SDLPerformInteractionSpec.m in Sources */, 5D0A9F951F15585B00CC80DD /* SDLPhoneCapabilitySpec.m in Sources */, + 1EE8C4561F38788A00FDC2CF /* SDLButtonPressSpec.m in Sources */, 1680B11A1A9CD7AD00DBD79E /* SDLAbstractProtocolSpec.m in Sources */, - 8B06062C1F310ED2005ADB2F /* SDLMetadataTagsSpec.m in Sources */, 1680B1151A9CD7AD00DBD79E /* SDLV2ProtocolHeaderSpec.m in Sources */, + 1EE8C4541F38762E00FDC2CF /* SDLOnInteriorVehicleDataSpec.m in Sources */, 162E83101A9BDE8B00906325 /* SDLOnAudioPassThruSpec.m in Sources */, + DABB62171E4A900C0034C567 /* SDLH264VideoEncoderSpec.m in Sources */, + 5DBEFA581F436132009EE295 /* SDLFakeSecurityManager.m in Sources */, 162E82D91A9BDE8A00906325 /* SDLDisplayTypeSpec.m in Sources */, 162E83871A9BDE8B00906325 /* SDLPermissionItemSpec.m in Sources */, 162E82E31A9BDE8B00906325 /* SDLIgnitionStatusSpec.m in Sources */, 162E83511A9BDE8B00906325 /* SDLDeleteInteractionChoiceSetResponseSpec.m in Sources */, DA9F7EB41DCC086400ACAE48 /* SDLDateTimeSpec.m in Sources */, - 162E830E1A9BDE8B00906325 /* SDLRPCRequestFactorySpec.m in Sources */, 162E82E41A9BDE8B00906325 /* SDLImageFieldNameSpec.m in Sources */, - 8B0606221F30C108005ADB2F /* SDLMetadataTypeSpec.m in Sources */, - 162E83991A9BDE8B00906325 /* SDLEnumSpec.m in Sources */, 162E82ED1A9BDE8B00906325 /* SDLMaintenanceModeStatusSpec.m in Sources */, + 8B9376DB1F33656C009605C4 /* SDLMetadataTagsSpec.m in Sources */, 5DB92D2D1AC4A34F00C15BB0 /* SDLPrioritizedObjectCollectionSpec.m in Sources */, + 5D43466D1E6F522000B639C6 /* SDLLogModelSpec.m in Sources */, 5DA23FF31F2FA35C009C0313 /* SDLControlFramePayloadAudioStartServiceAckSpec.m in Sources */, 1680B11C1A9CD7AD00DBD79E /* SDLProtocolMessageAssemblerSpec.m in Sources */, + 8850DB601F4475D30053A48D /* TestMultipleFilesConnectionManager.m in Sources */, 162E83181A9BDE8B00906325 /* SDLOnKeyboardInputSpec.m in Sources */, + 1EE8C4441F34A1B900FDC2CF /* SDLClimateControlDataSpec.m in Sources */, 162E83701A9BDE8B00906325 /* SDLUpdateTurnListResponseSpec.m in Sources */, 162E833B1A9BDE8B00906325 /* SDLSetGlobalPropertiesSpec.m in Sources */, 162E82F11A9BDE8B00906325 /* SDLPowerModeStatusSpec.m in Sources */, @@ -5197,41 +5558,46 @@ 162E83681A9BDE8B00906325 /* SDLSpeakResponseSpec.m in Sources */, 162E83661A9BDE8B00906325 /* SDLShowResponseSpec.m in Sources */, 5D9F50831BEA5C6100FEF399 /* SDLFileManagerSpec.m in Sources */, + 1EE8C4481F38430900FDC2CF /* SDLRadioControlCapabilitiesSpec.m in Sources */, 162E83221A9BDE8B00906325 /* SDLAddCommandSpec.m in Sources */, 162E83121A9BDE8B00906325 /* SDLOnButtonPressSpec.m in Sources */, 162E838D1A9BDE8B00906325 /* SDLStartTimeSpec.m in Sources */, 162E836E1A9BDE8B00906325 /* SDLUnsubscribeButtonResponseSpec.m in Sources */, 162E835B1A9BDE8B00906325 /* SDLPerformInteractionResponseSpec.m in Sources */, 162E832D1A9BDE8B00906325 /* SDLEncodedSyncPDataSpec.m in Sources */, + 1EE8C44C1F385C7100FDC2CF /* SDLRDSDataSpec.m in Sources */, 5DB92D241AC47B2C00C15BB0 /* SDLHexUtilitySpec.m in Sources */, 162E83281A9BDE8B00906325 /* SDLDeleteCommandSpec.m in Sources */, - 5DB92D261AC4836F00C15BB0 /* SDLJingleSpec.m in Sources */, 162E83531A9BDE8B00906325 /* SDLDiagnosticMessageResponseSpec.m in Sources */, 162E83671A9BDE8B00906325 /* SDLSliderResponseSpec.m in Sources */, + 8877F5F11F34AA2D00DC128A /* SDLSendHapticDataResponseSpec.m in Sources */, 162E836C1A9BDE8B00906325 /* SDLSystemRequestResponseSpec.m in Sources */, 162E833C1A9BDE8B00906325 /* SDLSetMediaClockTimerSpec.m in Sources */, 162E83061A9BDE8B00906325 /* SDLVehicleDataEventStatusSpec.m in Sources */, - 5DEE55C01B8509CB004F0D0F /* SDLURLRequestTaskSpec.m in Sources */, 162E83911A9BDE8B00906325 /* SDLTouchCoordSpec.m in Sources */, 162E832B1A9BDE8B00906325 /* SDLDeleteSubMenuSpec.m in Sources */, 162E83411A9BDE8B00906325 /* SDLSubscribeButtonSpec.m in Sources */, 5D59DD471B14FDEE00BE744D /* SDLLockScreenStatusManagerSpec.m in Sources */, 5D0A9F9A1F15636800CC80DD /* SDLGetSystemCapabilitiesSpec.m in Sources */, 162E82F31A9BDE8B00906325 /* SDLPrerecordedSpeechSpec.m in Sources */, + 1EE8C45A1F387BBB00FDC2CF /* SDLGetInteriorVehicleDataSpec.m in Sources */, 162E83691A9BDE8B00906325 /* SDLSubscribeButtonResponseSpec.m in Sources */, 5DAE06751BDEC6D600F9B498 /* SDLArtworkSpec.m in Sources */, 5DA23FF01F2FA0FF009C0313 /* SDLControlFramePayloadEndServiceSpec.m in Sources */, 162E83591A9BDE8B00906325 /* SDLListFilesResponseSpec.m in Sources */, 162E832A1A9BDE8B00906325 /* SDLDeleteInteractionChoiceSetSpec.m in Sources */, 162E839D1A9BDE8B00906325 /* SDLRPCResponseSpec.m in Sources */, + 1EE8C4521F38657D00FDC2CF /* SDLTemperatureSpec.m in Sources */, 5DB1BCDF1D243DD3002FFC37 /* SDLLockScreenConfigurationSpec.m in Sources */, 162E82E51A9BDE8B00906325 /* SDLImageTypeSpec.m in Sources */, - 88E071A81F327E3C00C9CB2F /* SDLSendHapticDataSpec.m in Sources */, 162E83421A9BDE8B00906325 /* SDLSubscribeVehicleDataSpec.m in Sources */, 162E83811A9BDE8B00906325 /* SDLImageFieldSpec.m in Sources */, 162E834F1A9BDE8B00906325 /* SDLDeleteCommandResponseSpec.m in Sources */, + 88B848C91F462E3600DED768 /* TestProgressResponse.m in Sources */, 162E83231A9BDE8B00906325 /* SDLAddSubMenuSpec.m in Sources */, DA4353E91D2721680099B8C4 /* DispatchTimerSpec.m in Sources */, + 1EE8C45D1F387D1C00FDC2CF /* SDLGetInteriorVehicleDataResponseSpec.m in Sources */, + DA8966EF1E5693E300413EAB /* SDLStreamingMediaLifecycleManagerSpec.m in Sources */, 162E82F21A9BDE8B00906325 /* SDLPredefinedLayoutSpec.m in Sources */, 162E83521A9BDE8B00906325 /* SDLDeleteSubMenuResponseSpec.m in Sources */, 162E82E91A9BDE8B00906325 /* SDLKeypressModeSpec.m in Sources */, @@ -5256,9 +5622,11 @@ DA9F7EA01DCC05D200ACAE48 /* SDLOnWaypointChangeSpec.m in Sources */, 162E82D11A9BDE8A00906325 /* SDLButtonNameSpec.m in Sources */, 162E839E1A9BDE8B00906325 /* SDLRPCStructSpec.m in Sources */, + 88B848C31F45E1A600DED768 /* TestResponse.m in Sources */, DA4353DF1D271FD10099B8C4 /* CGPointUtilSpec.m in Sources */, 162E83291A9BDE8B00906325 /* SDLDeleteFileSpec.m in Sources */, 1680B11D1A9CD7AD00DBD79E /* SDLProtocolMessageDisassemblerSpec.m in Sources */, + 8BBEA6091F324832003EEA26 /* SDLMetadataTypeSpec.m in Sources */, DA9F7E9E1DCC05B900ACAE48 /* SDLWaypointTypeSpec.m in Sources */, 162E838E1A9BDE8B00906325 /* SDLSyncMsgVersionSpec.m in Sources */, 5D76E31C1D3805FF00647CFA /* SDLLockScreenManagerSpec.m in Sources */, @@ -5268,6 +5636,7 @@ 162E82DE1A9BDE8B00906325 /* SDLFuelCutoffStatusSpec.m in Sources */, 162E83271A9BDE8B00906325 /* SDLCreateInteractionChoiceSetSpec.m in Sources */, 162E83111A9BDE8B00906325 /* SDLOnButtonEventSpec.m in Sources */, + 1FF7DAC01F75CF6C00B46C30 /* SDLHapticManagerSpec.m in Sources */, 162E82FA1A9BDE8B00906325 /* SDLSoftButtonTypeSpec.m in Sources */, 162E83751A9BDE8B00906325 /* SDLButtonCapabilitiesSpec.m in Sources */, DA9F7EAF1DCC063400ACAE48 /* SDLLocationCoordinateSpec.m in Sources */, @@ -5281,11 +5650,15 @@ 162E83071A9BDE8B00906325 /* SDLVehicleDataNotificationStatusSpec.m in Sources */, 5D9F50811BE7E6E300FEF399 /* SDLPermissionsManagerSpec.m in Sources */, 162E83361A9BDE8B00906325 /* SDLRegisterAppInterfaceSpec.m in Sources */, + 8B7B31AB1F2FB93500BDC38D /* SDLVideoStreamingCodecSpec.m in Sources */, 162E82DD1A9BDE8B00906325 /* SDLFileTypeSpec.m in Sources */, 5DBF0D5E1F3A68C0008AF2C9 /* SDLControlFramePayloadVideoStartServiceSpec.m in Sources */, 162E836A1A9BDE8B00906325 /* SDLSubscribeVehicleDataResponseSpec.m in Sources */, + 5D43465B1E6F154400B639C6 /* SDLLogConfigurationSpec.m in Sources */, 162E83761A9BDE8B00906325 /* SDLChoiceSpec.m in Sources */, 162E83571A9BDE8B00906325 /* SDLGetDTCsResponseSpec.m in Sources */, + 5D4346471E6F0BDA00B639C6 /* SDLLogFileModuleSpec.m in Sources */, + 1EE8C4581F387ABD00FDC2CF /* SDLButtonPressResponseSpec.m in Sources */, 5DA23FF61F2FAA31009C0313 /* SDLControlFramePayloadRPCStartServiceSpec.m in Sources */, 162E83201A9BDE8B00906325 /* SDLOnVehicleDataSpec.m in Sources */, 162E83141A9BDE8B00906325 /* SDLOnDriverDistractionSpec.m in Sources */, @@ -5293,16 +5666,14 @@ 162E82DF1A9BDE8B00906325 /* SDLGlobalProperySpec.m in Sources */, 162E82F61A9BDE8B00906325 /* SDLRequestTypeSpec.m in Sources */, 162E82FB1A9BDE8B00906325 /* SDLSpeechCapabilitiesSpec.m in Sources */, - 5D0A9F9C1F1565EB00CC80DD /* SDLGetSystemCapabilitiesResponseSpec.m in Sources */, + 5D0A9F9C1F1565EB00CC80DD /* SDLGetSystemCapabilityResponseSpec.m in Sources */, 162E830D1A9BDE8B00906325 /* SDLWiperStatusSpec.m in Sources */, 162E832C1A9BDE8B00906325 /* SDLDiagnosticMessageSpec.m in Sources */, - 5DF2BB9D1B94E38A00CE5994 /* SDLURLSessionSpec.m in Sources */, 162E83381A9BDE8B00906325 /* SDLScrollableMessageSpec.m in Sources */, 162E82E81A9BDE8B00906325 /* SDLKeyboardLayoutSpec.m in Sources */, DA9F7EA41DCC05EE00ACAE48 /* SDLSubscribeWaypointsSpec.m in Sources */, DA4353EB1D2721680099B8C4 /* SDLTouchSpec.m in Sources */, 5DB1BCE71D245647002FFC37 /* TestStateMachineTarget.m in Sources */, - 88E071A61F327A8B00C9CB2F /* SDLHapticRectSpec.m in Sources */, 162E83541A9BDE8B00906325 /* SDLEncodedSyncPDataResponseSpec.m in Sources */, 162E83161A9BDE8B00906325 /* SDLOnHashChangeSpec.m in Sources */, 162E82FE1A9BDE8B00906325 /* SDLTBTStateSpec.m in Sources */, @@ -5311,11 +5682,13 @@ 162E834B1A9BDE8B00906325 /* SDLAlertManeuverResponseSpec.m in Sources */, 162E833E1A9BDE8B00906325 /* SDLShowSpec.m in Sources */, 162E83241A9BDE8B00906325 /* SDLAlertManeuverSpec.m in Sources */, + 5D43466F1E6F55BD00B639C6 /* SDLLogManagerSpec.m in Sources */, 162E83451A9BDE8B00906325 /* SDLUnregisterAppInterfaceSpec.m in Sources */, 162E82EF1A9BDE8B00906325 /* SDLPermissionStatusSpec.m in Sources */, DA9F7EA61DCC05F500ACAE48 /* SDLUnsubscribeWaypointsSpec.m in Sources */, 162E82F01A9BDE8B00906325 /* SDLPowerModeQualificationStatusSpec.m in Sources */, 162E82CD1A9BDE8A00906325 /* SDLAudioStreamingStateSpec.m in Sources */, + 1EE8C4461F3837D200FDC2CF /* SDLModuleDataSpec.m in Sources */, 162E831A1A9BDE8B00906325 /* SDLOnLockScreenStatusSpec.m in Sources */, 162E83431A9BDE8B00906325 /* SDLSyncPDataSpec.m in Sources */, 167ED9461A9BCE5D00797BE5 /* SwiftSpec.swift in Sources */, @@ -5323,9 +5696,11 @@ 162E834C1A9BDE8B00906325 /* SDLAlertResponseSpec.m in Sources */, 1680B11B1A9CD7AD00DBD79E /* SDLFunctionIDSpec.m in Sources */, 5DB1BCDA1D243D85002FFC37 /* SDLStateMachineSpec.m in Sources */, + 5D4346731E6F617D00B639C6 /* TestLogTarget.m in Sources */, + 1EE8C43C1F347EAE00FDC2CF /* SDLTemperatureUnitSpec.m in Sources */, 162E83131A9BDE8B00906325 /* SDLOnCommandSpec.m in Sources */, 162E833A1A9BDE8B00906325 /* SDLSetDisplayLayoutSpec.m in Sources */, - 5DADA7721F4DFB9B0084D17D /* SDLRectangleSpec.m in Sources */, + 1EE8C4401F348D3200FDC2CF /* SDLClimateControlCapabilitiesSpec.m in Sources */, 162E838F1A9BDE8B00906325 /* SDLTextFieldSpec.m in Sources */, 162E82CA1A9BDE8A00906325 /* SDLAmbientLightStatusSpec.m in Sources */, 162E83091A9BDE8B00906325 /* SDLVehicleDataStatusSpec.m in Sources */, @@ -5337,13 +5712,16 @@ 162E833D1A9BDE8B00906325 /* SDLShowConstantTBTSpec.m in Sources */, 162E83651A9BDE8B00906325 /* SDLShowConstantTBTResponseSpec.m in Sources */, 162E82F91A9BDE8B00906325 /* SDLSamplingRateSpec.m in Sources */, + 5DBEFA541F434B9E009EE295 /* SDLStreamingMediaConfigurationSpec.m in Sources */, 162E82CB1A9BDE8A00906325 /* SDLAppHMITypeSpec.m in Sources */, 162E83031A9BDE8B00906325 /* SDLTriggerSource.m in Sources */, 162E82D61A9BDE8A00906325 /* SDLComponentVolumeStatusSpec.m in Sources */, 162E835C1A9BDE8B00906325 /* SDLPutFileResponseSpec.m in Sources */, - 8BD729B51F2A711D0029AC93 /* SDLVideoStreamingCodecSpec.m in Sources */, + 1EE8C43E1F347F0500FDC2CF /* SDLVentilationModeSpec.m in Sources */, + 5DB202271F5F2D030061D189 /* SDLImageResolutionSpec.m in Sources */, DA9F7EAA1DCC061A00ACAE48 /* SDLSubscribeWaypointsResponseSpec.m in Sources */, 162E835F1A9BDE8B00906325 /* SDLResetGlobalPropertiesResponseSpec.m in Sources */, + 1EE8C4381F347C7300FDC2CF /* SDLRadioBandSpec.m in Sources */, 162E835E1A9BDE8B00906325 /* SDLRegisterAppInterfaceResponseSpec.m in Sources */, 162E835A1A9BDE8B00906325 /* SDLPerformAudioPassThruResponseSpec.m in Sources */, 162E83501A9BDE8B00906325 /* SDLDeleteFileResponseSpec.m in Sources */, @@ -5352,6 +5730,7 @@ 162E83821A9BDE8B00906325 /* SDLImageSpec.m in Sources */, 162E834A1A9BDE8B00906325 /* SDLAddSubMenuResponseSpec.m in Sources */, 162E830C1A9BDE8B00906325 /* SDLWarningLightStatusSpec.m in Sources */, + 1EE8C45F1F3884FF00FDC2CF /* SDLSetInteriorVehicleDataSpec.m in Sources */, 162E82E71A9BDE8B00906325 /* SDLKeyboardEventSpec.m in Sources */, 162E834E1A9BDE8B00906325 /* SDLCreateInteractionChoiceSetResponseSpec.m in Sources */, DA9F7EB61DCC086A00ACAE48 /* SDLOasisAddressSpec.m in Sources */, @@ -5360,7 +5739,9 @@ 162E838C1A9BDE8B00906325 /* SDLSoftButtonSpec.m in Sources */, 5DA23FF81F2FAF2D009C0313 /* SDLControlFramePayloadRPCStartServiceAckSpec.m in Sources */, 162E83191A9BDE8B00906325 /* SDLOnLanguageChangeSpec.m in Sources */, + 5DADA7781F4E059E0084D17D /* SDLRectangleSpec.m in Sources */, 5DB1BCDD1D243DC3002FFC37 /* SDLLifecycleConfigurationSpec.m in Sources */, + EED5CA0A1F4D206800F04000 /* SDLRTPH264PacketizerSpec.m in Sources */, 162E83611A9BDE8B00906325 /* SDLSetAppIconResponseSpec.m in Sources */, 162E83471A9BDE8B00906325 /* SDLUnsubscribeVehicleDataSpec.m in Sources */, 162E839A1A9BDE8B00906325 /* SDLRPCMessageSpec.m in Sources */, @@ -5369,20 +5750,22 @@ 162E83311A9BDE8B00906325 /* SDLListFilesSpec.m in Sources */, DA9F7EB01DCC063400ACAE48 /* SDLLocationDetailsSpec.m in Sources */, 5DC978261B7A38640012C2F1 /* SDLGlobalsSpec.m in Sources */, - 8BF9DE071F2BAEEE004FFCBB /* SDLVideoStreamingFormatSpec.m in Sources */, 162E82FF1A9BDE8B00906325 /* SDLTextAlignmentSpec.m in Sources */, 162E831F1A9BDE8B00906325 /* SDLOnTouchEventSpec.m in Sources */, 162E83921A9BDE8B00906325 /* SDLTouchEventCapabilitiesSpec.m in Sources */, 162E837F1A9BDE8B00906325 /* SDLHeadLampStatusSpec.m in Sources */, 162E834D1A9BDE8B00906325 /* SDLChangeRegistrationResponseSpec.m in Sources */, DA9F7EAC1DCC062400ACAE48 /* SDLUnsubscribeWaypointsResponseSpec.m in Sources */, + 5D43466B1E6F3B4C00B639C6 /* SDLLogFilterSpec.m in Sources */, + 88D2AAE41F682BB20078D5B2 /* SDLLogConstantsSpec.m in Sources */, 162E836B1A9BDE8B00906325 /* SDLSyncPDataResponseSpec.m in Sources */, + 8B7B31AF1F2FBA0200BDC38D /* SDLVideoStreamingCapabilitySpec.m in Sources */, 162E839B1A9BDE8B00906325 /* SDLRPCNotificationSpec.m in Sources */, 162E83581A9BDE8B00906325 /* SDLGetVehicleDataResponseSpec.m in Sources */, + 8B7B31B11F2FBD9500BDC38D /* SDLVideoStreamingFormatSpec.m in Sources */, 162E831D1A9BDE8B00906325 /* SDLOnSystemRequestSpec.m in Sources */, 162E835D1A9BDE8B00906325 /* SDLReadDIDResponseSpec.m in Sources */, 162E82D41A9BDE8A00906325 /* SDLCharacterSetSpec.m in Sources */, - 8BF9DE091F2BAF0C004FFCBB /* SDLVideoStreamingCapabilitySpec.m in Sources */, 162E830F1A9BDE8B00906325 /* SDLOnAppInterfaceUnregisteredSpec.m in Sources */, 162E83971A9BDE8B00906325 /* SDLVehicleTypeSpec.m in Sources */, 1680B1131A9CD7AD00DBD79E /* SDLProtocolHeaderSpec.m in Sources */, @@ -5395,11 +5778,13 @@ 162E83441A9BDE8B00906325 /* SDLSystemRequestSpec.m in Sources */, 162E83001A9BDE8B00906325 /* SDLTextFieldNameSpec.m in Sources */, DA4353EA1D2721680099B8C4 /* SDLTouchManagerSpec.m in Sources */, + 1EE8C4611F38865B00FDC2CF /* SDLSetInteriorVehicleDataResponseSpec.m in Sources */, 162E82FC1A9BDE8B00906325 /* SDLSystemAction.m in Sources */, 162E82CC1A9BDE8A00906325 /* SDLAppInterfaceUnregisteredReasonSpec.m in Sources */, 162E83321A9BDE8B00906325 /* SDLPerformAudioPassThruSpec.m in Sources */, 162E830B1A9BDE8B00906325 /* SDLVrCapabilitiesSpec.m in Sources */, 162E83081A9BDE8B00906325 /* SDLVehicleDataResultCodeSpec.m in Sources */, + 8877F5EB1F34A3BE00DC128A /* SDLSendHapticDataSpec.m in Sources */, 162E83621A9BDE8B00906325 /* SDLSetDisplayLayoutResponseSpec.m in Sources */, 162E832E1A9BDE8B00906325 /* SDLEndAudioPassThruSpec.m in Sources */, 1680B1191A9CD7AD00DBD79E /* SDLV2ProtocolMessageSpec.m in Sources */, @@ -5418,6 +5803,8 @@ 162E83861A9BDE8B00906325 /* SDLParameterPermissionsSpec.m in Sources */, 162E831B1A9BDE8B00906325 /* SDLOnPermissionsChangeSpec.m in Sources */, 162E83711A9BDE8B00906325 /* SDLAirbagStatusSpec.m in Sources */, + 1EE8C44A1F3846D300FDC2CF /* SDLRadioControlDataSpec.m in Sources */, + 1EE8C4501F38629200FDC2CF /* SDLRemoteControlCapabilitiesSpec.m in Sources */, 162E82CF1A9BDE8A00906325 /* SDLBitsPerSampleSpec.m in Sources */, 162E831E1A9BDE8B00906325 /* SDLOnTBTClientStateSpec.m in Sources */, 162E83351A9BDE8B00906325 /* SDLReadDIDSpec.m in Sources */, @@ -5432,6 +5819,7 @@ 5DB1BCD31D243A8E002FFC37 /* SDLDeleteFileOperationSpec.m in Sources */, 5D0A9F971F1559EC00CC80DD /* SDLSystemCapabilitySpec.m in Sources */, 162E82F41A9BDE8B00906325 /* SDLPrimaryAudioSource.m in Sources */, + EED5CA041F4D1D5E00F04000 /* SDLRAWH264PacketizerSpec.m in Sources */, 5DBAE0AB1D3588AC00CE00BF /* SDLNotificationDispatcherSpec.m in Sources */, 162E83461A9BDE8B00906325 /* SDLUnsubscribeButtonSpec.m in Sources */, 162E82EB1A9BDE8B00906325 /* SDLLayoutModeSpec.m in Sources */, @@ -5445,6 +5833,11 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + 5D43468C1E788E2200B639C6 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 5D61FA1B1A84237100846EE7 /* SmartDeviceLink */; + targetProxy = 5D43468B1E788E2200B639C6 /* PBXContainerItemProxy */; + }; 5D61FA291A84237100846EE7 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 5D61FA1B1A84237100846EE7 /* SmartDeviceLink */; @@ -5616,6 +6009,7 @@ 5D4019D31A76EC350006B0C2 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; DEVELOPMENT_TEAM = NCVC2MHU7M; @@ -5630,6 +6024,7 @@ 5D4019D41A76EC350006B0C2 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; DEVELOPMENT_TEAM = NCVC2MHU7M; @@ -5641,6 +6036,65 @@ }; name = Release; }; + 5D4346671E6F38E600B639C6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CODE_SIGN_IDENTITY = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = SmartDeviceLinkSwift/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.smartdevicelink.SmartDeviceLinkSwift; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 5D4346681E6F38E600B639C6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NONNULL = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CODE_SIGN_IDENTITY = ""; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = SmartDeviceLinkSwift/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.smartdevicelink.SmartDeviceLinkSwift; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_SWIFT3_OBJC_INFERENCE = On; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; 5D61FA361A84237100846EE7 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -5648,6 +6102,7 @@ CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES; CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES; CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES; + CLANG_ENABLE_MODULES = YES; CLANG_STATIC_ANALYZER_MODE = deep; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = NO; @@ -5672,6 +6127,7 @@ RUN_CLANG_STATIC_ANALYZER = YES; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -5685,6 +6141,7 @@ CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES; CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES; CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES; + CLANG_ENABLE_MODULES = YES; CLANG_STATIC_ANALYZER_MODE = deep; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = NO; @@ -5704,6 +6161,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; RUN_CLANG_STATIC_ANALYZER = YES; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -5716,6 +6174,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEVELOPMENT_TEAM = ""; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(DEVELOPER_FRAMEWORKS_DIR)", @@ -5751,6 +6210,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEVELOPMENT_TEAM = ""; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(DEVELOPER_FRAMEWORKS_DIR)", @@ -5796,6 +6256,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 5D4346661E6F38E600B639C6 /* Build configuration list for PBXNativeTarget "SmartDeviceLinkSwift" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5D4346671E6F38E600B639C6 /* Debug */, + 5D4346681E6F38E600B639C6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 5D61FA351A84237100846EE7 /* Build configuration list for PBXNativeTarget "SmartDeviceLink" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/SmartDeviceLink-iOS.xcodeproj/project.xcworkspace/xcshareddata/SmartDeviceLink-iOS.xcscmblueprint b/SmartDeviceLink-iOS.xcodeproj/project.xcworkspace/xcshareddata/SmartDeviceLink-iOS.xcscmblueprint index fe46776ac..3d36d3962 100644 --- a/SmartDeviceLink-iOS.xcodeproj/project.xcworkspace/xcshareddata/SmartDeviceLink-iOS.xcscmblueprint +++ b/SmartDeviceLink-iOS.xcodeproj/project.xcworkspace/xcshareddata/SmartDeviceLink-iOS.xcscmblueprint @@ -7,7 +7,7 @@ "66020812E25F835F7E461E1F36EFF9E212E74787" : 9223372036854775807, "56518C5F548896A9F8039D14FD50ECBB0A40BE1B" : 9223372036854775807 }, - "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "C6E6E3FF-2162-4DF5-AA1E-650AF27E7D3F", + "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "E7549925-63B0-46D9-8801-13778848A065", "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : { "66020812E25F835F7E461E1F36EFF9E212E74787" : "sdl_ios\/", "56518C5F548896A9F8039D14FD50ECBB0A40BE1B" : "sdl_ios\/bson_c_lib\/" diff --git a/SmartDeviceLink-iOS.xcodeproj/xcshareddata/xcschemes/SmartDeviceLinkSwift.xcscheme b/SmartDeviceLink-iOS.xcodeproj/xcshareddata/xcschemes/SmartDeviceLinkSwift.xcscheme new file mode 100644 index 000000000..4178dc9f6 --- /dev/null +++ b/SmartDeviceLink-iOS.xcodeproj/xcshareddata/xcschemes/SmartDeviceLinkSwift.xcscheme @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SmartDeviceLink.podspec b/SmartDeviceLink.podspec index 2d4df27da..513ae99ef 100644 --- a/SmartDeviceLink.podspec +++ b/SmartDeviceLink.podspec @@ -1,306 +1,346 @@ Pod::Spec.new do |s| s.name = "SmartDeviceLink" -s.version = "4.7.4" +s.version = "5.0.0" s.summary = "Connect your app with cars!" s.homepage = "https://github.com/smartdevicelink/SmartDeviceLink-iOS" s.license = { :type => "New BSD", :file => "LICENSE" } s.author = { "SmartDeviceLink Team" => "developer@smartdevicelink.com" } -s.platform = :ios, "7.0" -s.source = { :git => "https://github.com/smartdevicelink/sdl_ios.git", :tag => s.version.to_s } +s.platform = :ios, "8.0" s.dependency 'BiSON', '~> 1.0' -s.source_files = "SmartDeviceLink/*.{h,m}" +s.source = { :git => "https://github.com/smartdevicelink/sdl_ios.git", :tag => s.version.to_s } s.requires_arc = true -s.resource_bundles = { 'SmartDeviceLink' => ['SmartDeviceLink/Assets/**/*', 'SmartDeviceLink/iOS 7 Assets/*'] } -s.public_header_files = [ -'SmartDeviceLink/SmartDeviceLink.h', -'SmartDeviceLink/SDLJingle.h', -'SmartDeviceLink/SDLProxy.h', -'SmartDeviceLink/SDLProxyFactory.h', -'SmartDeviceLink/SDLProxyListener.h', -'SmartDeviceLink/SDLSecurityType.h', -'SmartDeviceLink/SDLStreamingMediaManager.h', -'SmartDeviceLink/SDLTTSChunkFactory.h', -'SmartDeviceLink/SDLTouchManager.h', -'SmartDeviceLink/SDLTouchManagerDelegate.h', -'SmartDeviceLink/SDLConsoleController.h', -'SmartDeviceLink/SDLDebugTool.h', -'SmartDeviceLink/SDLDebugToolConsole.h', -'SmartDeviceLink/SDLSiphonServer.h', -'SmartDeviceLink/SDLAbstractTransport.h', -'SmartDeviceLink/SDLIAPSessionDelegate.h', -'SmartDeviceLink/SDLIAPTransport.h', -'SmartDeviceLink/SDLTCPTransport.h', -'SmartDeviceLink/SDLTransportDelegate.h', +s.resource_bundles = { 'SmartDeviceLink' => ['SmartDeviceLink/Assets/**/*'] } + +s.default_subspecs = 'Default' + +s.subspec 'Default' do |ss| +ss.source_files = 'SmartDeviceLink/*.{h,m}' + +ss.public_header_files = [ +'SmartDeviceLink/NSNumber+NumberType.h', 'SmartDeviceLink/SDLAbstractProtocol.h', -'SmartDeviceLink/SDLProtocol.h', -'SmartDeviceLink/SDLProtocolListener.h', -'SmartDeviceLink/SDLProtocolHeader.h', -'SmartDeviceLink/SDLProtocolMessage.h', -'SmartDeviceLink/SDLEnum.h', -'SmartDeviceLink/SDLRPCMessage.h', -'SmartDeviceLink/SDLRPCNotification.h', -'SmartDeviceLink/SDLRPCRequest.h', -'SmartDeviceLink/SDLRPCResponse.h', -'SmartDeviceLink/SDLRPCStruct.h', -'SmartDeviceLink/SDLRPCRequestFactory.h', +'SmartDeviceLink/SDLAbstractTransport.h', 'SmartDeviceLink/SDLAddCommand.h', +'SmartDeviceLink/SDLAddCommandResponse.h', 'SmartDeviceLink/SDLAddSubMenu.h', +'SmartDeviceLink/SDLAddSubMenuResponse.h', +'SmartDeviceLink/SDLAirbagStatus.h', 'SmartDeviceLink/SDLAlert.h', 'SmartDeviceLink/SDLAlertManeuver.h', -'SmartDeviceLink/SDLChangeRegistration.h', -'SmartDeviceLink/SDLCreateInteractionChoiceSet.h', -'SmartDeviceLink/SDLDeleteCommand.h', -'SmartDeviceLink/SDLDeleteFile.h', -'SmartDeviceLink/SDLDeleteInteractionChoiceSet.h', -'SmartDeviceLink/SDLDeleteSubMenu.h', -'SmartDeviceLink/SDLDiagnosticMessage.h', -'SmartDeviceLink/SDLDialNumber.h', -'SmartDeviceLink/SDLEncodedSyncPData.h', -'SmartDeviceLink/SDLEndAudioPassThru.h', -'SmartDeviceLink/SDLGetDTCs.h', -'SmartDeviceLink/SDLGetSystemCapability.h', -'SmartDeviceLink/SDLGetVehicleData.h', -'SmartDeviceLink/SDLGetWaypoints.h', -'SmartDeviceLink/SDLListFiles.h', -'SmartDeviceLink/SDLPerformAudioPassThru.h', -'SmartDeviceLink/SDLPerformInteraction.h', -'SmartDeviceLink/SDLPutFile.h', -'SmartDeviceLink/SDLReadDID.h', -'SmartDeviceLink/SDLRegisterAppInterface.h', -'SmartDeviceLink/SDLResetGlobalProperties.h', -'SmartDeviceLink/SDLScrollableMessage.h', -'SmartDeviceLink/SDLSendHapticData.h', -'SmartDeviceLink/SDLSendLocation.h', -'SmartDeviceLink/SDLSetAppIcon.h', -'SmartDeviceLink/SDLSetDisplayLayout.h', -'SmartDeviceLink/SDLSetGlobalProperties.h', -'SmartDeviceLink/SDLSetMediaClockTimer.h', -'SmartDeviceLink/SDLShow.h', -'SmartDeviceLink/SDLShowConstantTBT.h', -'SmartDeviceLink/SDLSlider.h', -'SmartDeviceLink/SDLSpeak.h', -'SmartDeviceLink/SDLSubscribeButton.h', -'SmartDeviceLink/SDLSubscribeVehicleData.h', -'SmartDeviceLink/SDLSubscribeWaypoints.h', -'SmartDeviceLink/SDLSyncPData.h', -'SmartDeviceLink/SDLUnregisterAppInterface.h', -'SmartDeviceLink/SDLUnsubscribeButton.h', -'SmartDeviceLink/SDLUnsubscribeVehicleData.h', -'SmartDeviceLink/SDLUnsubscribeWaypoints.h', -'SmartDeviceLink/SDLUpdateTurnList.h', -'SmartDeviceLink/SDLAddCommandResponse.h', -'SmartDeviceLink/SDLAddSubMenuResponse.h', +'SmartDeviceLink/SDLButtonPress.h', 'SmartDeviceLink/SDLAlertManeuverResponse.h', 'SmartDeviceLink/SDLAlertResponse.h', -'SmartDeviceLink/SDLChangeRegistrationResponse.h', -'SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h', -'SmartDeviceLink/SDLDeleteCommandResponse.h', -'SmartDeviceLink/SDLDeleteFileResponse.h', -'SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h', -'SmartDeviceLink/SDLDeleteSubMenuResponse.h', -'SmartDeviceLink/SDLDiagnosticMessageResponse.h', -'SmartDeviceLink/SDLDialNumberResponse.h', -'SmartDeviceLink/SDLEncodedSyncPDataResponse.h', -'SmartDeviceLink/SDLEndAudioPassThruResponse.h', -'SmartDeviceLink/SDLGenericResponse.h', -'SmartDeviceLink/SDLGetDTCsResponse.h', -'SmartDeviceLink/SDLGetSystemCapabilityResponse.h', -'SmartDeviceLink/SDLGetVehicleDataResponse.h', -'SmartDeviceLink/SDLGetWaypointsResponse.h', -'SmartDeviceLink/SDLListFilesResponse.h', -'SmartDeviceLink/SDLPerformAudioPassThruResponse.h', -'SmartDeviceLink/SDLPerformInteractionResponse.h', -'SmartDeviceLink/SDLPutFileResponse.h', -'SmartDeviceLink/SDLReadDIDResponse.h', -'SmartDeviceLink/SDLRegisterAppInterfaceResponse.h', -'SmartDeviceLink/SDLResetGlobalPropertiesResponse.h', -'SmartDeviceLink/SDLScrollableMessageResponse.h', -'SmartDeviceLink/SDLSendHapticDataResponse.h', -'SmartDeviceLink/SDLSendLocationResponse.h', -'SmartDeviceLink/SDLSetAppIconResponse.h', -'SmartDeviceLink/SDLSetDisplayLayoutResponse.h', -'SmartDeviceLink/SDLSetGlobalPropertiesResponse.h', -'SmartDeviceLink/SDLSetMediaClockTimerResponse.h', -'SmartDeviceLink/SDLShowConstantTBTResponse.h', -'SmartDeviceLink/SDLShowResponse.h', -'SmartDeviceLink/SDLSliderResponse.h', -'SmartDeviceLink/SDLSpeakResponse.h', -'SmartDeviceLink/SDLSubscribeButtonResponse.h', -'SmartDeviceLink/SDLSubscribeVehicleDataResponse.h', -'SmartDeviceLink/SDLSubscribeWaypointsResponse.h', -'SmartDeviceLink/SDLSyncPDataResponse.h', -'SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h', -'SmartDeviceLink/SDLUnsubscribeButtonResponse.h', -'SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h', -'SmartDeviceLink/SDLUnsubscribeWaypointsResponse.h', -'SmartDeviceLink/SDLUpdateTurnListResponse.h', -'SmartDeviceLink/SDLOnAppInterfaceUnregistered.h', -'SmartDeviceLink/SDLOnAudioPassThru.h', -'SmartDeviceLink/SDLOnButtonEvent.h', -'SmartDeviceLink/SDLOnButtonPress.h', -'SmartDeviceLink/SDLOnCommand.h', -'SmartDeviceLink/SDLOnDriverDistraction.h', -'SmartDeviceLink/SDLOnEncodedSyncPData.h', -'SmartDeviceLink/SDLOnHMIStatus.h', -'SmartDeviceLink/SDLOnHashChange.h', -'SmartDeviceLink/SDLOnKeyboardInput.h', -'SmartDeviceLink/SDLOnLanguageChange.h', -'SmartDeviceLink/SDLOnLockScreenStatus.h', -'SmartDeviceLink/SDLOnPermissionsChange.h', -'SmartDeviceLink/SDLOnSyncPData.h', -'SmartDeviceLink/SDLOnSystemRequest.h', -'SmartDeviceLink/SDLOnTBTClientState.h', -'SmartDeviceLink/SDLOnTouchEvent.h', -'SmartDeviceLink/SDLOnVehicleData.h', -'SmartDeviceLink/SDLOnWaypointChange.h', -'SmartDeviceLink/SDLAirbagStatus.h', -'SmartDeviceLink/SDLAppInfo.h', -'SmartDeviceLink/SDLAudioPassThruCapabilities.h', -'SmartDeviceLink/SDLBeltStatus.h', -'SmartDeviceLink/SDLBodyInformation.h', -'SmartDeviceLink/SDLButtonCapabilities.h', -'SmartDeviceLink/SDLChoice.h', -'SmartDeviceLink/SDLClusterModeStatus.h', -'SmartDeviceLink/SDLDIDResult.h', -'SmartDeviceLink/SDLDateTime.h', -'SmartDeviceLink/SDLDeviceInfo.h', -'SmartDeviceLink/SDLDeviceStatus.h', -'SmartDeviceLink/SDLDisplayCapabilities.h', -'SmartDeviceLink/SDLECallInfo.h', -'SmartDeviceLink/SDLEmergencyEvent.h', -'SmartDeviceLink/SDLGPSData.h', -'SmartDeviceLink/SDLHMICapabilities.h', -'SmartDeviceLink/SDLHMIPermissions.h', -'SmartDeviceLink/SDLHeadLampStatus.h', -'SmartDeviceLink/SDLImage.h', -'SmartDeviceLink/SDLImageField.h', -'SmartDeviceLink/SDLImageResolution.h', -'SmartDeviceLink/SDLKeyboardProperties.h', -'SmartDeviceLink/SDLMenuParams.h', -'SmartDeviceLink/SDLMetadataTags.h', -'SmartDeviceLink/SDLMyKey.h', -'SmartDeviceLink/SDLNavigationCapability.h', -'SmartDeviceLink/SDLOasisAddress.h', -'SmartDeviceLink/SDLParameterPermissions.h', -'SmartDeviceLink/SDLPermissionItem.h', -'SmartDeviceLink/SDLPhoneCapability.h', -'SmartDeviceLink/SDLPresetBankCapabilities.h', -'SmartDeviceLink/SDLRectangle.h', -'SmartDeviceLink/SDLScreenParams.h', -'SmartDeviceLink/SDLSingleTireStatus.h', -'SmartDeviceLink/SDLSoftButton.h', -'SmartDeviceLink/SDLSoftButtonCapabilities.h', -'SmartDeviceLink/SDLStartTime.h', -'SmartDeviceLink/SDLSyncMsgVersion.h', -'SmartDeviceLink/SDLSystemCapability.h', -'SmartDeviceLink/SDLTTSChunk.h', -'SmartDeviceLink/SDLTextField.h', -'SmartDeviceLink/SDLTireStatus.h', -'SmartDeviceLink/SDLTouchCoord.h', -'SmartDeviceLink/SDLTouchEvent.h', -'SmartDeviceLink/SDLTouchEventCapabilities.h', -'SmartDeviceLink/SDLTurn.h', -'SmartDeviceLink/SDLVehicleDataResult.h', -'SmartDeviceLink/SDLVehicleType.h', -'SmartDeviceLink/SDLVideoStreamingFormat.h', -'SmartDeviceLink/SDLVideoStreamingCapability.h', -'SmartDeviceLink/SDLVRHelpItem.h', +'SmartDeviceLink/SDLButtonPressResponse.h', 'SmartDeviceLink/SDLAmbientLightStatus.h', 'SmartDeviceLink/SDLAppHMIType.h', +'SmartDeviceLink/SDLAppInfo.h', 'SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h', +'SmartDeviceLink/SDLArtwork.h', +'SmartDeviceLink/SDLAudioPassThruCapabilities.h', 'SmartDeviceLink/SDLAudioStreamingState.h', 'SmartDeviceLink/SDLAudioType.h', +'SmartDeviceLink/SDLBeltStatus.h', 'SmartDeviceLink/SDLBitsPerSample.h', +'SmartDeviceLink/SDLBodyInformation.h', +'SmartDeviceLink/SDLButtonCapabilities.h', 'SmartDeviceLink/SDLButtonEventMode.h', 'SmartDeviceLink/SDLButtonName.h', 'SmartDeviceLink/SDLButtonPressMode.h', 'SmartDeviceLink/SDLCarModeStatus.h', +'SmartDeviceLink/SDLChangeRegistration.h', +'SmartDeviceLink/SDLChangeRegistrationResponse.h', 'SmartDeviceLink/SDLCharacterSet.h', +'SmartDeviceLink/SDLChoice.h', +'SmartDeviceLink/SDLClimateControlCapabilities.h', +'SmartDeviceLink/SDLClimateControlData.h', +'SmartDeviceLink/SDLClusterModeStatus.h', 'SmartDeviceLink/SDLCompassDirection.h', 'SmartDeviceLink/SDLComponentVolumeStatus.h', +'SmartDeviceLink/SDLConfiguration.h', +'SmartDeviceLink/SDLCreateInteractionChoiceSet.h', +'SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h', +'SmartDeviceLink/SDLDateTime.h', +'SmartDeviceLink/SDLDefrostZone.h', +'SmartDeviceLink/SDLDeleteCommand.h', +'SmartDeviceLink/SDLDeleteCommandResponse.h', +'SmartDeviceLink/SDLDeleteFile.h', +'SmartDeviceLink/SDLDeleteFileResponse.h', +'SmartDeviceLink/SDLDeleteInteractionChoiceSet.h', +'SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h', +'SmartDeviceLink/SDLDeleteSubMenu.h', +'SmartDeviceLink/SDLDeleteSubMenuResponse.h', 'SmartDeviceLink/SDLDeliveryMode.h', +'SmartDeviceLink/SDLDeviceInfo.h', 'SmartDeviceLink/SDLDeviceLevelStatus.h', +'SmartDeviceLink/SDLDeviceStatus.h', +'SmartDeviceLink/SDLDiagnosticMessage.h', +'SmartDeviceLink/SDLDiagnosticMessageResponse.h', +'SmartDeviceLink/SDLDialNumber.h', +'SmartDeviceLink/SDLDialNumberResponse.h', +'SmartDeviceLink/SDLDIDResult.h', 'SmartDeviceLink/SDLDimension.h', +'SmartDeviceLink/SDLDisplayCapabilities.h', 'SmartDeviceLink/SDLDisplayType.h', 'SmartDeviceLink/SDLDriverDistractionState.h', 'SmartDeviceLink/SDLECallConfirmationStatus.h', +'SmartDeviceLink/SDLECallInfo.h', +'SmartDeviceLink/SDLEmergencyEvent.h', 'SmartDeviceLink/SDLEmergencyEventType.h', +'SmartDeviceLink/SDLEncodedSyncPData.h', +'SmartDeviceLink/SDLEncodedSyncPDataResponse.h', +'SmartDeviceLink/SDLEndAudioPassThru.h', +'SmartDeviceLink/SDLEndAudioPassThruResponse.h', +'SmartDeviceLink/SDLEnum.h', +'SmartDeviceLink/SDLErrorConstants.h', +'SmartDeviceLink/SDLFile.h', +'SmartDeviceLink/SDLFileManager.h', +'SmartDeviceLink/SDLFileManagerConstants.h', 'SmartDeviceLink/SDLFileType.h', 'SmartDeviceLink/SDLFuelCutoffStatus.h', +'SmartDeviceLink/SDLGenericResponse.h', +'SmartDeviceLink/SDLGetDTCs.h', +'SmartDeviceLink/SDLGetInteriorVehicleData.h', +'SmartDeviceLink/SDLGetDTCsResponse.h', +'SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h', +'SmartDeviceLink/SDLGetSystemCapability.h', +'SmartDeviceLink/SDLGetSystemCapabilityResponse.h', +'SmartDeviceLink/SDLGetVehicleData.h', +'SmartDeviceLink/SDLGetVehicleDataResponse.h', +'SmartDeviceLink/SDLGetWaypoints.h', +'SmartDeviceLink/SDLGetWaypointsResponse.h', 'SmartDeviceLink/SDLGlobalProperty.h', +'SmartDeviceLink/SDLGPSData.h', +'SmartDeviceLink/SDLHapticRect.h', +'SmartDeviceLink/SDLHeadLampStatus.h', +'SmartDeviceLink/SDLHMICapabilities.h', 'SmartDeviceLink/SDLHMILevel.h', +'SmartDeviceLink/SDLHMIPermissions.h', 'SmartDeviceLink/SDLHMIZoneCapabilities.h', +'SmartDeviceLink/SDLIAPSessionDelegate.h', +'SmartDeviceLink/SDLIAPTransport.h', 'SmartDeviceLink/SDLIgnitionStableStatus.h', 'SmartDeviceLink/SDLIgnitionStatus.h', +'SmartDeviceLink/SDLImage.h', +'SmartDeviceLink/SDLImageField.h', 'SmartDeviceLink/SDLImageFieldName.h', +'SmartDeviceLink/SDLImageResolution.h', 'SmartDeviceLink/SDLImageType.h', 'SmartDeviceLink/SDLInteractionMode.h', 'SmartDeviceLink/SDLKeyboardEvent.h', 'SmartDeviceLink/SDLKeyboardLayout.h', +'SmartDeviceLink/SDLKeyboardProperties.h', 'SmartDeviceLink/SDLKeypressMode.h', 'SmartDeviceLink/SDLLanguage.h', 'SmartDeviceLink/SDLLayoutMode.h', +'SmartDeviceLink/SDLLifecycleConfiguration.h', +'SmartDeviceLink/SDLListFiles.h', +'SmartDeviceLink/SDLListFilesResponse.h', 'SmartDeviceLink/SDLLocationCoordinate.h', 'SmartDeviceLink/SDLLocationDetails.h', +'SmartDeviceLink/SDLLockScreenConfiguration.h', 'SmartDeviceLink/SDLLockScreenStatus.h', +'SmartDeviceLink/SDLLockScreenViewController.h', +'SmartDeviceLink/SDLLogConfiguration.h', +'SmartDeviceLink/SDLLogConstants.h', +'SmartDeviceLink/SDLLogFileModule.h', +'SmartDeviceLink/SDLLogFilter.h', +'SmartDeviceLink/SDLLogMacros.h', +'SmartDeviceLink/SDLLogManager.h', +'SmartDeviceLink/SDLLogTarget.h', +'SmartDeviceLink/SDLLogTargetAppleSystemLog.h', +'SmartDeviceLink/SDLLogTargetFile.h', +'SmartDeviceLink/SDLLogTargetOSLog.h', +'SmartDeviceLink/SDLMacros.h', 'SmartDeviceLink/SDLMaintenanceModeStatus.h', +'SmartDeviceLink/SDLManager.h', +'SmartDeviceLink/SDLManagerDelegate.h', 'SmartDeviceLink/SDLMediaClockFormat.h', +'SmartDeviceLink/SDLMenuParams.h', +'SmartDeviceLink/SDLMetadataTags.h', 'SmartDeviceLink/SDLMetadataType.h', -'SmartDeviceLink/SDLPRNDL.h', +'SmartDeviceLink/SDLModuleData.h', +'SmartDeviceLink/SDLModuleType.h', +'SmartDeviceLink/SDLMyKey.h', +'SmartDeviceLink/SDLNavigationCapability.h', +'SmartDeviceLink/SDLNotificationConstants.h', +'SmartDeviceLink/SDLOasisAddress.h', +'SmartDeviceLink/SDLOnAppInterfaceUnregistered.h', +'SmartDeviceLink/SDLOnAudioPassThru.h', +'SmartDeviceLink/SDLOnButtonEvent.h', +'SmartDeviceLink/SDLOnButtonPress.h', +'SmartDeviceLink/SDLOnCommand.h', +'SmartDeviceLink/SDLOnDriverDistraction.h', +'SmartDeviceLink/SDLOnEncodedSyncPData.h', +'SmartDeviceLink/SDLOnHashChange.h', +'SmartDeviceLink/SDLOnInteriorVehicleData.h', +'SmartDeviceLink/SDLOnHMIStatus.h', +'SmartDeviceLink/SDLOnKeyboardInput.h', +'SmartDeviceLink/SDLOnLanguageChange.h', +'SmartDeviceLink/SDLOnLockScreenStatus.h', +'SmartDeviceLink/SDLOnPermissionsChange.h', +'SmartDeviceLink/SDLOnSyncPData.h', +'SmartDeviceLink/SDLOnSystemRequest.h', +'SmartDeviceLink/SDLOnTBTClientState.h', +'SmartDeviceLink/SDLOnTouchEvent.h', +'SmartDeviceLink/SDLOnVehicleData.h', +'SmartDeviceLink/SDLOnWayPointChange.h', +'SmartDeviceLink/SDLParameterPermissions.h', +'SmartDeviceLink/SDLPerformAudioPassThru.h', +'SmartDeviceLink/SDLPerformAudioPassThruResponse.h', +'SmartDeviceLink/SDLPerformInteraction.h', +'SmartDeviceLink/SDLPerformInteractionResponse.h', +'SmartDeviceLink/SDLPermissionConstants.h', +'SmartDeviceLink/SDLPermissionItem.h', +'SmartDeviceLink/SDLPermissionManager.h', 'SmartDeviceLink/SDLPermissionStatus.h', +'SmartDeviceLink/SDLPhoneCapability.h', +'SmartDeviceLink/SDLPinchGesture.h', 'SmartDeviceLink/SDLPowerModeQualificationStatus.h', 'SmartDeviceLink/SDLPowerModeStatus.h', 'SmartDeviceLink/SDLPredefinedLayout.h', 'SmartDeviceLink/SDLPrerecordedSpeech.h', +'SmartDeviceLink/SDLPresetBankCapabilities.h', 'SmartDeviceLink/SDLPrimaryAudioSource.h', -'SmartDeviceLink/SDLRPCMessageType.h', +'SmartDeviceLink/SDLPRNDL.h', +'SmartDeviceLink/SDLProtocol.h', +'SmartDeviceLink/SDLProtocolHeader.h', +'SmartDeviceLink/SDLProtocolListener.h', +'SmartDeviceLink/SDLProtocolMessage.h', +'SmartDeviceLink/SDLProxy.h', +'SmartDeviceLink/SDLProxyFactory.h', +'SmartDeviceLink/SDLProxyListener.h', +'SmartDeviceLink/SDLPutFile.h', +'SmartDeviceLink/SDLPutFileResponse.h', +'SmartDeviceLink/SDLRadioBand.h', +'SmartDeviceLink/SDLRadioControlCapabilities.h', +'SmartDeviceLink/SDLRadioControlData.h', +'SmartDeviceLink/SDLRadioState.h', +'SmartDeviceLink/SDLReadDID.h', +'SmartDeviceLink/SDLRectangle.h', +'SmartDeviceLink/SDLReadDIDResponse.h', +'SmartDeviceLink/SDLRectangle.h', +'SmartDeviceLink/SDLRegisterAppInterface.h', +'SmartDeviceLink/SDLRegisterAppInterfaceResponse.h', +'SmartDeviceLink/SDLRemoteControlCapabilities.h', 'SmartDeviceLink/SDLRequestType.h', +'SmartDeviceLink/SDLResetGlobalProperties.h', +'SmartDeviceLink/SDLResetGlobalPropertiesResponse.h', 'SmartDeviceLink/SDLResult.h', +'SmartDeviceLink/SDLRDSData.h', +'SmartDeviceLink/SDLRPCMessage.h', +'SmartDeviceLink/SDLRPCMessageType.h', +'SmartDeviceLink/SDLRPCNotification.h', +'SmartDeviceLink/SDLRPCNotificationNotification.h', +'SmartDeviceLink/SDLRPCRequest.h', +'SmartDeviceLink/SDLRPCResponse.h', +'SmartDeviceLink/SDLRPCResponseNotification.h', +'SmartDeviceLink/SDLRPCStruct.h', 'SmartDeviceLink/SDLSamplingRate.h', +'SmartDeviceLink/SDLScreenParams.h', +'SmartDeviceLink/SDLScrollableMessage.h', +'SmartDeviceLink/SDLScrollableMessageResponse.h', +'SmartDeviceLink/SDLSecurityType.h', +'SmartDeviceLink/SDLSendHapticData.h', +'SmartDeviceLink/SDLSendHapticDataResponse.h', +'SmartDeviceLink/SDLSendLocation.h', +'SmartDeviceLink/SDLSendLocationResponse.h', +'SmartDeviceLink/SDLSetAppIcon.h', +'SmartDeviceLink/SDLSetAppIconResponse.h', +'SmartDeviceLink/SDLSetDisplayLayout.h', +'SmartDeviceLink/SDLSetDisplayLayoutResponse.h', +'SmartDeviceLink/SDLSetGlobalProperties.h', +'SmartDeviceLink/SDLSetInteriorVehicleData.h', +'SmartDeviceLink/SDLSetGlobalPropertiesResponse.h', +'SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h', +'SmartDeviceLink/SDLSetMediaClockTimer.h', +'SmartDeviceLink/SDLSetMediaClockTimerResponse.h', +'SmartDeviceLink/SDLShow.h', +'SmartDeviceLink/SDLShowConstantTBT.h', +'SmartDeviceLink/SDLShowConstantTBTResponse.h', +'SmartDeviceLink/SDLShowResponse.h', +'SmartDeviceLink/SDLSingleTireStatus.h', +'SmartDeviceLink/SDLSlider.h', +'SmartDeviceLink/SDLSliderResponse.h', +'SmartDeviceLink/SDLSoftButton.h', +'SmartDeviceLink/SDLSoftButtonCapabilities.h', 'SmartDeviceLink/SDLSoftButtonType.h', -'SmartDeviceLink/SDLHapticRect.h', +'SmartDeviceLink/SDLSpeak.h', +'SmartDeviceLink/SDLSpeakResponse.h', 'SmartDeviceLink/SDLSpeechCapabilities.h', +'SmartDeviceLink/SDLStartTime.h', +'SmartDeviceLink/SDLStreamingMediaConfiguration.h', +'SmartDeviceLink/SDLStreamingMediaManager.h', +'SmartDeviceLink/SDLStreamingMediaManagerConstants.h', +'SmartDeviceLink/SDLSubscribeButton.h', +'SmartDeviceLink/SDLSubscribeButtonResponse.h', +'SmartDeviceLink/SDLSubscribeVehicleData.h', +'SmartDeviceLink/SDLSubscribeVehicleDataResponse.h', +'SmartDeviceLink/SDLSubscribeWaypoints.h', +'SmartDeviceLink/SDLSubscribeWaypointsResponse.h', +'SmartDeviceLink/SDLSyncMsgVersion.h', +'SmartDeviceLink/SDLSyncPData.h', +'SmartDeviceLink/SDLSyncPDataResponse.h', 'SmartDeviceLink/SDLSystemAction.h', +'SmartDeviceLink/SDLSystemCapability.h', 'SmartDeviceLink/SDLSystemCapabilityType.h', 'SmartDeviceLink/SDLSystemContext.h', 'SmartDeviceLink/SDLTBTState.h', +'SmartDeviceLink/SDLTemperature.h', +'SmartDeviceLink/SDLTemperatureUnit.h', +'SmartDeviceLink/SDLTCPTransport.h', 'SmartDeviceLink/SDLTextAlignment.h', +'SmartDeviceLink/SDLTextField.h', 'SmartDeviceLink/SDLTextFieldName.h', 'SmartDeviceLink/SDLTimerMode.h', +'SmartDeviceLink/SDLTireStatus.h', +'SmartDeviceLink/SDLTouch.h', +'SmartDeviceLink/SDLTouchCoord.h', +'SmartDeviceLink/SDLTouchEvent.h', +'SmartDeviceLink/SDLTouchEventCapabilities.h', +'SmartDeviceLink/SDLTouchManager.h', +'SmartDeviceLink/SDLTouchManagerDelegate.h', 'SmartDeviceLink/SDLTouchType.h', +'SmartDeviceLink/SDLTransportDelegate.h', 'SmartDeviceLink/SDLTriggerSource.h', +'SmartDeviceLink/SDLTTSChunk.h', +'SmartDeviceLink/SDLTurn.h', +'SmartDeviceLink/SDLUnregisterAppInterface.h', +'SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h', +'SmartDeviceLink/SDLUnsubscribeButton.h', +'SmartDeviceLink/SDLUnsubscribeButtonResponse.h', +'SmartDeviceLink/SDLUnsubscribeVehicleData.h', +'SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h', +'SmartDeviceLink/SDLUnsubscribeWaypoints.h', +'SmartDeviceLink/SDLUnsubscribeWaypointsResponse.h', 'SmartDeviceLink/SDLUpdateMode.h', -'SmartDeviceLink/SDLVRCapabilities.h', +'SmartDeviceLink/SDLUpdateTurnList.h', +'SmartDeviceLink/SDLUpdateTurnListResponse.h', 'SmartDeviceLink/SDLVehicleDataActiveStatus.h', 'SmartDeviceLink/SDLVehicleDataEventStatus.h', 'SmartDeviceLink/SDLVehicleDataNotificationStatus.h', +'SmartDeviceLink/SDLVehicleDataResult.h', 'SmartDeviceLink/SDLVehicleDataResultCode.h', 'SmartDeviceLink/SDLVehicleDataStatus.h', 'SmartDeviceLink/SDLVehicleDataType.h', +'SmartDeviceLink/SDLVentilationMode.h', +'SmartDeviceLink/SDLVehicleType.h', +'SmartDeviceLink/SDLVideoStreamingCapability.h', 'SmartDeviceLink/SDLVideoStreamingCodec.h', +'SmartDeviceLink/SDLVideoStreamingFormat.h', 'SmartDeviceLink/SDLVideoStreamingProtocol.h', +'SmartDeviceLink/SDLVrCapabilities.h', +'SmartDeviceLink/SDLVrHelpItem.h', 'SmartDeviceLink/SDLWarningLightStatus.h', -'SmartDeviceLink/SDLWaypointType.h', +'SmartDeviceLink/SDLWayPointType.h', 'SmartDeviceLink/SDLWiperStatus.h', -'SmartDeviceLink/SDLConfiguration.h', -'SmartDeviceLink/SDLLifecycleConfiguration.h', -'SmartDeviceLink/SDLLockScreenConfiguration.h', -'SmartDeviceLink/SDLArtwork.h', -'SmartDeviceLink/SDLFile.h', -'SmartDeviceLink/SDLFileManager.h', -'SmartDeviceLink/SDLFileManagerConstants.h', -'SmartDeviceLink/SDLLockScreenViewController.h', -'SmartDeviceLink/SDLManager.h', -'SmartDeviceLink/SDLManagerDelegate.h', -'SmartDeviceLink/SDLPermissionConstants.h', -'SmartDeviceLink/SDLPermissionManager.h', -'SmartDeviceLink/NSNumber+NumberType.h', -'SmartDeviceLink/SDLErrorConstants.h', -'SmartDeviceLink/SDLNotificationConstants.h', -'SmartDeviceLink/SDLRequestHandler.h', -'SmartDeviceLink/SDLRPCNotificationNotification.h', -'SmartDeviceLink/SDLRPCResponseNotification.h', +'SmartDeviceLink/SmartDeviceLink.h', ] +end + +s.subspec 'Swift' do |ss| +ss.dependency 'SmartDeviceLink-iOS/Default' +ss.source_files = 'SmartDeviceLinkSwift/*.swift' +end end diff --git a/SmartDeviceLink/Assets/Base.lproj/SDLLockScreen.storyboard b/SmartDeviceLink/Assets/Base.lproj/SDLLockScreen.storyboard index 56b04f10b..6d65f20d9 100644 --- a/SmartDeviceLink/Assets/Base.lproj/SDLLockScreen.storyboard +++ b/SmartDeviceLink/Assets/Base.lproj/SDLLockScreen.storyboard @@ -4,7 +4,7 @@ - + diff --git a/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_white.imageset/Contents.json b/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_white.imageset/Contents.json deleted file mode 100644 index 765c60c66..000000000 --- a/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_white.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "lock_arrow_down_white.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "lock_arrow_down_white@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "lock_arrow_down_white@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_white.imageset/lock_arrow_down_white.png b/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_white.imageset/lock_arrow_down_white.png deleted file mode 100644 index 07e620d05..000000000 Binary files a/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_white.imageset/lock_arrow_down_white.png and /dev/null differ diff --git a/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_white.imageset/lock_arrow_down_white@2x.png b/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_white.imageset/lock_arrow_down_white@2x.png deleted file mode 100644 index 57fa8120f..000000000 Binary files a/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_white.imageset/lock_arrow_down_white@2x.png and /dev/null differ diff --git a/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_white.imageset/lock_arrow_down_white@3x.png b/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_white.imageset/lock_arrow_down_white@3x.png deleted file mode 100644 index b354c1a13..000000000 Binary files a/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_down_white.imageset/lock_arrow_down_white@3x.png and /dev/null differ diff --git a/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_up_white.imageset/lock_arrow_up_white.png b/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_up_white.imageset/lock_arrow_up_white.png deleted file mode 100644 index bb0662fe5..000000000 Binary files a/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_up_white.imageset/lock_arrow_up_white.png and /dev/null differ diff --git a/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_up_white.imageset/lock_arrow_up_white@2x.png b/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_up_white.imageset/lock_arrow_up_white@2x.png deleted file mode 100644 index f45e6b299..000000000 Binary files a/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_up_white.imageset/lock_arrow_up_white@2x.png and /dev/null differ diff --git a/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_up_white.imageset/lock_arrow_up_white@3x.png b/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_up_white.imageset/lock_arrow_up_white@3x.png deleted file mode 100644 index d30fc404c..000000000 Binary files a/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_up_white.imageset/lock_arrow_up_white@3x.png and /dev/null differ diff --git a/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_white.imageset/sdl_logo_white.png b/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_white.imageset/sdl_logo_white.png deleted file mode 100644 index 1c35ef9b3..000000000 Binary files a/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_white.imageset/sdl_logo_white.png and /dev/null differ diff --git a/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_white.imageset/sdl_logo_white@2x.png b/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_white.imageset/sdl_logo_white@2x.png deleted file mode 100644 index b7d0bd92a..000000000 Binary files a/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_white.imageset/sdl_logo_white@2x.png and /dev/null differ diff --git a/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_white.imageset/sdl_logo_white@3x.png b/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_white.imageset/sdl_logo_white@3x.png deleted file mode 100644 index b8b9ef757..000000000 Binary files a/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_white.imageset/sdl_logo_white@3x.png and /dev/null differ diff --git a/SmartDeviceLink/CVPixelBufferRef+SDLUtil.h b/SmartDeviceLink/CVPixelBufferRef+SDLUtil.h new file mode 100644 index 000000000..674c20215 --- /dev/null +++ b/SmartDeviceLink/CVPixelBufferRef+SDLUtil.h @@ -0,0 +1,23 @@ +// +// CVPixelBufferRef+SDLUtil.h +// SmartDeviceLink-iOS +// +// Created by Muller, Alexander (A.) on 3/16/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +/** + Take a CVPixelBuffer frame and append some text onto it, attempting to fit it to the rect. This is used for a "blank" screen when streaming navigation is pushed to the background or otherwise disabled in progress. + + @param pixelBuffer The pixel buffer to draw text over + @param text The text to draw + @return Whether or not it succeeded. + */ +Boolean CVPixelBufferAddText(CVPixelBufferRef CV_NONNULL pixelBuffer, NSString *text); + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/CVPixelBufferRef+SDLUtil.m b/SmartDeviceLink/CVPixelBufferRef+SDLUtil.m new file mode 100644 index 000000000..5f561de00 --- /dev/null +++ b/SmartDeviceLink/CVPixelBufferRef+SDLUtil.m @@ -0,0 +1,103 @@ +// +// CVPixelBufferRef+SDLUtil.m +// SmartDeviceLink-iOS +// +// Created by Muller, Alexander (A.) on 3/16/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "CVPixelBufferRef+SDLUtil.h" + +NS_ASSUME_NONNULL_BEGIN + +UIFont * _Nullable sdl_findFontSizeToFitText(CGSize size, NSString *text) { + CGFloat fontSize = 100; + + do { + CGSize textSize = [text boundingRectWithSize:CGSizeMake(size.width, CGFLOAT_MAX) + options:NSStringDrawingUsesLineFragmentOrigin + attributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSize:fontSize]} + context:nil].size; + + if (textSize.height <= size.height) { + break; + } + + fontSize -= 10.0; + } while (fontSize > 0.0); + + return (fontSize > 0) ? [UIFont boldSystemFontOfSize:fontSize] : nil; +} + +UIImage * _Nullable sdl_createTextImage(NSString *text, CGSize size) { + UIFont *font = sdl_findFontSizeToFitText(size, text); + + if (!font) { + NSLog(@"Text cannot fit inside frame"); + return nil; + } + + CGRect frame = CGRectMake(0, 0, size.width, size.height); + UIGraphicsBeginImageContextWithOptions(frame.size, NO, 1.0); + CGContextRef context = UIGraphicsGetCurrentContext(); + + CGContextSetFillColorWithColor(context, [UIColor blackColor].CGColor); + CGContextFillRect(context, frame); + CGContextSaveGState(context); + + NSMutableParagraphStyle* textStyle = NSMutableParagraphStyle.defaultParagraphStyle.mutableCopy; + textStyle.alignment = NSTextAlignmentCenter; + + NSDictionary* textAttributes = @{ + NSFontAttributeName: font, + NSForegroundColorAttributeName: [UIColor whiteColor], + NSParagraphStyleAttributeName: textStyle + }; + CGRect textFrame = [text boundingRectWithSize:size + options:NSStringDrawingUsesLineFragmentOrigin + attributes:textAttributes + context:nil]; + + CGRect textInset = CGRectMake(0, + (frame.size.height - CGRectGetHeight(textFrame)) / 2.0, + frame.size.width, + frame.size.height); + + [text drawInRect:textInset + withAttributes:textAttributes]; + + CGContextRestoreGState(context); + UIImage* image = UIGraphicsGetImageFromCurrentImageContext(); + + return image; +} + +Boolean CVPixelBufferAddText(CVPixelBufferRef CV_NONNULL pixelBuffer, NSString *text) { + size_t width = CVPixelBufferGetWidth(pixelBuffer); + size_t height = CVPixelBufferGetHeight(pixelBuffer); + + UIImage *image = sdl_createTextImage(text, CGSizeMake(width, height)); + if (!image) { + NSLog(@"Could not create text image."); + return false; + } + + CVPixelBufferLockBaseAddress(pixelBuffer, 0); + void *data = CVPixelBufferGetBaseAddress(pixelBuffer); + + CGColorSpaceRef rgbColorSpace = CGColorSpaceCreateDeviceRGB(); + CGContextRef context = CGBitmapContextCreate(data, width, height, + 8, CVPixelBufferGetBytesPerRow(pixelBuffer), rgbColorSpace, + kCGBitmapByteOrder32Little | + kCGImageAlphaPremultipliedFirst); + CGContextDrawImage(context, CGRectMake(0, 0, width, height), image.CGImage); + CGColorSpaceRelease(rgbColorSpace); + + CGContextRelease(context); + + CVPixelBufferUnlockBaseAddress(pixelBuffer, 0); + + return true; +} + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/EAAccessory+SDLProtocols.h b/SmartDeviceLink/EAAccessory+SDLProtocols.h index 417b5b07b..0c729b796 100644 --- a/SmartDeviceLink/EAAccessory+SDLProtocols.h +++ b/SmartDeviceLink/EAAccessory+SDLProtocols.h @@ -4,8 +4,12 @@ #import +NS_ASSUME_NONNULL_BEGIN + @interface EAAccessory (SDLProtocols) - (BOOL)supportsProtocol:(NSString *)protocol; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/EAAccessory+SDLProtocols.m b/SmartDeviceLink/EAAccessory+SDLProtocols.m index bffeeb829..881fea352 100644 --- a/SmartDeviceLink/EAAccessory+SDLProtocols.m +++ b/SmartDeviceLink/EAAccessory+SDLProtocols.m @@ -4,6 +4,8 @@ #import "EAAccessory+SDLProtocols.h" +NS_ASSUME_NONNULL_BEGIN + @implementation EAAccessory (SDLProtocols) - (BOOL)supportsProtocol:(NSString *)protocol { @@ -17,3 +19,5 @@ - (BOOL)supportsProtocol:(NSString *)protocol { } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/EAAccessoryManager+SDLProtocols.h b/SmartDeviceLink/EAAccessoryManager+SDLProtocols.h index b4b39d943..c2d45cb2e 100644 --- a/SmartDeviceLink/EAAccessoryManager+SDLProtocols.h +++ b/SmartDeviceLink/EAAccessoryManager+SDLProtocols.h @@ -4,8 +4,12 @@ #import +NS_ASSUME_NONNULL_BEGIN + @interface EAAccessoryManager (SDLProtocols) -+ (EAAccessory *)findAccessoryForProtocol:(NSString *)protocol; ++ (nullable EAAccessory *)findAccessoryForProtocol:(NSString *)protocol; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/EAAccessoryManager+SDLProtocols.m b/SmartDeviceLink/EAAccessoryManager+SDLProtocols.m index 38b0b2477..69d5f408a 100644 --- a/SmartDeviceLink/EAAccessoryManager+SDLProtocols.m +++ b/SmartDeviceLink/EAAccessoryManager+SDLProtocols.m @@ -5,9 +5,11 @@ #import "EAAccessory+SDLProtocols.h" #import "EAAccessoryManager+SDLProtocols.h" +NS_ASSUME_NONNULL_BEGIN + @implementation EAAccessoryManager (SDLProtocols) -+ (EAAccessory *)findAccessoryForProtocol:(NSString *)protocol { ++ (nullable EAAccessory *)findAccessoryForProtocol:(NSString *)protocol { for (EAAccessory *accessory in [[EAAccessoryManager sharedAccessoryManager] connectedAccessories]) { if ([accessory supportsProtocol:protocol]) { return accessory; @@ -18,3 +20,5 @@ + (EAAccessory *)findAccessoryForProtocol:(NSString *)protocol { } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/Info.plist b/SmartDeviceLink/Info.plist index edafd7033..e790eb616 100644 --- a/SmartDeviceLink/Info.plist +++ b/SmartDeviceLink/Info.plist @@ -9,13 +9,13 @@ CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion - 6.0 + 7.0 CFBundleName $(PRODUCT_NAME) CFBundlePackageType FMWK CFBundleShortVersionString - 4.7.4 + 5.0.0 CFBundleSignature ???? CFBundleVersion diff --git a/SmartDeviceLink/NSMutableDictionary+Store.h b/SmartDeviceLink/NSMutableDictionary+Store.h new file mode 100644 index 000000000..e4160bc7f --- /dev/null +++ b/SmartDeviceLink/NSMutableDictionary+Store.h @@ -0,0 +1,27 @@ +// +// NSMutableDictionary+Store.h +// SmartDeviceLink-iOS +// +// Created by Muller, Alexander (A.) on 11/7/16. +// Copyright © 2016 smartdevicelink. All rights reserved. +// + +#import +#import "SDLMacros.h" +#import "SDLLogMacros.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef NSString* SDLName SDL_SWIFT_ENUM; +typedef NSString* SDLEnum SDL_SWIFT_ENUM; + +@interface NSMutableDictionary (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; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/NSMutableDictionary+Store.m b/SmartDeviceLink/NSMutableDictionary+Store.m new file mode 100644 index 000000000..cd681bd46 --- /dev/null +++ b/SmartDeviceLink/NSMutableDictionary+Store.m @@ -0,0 +1,56 @@ +// +// NSMutableDictionary+Store.m +// SmartDeviceLink-iOS +// +// Created by Muller, Alexander (A.) on 11/7/16. +// Copyright © 2016 smartdevicelink. All rights reserved. +// + +#import "NSMutableDictionary+Store.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation NSMutableDictionary (Store) + +- (void)sdl_setObject:(NSObject *)object forName:(SDLName)name { + if (object != nil) { + self[name] = object; + } else { + [self removeObjectForKey:name]; + } +} + +- (nullable id)sdl_objectForName:(SDLName)name { + return self[name]; +} + +- (nullable id)sdl_objectForName:(SDLName)name ofClass:(Class)classType { + NSObject *obj = [self sdl_objectForName:name]; + if (obj == nil || [obj isKindOfClass:classType.class]) { + return obj; + } else { + return [[classType alloc] initWithDictionary:(NSDictionary *)obj]; + } +} + +- (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.class]) { + // It's an array of the actual class type, just return + return array; + } else { + // It's an array of dictionaries, make them into their class type + NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; + for (NSDictionary *dict in array) { + [newList addObject:[[classType alloc] initWithDictionary:dict]]; + } + return [newList copy]; + } +} + + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/NSThread+ThreadIndex.h b/SmartDeviceLink/NSThread+ThreadIndex.h deleted file mode 100644 index 60459e3e2..000000000 --- a/SmartDeviceLink/NSThread+ThreadIndex.h +++ /dev/null @@ -1,9 +0,0 @@ -// -// NSThread+ThreadIndex.h -// - -#import - -@interface NSThread (ThreadIndex) -- (NSInteger)threadIndex; -@end diff --git a/SmartDeviceLink/NSThread+ThreadIndex.m b/SmartDeviceLink/NSThread+ThreadIndex.m deleted file mode 100644 index 89cbbd5c2..000000000 --- a/SmartDeviceLink/NSThread+ThreadIndex.m +++ /dev/null @@ -1,23 +0,0 @@ -// -// NSThread+ThreadIndex.m -// - -#import "NSThread+ThreadIndex.h" - -@implementation NSThread (ThreadIndex) - -- (NSInteger)threadIndex { - NSString *description = [self description]; - NSArray *keyValuePairs = [description componentsSeparatedByString:@","]; - for (NSString *keyValuePair in keyValuePairs) { - NSArray *components = [keyValuePair componentsSeparatedByString:@"="]; - NSString *key = components[0]; - key = [key stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; - if ([key rangeOfString:@"num"].location != NSNotFound) { - return [components[1] integerValue]; - } - } - return -1; -} - -@end diff --git a/SmartDeviceLink/SDLAbstractProtocol.h b/SmartDeviceLink/SDLAbstractProtocol.h index 664ace5f6..e629e302a 100644 --- a/SmartDeviceLink/SDLAbstractProtocol.h +++ b/SmartDeviceLink/SDLAbstractProtocol.h @@ -9,38 +9,30 @@ #import "SDLSecurityType.h" #import "SDLTransportDelegate.h" +NS_ASSUME_NONNULL_BEGIN @interface SDLAbstractProtocol : NSObject -@property (strong) NSString *debugConsoleGroupName; -@property (weak) SDLAbstractTransport *transport; -@property (strong) NSHashTable *protocolDelegateTable; // table of id -@property (nonatomic, strong) id securityManager; +@property (strong, nonatomic) NSString *debugConsoleGroupName; +@property (nullable, weak, nonatomic) SDLAbstractTransport *transport; +@property (nullable, strong, nonatomic) NSHashTable> *protocolDelegateTable; +@property (nullable, nonatomic, strong) id securityManager; @property (nonatomic, copy) NSString *appId; // Sending -- (void)sendStartSessionWithType:(SDLServiceType)serviceType __deprecated_msg(("Use startServiceWithType:payload: instead")); -- (void)startServiceWithType:(SDLServiceType)serviceType __deprecated_msg(("Use startServiceWithType:payload: instead")); -- (void)startServiceWithType:(SDLServiceType)serviceType payload:(NSData *)payload; - -- (void)startSecureServiceWithType:(SDLServiceType)serviceType completionHandler:(void (^)(BOOL success, NSError *error))completionHandler __deprecated_msg(("Use startSecureServiceWithType:payload:completionHandler instead"));; -- (void)startSecureServiceWithType:(SDLServiceType)serviceType payload:(NSData *)payload completionHandler:(void (^)(BOOL success, NSError *error))completionHandler; - -- (void)sendEndSessionWithType:(SDLServiceType)serviceType __deprecated_msg(("Use endServiceWithType: instead")); +- (void)startServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload; +- (void)startSecureServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload completionHandler:(void (^)(BOOL success, NSError *error))completionHandler; - (void)endServiceWithType:(SDLServiceType)serviceType; -- (void)sendRPCRequest:(SDLRPCRequest *)rpcRequest __deprecated_msg(("Use sendRPC: instead")); - (void)sendRPC:(SDLRPCMessage *)message; - (BOOL)sendRPC:(SDLRPCMessage *)message encrypted:(BOOL)encryption error:(NSError **)error; - (void)sendRawData:(NSData *)data withServiceType:(SDLServiceType)serviceType; - (void)sendEncryptedRawData:(NSData *)data onService:(SDLServiceType)serviceType; -- (void)sendRawDataStream:(NSInputStream *)inputStream withServiceType:(SDLServiceType)serviceType __deprecated_msg("This is not implemented and will cause a crash if called"); -- (void)sendHeartbeat __deprecated_msg("This is not implemented and will cause a crash if called"); - // Recieving - (void)handleBytesFromTransport:(NSData *)receivedData; -- (void)dispose; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAbstractProtocol.m b/SmartDeviceLink/SDLAbstractProtocol.m index 69301de44..fa3502799 100644 --- a/SmartDeviceLink/SDLAbstractProtocol.m +++ b/SmartDeviceLink/SDLAbstractProtocol.m @@ -4,6 +4,7 @@ #import "SDLRPCMessage.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLAbstractProtocol @@ -16,27 +17,11 @@ - (instancetype)init { } // Implement in subclasses. -- (void)sendStartSessionWithType:(SDLServiceType)serviceType { +- (void)startServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload { [self doesNotRecognizeSelector:_cmd]; } -- (void)startServiceWithType:(SDLServiceType)serviceType { - [self doesNotRecognizeSelector:_cmd]; -} - -- (void)startServiceWithType:(SDLServiceType)serviceType payload:(NSData *)payload { - [self doesNotRecognizeSelector:_cmd]; -} - -- (void)startSecureServiceWithType:(SDLServiceType)serviceType completionHandler:(void (^)(BOOL, NSError *))completionHandler { - [self doesNotRecognizeSelector:_cmd]; -} - -- (void)startSecureServiceWithType:(SDLServiceType)serviceType payload:(NSData *)payload completionHandler:(void (^)(BOOL, NSError *))completionHandler { - [self doesNotRecognizeSelector:_cmd]; -} - -- (void)sendEndSessionWithType:(SDLServiceType)serviceType { +- (void)startSecureServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload completionHandler:(void (^)(BOOL, NSError *))completionHandler { [self doesNotRecognizeSelector:_cmd]; } @@ -53,14 +38,6 @@ - (BOOL)sendRPC:(SDLRPCMessage *)message encrypted:(BOOL)encryption error:(NSErr return NO; } -- (void)sendRPCRequest:(SDLRPCRequest *)rpcRequest { - [self doesNotRecognizeSelector:_cmd]; -} - -- (void)sendHeartbeat { - [self doesNotRecognizeSelector:_cmd]; -} - - (void)handleBytesFromTransport:(NSData *)receivedData { [self doesNotRecognizeSelector:_cmd]; } @@ -69,18 +46,10 @@ - (void)sendRawData:(NSData *)data withServiceType:(SDLServiceType)serviceType { [self doesNotRecognizeSelector:_cmd]; } -- (void)sendRawDataStream:(NSInputStream *)inputStream withServiceType:(SDLServiceType)serviceType { - [self doesNotRecognizeSelector:_cmd]; -} - - (void)sendEncryptedRawData:(NSData *)data onService:(SDLServiceType)serviceType { [self doesNotRecognizeSelector:_cmd]; } -- (void)dispose { - [self doesNotRecognizeSelector:_cmd]; -} - #pragma - SDLTransportListener Implementation - (void)onTransportConnected { @@ -104,3 +73,5 @@ - (void)onDataReceived:(NSData *)receivedData { } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAbstractTransport.h b/SmartDeviceLink/SDLAbstractTransport.h index a8a1f61be..0273b8425 100644 --- a/SmartDeviceLink/SDLAbstractTransport.h +++ b/SmartDeviceLink/SDLAbstractTransport.h @@ -4,15 +4,18 @@ #import "SDLTransportDelegate.h" +NS_ASSUME_NONNULL_BEGIN + @interface SDLAbstractTransport : NSObject -@property (weak) id delegate; -@property (strong) NSString *debugConsoleGroupName; +@property (nullable, weak, nonatomic) id delegate; +@property (strong, nonatomic) NSString *debugConsoleGroupName; - (void)connect; - (void)disconnect; - (void)sendData:(NSData *)dataToSend; -- (void)dispose; - (double)retryDelay; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAbstractTransport.m b/SmartDeviceLink/SDLAbstractTransport.m index 6d7437748..4f2657bd2 100644 --- a/SmartDeviceLink/SDLAbstractTransport.m +++ b/SmartDeviceLink/SDLAbstractTransport.m @@ -2,6 +2,8 @@ #import "SDLAbstractTransport.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLAbstractTransport - (instancetype)init { @@ -22,13 +24,11 @@ - (void)sendData:(NSData *)dataToSend { [self doesNotRecognizeSelector:_cmd]; } -- (void)dispose { - [self doesNotRecognizeSelector:_cmd]; -} - - (double)retryDelay { [self doesNotRecognizeSelector:_cmd]; return 0.0; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAddCommand.h b/SmartDeviceLink/SDLAddCommand.h index d933cff61..509ea80fa 100644 --- a/SmartDeviceLink/SDLAddCommand.h +++ b/SmartDeviceLink/SDLAddCommand.h @@ -3,12 +3,11 @@ #import "SDLRPCRequest.h" +#import "SDLImageType.h" #import "SDLNotificationConstants.h" -#import "SDLRequestHandler.h" -@class SDLMenuParams; @class SDLImage; -@class SDLImageType; +@class SDLMenuParams; /** * This class will add a command to the application's Command Menu SDLMenuParams @@ -34,12 +33,10 @@ * * @see SDLDeleteCommand SDLAddSubMenu SDLDeleteSubMenu */ -@interface SDLAddCommand : SDLRPCRequest -/** - * Constructs a new SDLAddCommand object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLAddCommand : SDLRPCRequest /** * Construct a SDLAddCommand with a handler callback when an event occurs. @@ -48,27 +45,20 @@ * * @return An SDLAddCommand object */ -- (instancetype)initWithHandler:(SDLRPCNotificationHandler)handler; +- (instancetype)initWithHandler:(nullable SDLRPCCommandNotificationHandler)handler; -/** - * Constructs a new *SDLAddCommand* object indicated by the dictionary parameter - * - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +- (instancetype)initWithId:(UInt32)commandId vrCommands:(nullable NSArray *)vrCommands handler:(nullable SDLRPCCommandNotificationHandler)handler; -- (instancetype)initWithId:(UInt32)commandId vrCommands:(NSArray *)vrCommands handler:(SDLRPCNotificationHandler)handler; +- (instancetype)initWithId:(UInt32)commandId vrCommands:(nullable NSArray *)vrCommands menuName:(NSString *)menuName handler:(SDLRPCCommandNotificationHandler)handler; -- (instancetype)initWithId:(UInt32)commandId vrCommands:(NSArray *)vrCommands menuName:(NSString *)menuName handler:(SDLRPCNotificationHandler)handler; - -- (instancetype)initWithId:(UInt32)commandId vrCommands:(NSArray *)vrCommands menuName:(NSString *)menuName parentId:(UInt32)parentId position:(UInt16)position iconValue:(NSString *)iconValue iconType:(SDLImageType *)iconType handler:(SDLRPCNotificationHandler)handler; +- (instancetype)initWithId:(UInt32)commandId vrCommands:(nullable NSArray *)vrCommands menuName:(NSString *)menuName parentId:(UInt32)parentId position:(UInt16)position iconValue:(NSString *)iconValue iconType:(SDLImageType)iconType handler:(nullable SDLRPCCommandNotificationHandler)handler; /** * A handler that will let you know when the button you created is subscribed. * * @warning This will only work if you use SDLManager. */ -@property (copy, nonatomic) SDLRPCNotificationHandler handler; +@property (nullable, copy, nonatomic) SDLRPCCommandNotificationHandler handler; /** * @abstract A Unique Command ID that identifies the command @@ -77,7 +67,7 @@ * * Required, Integer, 0 - 2,000,000,000 */ -@property (strong) NSNumber *cmdID; +@property (strong, nonatomic) NSNumber *cmdID; /** * @abstract a *SDLMenuParams* pointer which will defined the command and how it is added to the Command Menu @@ -89,7 +79,7 @@ * * Optional */ -@property (strong) SDLMenuParams *menuParams; +@property (nullable, strong, nonatomic) SDLMenuParams *menuParams; /** * @abstract An array of strings to be used as VR synonyms for this command. @@ -100,7 +90,7 @@ * * Optional, Array of Strings, Max String length 99 chars, Array size 1 - 100 */ -@property (strong) NSMutableArray *vrCommands; +@property (nullable, strong, nonatomic) NSArray *vrCommands; /** * @abstract Image struct containing a static or dynamic icon @@ -111,6 +101,8 @@ * * Optional */ -@property (strong) SDLImage *cmdIcon; +@property (nullable, strong, nonatomic) SDLImage *cmdIcon; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAddCommand.m b/SmartDeviceLink/SDLAddCommand.m index 75524881c..bfec12164 100644 --- a/SmartDeviceLink/SDLAddCommand.m +++ b/SmartDeviceLink/SDLAddCommand.m @@ -4,20 +4,22 @@ #import "SDLAddCommand.h" +#import "NSMutableDictionary+Store.h" #import "SDLImage.h" #import "SDLMenuParams.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLAddCommand - (instancetype)init { - if (self = [super initWithName:NAMES_AddCommand]) { + if (self = [super initWithName:SDLNameAddCommand]) { } return self; } -- (instancetype)initWithHandler:(SDLRPCNotificationHandler)handler { +- (instancetype)initWithHandler:(nullable SDLRPCCommandNotificationHandler)handler { self = [self init]; if (!self) { return nil; @@ -28,35 +30,31 @@ - (instancetype)initWithHandler:(SDLRPCNotificationHandler)handler { return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (instancetype)initWithId:(UInt32)commandId vrCommands:(NSArray *)vrCommands handler:(SDLRPCNotificationHandler)handler { - return [self initWithId:commandId vrCommands:vrCommands menuName:nil handler:handler]; -} - -- (instancetype)initWithId:(UInt32)commandId vrCommands:(NSArray *)vrCommands menuName:(NSString *)menuName handler:(SDLRPCNotificationHandler)handler { +- (instancetype)initWithId:(UInt32)commandId vrCommands:(nullable NSArray *)vrCommands handler:(nullable SDLRPCCommandNotificationHandler)handler { self = [self init]; if (!self) { return nil; } - + self.cmdID = @(commandId); - - if (menuName != nil) { - self.menuParams = [[SDLMenuParams alloc] initWithMenuName:menuName]; - } - self.vrCommands = [vrCommands mutableCopy]; self.handler = handler; + + return self; +} +- (instancetype)initWithId:(UInt32)commandId vrCommands:(nullable NSArray *)vrCommands menuName:(NSString *)menuName handler:(SDLRPCCommandNotificationHandler)handler { + self = [self initWithId:commandId vrCommands:vrCommands handler:handler]; + if (!self) { + return nil; + } + + self.menuParams = [[SDLMenuParams alloc] initWithMenuName:menuName]; + return self; } -- (instancetype)initWithId:(UInt32)commandId vrCommands:(NSArray *)vrCommands menuName:(NSString *)menuName parentId:(UInt32)parentId position:(UInt16)position iconValue:(NSString *)iconValue iconType:(SDLImageType *)iconType handler:(SDLRPCNotificationHandler)handler { +- (instancetype)initWithId:(UInt32)commandId vrCommands:(nullable NSArray *)vrCommands menuName:(NSString *)menuName parentId:(UInt32)parentId position:(UInt16)position iconValue:(NSString *)iconValue iconType:(SDLImageType)iconType handler:(nullable SDLRPCCommandNotificationHandler)handler { self = [self initWithId:commandId vrCommands:vrCommands menuName:menuName handler:handler]; if (!self) { return nil; @@ -65,69 +63,50 @@ - (instancetype)initWithId:(UInt32)commandId vrCommands:(NSArray *)v self.menuParams.parentID = @(parentId); self.menuParams.position = @(position); - if (iconValue != nil && iconType != nil) { - self.cmdIcon = [[SDLImage alloc] initWithName:iconValue ofType:iconType]; - } + self.cmdIcon = [[SDLImage alloc] initWithName:iconValue ofType:iconType]; return self; } -- (void)setCmdID:(NSNumber *)cmdID { - if (cmdID != nil) { - [parameters setObject:cmdID forKey:NAMES_cmdID]; - } else { - [parameters removeObjectForKey:NAMES_cmdID]; - } +- (void)setCmdID:(NSNumber *)cmdID { + [parameters sdl_setObject:cmdID forName:SDLNameCommandId]; } -- (NSNumber *)cmdID { - return [parameters objectForKey:NAMES_cmdID]; +- (NSNumber *)cmdID { + return [parameters sdl_objectForName:SDLNameCommandId]; } -- (void)setMenuParams:(SDLMenuParams *)menuParams { - if (menuParams != nil) { - [parameters setObject:menuParams forKey:NAMES_menuParams]; - } else { - [parameters removeObjectForKey:NAMES_menuParams]; - } +- (void)setMenuParams:(nullable SDLMenuParams *)menuParams { + [parameters sdl_setObject:menuParams forName:SDLNameMenuParams]; } -- (SDLMenuParams *)menuParams { - NSObject *obj = [parameters objectForKey:NAMES_menuParams]; - if (obj == nil || [obj isKindOfClass:SDLMenuParams.class]) { - return (SDLMenuParams *)obj; - } else { - return [[SDLMenuParams alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLMenuParams *)menuParams { + return [parameters sdl_objectForName:SDLNameMenuParams ofClass:SDLMenuParams.class]; } -- (void)setVrCommands:(NSMutableArray *)vrCommands { - if (vrCommands != nil) { - [parameters setObject:vrCommands forKey:NAMES_vrCommands]; - } else { - [parameters removeObjectForKey:NAMES_vrCommands]; - } +- (void)setVrCommands:(nullable NSArray *)vrCommands { + [parameters sdl_setObject:vrCommands forName:SDLNameVRCommands]; } -- (NSMutableArray *)vrCommands { - return [parameters objectForKey:NAMES_vrCommands]; +- (nullable NSArray *)vrCommands { + return [parameters sdl_objectForName:SDLNameVRCommands]; } -- (void)setCmdIcon:(SDLImage *)cmdIcon { - if (cmdIcon != nil) { - [parameters setObject:cmdIcon forKey:NAMES_cmdIcon]; - } else { - [parameters removeObjectForKey:NAMES_cmdIcon]; - } +- (void)setCmdIcon:(nullable SDLImage *)cmdIcon { + [parameters sdl_setObject:cmdIcon forName:SDLNameCommandIcon]; } -- (SDLImage *)cmdIcon { - NSObject *obj = [parameters objectForKey:NAMES_cmdIcon]; - if (obj == nil || [obj isKindOfClass:SDLImage.class]) { - return (SDLImage *)obj; - } else { - return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLImage *)cmdIcon { + return [parameters sdl_objectForName:SDLNameCommandIcon ofClass:SDLImage.class]; +} + +-(id)copyWithZone:(nullable NSZone *)zone { + SDLAddCommand *newCommand = [super copyWithZone:zone]; + newCommand->_handler = self.handler; + + return newCommand; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAddCommandResponse.h b/SmartDeviceLink/SDLAddCommandResponse.h index dfa132f6d..554f59d82 100644 --- a/SmartDeviceLink/SDLAddCommandResponse.h +++ b/SmartDeviceLink/SDLAddCommandResponse.h @@ -9,10 +9,11 @@ * * Since SmartDeviceLink 1.0 */ -@interface SDLAddCommandResponse : SDLRPCResponse { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLAddCommandResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAddCommandResponse.m b/SmartDeviceLink/SDLAddCommandResponse.m index 3beba9db6..877b189ec 100644 --- a/SmartDeviceLink/SDLAddCommandResponse.m +++ b/SmartDeviceLink/SDLAddCommandResponse.m @@ -2,20 +2,19 @@ #import "SDLAddCommandResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLAddCommandResponse - (instancetype)init { - if (self = [super initWithName:NAMES_AddCommand]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameAddCommand]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAddSubMenu.h b/SmartDeviceLink/SDLAddSubMenu.h index b4bcafb44..b411a43bd 100644 --- a/SmartDeviceLink/SDLAddSubMenu.h +++ b/SmartDeviceLink/SDLAddSubMenu.h @@ -16,20 +16,10 @@ * Since SmartDeviceLink 1.0
* see SDLDeleteSubMenu SDLAddCommand SDLDeleteCommand */ -@interface SDLAddSubMenu : SDLRPCRequest { -} -/** - * Constructs a new SDLAddSubMenu object - */ -- (instancetype)init; -/** - * Constructs a new SDLAddSubMenu object indicated by the dictionary parameter - *

- * - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLAddSubMenu : SDLRPCRequest - (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName; @@ -41,7 +31,7 @@ * SDLAddCommand to which SDLSubMenu is the parent of the command being added *

*/ -@property (strong) NSNumber *menuID; +@property (strong, nonatomic) NSNumber *menuID; /** * @abstract a position of menu * @discussion An NSNumber pointer representing the position within the items @@ -60,11 +50,13 @@ * the end of the list * */ -@property (strong) NSNumber *position; +@property (nullable, strong, nonatomic) NSNumber *position; /** * @abstract a menuName which is displayed representing this submenu item * @discussion NSString which will be displayed representing this submenu item */ -@property (strong) NSString *menuName; +@property (strong, nonatomic) NSString *menuName; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAddSubMenu.m b/SmartDeviceLink/SDLAddSubMenu.m index 76d3bde58..4f8ef5109 100644 --- a/SmartDeviceLink/SDLAddSubMenu.m +++ b/SmartDeviceLink/SDLAddSubMenu.m @@ -2,18 +2,15 @@ #import "SDLAddSubMenu.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLAddSubMenu - (instancetype)init { - if (self = [super initWithName:NAMES_AddSubMenu]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameAddSubMenu]) { } return self; } @@ -42,40 +39,30 @@ - (instancetype)initWithId:(UInt32)menuId menuName:(NSString *)menuName { return self; } -- (void)setMenuID:(NSNumber *)menuID { - if (menuID != nil) { - [parameters setObject:menuID forKey:NAMES_menuID]; - } else { - [parameters removeObjectForKey:NAMES_menuID]; - } +- (void)setMenuID:(NSNumber *)menuID { + [parameters sdl_setObject:menuID forName:SDLNameMenuId]; } -- (NSNumber *)menuID { - return [parameters objectForKey:NAMES_menuID]; +- (NSNumber *)menuID { + return [parameters sdl_objectForName:SDLNameMenuId]; } -- (void)setPosition:(NSNumber *)position { - if (position != nil) { - [parameters setObject:position forKey:NAMES_position]; - } else { - [parameters removeObjectForKey:NAMES_position]; - } +- (void)setPosition:(nullable NSNumber *)position { + [parameters sdl_setObject:position forName:SDLNamePosition]; } -- (NSNumber *)position { - return [parameters objectForKey:NAMES_position]; +- (nullable NSNumber *)position { + return [parameters sdl_objectForName:SDLNamePosition]; } - (void)setMenuName:(NSString *)menuName { - if (menuName != nil) { - [parameters setObject:menuName forKey:NAMES_menuName]; - } else { - [parameters removeObjectForKey:NAMES_menuName]; - } + [parameters sdl_setObject:menuName forName:SDLNameMenuName]; } - (NSString *)menuName { - return [parameters objectForKey:NAMES_menuName]; + return [parameters sdl_objectForName:SDLNameMenuName]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAddSubMenuResponse.h b/SmartDeviceLink/SDLAddSubMenuResponse.h index 2ea2157d7..17305aace 100644 --- a/SmartDeviceLink/SDLAddSubMenuResponse.h +++ b/SmartDeviceLink/SDLAddSubMenuResponse.h @@ -7,10 +7,11 @@ * SDLAddSubMenuResponse is sent, when SDLAddSubMenu has been called * Since SmartDeviceLink 1.0 */ -@interface SDLAddSubMenuResponse : SDLRPCResponse { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLAddSubMenuResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAddSubMenuResponse.m b/SmartDeviceLink/SDLAddSubMenuResponse.m index 5df2745b5..41ab1d8ce 100644 --- a/SmartDeviceLink/SDLAddSubMenuResponse.m +++ b/SmartDeviceLink/SDLAddSubMenuResponse.m @@ -2,20 +2,19 @@ #import "SDLAddSubMenuResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLAddSubMenuResponse - (instancetype)init { - if (self = [super initWithName:NAMES_AddSubMenu]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameAddSubMenu]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAirbagStatus.h b/SmartDeviceLink/SDLAirbagStatus.h index 3681795b5..ce10945c7 100644 --- a/SmartDeviceLink/SDLAirbagStatus.h +++ b/SmartDeviceLink/SDLAirbagStatus.h @@ -3,22 +3,21 @@ #import "SDLRPCMessage.h" -@class SDLVehicleDataEventStatus; +#import "SDLVehicleDataEventStatus.h" +NS_ASSUME_NONNULL_BEGIN -@interface SDLAirbagStatus : SDLRPCStruct { -} +@interface SDLAirbagStatus : SDLRPCStruct -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -@property (strong) SDLVehicleDataEventStatus *driverAirbagDeployed; -@property (strong) SDLVehicleDataEventStatus *driverSideAirbagDeployed; -@property (strong) SDLVehicleDataEventStatus *driverCurtainAirbagDeployed; -@property (strong) SDLVehicleDataEventStatus *passengerAirbagDeployed; -@property (strong) SDLVehicleDataEventStatus *passengerCurtainAirbagDeployed; -@property (strong) SDLVehicleDataEventStatus *driverKneeAirbagDeployed; -@property (strong) SDLVehicleDataEventStatus *passengerSideAirbagDeployed; -@property (strong) SDLVehicleDataEventStatus *passengerKneeAirbagDeployed; +@property (strong, nonatomic) SDLVehicleDataEventStatus driverAirbagDeployed; +@property (strong, nonatomic) SDLVehicleDataEventStatus driverSideAirbagDeployed; +@property (strong, nonatomic) SDLVehicleDataEventStatus driverCurtainAirbagDeployed; +@property (strong, nonatomic) SDLVehicleDataEventStatus passengerAirbagDeployed; +@property (strong, nonatomic) SDLVehicleDataEventStatus passengerCurtainAirbagDeployed; +@property (strong, nonatomic) SDLVehicleDataEventStatus driverKneeAirbagDeployed; +@property (strong, nonatomic) SDLVehicleDataEventStatus passengerSideAirbagDeployed; +@property (strong, nonatomic) SDLVehicleDataEventStatus passengerKneeAirbagDeployed; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAirbagStatus.m b/SmartDeviceLink/SDLAirbagStatus.m index a3ce06689..453d08304 100644 --- a/SmartDeviceLink/SDLAirbagStatus.m +++ b/SmartDeviceLink/SDLAirbagStatus.m @@ -2,158 +2,76 @@ #import "SDLAirbagStatus.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -#import "SDLVehicleDataEventStatus.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLAirbagStatus -- (instancetype)init { - if (self = [super init]) { - } - return self; +- (void)setDriverAirbagDeployed:(SDLVehicleDataEventStatus)driverAirbagDeployed { + [store sdl_setObject:driverAirbagDeployed forName:SDLNameDriverAirbagDeployed]; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (SDLVehicleDataEventStatus)driverAirbagDeployed { + return [store sdl_objectForName:SDLNameDriverAirbagDeployed]; } -- (void)setDriverAirbagDeployed:(SDLVehicleDataEventStatus *)driverAirbagDeployed { - if (driverAirbagDeployed != nil) { - [store setObject:driverAirbagDeployed forKey:NAMES_driverAirbagDeployed]; - } else { - [store removeObjectForKey:NAMES_driverAirbagDeployed]; - } +- (void)setDriverSideAirbagDeployed:(SDLVehicleDataEventStatus)driverSideAirbagDeployed { + [store sdl_setObject:driverSideAirbagDeployed forName:SDLNameDriverSideAirbagDeployed]; } -- (SDLVehicleDataEventStatus *)driverAirbagDeployed { - NSObject *obj = [store objectForKey:NAMES_driverAirbagDeployed]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataEventStatus)driverSideAirbagDeployed { + return [store sdl_objectForName:SDLNameDriverSideAirbagDeployed]; } -- (void)setDriverSideAirbagDeployed:(SDLVehicleDataEventStatus *)driverSideAirbagDeployed { - if (driverSideAirbagDeployed != nil) { - [store setObject:driverSideAirbagDeployed forKey:NAMES_driverSideAirbagDeployed]; - } else { - [store removeObjectForKey:NAMES_driverSideAirbagDeployed]; - } +- (void)setDriverCurtainAirbagDeployed:(SDLVehicleDataEventStatus)driverCurtainAirbagDeployed { + [store sdl_setObject:driverCurtainAirbagDeployed forName:SDLNameDriverCurtainAirbagDeployed]; } -- (SDLVehicleDataEventStatus *)driverSideAirbagDeployed { - NSObject *obj = [store objectForKey:NAMES_driverSideAirbagDeployed]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataEventStatus)driverCurtainAirbagDeployed { + return [store sdl_objectForName:SDLNameDriverCurtainAirbagDeployed]; } -- (void)setDriverCurtainAirbagDeployed:(SDLVehicleDataEventStatus *)driverCurtainAirbagDeployed { - if (driverCurtainAirbagDeployed != nil) { - [store setObject:driverCurtainAirbagDeployed forKey:NAMES_driverCurtainAirbagDeployed]; - } else { - [store removeObjectForKey:NAMES_driverCurtainAirbagDeployed]; - } -} - -- (SDLVehicleDataEventStatus *)driverCurtainAirbagDeployed { - NSObject *obj = [store objectForKey:NAMES_driverCurtainAirbagDeployed]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } -} +- (void)setPassengerAirbagDeployed:(SDLVehicleDataEventStatus)passengerAirbagDeployed { + [store sdl_setObject:passengerAirbagDeployed forName:SDLNamePassengerAirbagDeployed];} -- (void)setPassengerAirbagDeployed:(SDLVehicleDataEventStatus *)passengerAirbagDeployed { - if (passengerAirbagDeployed != nil) { - [store setObject:passengerAirbagDeployed forKey:NAMES_passengerAirbagDeployed]; - } else { - [store removeObjectForKey:NAMES_passengerAirbagDeployed]; - } +- (SDLVehicleDataEventStatus)passengerAirbagDeployed { + return [store sdl_objectForName:SDLNamePassengerAirbagDeployed]; } -- (SDLVehicleDataEventStatus *)passengerAirbagDeployed { - NSObject *obj = [store objectForKey:NAMES_passengerAirbagDeployed]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (void)setPassengerCurtainAirbagDeployed:(SDLVehicleDataEventStatus)passengerCurtainAirbagDeployed { + [store sdl_setObject:passengerCurtainAirbagDeployed forName:SDLNamePassengerCurtainAirbagDeployed]; } -- (void)setPassengerCurtainAirbagDeployed:(SDLVehicleDataEventStatus *)passengerCurtainAirbagDeployed { - if (passengerCurtainAirbagDeployed != nil) { - [store setObject:passengerCurtainAirbagDeployed forKey:NAMES_passengerCurtainAirbagDeployed]; - } else { - [store removeObjectForKey:NAMES_passengerCurtainAirbagDeployed]; - } +- (SDLVehicleDataEventStatus)passengerCurtainAirbagDeployed { + return [store sdl_objectForName:SDLNamePassengerCurtainAirbagDeployed]; } -- (SDLVehicleDataEventStatus *)passengerCurtainAirbagDeployed { - NSObject *obj = [store objectForKey:NAMES_passengerCurtainAirbagDeployed]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (void)setDriverKneeAirbagDeployed:(SDLVehicleDataEventStatus)driverKneeAirbagDeployed { + [store sdl_setObject:driverKneeAirbagDeployed forName:SDLNameDriverKneeAirbagDeployed]; } -- (void)setDriverKneeAirbagDeployed:(SDLVehicleDataEventStatus *)driverKneeAirbagDeployed { - if (driverKneeAirbagDeployed != nil) { - [store setObject:driverKneeAirbagDeployed forKey:NAMES_driverKneeAirbagDeployed]; - } else { - [store removeObjectForKey:NAMES_driverKneeAirbagDeployed]; - } +- (SDLVehicleDataEventStatus)driverKneeAirbagDeployed { + return [store sdl_objectForName:SDLNameDriverKneeAirbagDeployed]; } -- (SDLVehicleDataEventStatus *)driverKneeAirbagDeployed { - NSObject *obj = [store objectForKey:NAMES_driverKneeAirbagDeployed]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (void)setPassengerSideAirbagDeployed:(SDLVehicleDataEventStatus)passengerSideAirbagDeployed { + [store sdl_setObject:passengerSideAirbagDeployed forName:SDLNamePassengerSideAirbagDeployed]; } -- (void)setPassengerSideAirbagDeployed:(SDLVehicleDataEventStatus *)passengerSideAirbagDeployed { - if (passengerSideAirbagDeployed != nil) { - [store setObject:passengerSideAirbagDeployed forKey:NAMES_passengerSideAirbagDeployed]; - } else { - [store removeObjectForKey:NAMES_passengerSideAirbagDeployed]; - } +- (SDLVehicleDataEventStatus)passengerSideAirbagDeployed { + return [store sdl_objectForName:SDLNamePassengerSideAirbagDeployed]; } -- (SDLVehicleDataEventStatus *)passengerSideAirbagDeployed { - NSObject *obj = [store objectForKey:NAMES_passengerSideAirbagDeployed]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (void)setPassengerKneeAirbagDeployed:(SDLVehicleDataEventStatus)passengerKneeAirbagDeployed { + [store sdl_setObject:passengerKneeAirbagDeployed forName:SDLNamePassengerKneeAirbagDeployed]; } -- (void)setPassengerKneeAirbagDeployed:(SDLVehicleDataEventStatus *)passengerKneeAirbagDeployed { - if (passengerKneeAirbagDeployed != nil) { - [store setObject:passengerKneeAirbagDeployed forKey:NAMES_passengerKneeAirbagDeployed]; - } else { - [store removeObjectForKey:NAMES_passengerKneeAirbagDeployed]; - } -} - -- (SDLVehicleDataEventStatus *)passengerKneeAirbagDeployed { - NSObject *obj = [store objectForKey:NAMES_passengerKneeAirbagDeployed]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataEventStatus)passengerKneeAirbagDeployed { + return [store sdl_objectForName:SDLNamePassengerKneeAirbagDeployed]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAlert.h b/SmartDeviceLink/SDLAlert.h index 303c8b439..d8f893b7e 100644 --- a/SmartDeviceLink/SDLAlert.h +++ b/SmartDeviceLink/SDLAlert.h @@ -35,40 +35,31 @@ * * @since SDL 1.0 */ -@interface SDLAlert : SDLRPCRequest { -} -/** - * Constructs a new SDLAlert object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLAlert : SDLRPCRequest -/** - * Constructs a new SDLAlert object indicated by the dictionary parameter - * - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; -- (instancetype)initWithAlertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 duration:(UInt16)duration; +- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 duration:(UInt16)duration; -- (instancetype)initWithAlertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 alertText3:(NSString *)alertText3; +- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3; -- (instancetype)initWithAlertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 alertText3:(NSString *)alertText3 duration:(UInt16)duration; +- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 duration:(UInt16)duration; -- (instancetype)initWithAlertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 alertText3:(NSString *)alertText3 duration:(UInt16)duration softButtons:(NSArray *)softButtons; +- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 duration:(UInt16)duration softButtons:(nullable NSArray *)softButtons; -- (instancetype)initWithTTS:(NSString *)ttsText playTone:(BOOL)playTone; +- (instancetype)initWithTTS:(nullable NSString *)ttsText playTone:(BOOL)playTone; -- (instancetype)initWithTTS:(NSString *)ttsText alertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 playTone:(BOOL)playTone duration:(UInt16)duration; +- (instancetype)initWithTTS:(nullable NSString *)ttsText alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 playTone:(BOOL)playTone duration:(UInt16)duration; -- (instancetype)initWithTTS:(NSString *)ttsText alertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 alertText3:(NSString *)alertText3 playTone:(BOOL)playTone duration:(UInt16)duration; +- (instancetype)initWithTTS:(nullable NSString *)ttsText alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone duration:(UInt16)duration; -- (instancetype)initWithTTSChunks:(NSArray *)ttsChunks playTone:(BOOL)playTone; +- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks playTone:(BOOL)playTone; -- (instancetype)initWithTTSChunks:(NSArray *)ttsChunks alertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 alertText3:(NSString *)alertText3 playTone:(BOOL)playTone softButtons:(NSArray *)softButtons; +- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone softButtons:(nullable NSArray *)softButtons; -- (instancetype)initWithTTSChunks:(NSArray *)ttsChunks alertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 alertText3:(NSString *)alertText3 playTone:(BOOL)playTone duration:(UInt16)duration softButtons:(NSArray *)softButtons; +- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone duration:(UInt16)duration softButtons:(nullable NSArray *)softButtons; /** @@ -82,7 +73,7 @@ * * Optional, Max length 500 chars */ -@property (strong) NSString *alertText1; +@property (nullable, strong, nonatomic) NSString *alertText1; /** * @abstract The String to be displayed in the second field of the display during the Alert @@ -97,7 +88,7 @@ * * Optional, Max length 500 chars */ -@property (strong) NSString *alertText2; +@property (nullable, strong, nonatomic) NSString *alertText2; /** * @abstract the String to be displayed in the third field of the display during the Alert @@ -111,7 +102,7 @@ * * Optional, Max length 500 chars */ -@property (strong) NSString *alertText3; +@property (nullable, strong, nonatomic) NSString *alertText3; /** * @abstract An array which, taken together, specify what is to be spoken to the user @@ -120,7 +111,7 @@ * * @see SDLTTSChunk */ -@property (strong) NSMutableArray *ttsChunks; +@property (nullable, strong, nonatomic) NSArray *ttsChunks; /** * @abstract The duration of the displayed portion of the alert, in milliseconds. @@ -133,7 +124,7 @@ * * Optional, Integer, 3000 - 10000 */ -@property (strong) NSNumber *duration; +@property (nullable, strong, nonatomic) NSNumber *duration; /** * @abstract Whether the alert tone should be played before the TTS (if any) is spoken. @@ -142,7 +133,7 @@ * * Optional, Boolean */ -@property (strong) NSNumber *playTone; +@property (nullable, strong, nonatomic) NSNumber *playTone; /** * @abstract 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. @@ -151,7 +142,7 @@ * * @since SmartDeviceLink 2.0 */ -@property (strong) NSNumber *progressIndicator; +@property (nullable, strong, nonatomic) NSNumber *progressIndicator; /** * @abstract App defined SoftButtons. @@ -162,6 +153,8 @@ * * @see SDLSoftButton */ -@property (strong) NSMutableArray *softButtons; +@property (nullable, strong, nonatomic) NSArray *softButtons; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAlert.m b/SmartDeviceLink/SDLAlert.m index 89f2cb02e..0f7c78a10 100644 --- a/SmartDeviceLink/SDLAlert.m +++ b/SmartDeviceLink/SDLAlert.m @@ -2,65 +2,61 @@ #import "SDLAlert.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" #import "SDLSoftButton.h" #import "SDLTTSChunk.h" -#import "SDLTTSChunkFactory.h" static UInt16 const SDLDefaultDuration = 5000; +NS_ASSUME_NONNULL_BEGIN + @implementation SDLAlert - (instancetype)init { - if (self = [super initWithName:NAMES_Alert]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameAlert]) { } return self; } -- (instancetype)initWithAlertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 alertText3:(NSString *)alertText3 { +- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 { return [self initWithAlertText1:alertText1 alertText2:alertText2 alertText3:alertText3 duration:SDLDefaultDuration]; } -- (instancetype)initWithAlertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 duration:(UInt16)duration { +- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 duration:(UInt16)duration { return [self initWithAlertText1:alertText1 alertText2:alertText2 alertText3:nil duration:duration]; } -- (instancetype)initWithAlertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 alertText3:(NSString *)alertText3 duration:(UInt16)duration { +- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 duration:(UInt16)duration { return [self initWithAlertText1:alertText1 alertText2:alertText2 alertText3:alertText3 duration:duration softButtons:nil]; } -- (instancetype)initWithAlertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 alertText3:(NSString *)alertText3 duration:(UInt16)duration softButtons:(NSArray *)softButtons { +- (instancetype)initWithAlertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 duration:(UInt16)duration softButtons:(nullable NSArray *)softButtons { return [self initWithTTSChunks:nil alertText1:alertText1 alertText2:alertText2 alertText3:alertText3 playTone:NO duration:duration softButtons:softButtons]; } -- (instancetype)initWithTTS:(NSString *)ttsText playTone:(BOOL)playTone { +- (instancetype)initWithTTS:(nullable NSString *)ttsText playTone:(BOOL)playTone { return [self initWithTTS:ttsText alertText1:nil alertText2:nil playTone:playTone duration:SDLDefaultDuration]; } -- (instancetype)initWithTTS:(NSString *)ttsText alertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 playTone:(BOOL)playTone duration:(UInt16)duration { +- (instancetype)initWithTTS:(nullable NSString *)ttsText alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 playTone:(BOOL)playTone duration:(UInt16)duration { return [self initWithTTS:ttsText alertText1:alertText1 alertText2:alertText2 alertText3:nil playTone:playTone duration:duration]; } -- (instancetype)initWithTTS:(NSString *)ttsText alertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 alertText3:(NSString *)alertText3 playTone:(BOOL)playTone duration:(UInt16)duration { - NSMutableArray *ttsChunks = [SDLTTSChunk textChunksFromString:ttsText]; +- (instancetype)initWithTTS:(nullable NSString *)ttsText alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone duration:(UInt16)duration { + NSArray *ttsChunks = [SDLTTSChunk textChunksFromString:ttsText]; return [self initWithTTSChunks:ttsChunks alertText1:alertText1 alertText2:alertText2 alertText3:alertText3 playTone:playTone duration:duration softButtons:nil]; } -- (instancetype)initWithTTSChunks:(NSArray *)ttsChunks playTone:(BOOL)playTone { +- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks playTone:(BOOL)playTone { return [self initWithTTSChunks:ttsChunks alertText1:nil alertText2:nil alertText3:nil playTone:playTone duration:SDLDefaultDuration softButtons:nil]; } -- (instancetype)initWithTTSChunks:(NSArray *)ttsChunks alertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 alertText3:(NSString *)alertText3 playTone:(BOOL)playTone softButtons:(NSArray *)softButtons { +- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone softButtons:(nullable NSArray *)softButtons { return [self initWithTTSChunks:ttsChunks alertText1:alertText1 alertText2:alertText2 alertText3:alertText3 playTone:playTone duration:SDLDefaultDuration softButtons:softButtons]; } -- (instancetype)initWithTTSChunks:(NSArray *)ttsChunks alertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 alertText3:(NSString *)alertText3 playTone:(BOOL)playTone duration:(UInt16)duration softButtons:(NSArray *)softButtons { +- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks alertText1:(nullable NSString *)alertText1 alertText2:(nullable NSString *)alertText2 alertText3:(nullable NSString *)alertText3 playTone:(BOOL)playTone duration:(UInt16)duration softButtons:(nullable NSArray *)softButtons { self = [self init]; if (!self) { return nil; @@ -77,122 +73,70 @@ - (instancetype)initWithTTSChunks:(NSArray *)ttsChunks alertText1 return self; } -- (void)setAlertText1:(NSString *)alertText1 { - if (alertText1 != nil) { - [parameters setObject:alertText1 forKey:NAMES_alertText1]; - } else { - [parameters removeObjectForKey:NAMES_alertText1]; - } +- (void)setAlertText1:(nullable NSString *)alertText1 { + [parameters sdl_setObject:alertText1 forName:SDLNameAlertText1]; } -- (NSString *)alertText1 { - return [parameters objectForKey:NAMES_alertText1]; +- (nullable NSString *)alertText1 { + return [parameters sdl_objectForName:SDLNameAlertText1]; } -- (void)setAlertText2:(NSString *)alertText2 { - if (alertText2 != nil) { - [parameters setObject:alertText2 forKey:NAMES_alertText2]; - } else { - [parameters removeObjectForKey:NAMES_alertText2]; - } +- (void)setAlertText2:(nullable NSString *)alertText2 { + [parameters sdl_setObject:alertText2 forName:SDLNameAlertText2]; } -- (NSString *)alertText2 { - return [parameters objectForKey:NAMES_alertText2]; +- (nullable NSString *)alertText2 { + return [parameters sdl_objectForName:SDLNameAlertText2]; } -- (void)setAlertText3:(NSString *)alertText3 { - if (alertText3 != nil) { - [parameters setObject:alertText3 forKey:NAMES_alertText3]; - } else { - [parameters removeObjectForKey:NAMES_alertText3]; - } +- (void)setAlertText3:(nullable NSString *)alertText3 { + [parameters sdl_setObject:alertText3 forName:SDLNameAlertText3]; } -- (NSString *)alertText3 { - return [parameters objectForKey:NAMES_alertText3]; +- (nullable NSString *)alertText3 { + return [parameters sdl_objectForName:SDLNameAlertText3]; } -- (void)setTtsChunks:(NSMutableArray *)ttsChunks { - if (ttsChunks != nil) { - [parameters setObject:ttsChunks forKey:NAMES_ttsChunks]; - } else { - [parameters removeObjectForKey:NAMES_ttsChunks]; - } +- (void)setTtsChunks:(nullable NSArray *)ttsChunks { + [parameters sdl_setObject:ttsChunks forName:SDLNameTTSChunks]; } -- (NSMutableArray *)ttsChunks { - NSMutableArray *array = [parameters objectForKey:NAMES_ttsChunks]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTTSChunk.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLTTSChunk alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (nullable NSArray *)ttsChunks { + return [parameters sdl_objectsForName:SDLNameTTSChunks ofClass:SDLTTSChunk.class]; } -- (void)setDuration:(NSNumber *)duration { - if (duration != nil) { - [parameters setObject:duration forKey:NAMES_duration]; - } else { - [parameters removeObjectForKey:NAMES_duration]; - } +- (void)setDuration:(nullable NSNumber *)duration { + [parameters sdl_setObject:duration forName:SDLNameDuration]; } -- (NSNumber *)duration { - return [parameters objectForKey:NAMES_duration]; +- (nullable NSNumber *)duration { + return [parameters sdl_objectForName:SDLNameDuration]; } -- (void)setPlayTone:(NSNumber *)playTone { - if (playTone != nil) { - [parameters setObject:playTone forKey:NAMES_playTone]; - } else { - [parameters removeObjectForKey:NAMES_playTone]; - } +- (void)setPlayTone:(nullable NSNumber *)playTone { + [parameters sdl_setObject:playTone forName:SDLNamePlayTone]; } -- (NSNumber *)playTone { - return [parameters objectForKey:NAMES_playTone]; +- (nullable NSNumber *)playTone { + return [parameters sdl_objectForName:SDLNamePlayTone]; } -- (void)setProgressIndicator:(NSNumber *)progressIndicator { - if (progressIndicator != nil) { - [parameters setObject:progressIndicator forKey:NAMES_progressIndicator]; - } else { - [parameters removeObjectForKey:NAMES_progressIndicator]; - } +- (void)setProgressIndicator:(nullable NSNumber *)progressIndicator { + [parameters sdl_setObject:progressIndicator forName:SDLNameProgressIndicator]; } -- (NSNumber *)progressIndicator { - return [parameters objectForKey:NAMES_progressIndicator]; +- (nullable NSNumber *)progressIndicator { + return [parameters sdl_objectForName:SDLNameProgressIndicator]; } -- (void)setSoftButtons:(NSMutableArray *)softButtons { - if (softButtons != nil) { - [parameters setObject:softButtons forKey:NAMES_softButtons]; - } else { - [parameters removeObjectForKey:NAMES_softButtons]; - } +- (void)setSoftButtons:(nullable NSArray *)softButtons { + [parameters sdl_setObject:softButtons forName:SDLNameSoftButtons]; } -- (NSMutableArray *)softButtons { - NSMutableArray *array = [parameters objectForKey:NAMES_softButtons]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLSoftButton.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLSoftButton alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (nullable NSArray *)softButtons { + return [parameters sdl_objectsForName:SDLNameSoftButtons ofClass:SDLSoftButton.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAlertManeuver.h b/SmartDeviceLink/SDLAlertManeuver.h index d3ac7a8ed..b7181c04f 100644 --- a/SmartDeviceLink/SDLAlertManeuver.h +++ b/SmartDeviceLink/SDLAlertManeuver.h @@ -11,16 +11,17 @@ /** * @since SmartDeviceLink 1.0 */ -@interface SDLAlertManeuver : SDLRPCRequest { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN -- (instancetype)initWithTTS:(NSString *)ttsText softButtons:(NSArray *)softButtons; -- (instancetype)initWithTTSChunks:(NSArray *)ttsChunks softButtons:(NSArray *)softButtons; +@interface SDLAlertManeuver : SDLRPCRequest -@property (strong) NSMutableArray *ttsChunks; -@property (strong) NSMutableArray *softButtons; +- (instancetype)initWithTTS:(nullable NSString *)ttsText softButtons:(nullable NSArray *)softButtons; +- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks softButtons:(nullable NSArray *)softButtons; + +@property (nullable, strong, nonatomic) NSArray *ttsChunks; +@property (nullable, strong, nonatomic) NSArray *softButtons; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAlertManeuver.m b/SmartDeviceLink/SDLAlertManeuver.m index 8582ee697..f56a53572 100644 --- a/SmartDeviceLink/SDLAlertManeuver.m +++ b/SmartDeviceLink/SDLAlertManeuver.m @@ -4,31 +4,28 @@ #import "SDLAlertManeuver.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" #import "SDLSoftButton.h" #import "SDLTTSChunk.h" -#import "SDLTTSChunkFactory.h" + +NS_ASSUME_NONNULL_BEGIN @implementation SDLAlertManeuver - (instancetype)init { - if (self = [super initWithName:NAMES_AlertManeuver]) { + if (self = [super initWithName:SDLNameAlertManeuver]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} -- (instancetype)initWithTTS:(NSString *)ttsText softButtons:(NSArray *)softButtons { - NSMutableArray *ttsChunks = [SDLTTSChunk textChunksFromString:ttsText]; +- (instancetype)initWithTTS:(nullable NSString *)ttsText softButtons:(nullable NSArray *)softButtons { + NSArray *ttsChunks = [SDLTTSChunk textChunksFromString:ttsText]; return [self initWithTTSChunks:ttsChunks softButtons:softButtons]; } -- (instancetype)initWithTTSChunks:(NSArray *)ttsChunks softButtons:(NSArray *)softButtons { +- (instancetype)initWithTTSChunks:(nullable NSArray *)ttsChunks softButtons:(nullable NSArray *)softButtons { self = [self init]; if (!self) { return nil; @@ -40,50 +37,22 @@ - (instancetype)initWithTTSChunks:(NSArray *)ttsChunks softButton return self; } -- (void)setTtsChunks:(NSMutableArray *)ttsChunks { - if (ttsChunks != nil) { - [parameters setObject:ttsChunks forKey:NAMES_ttsChunks]; - } else { - [parameters removeObjectForKey:NAMES_ttsChunks]; - } +- (void)setTtsChunks:(nullable NSArray *)ttsChunks { + [parameters sdl_setObject:ttsChunks forName:SDLNameTTSChunks]; } -- (NSMutableArray *)ttsChunks { - NSMutableArray *array = [parameters objectForKey:NAMES_ttsChunks]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTTSChunk.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLTTSChunk alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (nullable NSArray *)ttsChunks { + return [parameters sdl_objectsForName:SDLNameTTSChunks ofClass:SDLTTSChunk.class]; } -- (void)setSoftButtons:(NSMutableArray *)softButtons { - if (softButtons != nil) { - [parameters setObject:softButtons forKey:NAMES_softButtons]; - } else { - [parameters removeObjectForKey:NAMES_softButtons]; - } +- (void)setSoftButtons:(nullable NSArray *)softButtons { + [parameters sdl_setObject:softButtons forName:SDLNameSoftButtons]; } -- (NSMutableArray *)softButtons { - NSMutableArray *array = [parameters objectForKey:NAMES_softButtons]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLSoftButton.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLSoftButton alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (nullable NSArray *)softButtons { + return [parameters sdl_objectsForName:SDLNameSoftButtons ofClass:SDLSoftButton.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAlertManeuverResponse.h b/SmartDeviceLink/SDLAlertManeuverResponse.h index b7d3d6c0a..d541cde0e 100644 --- a/SmartDeviceLink/SDLAlertManeuverResponse.h +++ b/SmartDeviceLink/SDLAlertManeuverResponse.h @@ -7,10 +7,11 @@ /** SDLAlertManeuverResponse is sent, when SDLAlertManeuver has been called. * @since SmartDeviceLink 1.0 */ -@interface SDLAlertManeuverResponse : SDLRPCResponse { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLAlertManeuverResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAlertManeuverResponse.m b/SmartDeviceLink/SDLAlertManeuverResponse.m index 5687d3117..99cc21cf5 100644 --- a/SmartDeviceLink/SDLAlertManeuverResponse.m +++ b/SmartDeviceLink/SDLAlertManeuverResponse.m @@ -3,20 +3,19 @@ #import "SDLAlertManeuverResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLAlertManeuverResponse - (instancetype)init { - if (self = [super initWithName:NAMES_AlertManeuver]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameAlertManeuver]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAlertResponse.h b/SmartDeviceLink/SDLAlertResponse.h index 81228d34a..a2883778c 100644 --- a/SmartDeviceLink/SDLAlertResponse.h +++ b/SmartDeviceLink/SDLAlertResponse.h @@ -8,12 +8,13 @@ * Sent after SDLAlert has been sent * @since SDL 1.0 */ -@interface SDLAlertResponse : SDLRPCResponse { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN -@property (strong) NSNumber *tryAgainTime; +@interface SDLAlertResponse : SDLRPCResponse + +@property (nullable, strong, nonatomic) NSNumber *tryAgainTime; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAlertResponse.m b/SmartDeviceLink/SDLAlertResponse.m index f55982377..e2da4bb91 100644 --- a/SmartDeviceLink/SDLAlertResponse.m +++ b/SmartDeviceLink/SDLAlertResponse.m @@ -3,32 +3,26 @@ #import "SDLAlertResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLAlertResponse - (instancetype)init { - if (self = [super initWithName:NAMES_Alert]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameAlert]) { } return self; } -- (void)setTryAgainTime:(NSNumber *)tryAgainTime { - if (tryAgainTime != nil) { - [parameters setObject:tryAgainTime forKey:NAMES_tryAgainTime]; - } else { - [parameters removeObjectForKey:NAMES_tryAgainTime]; - } -} +- (void)setTryAgainTime:(nullable NSNumber *)tryAgainTime { + [parameters sdl_setObject:tryAgainTime forName:SDLNameTryAgainTime];} -- (NSNumber *)tryAgainTime { - return [parameters objectForKey:NAMES_tryAgainTime]; +- (nullable NSNumber *)tryAgainTime { + return [parameters sdl_objectForName:SDLNameTryAgainTime]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAmbientLightStatus.h b/SmartDeviceLink/SDLAmbientLightStatus.h index c778c2104..0a1235a8b 100644 --- a/SmartDeviceLink/SDLAmbientLightStatus.h +++ b/SmartDeviceLink/SDLAmbientLightStatus.h @@ -8,19 +8,13 @@ * Reflects the status of the ambient light sensor * @since SDL 3.0 */ -@interface SDLAmbientLightStatus : SDLEnum { -} +typedef SDLEnum SDLAmbientLightStatus SDL_SWIFT_ENUM; -+ (SDLAmbientLightStatus *)valueOf:(NSString *)value; -+ (NSArray *)values; - -+ (SDLAmbientLightStatus *)NIGHT; -+ (SDLAmbientLightStatus *)TWILIGHT_1; -+ (SDLAmbientLightStatus *)TWILIGHT_2; -+ (SDLAmbientLightStatus *)TWILIGHT_3; -+ (SDLAmbientLightStatus *)TWILIGHT_4; -+ (SDLAmbientLightStatus *)DAY; -+ (SDLAmbientLightStatus *)UNKNOWN; -+ (SDLAmbientLightStatus *)INVALID; - -@end +extern SDLAmbientLightStatus const SDLAmbientLightStatusNight; +extern SDLAmbientLightStatus const SDLAmbientLightStatusTwilight1; +extern SDLAmbientLightStatus const SDLAmbientLightStatusTwilight2; +extern SDLAmbientLightStatus const SDLAmbientLightStatusTwilight3; +extern SDLAmbientLightStatus const SDLAmbientLightStatusTwilight4; +extern SDLAmbientLightStatus const SDLAmbientLightStatusDay; +extern SDLAmbientLightStatus const SDLAmbientLightStatusUnknown; +extern SDLAmbientLightStatus const SDLAmbientLightStatusInvalid; diff --git a/SmartDeviceLink/SDLAmbientLightStatus.m b/SmartDeviceLink/SDLAmbientLightStatus.m index 7fa21db4a..673b159fd 100644 --- a/SmartDeviceLink/SDLAmbientLightStatus.m +++ b/SmartDeviceLink/SDLAmbientLightStatus.m @@ -3,98 +3,11 @@ #import "SDLAmbientLightStatus.h" -SDLAmbientLightStatus *SDLAmbientLightStatus_NIGHT = nil; -SDLAmbientLightStatus *SDLAmbientLightStatus_TWILIGHT_1 = nil; -SDLAmbientLightStatus *SDLAmbientLightStatus_TWILIGHT_2 = nil; -SDLAmbientLightStatus *SDLAmbientLightStatus_TWILIGHT_3 = nil; -SDLAmbientLightStatus *SDLAmbientLightStatus_TWILIGHT_4 = nil; -SDLAmbientLightStatus *SDLAmbientLightStatus_DAY = nil; -SDLAmbientLightStatus *SDLAmbientLightStatus_UNKNOWN = nil; -SDLAmbientLightStatus *SDLAmbientLightStatus_INVALID = nil; - -NSArray *SDLAmbientLightStatus_values = nil; - -@implementation SDLAmbientLightStatus - -+ (SDLAmbientLightStatus *)valueOf:(NSString *)value { - for (SDLAmbientLightStatus *item in SDLAmbientLightStatus.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLAmbientLightStatus_values == nil) { - SDLAmbientLightStatus_values = @[ - SDLAmbientLightStatus.NIGHT, - SDLAmbientLightStatus.TWILIGHT_1, - SDLAmbientLightStatus.TWILIGHT_2, - SDLAmbientLightStatus.TWILIGHT_3, - SDLAmbientLightStatus.TWILIGHT_4, - SDLAmbientLightStatus.DAY, - SDLAmbientLightStatus.UNKNOWN, - SDLAmbientLightStatus.INVALID, - ]; - } - return SDLAmbientLightStatus_values; -} - -+ (SDLAmbientLightStatus *)NIGHT { - if (SDLAmbientLightStatus_NIGHT == nil) { - SDLAmbientLightStatus_NIGHT = [[SDLAmbientLightStatus alloc] initWithValue:@"NIGHT"]; - } - return SDLAmbientLightStatus_NIGHT; -} - -+ (SDLAmbientLightStatus *)TWILIGHT_1 { - if (SDLAmbientLightStatus_TWILIGHT_1 == nil) { - SDLAmbientLightStatus_TWILIGHT_1 = [[SDLAmbientLightStatus alloc] initWithValue:@"TWILIGHT_1"]; - } - return SDLAmbientLightStatus_TWILIGHT_1; -} - -+ (SDLAmbientLightStatus *)TWILIGHT_2 { - if (SDLAmbientLightStatus_TWILIGHT_2 == nil) { - SDLAmbientLightStatus_TWILIGHT_2 = [[SDLAmbientLightStatus alloc] initWithValue:@"TWILIGHT_2"]; - } - return SDLAmbientLightStatus_TWILIGHT_2; -} - -+ (SDLAmbientLightStatus *)TWILIGHT_3 { - if (SDLAmbientLightStatus_TWILIGHT_3 == nil) { - SDLAmbientLightStatus_TWILIGHT_3 = [[SDLAmbientLightStatus alloc] initWithValue:@"TWILIGHT_3"]; - } - return SDLAmbientLightStatus_TWILIGHT_3; -} - -+ (SDLAmbientLightStatus *)TWILIGHT_4 { - if (SDLAmbientLightStatus_TWILIGHT_4 == nil) { - SDLAmbientLightStatus_TWILIGHT_4 = [[SDLAmbientLightStatus alloc] initWithValue:@"TWILIGHT_4"]; - } - return SDLAmbientLightStatus_TWILIGHT_4; -} - -+ (SDLAmbientLightStatus *)DAY { - if (SDLAmbientLightStatus_DAY == nil) { - SDLAmbientLightStatus_DAY = [[SDLAmbientLightStatus alloc] initWithValue:@"DAY"]; - } - return SDLAmbientLightStatus_DAY; -} - -+ (SDLAmbientLightStatus *)UNKNOWN { - if (SDLAmbientLightStatus_UNKNOWN == nil) { - SDLAmbientLightStatus_UNKNOWN = [[SDLAmbientLightStatus alloc] initWithValue:@"UNKNOWN"]; - } - return SDLAmbientLightStatus_UNKNOWN; -} - -+ (SDLAmbientLightStatus *)INVALID { - if (SDLAmbientLightStatus_INVALID == nil) { - SDLAmbientLightStatus_INVALID = [[SDLAmbientLightStatus alloc] initWithValue:@"INVALID"]; - } - return SDLAmbientLightStatus_INVALID; -} - -@end +SDLAmbientLightStatus const SDLAmbientLightStatusNight = @"NIGHT"; +SDLAmbientLightStatus const SDLAmbientLightStatusTwilight1 = @"TWILIGHT_1"; +SDLAmbientLightStatus const SDLAmbientLightStatusTwilight2 = @"TWILIGHT_2"; +SDLAmbientLightStatus const SDLAmbientLightStatusTwilight3 = @"TWILIGHT_3"; +SDLAmbientLightStatus const SDLAmbientLightStatusTwilight4 = @"TWILIGHT_4"; +SDLAmbientLightStatus const SDLAmbientLightStatusDay = @"DAY"; +SDLAmbientLightStatus const SDLAmbientLightStatusUnknown = @"UNKNOWN"; +SDLAmbientLightStatus const SDLAmbientLightStatusInvalid = @"INVALID"; diff --git a/SmartDeviceLink/SDLAppHMIType.h b/SmartDeviceLink/SDLAppHMIType.h index 235ea7694..021f324e3 100644 --- a/SmartDeviceLink/SDLAppHMIType.h +++ b/SmartDeviceLink/SDLAppHMIType.h @@ -9,95 +9,60 @@ * * @since SDL 2.0 */ -@interface SDLAppHMIType : SDLEnum { -} - -/** - * @abstract Convert String to AppHMIType - * - * @param value The value of the string to get an object for - * - * @return SDLAppHMIType - */ -+ (SDLAppHMIType *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLAppHMIType - * - * @return an array that store all possible SDLAppHMIType - */ -+ (NSArray *)values; +typedef SDLEnum SDLAppHMIType SDL_SWIFT_ENUM; /** * @abstract The App will have default rights. - * - * @return SDLAppHMIType with value *DEFAULT* */ -+ (SDLAppHMIType *)DEFAULT; +extern SDLAppHMIType const SDLAppHMITypeDefault; /** * @abstract Communication type of App - * - * @return SDLAppHMIType with value *COMMUNICATION* */ -+ (SDLAppHMIType *)COMMUNICATION; +extern SDLAppHMIType const SDLAppHMITypeCommunication; /** * @abstract App dealing with Media - * - * @return SDLAppHMIType with value *MEDIA* */ -+ (SDLAppHMIType *)MEDIA; +extern SDLAppHMIType const SDLAppHMITypeMedia; /** * @abstract Messaging App - * - * @return SDLAppHMIType with value *MESSAGING* */ -+ (SDLAppHMIType *)MESSAGING; +extern SDLAppHMIType const SDLAppHMITypeMessaging; /** * @abstract Navigation App - * - * @return SDLAppHMIType with value *NAVIGATION* */ -+ (SDLAppHMIType *)NAVIGATION; +extern SDLAppHMIType const SDLAppHMITypeNavigation; /** * @abstract Information App - * - * @return SDLAppHMIType with value *INFORMATION* */ -+ (SDLAppHMIType *)INFORMATION; +extern SDLAppHMIType const SDLAppHMITypeInformation; /** * @abstract App dealing with social media - * - * @return SDLAppHMIType with value *SOCIAL* */ -+ (SDLAppHMIType *)SOCIAL; +extern SDLAppHMIType const SDLAppHMITypeSocial; /** * @abstract App dealing with Mobile Projection applications - * - * @return SDLAppHMIType with value *PROJECTION* */ -+ (SDLAppHMIType *)PROJECTION; +extern SDLAppHMIType const SDLAppHMITypeProjection; -+ (SDLAppHMIType *)BACKGROUND_PROCESS; +extern SDLAppHMIType const SDLAppHMITypeBackgroundProcess; /** * @abstract App only for Testing purposes - * - * @return SDLAppHMIType with value *TESTING* */ -+ (SDLAppHMIType *)TESTING; +extern SDLAppHMIType const SDLAppHMITypeTesting; /** * @abstract System App - * - * @return SDLAppHMIType with value *SYSTEM* */ -+ (SDLAppHMIType *)SYSTEM; +extern SDLAppHMIType const SDLAppHMITypeSystem; -@end +/** + * @abstract Remote control */ +extern SDLAppHMIType const SDLAppHMITypeRemoteControl; diff --git a/SmartDeviceLink/SDLAppHMIType.m b/SmartDeviceLink/SDLAppHMIType.m index 73a4c0ea3..070ad089b 100644 --- a/SmartDeviceLink/SDLAppHMIType.m +++ b/SmartDeviceLink/SDLAppHMIType.m @@ -4,125 +4,15 @@ #import "SDLAppHMIType.h" -SDLAppHMIType *SDLAppHMIType_DEFAULT = nil; -SDLAppHMIType *SDLAppHMIType_COMMUNICATION = nil; -SDLAppHMIType *SDLAppHMIType_MEDIA = nil; -SDLAppHMIType *SDLAppHMIType_MESSAGING = nil; -SDLAppHMIType *SDLAppHMIType_NAVIGATION = nil; -SDLAppHMIType *SDLAppHMIType_INFORMATION = nil; -SDLAppHMIType *SDLAppHMIType_SOCIAL = nil; -SDLAppHMIType *SDLAppHMIType_PROJECTION = nil; -SDLAppHMIType *SDLAppHMIType_BACKGROUND_PROCESS = nil; -SDLAppHMIType *SDLAppHMIType_TESTING = nil; -SDLAppHMIType *SDLAppHMIType_SYSTEM = nil; - -NSArray *SDLAppHMIType_values = nil; - -@implementation SDLAppHMIType - -+ (SDLAppHMIType *)valueOf:(NSString *)value { - for (SDLAppHMIType *item in SDLAppHMIType.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLAppHMIType_values == nil) { - SDLAppHMIType_values = @[ - SDLAppHMIType.DEFAULT, - SDLAppHMIType.COMMUNICATION, - SDLAppHMIType.MEDIA, - SDLAppHMIType.MESSAGING, - SDLAppHMIType.NAVIGATION, - SDLAppHMIType.INFORMATION, - SDLAppHMIType.SOCIAL, - SDLAppHMIType.PROJECTION, - SDLAppHMIType.BACKGROUND_PROCESS, - SDLAppHMIType.TESTING, - SDLAppHMIType.SYSTEM, - ]; - } - return SDLAppHMIType_values; -} - -+ (SDLAppHMIType *)DEFAULT { - if (SDLAppHMIType_DEFAULT == nil) { - SDLAppHMIType_DEFAULT = [[SDLAppHMIType alloc] initWithValue:@"DEFAULT"]; - } - return SDLAppHMIType_DEFAULT; -} - -+ (SDLAppHMIType *)COMMUNICATION { - if (SDLAppHMIType_COMMUNICATION == nil) { - SDLAppHMIType_COMMUNICATION = [[SDLAppHMIType alloc] initWithValue:@"COMMUNICATION"]; - } - return SDLAppHMIType_COMMUNICATION; -} - -+ (SDLAppHMIType *)MEDIA { - if (SDLAppHMIType_MEDIA == nil) { - SDLAppHMIType_MEDIA = [[SDLAppHMIType alloc] initWithValue:@"MEDIA"]; - } - return SDLAppHMIType_MEDIA; -} - -+ (SDLAppHMIType *)MESSAGING { - if (SDLAppHMIType_MESSAGING == nil) { - SDLAppHMIType_MESSAGING = [[SDLAppHMIType alloc] initWithValue:@"MESSAGING"]; - } - return SDLAppHMIType_MESSAGING; -} - -+ (SDLAppHMIType *)NAVIGATION { - if (SDLAppHMIType_NAVIGATION == nil) { - SDLAppHMIType_NAVIGATION = [[SDLAppHMIType alloc] initWithValue:@"NAVIGATION"]; - } - return SDLAppHMIType_NAVIGATION; -} - -+ (SDLAppHMIType *)INFORMATION { - if (SDLAppHMIType_INFORMATION == nil) { - SDLAppHMIType_INFORMATION = [[SDLAppHMIType alloc] initWithValue:@"INFORMATION"]; - } - return SDLAppHMIType_INFORMATION; -} - -+ (SDLAppHMIType *)SOCIAL { - if (SDLAppHMIType_SOCIAL == nil) { - SDLAppHMIType_SOCIAL = [[SDLAppHMIType alloc] initWithValue:@"SOCIAL"]; - } - return SDLAppHMIType_SOCIAL; -} - -+ (SDLAppHMIType *)PROJECTION { - if (SDLAppHMIType_PROJECTION == nil) { - SDLAppHMIType_PROJECTION = [[SDLAppHMIType alloc] initWithValue:@"PROJECTION"]; - } - return SDLAppHMIType_PROJECTION; -} - -+ (SDLAppHMIType *)BACKGROUND_PROCESS { - if (SDLAppHMIType_BACKGROUND_PROCESS == nil) { - SDLAppHMIType_BACKGROUND_PROCESS = [[SDLAppHMIType alloc] initWithValue:@"BACKGROUND_PROCESS"]; - } - return SDLAppHMIType_BACKGROUND_PROCESS; -} - -+ (SDLAppHMIType *)TESTING { - if (SDLAppHMIType_TESTING == nil) { - SDLAppHMIType_TESTING = [[SDLAppHMIType alloc] initWithValue:@"TESTING"]; - } - return SDLAppHMIType_TESTING; -} - -+ (SDLAppHMIType *)SYSTEM { - if (SDLAppHMIType_SYSTEM == nil) { - SDLAppHMIType_SYSTEM = [[SDLAppHMIType alloc] initWithValue:@"SYSTEM"]; - } - return SDLAppHMIType_SYSTEM; -} - -@end +SDLAppHMIType const SDLAppHMITypeDefault = @"DEFAULT"; +SDLAppHMIType const SDLAppHMITypeCommunication = @"COMMUNICATION"; +SDLAppHMIType const SDLAppHMITypeMedia = @"MEDIA"; +SDLAppHMIType const SDLAppHMITypeMessaging = @"MESSAGING"; +SDLAppHMIType const SDLAppHMITypeNavigation = @"NAVIGATION"; +SDLAppHMIType const SDLAppHMITypeInformation = @"INFORMATION"; +SDLAppHMIType const SDLAppHMITypeSocial = @"SOCIAL"; +SDLAppHMIType const SDLAppHMITypeProjection = @"PROJECTION"; +SDLAppHMIType const SDLAppHMITypeBackgroundProcess = @"BACKGROUND_PROCESS"; +SDLAppHMIType const SDLAppHMITypeTesting = @"TESTING"; +SDLAppHMIType const SDLAppHMITypeSystem = @"SYSTEM"; +SDLAppHMIType const SDLAppHMITypeRemoteControl = @"REMOTE_CONTROL"; diff --git a/SmartDeviceLink/SDLAppInfo.h b/SmartDeviceLink/SDLAppInfo.h index c08fba9fd..98a573970 100644 --- a/SmartDeviceLink/SDLAppInfo.h +++ b/SmartDeviceLink/SDLAppInfo.h @@ -3,12 +3,16 @@ #import "SDLRPCStruct.h" +NS_ASSUME_NONNULL_BEGIN + @interface SDLAppInfo : SDLRPCStruct + (instancetype)currentAppInfo; -@property (strong) NSString *appDisplayName; -@property (strong) NSString *appBundleID; -@property (strong) NSString *appVersion; +@property (strong, nonatomic) NSString *appDisplayName; +@property (strong, nonatomic) NSString *appBundleID; +@property (strong, nonatomic) NSString *appVersion; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAppInfo.m b/SmartDeviceLink/SDLAppInfo.m index 968bbf6e7..a9102d40e 100644 --- a/SmartDeviceLink/SDLAppInfo.m +++ b/SmartDeviceLink/SDLAppInfo.m @@ -2,11 +2,15 @@ // #import "SDLAppInfo.h" + +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" static NSString *const SDLBundleShortVersionStringKey = @"CFBundleShortVersionString"; static NSString *const SDLBundleAppNameKey = @"CFBundleName"; +NS_ASSUME_NONNULL_BEGIN + @implementation SDLAppInfo + (instancetype)currentAppInfo { @@ -23,39 +27,29 @@ + (instancetype)currentAppInfo { } - (void)setAppDisplayName:(NSString *)appDisplayName { - if (appDisplayName != nil) { - [store setObject:appDisplayName forKey:NAMES_appDisplayName]; - } else { - [store removeObjectForKey:NAMES_appDisplayName]; - } + [store sdl_setObject:appDisplayName forName:SDLNameAppDisplayName]; } - (NSString *)appDisplayName { - return [store objectForKey:NAMES_appDisplayName]; + return [store sdl_objectForName:SDLNameAppDisplayName]; } - (void)setAppBundleID:(NSString *)appBundleID { - if (appBundleID != nil) { - [store setObject:appBundleID forKey:NAMES_appBundleID]; - } else { - [store removeObjectForKey:NAMES_appBundleID]; - } + [store sdl_setObject:appBundleID forName:SDLNameAppBundleId]; } - (NSString *)appBundleID { - return [store objectForKey:NAMES_appBundleID]; + return [store sdl_objectForName:SDLNameAppBundleId]; } - (void)setAppVersion:(NSString *)appVersion { - if (appVersion != nil) { - [store setObject:appVersion forKey:NAMES_appVersion]; - } else { - [store removeObjectForKey:NAMES_appVersion]; - } + [store sdl_setObject:appVersion forName:SDLNameAppVersion]; } - (NSString *)appVersion { - return [store objectForKey:NAMES_appVersion]; + return [store sdl_objectForName:SDLNameAppVersion]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h b/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h index 4fce3ba16..0cdf0f192 100644 --- a/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h +++ b/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.h @@ -9,95 +9,57 @@ * * @since SDL 1.0 */ -@interface SDLAppInterfaceUnregisteredReason : SDLEnum { -} +typedef SDLEnum SDLAppInterfaceUnregisteredReason SDL_SWIFT_ENUM; -/** - * @abstract Convert String to SDLAppInterfaceUnregisteredReason - * - * @param value String value to retrieve the object for - * - * @return SDLAppInterfaceUnregisteredReason - */ -+ (SDLAppInterfaceUnregisteredReason *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLAppInterfaceUnregisteredReason - * - * @return an array that stores all possible SDLAppInterfaceUnregisteredReason - */ -+ (NSArray *)values; /** * @abstract Vehicle ignition turned off. - * - * @return SDLAppInterfaceUnregisteredReason with value *IGNITION_OFF* */ -+ (SDLAppInterfaceUnregisteredReason *)IGNITION_OFF; +extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonIgnitionOff; /** * @abstract Bluetooth was turned off, causing termination of a necessary Bluetooth connection. - * - * @return SDLAppInterfaceUnregisteredReason with value *BLUETOOTH_OFF* */ -+ (SDLAppInterfaceUnregisteredReason *)BLUETOOTH_OFF; +extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonBluetoothOff; /** * @abstract USB was disconnected, causing termination of a necessary iAP connection. - * - * @return SDLAppInterfaceUnregisteredReason with value *USB_DISCONNECTED* */ -+ (SDLAppInterfaceUnregisteredReason *)USB_DISCONNECTED; +extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonUSBDisconnected; /** * @abstract 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. - * - * @return SDLAppInterfaceUnregisteredReason with value *REQUEST_WHILE_IN_NONE_HMI_LEVEL* */ -+ (SDLAppInterfaceUnregisteredReason *)REQUEST_WHILE_IN_NONE_HMI_LEVEL; +extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonRequestWhileInNoneHMILevel; /** * @abstract Either too many -- or too many per unit of time -- requests were made by the application. - * - * @return SDLAppInterfaceUnregisteredReason with value *TOO_MANY_REQUESTS* */ -+ (SDLAppInterfaceUnregisteredReason *)TOO_MANY_REQUESTS; +extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonTooManyRequests; /** * @abstract The application has issued requests which cause driver distraction rules to be violated. - * - * @return SDLAppInterfaceUnregisteredReason with value *DRIVER_DISTRACTION_VIOLATION* */ -+ (SDLAppInterfaceUnregisteredReason *)DRIVER_DISTRACTION_VIOLATION; +extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonDriverDistractionViolation; /** * @abstract The user performed a language change on the SDL platform, causing the application to need to be reregistered for the new language. - * - * @return SDLAppInterfaceUnregisteredReason with value *LANGUAGE_CHANGE* */ -+ (SDLAppInterfaceUnregisteredReason *)LANGUAGE_CHANGE; +extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonLanguageChange; /** * @abstract The user performed a MASTER RESET on the SDL platform, causing removal of a necessary Bluetooth pairing. - * - * @return SDLAppInterfaceUnregisteredReason with value *MASTER_RESET* */ -+ (SDLAppInterfaceUnregisteredReason *)MASTER_RESET; +extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonMasterReset; /** * @abstract The user restored settings to FACTORY DEFAULTS on the SDL platform. - * - * @return SDLAppInterfaceUnregisteredReason with value *FACTORY_DEFAULTS* */ -+ (SDLAppInterfaceUnregisteredReason *)FACTORY_DEFAULTS; +extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonFactoryDefaults; /** * @abstract The app is not being authorized to be connected to SDL. * - * @return SDLAppInterfaceUnregisteredReason with value *APP_UNAUTHORIZED* - * * @since SDL 2.0 */ -+ (SDLAppInterfaceUnregisteredReason *)APP_UNAUTHORIZED; - -@end +extern SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonAppUnauthorized; diff --git a/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m b/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m index 72c19a8f5..cf8cae70a 100644 --- a/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m +++ b/SmartDeviceLink/SDLAppInterfaceUnregisteredReason.m @@ -3,116 +3,14 @@ #import "SDLAppInterfaceUnregisteredReason.h" -SDLAppInterfaceUnregisteredReason *SDLAppInterfaceUnregisteredReason_IGNITION_OFF = nil; -SDLAppInterfaceUnregisteredReason *SDLAppInterfaceUnregisteredReason_BLUETOOTH_OFF = nil; -SDLAppInterfaceUnregisteredReason *SDLAppInterfaceUnregisteredReason_USB_DISCONNECTED = nil; -SDLAppInterfaceUnregisteredReason *SDLAppInterfaceUnregisteredReason_REQUEST_WHILE_IN_NONE_HMI_LEVEL = nil; -SDLAppInterfaceUnregisteredReason *SDLAppInterfaceUnregisteredReason_TOO_MANY_REQUESTS = nil; -SDLAppInterfaceUnregisteredReason *SDLAppInterfaceUnregisteredReason_DRIVER_DISTRACTION_VIOLATION = nil; -SDLAppInterfaceUnregisteredReason *SDLAppInterfaceUnregisteredReason_LANGUAGE_CHANGE = nil; -SDLAppInterfaceUnregisteredReason *SDLAppInterfaceUnregisteredReason_MASTER_RESET = nil; -SDLAppInterfaceUnregisteredReason *SDLAppInterfaceUnregisteredReason_FACTORY_DEFAULTS = nil; -SDLAppInterfaceUnregisteredReason *SDLAppInterfaceUnregisteredReason_APP_UNAUTHORIZED = nil; -NSArray *SDLAppInterfaceUnregisteredReason_values = nil; - -@implementation SDLAppInterfaceUnregisteredReason - -+ (SDLAppInterfaceUnregisteredReason *)valueOf:(NSString *)value { - for (SDLAppInterfaceUnregisteredReason *item in SDLAppInterfaceUnregisteredReason.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLAppInterfaceUnregisteredReason_values == nil) { - SDLAppInterfaceUnregisteredReason_values = @[ - SDLAppInterfaceUnregisteredReason.IGNITION_OFF, - SDLAppInterfaceUnregisteredReason.BLUETOOTH_OFF, - SDLAppInterfaceUnregisteredReason.USB_DISCONNECTED, - SDLAppInterfaceUnregisteredReason.REQUEST_WHILE_IN_NONE_HMI_LEVEL, - SDLAppInterfaceUnregisteredReason.TOO_MANY_REQUESTS, - SDLAppInterfaceUnregisteredReason.DRIVER_DISTRACTION_VIOLATION, - SDLAppInterfaceUnregisteredReason.LANGUAGE_CHANGE, - SDLAppInterfaceUnregisteredReason.MASTER_RESET, - SDLAppInterfaceUnregisteredReason.FACTORY_DEFAULTS, - SDLAppInterfaceUnregisteredReason.APP_UNAUTHORIZED, - ]; - } - return SDLAppInterfaceUnregisteredReason_values; -} - -+ (SDLAppInterfaceUnregisteredReason *)IGNITION_OFF { - if (SDLAppInterfaceUnregisteredReason_IGNITION_OFF == nil) { - SDLAppInterfaceUnregisteredReason_IGNITION_OFF = [[SDLAppInterfaceUnregisteredReason alloc] initWithValue:@"IGNITION_OFF"]; - } - return SDLAppInterfaceUnregisteredReason_IGNITION_OFF; -} - -+ (SDLAppInterfaceUnregisteredReason *)BLUETOOTH_OFF { - if (SDLAppInterfaceUnregisteredReason_BLUETOOTH_OFF == nil) { - SDLAppInterfaceUnregisteredReason_BLUETOOTH_OFF = [[SDLAppInterfaceUnregisteredReason alloc] initWithValue:@"BLUETOOTH_OFF"]; - } - return SDLAppInterfaceUnregisteredReason_BLUETOOTH_OFF; -} - -+ (SDLAppInterfaceUnregisteredReason *)USB_DISCONNECTED { - if (SDLAppInterfaceUnregisteredReason_USB_DISCONNECTED == nil) { - SDLAppInterfaceUnregisteredReason_USB_DISCONNECTED = [[SDLAppInterfaceUnregisteredReason alloc] initWithValue:@"USB_DISCONNECTED"]; - } - return SDLAppInterfaceUnregisteredReason_USB_DISCONNECTED; -} - -+ (SDLAppInterfaceUnregisteredReason *)REQUEST_WHILE_IN_NONE_HMI_LEVEL { - if (SDLAppInterfaceUnregisteredReason_REQUEST_WHILE_IN_NONE_HMI_LEVEL == nil) { - SDLAppInterfaceUnregisteredReason_REQUEST_WHILE_IN_NONE_HMI_LEVEL = [[SDLAppInterfaceUnregisteredReason alloc] initWithValue:@"REQUEST_WHILE_IN_NONE_HMI_LEVEL"]; - } - return SDLAppInterfaceUnregisteredReason_REQUEST_WHILE_IN_NONE_HMI_LEVEL; -} - -+ (SDLAppInterfaceUnregisteredReason *)TOO_MANY_REQUESTS { - if (SDLAppInterfaceUnregisteredReason_TOO_MANY_REQUESTS == nil) { - SDLAppInterfaceUnregisteredReason_TOO_MANY_REQUESTS = [[SDLAppInterfaceUnregisteredReason alloc] initWithValue:@"TOO_MANY_REQUESTS"]; - } - return SDLAppInterfaceUnregisteredReason_TOO_MANY_REQUESTS; -} - -+ (SDLAppInterfaceUnregisteredReason *)DRIVER_DISTRACTION_VIOLATION { - if (SDLAppInterfaceUnregisteredReason_DRIVER_DISTRACTION_VIOLATION == nil) { - SDLAppInterfaceUnregisteredReason_DRIVER_DISTRACTION_VIOLATION = [[SDLAppInterfaceUnregisteredReason alloc] initWithValue:@"DRIVER_DISTRACTION_VIOLATION"]; - } - return SDLAppInterfaceUnregisteredReason_DRIVER_DISTRACTION_VIOLATION; -} - -+ (SDLAppInterfaceUnregisteredReason *)LANGUAGE_CHANGE { - if (SDLAppInterfaceUnregisteredReason_LANGUAGE_CHANGE == nil) { - SDLAppInterfaceUnregisteredReason_LANGUAGE_CHANGE = [[SDLAppInterfaceUnregisteredReason alloc] initWithValue:@"LANGUAGE_CHANGE"]; - } - return SDLAppInterfaceUnregisteredReason_LANGUAGE_CHANGE; -} - -+ (SDLAppInterfaceUnregisteredReason *)MASTER_RESET { - if (SDLAppInterfaceUnregisteredReason_MASTER_RESET == nil) { - SDLAppInterfaceUnregisteredReason_MASTER_RESET = [[SDLAppInterfaceUnregisteredReason alloc] initWithValue:@"MASTER_RESET"]; - } - return SDLAppInterfaceUnregisteredReason_MASTER_RESET; -} - -+ (SDLAppInterfaceUnregisteredReason *)FACTORY_DEFAULTS { - if (SDLAppInterfaceUnregisteredReason_FACTORY_DEFAULTS == nil) { - SDLAppInterfaceUnregisteredReason_FACTORY_DEFAULTS = [[SDLAppInterfaceUnregisteredReason alloc] initWithValue:@"FACTORY_DEFAULTS"]; - } - return SDLAppInterfaceUnregisteredReason_FACTORY_DEFAULTS; -} - -+ (SDLAppInterfaceUnregisteredReason *)APP_UNAUTHORIZED { - if (SDLAppInterfaceUnregisteredReason_APP_UNAUTHORIZED == nil) { - SDLAppInterfaceUnregisteredReason_APP_UNAUTHORIZED = [[SDLAppInterfaceUnregisteredReason alloc] initWithValue:@"APP_UNAUTHORIZED"]; - } - return SDLAppInterfaceUnregisteredReason_APP_UNAUTHORIZED; -} - -@end +SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonIgnitionOff = @"IGNITION_OFF"; +SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonBluetoothOff = @"BLUETOOTH_OFF"; +SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonUSBDisconnected = @"USB_DISCONNECTED"; +SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonRequestWhileInNoneHMILevel = @"REQUEST_WHILE_IN_NONE_HMI_LEVEL"; +SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonTooManyRequests = @"TOO_MANY_REQUESTS"; +SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonDriverDistractionViolation = @"DRIVER_DISTRACTION_VIOLATION"; +SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonLanguageChange = @"LANGUAGE_CHANGE"; +SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonMasterReset = @"MASTER_RESET"; +SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonFactoryDefaults = @"FACTORY_DEFAULTS"; +SDLAppInterfaceUnregisteredReason const SDLAppInterfaceUnregisteredReasonAppUnauthorized = @"APP_UNAUTHORIZED"; diff --git a/SmartDeviceLink/SDLArtwork.h b/SmartDeviceLink/SDLArtwork.h index 34d2bfc7f..ee9cf74f8 100644 --- a/SmartDeviceLink/SDLArtwork.h +++ b/SmartDeviceLink/SDLArtwork.h @@ -34,7 +34,7 @@ NS_ASSUME_NONNULL_BEGIN * * @return An instance of this class to be passed to the file manager. */ -+ (instancetype)artworkWithImage:(UIImage *)image name:(NSString *)name asImageFormat:(SDLArtworkImageFormat)imageFormat; ++ (instancetype)artworkWithImage:(UIImage *)image name:(NSString *)name asImageFormat:(SDLArtworkImageFormat)imageFormat NS_SWIFT_UNAVAILABLE("Use the standard initializer and set persistant to false"); /** * Convenience Helper to create a persistent artwork from an image. @@ -51,7 +51,7 @@ NS_ASSUME_NONNULL_BEGIN * * @return An instance of this class to be passed to the file manager. */ -+ (instancetype)persistentArtworkWithImage:(UIImage *)image name:(NSString *)name asImageFormat:(SDLArtworkImageFormat)imageFormat; ++ (instancetype)persistentArtworkWithImage:(UIImage *)image name:(NSString *)name asImageFormat:(SDLArtworkImageFormat)imageFormat NS_SWIFT_UNAVAILABLE("Use the standard initializer and set persistant to true"); /** * Create a file for transmission to the remote system from a UIImage. diff --git a/SmartDeviceLink/SDLAudioPassThruCapabilities.h b/SmartDeviceLink/SDLAudioPassThruCapabilities.h index 96772b62b..f4f14b598 100644 --- a/SmartDeviceLink/SDLAudioPassThruCapabilities.h +++ b/SmartDeviceLink/SDLAudioPassThruCapabilities.h @@ -3,9 +3,9 @@ #import "SDLRPCMessage.h" -@class SDLAudioType; -@class SDLBitsPerSample; -@class SDLSamplingRate; +#import "SDLAudioType.h" +#import "SDLBitsPerSample.h" +#import "SDLSamplingRate.h" /** @@ -20,21 +20,21 @@ * * * samplingRate - * SDLSamplingRate * + * SDLSamplingRate * Describes the sampling rate for AudioPassThru * * SmartDeviceLink 2.0 * * * bitsPerSample - * SDLBitsPerSample * + * SDLBitsPerSample * Describes the sample depth in bit for AudioPassThru * * SmartDeviceLink 2.0 * * * audioType - * SDLAudioType * + * SDLAudioType * Describes the audiotype for AudioPassThru * * SmartDeviceLink 2.0 @@ -42,33 +42,27 @@ * * Since SmartDeviceLink 2.0 */ -@interface SDLAudioPassThruCapabilities : SDLRPCStruct { -} -/** - * Constructs a newly allocated SDLAudioPassThruCapabilities object - */ -- (instancetype)init; -/** - * Constructs a newly allocated SDLAudioPassThruCapabilities object indicated by the Hashtable parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLAudioPassThruCapabilities : SDLRPCStruct /** * @abstract The sampling rate for AudioPassThru
* */ -@property (strong) SDLSamplingRate *samplingRate; +@property (strong, nonatomic) SDLSamplingRate samplingRate; /** * @abstract The sample depth in bit for AudioPassThru
* */ -@property (strong) SDLBitsPerSample *bitsPerSample; +@property (strong, nonatomic) SDLBitsPerSample bitsPerSample; /** * @abstract The audiotype for AudioPassThru
* */ -@property (strong) SDLAudioType *audioType; +@property (strong, nonatomic) SDLAudioType audioType; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAudioPassThruCapabilities.m b/SmartDeviceLink/SDLAudioPassThruCapabilities.m index fbb02be84..268170757 100644 --- a/SmartDeviceLink/SDLAudioPassThruCapabilities.m +++ b/SmartDeviceLink/SDLAudioPassThruCapabilities.m @@ -4,75 +4,37 @@ #import "SDLAudioPassThruCapabilities.h" -#import "SDLAudioType.h" -#import "SDLBitsPerSample.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -#import "SDLSamplingRate.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLAudioPassThruCapabilities -- (instancetype)init { - if (self = [super init]) { - } - return self; +- (void)setSamplingRate:(SDLSamplingRate)samplingRate { + [store sdl_setObject:samplingRate forName:SDLNameSamplingRate]; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (SDLSamplingRate)samplingRate { + return [store sdl_objectForName:SDLNameSamplingRate]; } -- (void)setSamplingRate:(SDLSamplingRate *)samplingRate { - if (samplingRate != nil) { - [store setObject:samplingRate forKey:NAMES_samplingRate]; - } else { - [store removeObjectForKey:NAMES_samplingRate]; - } +- (void)setBitsPerSample:(SDLBitsPerSample)bitsPerSample { + [store sdl_setObject:bitsPerSample forName:SDLNameBitsPerSample]; } -- (SDLSamplingRate *)samplingRate { - NSObject *obj = [store objectForKey:NAMES_samplingRate]; - if (obj == nil || [obj isKindOfClass:SDLSamplingRate.class]) { - return (SDLSamplingRate *)obj; - } else { - return [SDLSamplingRate valueOf:(NSString *)obj]; - } +- (SDLBitsPerSample)bitsPerSample { + return [store sdl_objectForName:SDLNameBitsPerSample]; } -- (void)setBitsPerSample:(SDLBitsPerSample *)bitsPerSample { - if (bitsPerSample != nil) { - [store setObject:bitsPerSample forKey:NAMES_bitsPerSample]; - } else { - [store removeObjectForKey:NAMES_bitsPerSample]; - } +- (void)setAudioType:(SDLAudioType)audioType { + [store sdl_setObject:audioType forName:SDLNameAudioType]; } -- (SDLBitsPerSample *)bitsPerSample { - NSObject *obj = [store objectForKey:NAMES_bitsPerSample]; - if (obj == nil || [obj isKindOfClass:SDLBitsPerSample.class]) { - return (SDLBitsPerSample *)obj; - } else { - return [SDLBitsPerSample valueOf:(NSString *)obj]; - } -} - -- (void)setAudioType:(SDLAudioType *)audioType { - if (audioType != nil) { - [store setObject:audioType forKey:NAMES_audioType]; - } else { - [store removeObjectForKey:NAMES_audioType]; - } -} - -- (SDLAudioType *)audioType { - NSObject *obj = [store objectForKey:NAMES_audioType]; - if (obj == nil || [obj isKindOfClass:SDLAudioType.class]) { - return (SDLAudioType *)obj; - } else { - return [SDLAudioType valueOf:(NSString *)obj]; - } +- (SDLAudioType)audioType { + return [store sdl_objectForName:SDLNameAudioType]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAudioStreamingState.h b/SmartDeviceLink/SDLAudioStreamingState.h index 3f364495e..b786fffc8 100644 --- a/SmartDeviceLink/SDLAudioStreamingState.h +++ b/SmartDeviceLink/SDLAudioStreamingState.h @@ -9,44 +9,21 @@ * * @since SDL 1.0 */ -@interface SDLAudioStreamingState : SDLEnum { -} +typedef SDLEnum SDLAudioStreamingState SDL_SWIFT_ENUM; -/** - * @abstract Convert String to SDLAudioStreamingState - * - * @param value The value of the string to get an object for - * - * @return SDLAudioStreamingState - */ -+ (SDLAudioStreamingState *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLAudioStreamingState - * - * @return an array that store all possible SDLAudioStreamingState - */ -+ (NSArray *)values; /** * @abstract Currently streaming audio, if any, is audible to user. - * - * @return SDLAudioStreamingState with value of *AUDIBLE* */ -+ (SDLAudioStreamingState *)AUDIBLE; +extern SDLAudioStreamingState const SDLAudioStreamingStateAudible; /** * @abstract Some kind of audio mixing is taking place. Currently streaming audio, if any, is audible to the user at a lowered volume. * - * @return SDLAudioStreamingState with value of *ATTENUATED* - * * @since SDL 2.0 */ -+ (SDLAudioStreamingState *)ATTENUATED; +extern SDLAudioStreamingState const SDLAudioStreamingStateAttenuated; /** * @abstract Currently streaming audio, if any, is not audible to user. made via VR session. - * - * @return SDLAudioStreamingState with value of *NOT_AUDIBLE* */ -+ (SDLAudioStreamingState *)NOT_AUDIBLE; -@end +extern SDLAudioStreamingState const SDLAudioStreamingStateNotAudible; diff --git a/SmartDeviceLink/SDLAudioStreamingState.m b/SmartDeviceLink/SDLAudioStreamingState.m index 38b8676c3..043c2fc58 100644 --- a/SmartDeviceLink/SDLAudioStreamingState.m +++ b/SmartDeviceLink/SDLAudioStreamingState.m @@ -4,53 +4,6 @@ #import "SDLAudioStreamingState.h" -SDLAudioStreamingState *SDLAudioStreamingState_AUDIBLE = nil; -SDLAudioStreamingState *SDLAudioStreamingState_ATTENUATED = nil; -SDLAudioStreamingState *SDLAudioStreamingState_NOT_AUDIBLE = nil; - -NSArray *SDLAudioStreamingState_values = nil; - -@implementation SDLAudioStreamingState - -+ (SDLAudioStreamingState *)valueOf:(NSString *)value { - for (SDLAudioStreamingState *item in SDLAudioStreamingState.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLAudioStreamingState_values == nil) { - SDLAudioStreamingState_values = @[ - SDLAudioStreamingState.AUDIBLE, - SDLAudioStreamingState.ATTENUATED, - SDLAudioStreamingState.NOT_AUDIBLE, - ]; - } - return SDLAudioStreamingState_values; -} - -+ (SDLAudioStreamingState *)AUDIBLE { - if (SDLAudioStreamingState_AUDIBLE == nil) { - SDLAudioStreamingState_AUDIBLE = [[SDLAudioStreamingState alloc] initWithValue:@"AUDIBLE"]; - } - return SDLAudioStreamingState_AUDIBLE; -} - -+ (SDLAudioStreamingState *)ATTENUATED { - if (SDLAudioStreamingState_ATTENUATED == nil) { - SDLAudioStreamingState_ATTENUATED = [[SDLAudioStreamingState alloc] initWithValue:@"ATTENUATED"]; - } - return SDLAudioStreamingState_ATTENUATED; -} - -+ (SDLAudioStreamingState *)NOT_AUDIBLE { - if (SDLAudioStreamingState_NOT_AUDIBLE == nil) { - SDLAudioStreamingState_NOT_AUDIBLE = [[SDLAudioStreamingState alloc] initWithValue:@"NOT_AUDIBLE"]; - } - return SDLAudioStreamingState_NOT_AUDIBLE; -} - -@end +SDLAudioStreamingState const SDLAudioStreamingStateAudible = @"AUDIBLE"; +SDLAudioStreamingState const SDLAudioStreamingStateAttenuated = @"ATTENUATED"; +SDLAudioStreamingState const SDLAudioStreamingStateNotAudible = @"NOT_AUDIBLE"; diff --git a/SmartDeviceLink/SDLAudioType.h b/SmartDeviceLink/SDLAudioType.h index 2f1879eea..e040ffd6a 100644 --- a/SmartDeviceLink/SDLAudioType.h +++ b/SmartDeviceLink/SDLAudioType.h @@ -7,32 +7,12 @@ /** Describes different audio type options for PerformAudioPassThru */ -@interface SDLAudioType : SDLEnum { -} - -/** - * @abstract Convert String to SDLAudioType - * - * @param value The value of the string to get an object for - * - * @return SDLAudioType - */ -+ (SDLAudioType *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLAudioType - * - * @return an array that store all possible SDLAudioType - */ -+ (NSArray *)values; +typedef SDLEnum SDLAudioType SDL_SWIFT_ENUM; /** * @abstract PCM raw audio * - * @return SDLAudioType with value of *PCM* - * * @since SDL 2.0 */ -+ (SDLAudioType *)PCM; +extern SDLAudioType const SDLAudioTypePCM; -@end \ No newline at end of file diff --git a/SmartDeviceLink/SDLAudioType.m b/SmartDeviceLink/SDLAudioType.m index 5e99123c7..495090e99 100644 --- a/SmartDeviceLink/SDLAudioType.m +++ b/SmartDeviceLink/SDLAudioType.m @@ -3,35 +3,4 @@ #import "SDLAudioType.h" -SDLAudioType *SDLAudioType_PCM = nil; - -NSArray *SDLAudioType_values = nil; - -@implementation SDLAudioType - -+ (SDLAudioType *)valueOf:(NSString *)value { - for (SDLAudioType *item in SDLAudioType.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLAudioType_values == nil) { - SDLAudioType_values = @[ - SDLAudioType.PCM, - ]; - } - return SDLAudioType_values; -} - -+ (SDLAudioType *)PCM { - if (SDLAudioType_PCM == nil) { - SDLAudioType_PCM = [[SDLAudioType alloc] initWithValue:@"PCM"]; - } - return SDLAudioType_PCM; -} - -@end +SDLAudioType const SDLAudioTypePCM = @"PCM"; diff --git a/SmartDeviceLink/SDLBeltStatus.h b/SmartDeviceLink/SDLBeltStatus.h index d12e42eb7..9b60b9dc7 100644 --- a/SmartDeviceLink/SDLBeltStatus.h +++ b/SmartDeviceLink/SDLBeltStatus.h @@ -3,29 +3,28 @@ #import "SDLRPCMessage.h" -@class SDLVehicleDataEventStatus; +#import "SDLVehicleDataEventStatus.h" +NS_ASSUME_NONNULL_BEGIN -@interface SDLBeltStatus : SDLRPCStruct { -} +@interface SDLBeltStatus : SDLRPCStruct -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -@property (strong) SDLVehicleDataEventStatus *driverBeltDeployed; -@property (strong) SDLVehicleDataEventStatus *passengerBeltDeployed; -@property (strong) SDLVehicleDataEventStatus *passengerBuckleBelted; -@property (strong) SDLVehicleDataEventStatus *driverBuckleBelted; -@property (strong) SDLVehicleDataEventStatus *leftRow2BuckleBelted; -@property (strong) SDLVehicleDataEventStatus *passengerChildDetected; -@property (strong) SDLVehicleDataEventStatus *rightRow2BuckleBelted; -@property (strong) SDLVehicleDataEventStatus *middleRow2BuckleBelted; -@property (strong) SDLVehicleDataEventStatus *middleRow3BuckleBelted; -@property (strong) SDLVehicleDataEventStatus *leftRow3BuckleBelted; -@property (strong) SDLVehicleDataEventStatus *rightRow3BuckleBelted; -@property (strong) SDLVehicleDataEventStatus *leftRearInflatableBelted; -@property (strong) SDLVehicleDataEventStatus *rightRearInflatableBelted; -@property (strong) SDLVehicleDataEventStatus *middleRow1BeltDeployed; -@property (strong) SDLVehicleDataEventStatus *middleRow1BuckleBelted; +@property (strong, nonatomic) SDLVehicleDataEventStatus driverBeltDeployed; +@property (strong, nonatomic) SDLVehicleDataEventStatus passengerBeltDeployed; +@property (strong, nonatomic) SDLVehicleDataEventStatus passengerBuckleBelted; +@property (strong, nonatomic) SDLVehicleDataEventStatus driverBuckleBelted; +@property (strong, nonatomic) SDLVehicleDataEventStatus leftRow2BuckleBelted; +@property (strong, nonatomic) SDLVehicleDataEventStatus passengerChildDetected; +@property (strong, nonatomic) SDLVehicleDataEventStatus rightRow2BuckleBelted; +@property (strong, nonatomic) SDLVehicleDataEventStatus middleRow2BuckleBelted; +@property (strong, nonatomic) SDLVehicleDataEventStatus middleRow3BuckleBelted; +@property (strong, nonatomic) SDLVehicleDataEventStatus leftRow3BuckleBelted; +@property (strong, nonatomic) SDLVehicleDataEventStatus rightRow3BuckleBelted; +@property (strong, nonatomic) SDLVehicleDataEventStatus leftRearInflatableBelted; +@property (strong, nonatomic) SDLVehicleDataEventStatus rightRearInflatableBelted; +@property (strong, nonatomic) SDLVehicleDataEventStatus middleRow1BeltDeployed; +@property (strong, nonatomic) SDLVehicleDataEventStatus middleRow1BuckleBelted; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLBeltStatus.m b/SmartDeviceLink/SDLBeltStatus.m index 70b54d2bd..d65a1fd74 100644 --- a/SmartDeviceLink/SDLBeltStatus.m +++ b/SmartDeviceLink/SDLBeltStatus.m @@ -3,277 +3,134 @@ #import "SDLBeltStatus.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" #import "SDLVehicleDataEventStatus.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLBeltStatus -- (instancetype)init { - if (self = [super init]) { - } - return self; +- (void)setDriverBeltDeployed:(SDLVehicleDataEventStatus)driverBeltDeployed { + [store sdl_setObject:driverBeltDeployed forName:SDLNameDriverBeltDeployed]; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (SDLVehicleDataEventStatus)driverBeltDeployed { + return [store sdl_objectForName:SDLNameDriverBeltDeployed]; } -- (void)setDriverBeltDeployed:(SDLVehicleDataEventStatus *)driverBeltDeployed { - if (driverBeltDeployed != nil) { - [store setObject:driverBeltDeployed forKey:NAMES_driverBeltDeployed]; - } else { - [store removeObjectForKey:NAMES_driverBeltDeployed]; - } +- (void)setPassengerBeltDeployed:(SDLVehicleDataEventStatus)passengerBeltDeployed { + [store sdl_setObject:passengerBeltDeployed forName:SDLNamePassengerBeltDeployed]; } -- (SDLVehicleDataEventStatus *)driverBeltDeployed { - NSObject *obj = [store objectForKey:NAMES_driverBeltDeployed]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataEventStatus)passengerBeltDeployed { + return [store sdl_objectForName:SDLNamePassengerBeltDeployed]; } -- (void)setPassengerBeltDeployed:(SDLVehicleDataEventStatus *)passengerBeltDeployed { - if (passengerBeltDeployed != nil) { - [store setObject:passengerBeltDeployed forKey:NAMES_passengerBeltDeployed]; - } else { - [store removeObjectForKey:NAMES_passengerBeltDeployed]; - } +- (void)setPassengerBuckleBelted:(SDLVehicleDataEventStatus)passengerBuckleBelted { + [store sdl_setObject:passengerBuckleBelted forName:SDLNamePassengerBuckleBelted]; } -- (SDLVehicleDataEventStatus *)passengerBeltDeployed { - NSObject *obj = [store objectForKey:NAMES_passengerBeltDeployed]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataEventStatus)passengerBuckleBelted { + return [store sdl_objectForName:SDLNamePassengerBuckleBelted]; } -- (void)setPassengerBuckleBelted:(SDLVehicleDataEventStatus *)passengerBuckleBelted { - if (passengerBuckleBelted != nil) { - [store setObject:passengerBuckleBelted forKey:NAMES_passengerBuckleBelted]; - } else { - [store removeObjectForKey:NAMES_passengerBuckleBelted]; - } +- (void)setDriverBuckleBelted:(SDLVehicleDataEventStatus)driverBuckleBelted { + [store sdl_setObject:driverBuckleBelted forName:SDLNameDriverBuckleBelted]; } -- (SDLVehicleDataEventStatus *)passengerBuckleBelted { - NSObject *obj = [store objectForKey:NAMES_passengerBuckleBelted]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataEventStatus)driverBuckleBelted { + return [store sdl_objectForName:SDLNameDriverBuckleBelted]; } -- (void)setDriverBuckleBelted:(SDLVehicleDataEventStatus *)driverBuckleBelted { - if (driverBuckleBelted != nil) { - [store setObject:driverBuckleBelted forKey:NAMES_driverBuckleBelted]; - } else { - [store removeObjectForKey:NAMES_driverBuckleBelted]; - } +- (void)setLeftRow2BuckleBelted:(SDLVehicleDataEventStatus)leftRow2BuckleBelted { + [store sdl_setObject:leftRow2BuckleBelted forName:SDLNameLeftRow2BuckleBelted]; } -- (SDLVehicleDataEventStatus *)driverBuckleBelted { - NSObject *obj = [store objectForKey:NAMES_driverBuckleBelted]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataEventStatus)leftRow2BuckleBelted { + return [store sdl_objectForName:SDLNameLeftRow2BuckleBelted]; } -- (void)setLeftRow2BuckleBelted:(SDLVehicleDataEventStatus *)leftRow2BuckleBelted { - if (leftRow2BuckleBelted != nil) { - [store setObject:leftRow2BuckleBelted forKey:NAMES_leftRow2BuckleBelted]; - } else { - [store removeObjectForKey:NAMES_leftRow2BuckleBelted]; - } +- (void)setPassengerChildDetected:(SDLVehicleDataEventStatus)passengerChildDetected { + [store sdl_setObject:passengerChildDetected forName:SDLNamePassengerChildDetected]; } -- (SDLVehicleDataEventStatus *)leftRow2BuckleBelted { - NSObject *obj = [store objectForKey:NAMES_leftRow2BuckleBelted]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataEventStatus)passengerChildDetected { + return [store sdl_objectForName:SDLNamePassengerChildDetected]; } -- (void)setPassengerChildDetected:(SDLVehicleDataEventStatus *)passengerChildDetected { - if (passengerChildDetected != nil) { - [store setObject:passengerChildDetected forKey:NAMES_passengerChildDetected]; - } else { - [store removeObjectForKey:NAMES_passengerChildDetected]; - } +- (void)setRightRow2BuckleBelted:(SDLVehicleDataEventStatus)rightRow2BuckleBelted { + [store sdl_setObject:rightRow2BuckleBelted forName:SDLNameRightRow2BuckleBelted]; } -- (SDLVehicleDataEventStatus *)passengerChildDetected { - NSObject *obj = [store objectForKey:NAMES_passengerChildDetected]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataEventStatus)rightRow2BuckleBelted { + return [store sdl_objectForName:SDLNameRightRow2BuckleBelted]; } -- (void)setRightRow2BuckleBelted:(SDLVehicleDataEventStatus *)rightRow2BuckleBelted { - if (rightRow2BuckleBelted != nil) { - [store setObject:rightRow2BuckleBelted forKey:NAMES_rightRow2BuckleBelted]; - } else { - [store removeObjectForKey:NAMES_rightRow2BuckleBelted]; - } +- (void)setMiddleRow2BuckleBelted:(SDLVehicleDataEventStatus)middleRow2BuckleBelted { + [store sdl_setObject:middleRow2BuckleBelted forName:SDLNameMiddleRow2BuckleBelted]; } -- (SDLVehicleDataEventStatus *)rightRow2BuckleBelted { - NSObject *obj = [store objectForKey:NAMES_rightRow2BuckleBelted]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataEventStatus)middleRow2BuckleBelted { + return [store sdl_objectForName:SDLNameMiddleRow2BuckleBelted]; } -- (void)setMiddleRow2BuckleBelted:(SDLVehicleDataEventStatus *)middleRow2BuckleBelted { - if (middleRow2BuckleBelted != nil) { - [store setObject:middleRow2BuckleBelted forKey:NAMES_middleRow2BuckleBelted]; - } else { - [store removeObjectForKey:NAMES_middleRow2BuckleBelted]; - } +- (void)setMiddleRow3BuckleBelted:(SDLVehicleDataEventStatus)middleRow3BuckleBelted { + [store sdl_setObject:middleRow3BuckleBelted forName:SDLNameMiddleRow3BuckleBelted]; } -- (SDLVehicleDataEventStatus *)middleRow2BuckleBelted { - NSObject *obj = [store objectForKey:NAMES_middleRow2BuckleBelted]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataEventStatus)middleRow3BuckleBelted { + return [store sdl_objectForName:SDLNameMiddleRow3BuckleBelted]; } -- (void)setMiddleRow3BuckleBelted:(SDLVehicleDataEventStatus *)middleRow3BuckleBelted { - if (middleRow3BuckleBelted != nil) { - [store setObject:middleRow3BuckleBelted forKey:NAMES_middleRow3BuckleBelted]; - } else { - [store removeObjectForKey:NAMES_middleRow3BuckleBelted]; - } +- (void)setLeftRow3BuckleBelted:(SDLVehicleDataEventStatus)leftRow3BuckleBelted { + [store sdl_setObject:leftRow3BuckleBelted forName:SDLNameLeftRow3BuckleBelted]; } -- (SDLVehicleDataEventStatus *)middleRow3BuckleBelted { - NSObject *obj = [store objectForKey:NAMES_middleRow3BuckleBelted]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataEventStatus)leftRow3BuckleBelted { + return [store sdl_objectForName:SDLNameLeftRow3BuckleBelted]; } -- (void)setLeftRow3BuckleBelted:(SDLVehicleDataEventStatus *)leftRow3BuckleBelted { - if (leftRow3BuckleBelted != nil) { - [store setObject:leftRow3BuckleBelted forKey:NAMES_leftRow3BuckleBelted]; - } else { - [store removeObjectForKey:NAMES_leftRow3BuckleBelted]; - } +- (void)setRightRow3BuckleBelted:(SDLVehicleDataEventStatus)rightRow3BuckleBelted { + [store sdl_setObject:rightRow3BuckleBelted forName:SDLNameRightRow3BuckleBelted]; } -- (SDLVehicleDataEventStatus *)leftRow3BuckleBelted { - NSObject *obj = [store objectForKey:NAMES_leftRow3BuckleBelted]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataEventStatus)rightRow3BuckleBelted { + return [store sdl_objectForName:SDLNameRightRow3BuckleBelted]; } -- (void)setRightRow3BuckleBelted:(SDLVehicleDataEventStatus *)rightRow3BuckleBelted { - if (rightRow3BuckleBelted != nil) { - [store setObject:rightRow3BuckleBelted forKey:NAMES_rightRow3BuckleBelted]; - } else { - [store removeObjectForKey:NAMES_rightRow3BuckleBelted]; - } +- (void)setLeftRearInflatableBelted:(SDLVehicleDataEventStatus)leftRearInflatableBelted { + [store sdl_setObject:leftRearInflatableBelted forName:SDLNameLeftRearInflatableBelted]; } -- (SDLVehicleDataEventStatus *)rightRow3BuckleBelted { - NSObject *obj = [store objectForKey:NAMES_rightRow3BuckleBelted]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataEventStatus)leftRearInflatableBelted { + return [store sdl_objectForName:SDLNameLeftRearInflatableBelted]; } -- (void)setLeftRearInflatableBelted:(SDLVehicleDataEventStatus *)leftRearInflatableBelted { - if (leftRearInflatableBelted != nil) { - [store setObject:leftRearInflatableBelted forKey:NAMES_leftRearInflatableBelted]; - } else { - [store removeObjectForKey:NAMES_leftRearInflatableBelted]; - } +- (void)setRightRearInflatableBelted:(SDLVehicleDataEventStatus)rightRearInflatableBelted { + [store sdl_setObject:rightRearInflatableBelted forName:SDLNameRightRearInflatableBelted]; } -- (SDLVehicleDataEventStatus *)leftRearInflatableBelted { - NSObject *obj = [store objectForKey:NAMES_leftRearInflatableBelted]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataEventStatus)rightRearInflatableBelted { + return [store sdl_objectForName:SDLNameRightRearInflatableBelted]; } -- (void)setRightRearInflatableBelted:(SDLVehicleDataEventStatus *)rightRearInflatableBelted { - if (rightRearInflatableBelted != nil) { - [store setObject:rightRearInflatableBelted forKey:NAMES_rightRearInflatableBelted]; - } else { - [store removeObjectForKey:NAMES_rightRearInflatableBelted]; - } +- (void)setMiddleRow1BeltDeployed:(SDLVehicleDataEventStatus)middleRow1BeltDeployed { + [store sdl_setObject:middleRow1BeltDeployed forName:SDLNameMiddleRow1BeltDeployed]; } -- (SDLVehicleDataEventStatus *)rightRearInflatableBelted { - NSObject *obj = [store objectForKey:NAMES_rightRearInflatableBelted]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataEventStatus)middleRow1BeltDeployed { + return [store sdl_objectForName:SDLNameMiddleRow1BeltDeployed]; } -- (void)setMiddleRow1BeltDeployed:(SDLVehicleDataEventStatus *)middleRow1BeltDeployed { - if (middleRow1BeltDeployed != nil) { - [store setObject:middleRow1BeltDeployed forKey:NAMES_middleRow1BeltDeployed]; - } else { - [store removeObjectForKey:NAMES_middleRow1BeltDeployed]; - } +- (void)setMiddleRow1BuckleBelted:(SDLVehicleDataEventStatus)middleRow1BuckleBelted { + [store sdl_setObject:middleRow1BuckleBelted forName:SDLNameMiddleRow1BuckleBelted]; } -- (SDLVehicleDataEventStatus *)middleRow1BeltDeployed { - NSObject *obj = [store objectForKey:NAMES_middleRow1BeltDeployed]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } -} - -- (void)setMiddleRow1BuckleBelted:(SDLVehicleDataEventStatus *)middleRow1BuckleBelted { - if (middleRow1BuckleBelted != nil) { - [store setObject:middleRow1BuckleBelted forKey:NAMES_middleRow1BuckleBelted]; - } else { - [store removeObjectForKey:NAMES_middleRow1BuckleBelted]; - } -} - -- (SDLVehicleDataEventStatus *)middleRow1BuckleBelted { - NSObject *obj = [store objectForKey:NAMES_middleRow1BuckleBelted]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataEventStatus)middleRow1BuckleBelted { + return [store sdl_objectForName:SDLNameMiddleRow1BuckleBelted]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLBitsPerSample.h b/SmartDeviceLink/SDLBitsPerSample.h index 9067ce17a..55c99b242 100644 --- a/SmartDeviceLink/SDLBitsPerSample.h +++ b/SmartDeviceLink/SDLBitsPerSample.h @@ -9,37 +9,14 @@ * * @since SDL 2.0 */ -@interface SDLBitsPerSample : SDLEnum { -} - -/** - * @abstract Convert String to SDLBitsPerSample - * - * @param value The value of the string to get an object for - * - * @return SDLBitsPerSample - */ -+ (SDLBitsPerSample *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLBitsPerSample - * - * @return an array that store all possible SDLBitsPerSample - */ -+ (NSArray *)values; +typedef SDLEnum SDLBitsPerSample SDL_SWIFT_ENUM; /** * @abstract 8 bits per sample - * - * @return a SDLBitsPerSample with value of *8_BIT* */ -+ (SDLBitsPerSample *)_8_BIT; +extern SDLBitsPerSample const SDLBitsPerSample8Bit; /** * @abstract 16 bits per sample - * - * @return a SDLBitsPerSample with value of *16_BIT* */ -+ (SDLBitsPerSample *)_16_BIT; - -@end +extern SDLBitsPerSample const SDLBitsPerSample16Bit; diff --git a/SmartDeviceLink/SDLBitsPerSample.m b/SmartDeviceLink/SDLBitsPerSample.m index e082aff59..25321788a 100644 --- a/SmartDeviceLink/SDLBitsPerSample.m +++ b/SmartDeviceLink/SDLBitsPerSample.m @@ -4,44 +4,5 @@ #import "SDLBitsPerSample.h" -SDLBitsPerSample *SDLBitsPerSample_8_BIT = nil; -SDLBitsPerSample *SDLBitsPerSample_16_BIT = nil; - -NSArray *SDLBitsPerSample_values = nil; - -@implementation SDLBitsPerSample - -+ (SDLBitsPerSample *)valueOf:(NSString *)value { - for (SDLBitsPerSample *item in SDLBitsPerSample.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLBitsPerSample_values == nil) { - SDLBitsPerSample_values = @[ - SDLBitsPerSample._8_BIT, - SDLBitsPerSample._16_BIT, - ]; - } - return SDLBitsPerSample_values; -} - -+ (SDLBitsPerSample *)_8_BIT { - if (SDLBitsPerSample_8_BIT == nil) { - SDLBitsPerSample_8_BIT = [[SDLBitsPerSample alloc] initWithValue:@"8_BIT"]; - } - return SDLBitsPerSample_8_BIT; -} - -+ (SDLBitsPerSample *)_16_BIT { - if (SDLBitsPerSample_16_BIT == nil) { - SDLBitsPerSample_16_BIT = [[SDLBitsPerSample alloc] initWithValue:@"16_BIT"]; - } - return SDLBitsPerSample_16_BIT; -} - -@end +SDLBitsPerSample const SDLBitsPerSample8Bit = @"8_BIT"; +SDLBitsPerSample const SDLBitsPerSample16Bit = @"16_BIT"; diff --git a/SmartDeviceLink/SDLBodyInformation.h b/SmartDeviceLink/SDLBodyInformation.h index 1c92243cd..a0d626b57 100644 --- a/SmartDeviceLink/SDLBodyInformation.h +++ b/SmartDeviceLink/SDLBodyInformation.h @@ -3,61 +3,53 @@ #import "SDLRPCMessage.h" -@class SDLIgnitionStableStatus; -@class SDLIgnitionStatus; +#import "SDLIgnitionStableStatus.h" +#import "SDLIgnitionStatus.h" /** * The body information including power modes. */ -@interface SDLBodyInformation : SDLRPCStruct { -} -/** - * @abstract Constructs a new SDLBodyInformation object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a new SDLBodyInformation object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLBodyInformation : SDLRPCStruct /** * @abstract References signal "PrkBrkActv_B_Actl". */ -@property (strong) NSNumber *parkBrakeActive; +@property (strong, nonatomic) NSNumber *parkBrakeActive; /** * @abstract References signal "Ignition_Switch_Stable". See IgnitionStableStatus. */ -@property (strong) SDLIgnitionStableStatus *ignitionStableStatus; +@property (strong, nonatomic) SDLIgnitionStableStatus ignitionStableStatus; /** * @abstract References signal "Ignition_status". See IgnitionStatus. */ -@property (strong) SDLIgnitionStatus *ignitionStatus; +@property (strong, nonatomic) SDLIgnitionStatus ignitionStatus; /** * @abstract References signal "DrStatDrv_B_Actl". */ -@property (strong) NSNumber *driverDoorAjar; +@property (nullable, strong, nonatomic) NSNumber *driverDoorAjar; /** * @abstract References signal "DrStatPsngr_B_Actl". */ -@property (strong) NSNumber *passengerDoorAjar; +@property (nullable, strong, nonatomic) NSNumber *passengerDoorAjar; /** * @abstract References signal "DrStatRl_B_Actl". */ -@property (strong) NSNumber *rearLeftDoorAjar; +@property (nullable, strong, nonatomic) NSNumber *rearLeftDoorAjar; /** * @abstract References signal "DrStatRr_B_Actl". */ -@property (strong) NSNumber *rearRightDoorAjar; +@property (nullable, strong, nonatomic) NSNumber *rearRightDoorAjar; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLBodyInformation.m b/SmartDeviceLink/SDLBodyInformation.m index 9be7a88d6..3ffbe97c0 100644 --- a/SmartDeviceLink/SDLBodyInformation.m +++ b/SmartDeviceLink/SDLBodyInformation.m @@ -4,117 +4,71 @@ #import "SDLBodyInformation.h" +#import "NSMutableDictionary+Store.h" #import "SDLIgnitionStableStatus.h" #import "SDLIgnitionStatus.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLBodyInformation -- (instancetype)init { - if (self = [super init]) { - } - return self; +- (void)setParkBrakeActive:(NSNumber *)parkBrakeActive { + [store sdl_setObject:parkBrakeActive forName:SDLNameParkBrakeActive]; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (NSNumber *)parkBrakeActive { + return [store sdl_objectForName:SDLNameParkBrakeActive]; } -- (void)setParkBrakeActive:(NSNumber *)parkBrakeActive { - if (parkBrakeActive != nil) { - [store setObject:parkBrakeActive forKey:NAMES_parkBrakeActive]; - } else { - [store removeObjectForKey:NAMES_parkBrakeActive]; - } +- (void)setIgnitionStableStatus:(SDLIgnitionStableStatus)ignitionStableStatus { + [store sdl_setObject:ignitionStableStatus forName:SDLNameIgnitionStableStatus]; } -- (NSNumber *)parkBrakeActive { - return [store objectForKey:NAMES_parkBrakeActive]; +- (SDLIgnitionStableStatus)ignitionStableStatus { + return [store sdl_objectForName:SDLNameIgnitionStableStatus]; } -- (void)setIgnitionStableStatus:(SDLIgnitionStableStatus *)ignitionStableStatus { - if (ignitionStableStatus != nil) { - [store setObject:ignitionStableStatus forKey:NAMES_ignitionStableStatus]; - } else { - [store removeObjectForKey:NAMES_ignitionStableStatus]; - } +- (void)setIgnitionStatus:(SDLIgnitionStatus)ignitionStatus { + [store sdl_setObject:ignitionStatus forName:SDLNameIgnitionStatus]; } -- (SDLIgnitionStableStatus *)ignitionStableStatus { - NSObject *obj = [store objectForKey:NAMES_ignitionStableStatus]; - if (obj == nil || [obj isKindOfClass:SDLIgnitionStableStatus.class]) { - return (SDLIgnitionStableStatus *)obj; - } else { - return [SDLIgnitionStableStatus valueOf:(NSString *)obj]; - } +- (SDLIgnitionStatus)ignitionStatus { + return [store sdl_objectForName:SDLNameIgnitionStatus]; } -- (void)setIgnitionStatus:(SDLIgnitionStatus *)ignitionStatus { - if (ignitionStatus != nil) { - [store setObject:ignitionStatus forKey:NAMES_ignitionStatus]; - } else { - [store removeObjectForKey:NAMES_ignitionStatus]; - } +- (void)setDriverDoorAjar:(nullable NSNumber *)driverDoorAjar { + [store sdl_setObject:driverDoorAjar forName:SDLNameDriverDoorAjar]; } -- (SDLIgnitionStatus *)ignitionStatus { - NSObject *obj = [store objectForKey:NAMES_ignitionStatus]; - if (obj == nil || [obj isKindOfClass:SDLIgnitionStatus.class]) { - return (SDLIgnitionStatus *)obj; - } else { - return [SDLIgnitionStatus valueOf:(NSString *)obj]; - } +- (nullable NSNumber *)driverDoorAjar { + return [store sdl_objectForName:SDLNameDriverDoorAjar]; } -- (void)setDriverDoorAjar:(NSNumber *)driverDoorAjar { - if (driverDoorAjar != nil) { - [store setObject:driverDoorAjar forKey:NAMES_driverDoorAjar]; - } else { - [store removeObjectForKey:NAMES_driverDoorAjar]; - } +- (void)setPassengerDoorAjar:(nullable NSNumber *)passengerDoorAjar { + [store sdl_setObject:passengerDoorAjar forName:SDLNamePassengerDoorAjar]; } -- (NSNumber *)driverDoorAjar { - return [store objectForKey:NAMES_driverDoorAjar]; +- (nullable NSNumber *)passengerDoorAjar { + return [store sdl_objectForName:SDLNamePassengerDoorAjar]; } -- (void)setPassengerDoorAjar:(NSNumber *)passengerDoorAjar { - if (passengerDoorAjar != nil) { - [store setObject:passengerDoorAjar forKey:NAMES_passengerDoorAjar]; - } else { - [store removeObjectForKey:NAMES_passengerDoorAjar]; - } +- (void)setRearLeftDoorAjar:(nullable NSNumber *)rearLeftDoorAjar { + [store sdl_setObject:rearLeftDoorAjar forName:SDLNameRearLeftDoorAjar]; } -- (NSNumber *)passengerDoorAjar { - return [store objectForKey:NAMES_passengerDoorAjar]; +- (nullable NSNumber *)rearLeftDoorAjar { + return [store sdl_objectForName:SDLNameRearLeftDoorAjar]; } -- (void)setRearLeftDoorAjar:(NSNumber *)rearLeftDoorAjar { - if (rearLeftDoorAjar != nil) { - [store setObject:rearLeftDoorAjar forKey:NAMES_rearLeftDoorAjar]; - } else { - [store removeObjectForKey:NAMES_rearLeftDoorAjar]; - } +- (void)setRearRightDoorAjar:(nullable NSNumber *)rearRightDoorAjar { + [store sdl_setObject:rearRightDoorAjar forName:SDLNameRearRightDoorAjar]; } -- (NSNumber *)rearLeftDoorAjar { - return [store objectForKey:NAMES_rearLeftDoorAjar]; -} - -- (void)setRearRightDoorAjar:(NSNumber *)rearRightDoorAjar { - if (rearRightDoorAjar != nil) { - [store setObject:rearRightDoorAjar forKey:NAMES_rearRightDoorAjar]; - } else { - [store removeObjectForKey:NAMES_rearRightDoorAjar]; - } -} - -- (NSNumber *)rearRightDoorAjar { - return [store objectForKey:NAMES_rearRightDoorAjar]; +- (nullable NSNumber *)rearRightDoorAjar { + return [store sdl_objectForName:SDLNameRearRightDoorAjar]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLButtonCapabilities.h b/SmartDeviceLink/SDLButtonCapabilities.h index d84da609a..cc24f84fa 100644 --- a/SmartDeviceLink/SDLButtonCapabilities.h +++ b/SmartDeviceLink/SDLButtonCapabilities.h @@ -3,7 +3,7 @@ #import "SDLRPCMessage.h" -@class SDLButtonName; +#import "SDLButtonName.h" /** @@ -11,44 +11,37 @@ * * @since SDL 1.0 */ -@interface SDLButtonCapabilities : SDLRPCStruct { -} -/** - * Constructs a newly allocated SDLButtonCapabilities object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * Constructs a newly allocated SDLButtonCapabilities object indicated by the Hashtable parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLButtonCapabilities : SDLRPCStruct /** * @abstract The name of the SDL HMI button. */ -@property (strong) SDLButtonName *name; +@property (strong, nonatomic) SDLButtonName name; /** * @abstract A NSNumber value indicates whether the button supports a SHORT press * * Required, Boolean */ -@property (strong) NSNumber *shortPressAvailable; +@property (strong, nonatomic) NSNumber *shortPressAvailable; /** * @abstract A NSNumber value indicates whether the button supports a LONG press * * Required, Boolean */ -@property (strong) NSNumber *longPressAvailable; +@property (strong, nonatomic) NSNumber *longPressAvailable; /** * @abstract A NSNumber value indicates whether the button supports "button down" and "button up" * * Required, Boolean */ -@property (strong) NSNumber *upDownAvailable; +@property (strong, nonatomic) NSNumber *upDownAvailable; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLButtonCapabilities.m b/SmartDeviceLink/SDLButtonCapabilities.m index fbcab54c9..42aeb7ae5 100644 --- a/SmartDeviceLink/SDLButtonCapabilities.m +++ b/SmartDeviceLink/SDLButtonCapabilities.m @@ -3,75 +3,45 @@ #import "SDLButtonCapabilities.h" -#import "SDLButtonName.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLButtonCapabilities -- (instancetype)init { - if (self = [super init]) { - } - return self; +- (void)setName:(SDLButtonName)name { + [store sdl_setObject:name forName:SDLNameName]; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (SDLButtonName)name { + return [store sdl_objectForName:SDLNameName]; } -- (void)setName:(SDLButtonName *)name { - if (name != nil) { - [store setObject:name forKey:NAMES_name]; - } else { - [store removeObjectForKey:NAMES_name]; - } +- (void)setShortPressAvailable:(NSNumber *)shortPressAvailable { + [store sdl_setObject:shortPressAvailable forName:SDLNameShortPressAvailable]; } -- (SDLButtonName *)name { - NSObject *obj = [store objectForKey:NAMES_name]; - if (obj == nil || [obj isKindOfClass:SDLButtonName.class]) { - return (SDLButtonName *)obj; - } else { - return [SDLButtonName valueOf:(NSString *)obj]; - } +- (NSNumber *)shortPressAvailable { + return [store sdl_objectForName:SDLNameShortPressAvailable]; } -- (void)setShortPressAvailable:(NSNumber *)shortPressAvailable { - if (shortPressAvailable != nil) { - [store setObject:shortPressAvailable forKey:NAMES_shortPressAvailable]; - } else { - [store removeObjectForKey:NAMES_shortPressAvailable]; - } +- (void)setLongPressAvailable:(NSNumber *)longPressAvailable { + [store sdl_setObject:longPressAvailable forName:SDLNameLongPressAvailable]; } -- (NSNumber *)shortPressAvailable { - return [store objectForKey:NAMES_shortPressAvailable]; +- (NSNumber *)longPressAvailable { + return [store sdl_objectForName:SDLNameLongPressAvailable]; } -- (void)setLongPressAvailable:(NSNumber *)longPressAvailable { - if (longPressAvailable != nil) { - [store setObject:longPressAvailable forKey:NAMES_longPressAvailable]; - } else { - [store removeObjectForKey:NAMES_longPressAvailable]; - } +- (void)setUpDownAvailable:(NSNumber *)upDownAvailable { + [store sdl_setObject:upDownAvailable forName:SDLNameUpDownAvailable]; } -- (NSNumber *)longPressAvailable { - return [store objectForKey:NAMES_longPressAvailable]; -} - -- (void)setUpDownAvailable:(NSNumber *)upDownAvailable { - if (upDownAvailable != nil) { - [store setObject:upDownAvailable forKey:NAMES_upDownAvailable]; - } else { - [store removeObjectForKey:NAMES_upDownAvailable]; - } -} - -- (NSNumber *)upDownAvailable { - return [store objectForKey:NAMES_upDownAvailable]; +- (NSNumber *)upDownAvailable { + return [store sdl_objectForName:SDLNameUpDownAvailable]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLButtonEventMode.h b/SmartDeviceLink/SDLButtonEventMode.h index 56cd8683d..72cf5d3ec 100644 --- a/SmartDeviceLink/SDLButtonEventMode.h +++ b/SmartDeviceLink/SDLButtonEventMode.h @@ -9,32 +9,14 @@ * * @since SDL 1.0 */ -@interface SDLButtonEventMode : SDLEnum { -} - -/** - * @abstract Convert String to SDLButtonEventMode - * @param value The value of the string to get an object for - * @return SDLButtonEventMode (BUTTONUP / BUTTONDOWN) - */ -+ (SDLButtonEventMode *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLButtonEventMode - * @return an array that store all possible SDLButtonEventMode - */ -+ (NSArray *)values; +typedef SDLEnum SDLButtonEventMode SDL_SWIFT_ENUM; /** * @abstract The button was released - * @return a SDLButtonEventMode with value of *BUTTONUP* */ -+ (SDLButtonEventMode *)BUTTONUP; +extern SDLButtonEventMode const SDLButtonEventModeButtonUp; /** * @abstract The button was depressed - * @return a SDLButtonEventMode with value of *BUTTONDOWN* */ -+ (SDLButtonEventMode *)BUTTONDOWN; - -@end +extern SDLButtonEventMode const SDLButtonEventModeButtonDown; diff --git a/SmartDeviceLink/SDLButtonEventMode.m b/SmartDeviceLink/SDLButtonEventMode.m index 1dcc13635..71cb61cd9 100644 --- a/SmartDeviceLink/SDLButtonEventMode.m +++ b/SmartDeviceLink/SDLButtonEventMode.m @@ -4,44 +4,5 @@ #import "SDLButtonEventMode.h" -SDLButtonEventMode *SDLButtonEventMode_BUTTONUP = nil; -SDLButtonEventMode *SDLButtonEventMode_BUTTONDOWN = nil; - -NSArray *SDLButtonEventMode_values = nil; - -@implementation SDLButtonEventMode - -+ (SDLButtonEventMode *)valueOf:(NSString *)value { - for (SDLButtonEventMode *item in SDLButtonEventMode.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLButtonEventMode_values == nil) { - SDLButtonEventMode_values = @[ - SDLButtonEventMode.BUTTONUP, - SDLButtonEventMode.BUTTONDOWN, - ]; - } - return SDLButtonEventMode_values; -} - -+ (SDLButtonEventMode *)BUTTONUP { - if (SDLButtonEventMode_BUTTONUP == nil) { - SDLButtonEventMode_BUTTONUP = [[SDLButtonEventMode alloc] initWithValue:@"BUTTONUP"]; - } - return SDLButtonEventMode_BUTTONUP; -} - -+ (SDLButtonEventMode *)BUTTONDOWN { - if (SDLButtonEventMode_BUTTONDOWN == nil) { - SDLButtonEventMode_BUTTONDOWN = [[SDLButtonEventMode alloc] initWithValue:@"BUTTONDOWN"]; - } - return SDLButtonEventMode_BUTTONDOWN; -} - -@end +SDLButtonEventMode const SDLButtonEventModeButtonUp = @"BUTTONUP"; +SDLButtonEventMode const SDLButtonEventModeButtonDown = @"BUTTONDOWN"; diff --git a/SmartDeviceLink/SDLButtonName.h b/SmartDeviceLink/SDLButtonName.h index 519a3c554..0956c80e3 100644 --- a/SmartDeviceLink/SDLButtonName.h +++ b/SmartDeviceLink/SDLButtonName.h @@ -21,132 +21,193 @@ * * @since SDL 1.0 */ -@interface SDLButtonName : SDLEnum { -} - -/** - * @abstract Convert String to SDLButtonName - * - * @param value String value to retrieve the object for - * - * @return SDLButtonName - */ -+ (SDLButtonName *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLButtonName - * - * @return an array that store all possible SDLButtonName - */ -+ (NSArray *)values; +typedef SDLEnum SDLButtonName SDL_SWIFT_ENUM; /** * @abstract Represents the button usually labeled "OK". A typical use of this button is for the user to press it to make a selection. - * - * @return a SDLButtonName with the value of *OK* */ -+ (SDLButtonName *)OK; +extern SDLButtonName const SDLButtonNameOk; /** * @abstract 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. - * - * @return a SDLButtonName with the value of *SEEKLEFT* */ -+ (SDLButtonName *)SEEKLEFT; +extern SDLButtonName const SDLButtonNameSeekLeft; /** * @abstract 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. - * - * @return a SDLButtonName with the value of *SEEKRIGHT* */ -+ (SDLButtonName *)SEEKRIGHT; +extern SDLButtonName const SDLButtonNameSeekRight; /** * @abstract Represents a turn of the tuner knob in the clockwise direction one tick. - * - * @return a SDLButtonName with the value of *TUNEUP* */ -+ (SDLButtonName *)TUNEUP; +extern SDLButtonName const SDLButtonNameTuneUp; /** * @abstract Represents a turn of the tuner knob in the counter-clockwise direction one tick. - * - * @return a SDLButtonName with the value of *TUNEDOWN* */ -+ (SDLButtonName *)TUNEDOWN; +extern SDLButtonName const SDLButtonNameTuneDown; /** * @abstract Represents the preset 0 button. - * - * @return a SDLButtonName with the value of *PRESET_0* */ -+ (SDLButtonName *)PRESET_0; +extern SDLButtonName const SDLButtonNamePreset0; /** * @abstract Represents the preset 1 button. - * - * @return a SDLButtonName with the value of *PRESET_1* */ -+ (SDLButtonName *)PRESET_1; +extern SDLButtonName const SDLButtonNamePreset1; /** * @abstract Represents the preset 2 button. - * - * @return a SDLButtonName with the value of *PRESET_2* */ -+ (SDLButtonName *)PRESET_2; +extern SDLButtonName const SDLButtonNamePreset2; /** * @abstract Represents the preset 3 button. - * - * @return a SDLButtonName with the value of *PRESET_3* */ -+ (SDLButtonName *)PRESET_3; +extern SDLButtonName const SDLButtonNamePreset3; /** * @abstract Represents the preset 4 button. - * - * @return a SDLButtonName with the value of *PRESET_4* */ -+ (SDLButtonName *)PRESET_4; +extern SDLButtonName const SDLButtonNamePreset4; /** * @abstract Represents the preset 5 button. - * - * @return a SDLButtonName with the value of *PRESET_5* */ -+ (SDLButtonName *)PRESET_5; +extern SDLButtonName const SDLButtonNamePreset5; /** * @abstract Represents the preset 6 button. - * - * @return a SDLButtonName with the value of *PRESET_6* */ -+ (SDLButtonName *)PRESET_6; +extern SDLButtonName const SDLButtonNamePreset6; /** * @abstract Represents the preset 7 button. - * - * @return a SDLButtonName with the value of *PRESET_7* */ -+ (SDLButtonName *)PRESET_7; +extern SDLButtonName const SDLButtonNamePreset7; /** * @abstract Represents the preset 8 button. - * - * @return a SDLButtonName with the value of *PRESET_8* */ -+ (SDLButtonName *)PRESET_8; +extern SDLButtonName const SDLButtonNamePreset8; /** * @abstract Represents the preset 9 button. + */ +extern SDLButtonName const SDLButtonNamePreset9; + +/** + * @abstract Represents the Custom button. + * + */ +extern SDLButtonName const SDLButtonNameCustomButton; + +/** + * @abstract Represents the SEARCH button. * - * @return a SDLButtonName with the value of *PRESET_9* */ -+ (SDLButtonName *)PRESET_9; +extern SDLButtonName const SDLButtonNameSearch; + +#pragma mark - Climate Buttons -+ (SDLButtonName *)CUSTOM_BUTTON; +/** + * @abstract Represents AC max button * + */ +extern SDLButtonName const SDLButtonNameACMax; -+ (SDLButtonName *)SEARCH; +/** + * @abstract Represents AC button * + */ +extern SDLButtonName const SDLButtonNameAC; -@end +/** + * @abstract Represents a Recirculate button + */ +extern SDLButtonName const SDLButtonNameRecirculate; + +/** + * @abstract Represents a Fan up button + */ +extern SDLButtonName const SDLButtonNameFanUp; + +/** + * @abstract Represents a fan down button + */ +extern SDLButtonName const SDLButtonNameFanDown; + +/** + * @abstract Represents a temperature up button + */ +extern SDLButtonName const SDLButtonNameTempUp; + +/** + * @abstract Represents a temperature down button + */ +extern SDLButtonName const SDLButtonNameTempDown; + +/** + * @abstract Represents a Defrost max button. + * + */ +extern SDLButtonName const SDLButtonNameDefrostMax; + +/** + * @abstract Represents a Defrost button. + * + */ +extern SDLButtonName const SDLButtonNameDefrost; + +/** + * @abstract Represents a Defrost rear button. + * + */ +extern SDLButtonName const SDLButtonNameDefrostRear; + +/** + * @abstract Represents a Upper Vent button. + * + */ +extern SDLButtonName const SDLButtonNameUpperVent; + +/** + * @abstract Represents a Lower vent button. + * + */ +extern SDLButtonName const SDLButtonNameLowerVent; + +#pragma mark - Radio Buttons +/** + * @abstract Represents a volume up button. + */ +extern SDLButtonName const SDLButtonNameVolumeUp; + +/** + * @abstract Represents a volume down button. + * + */ +extern SDLButtonName const SDLButtonNameVolumeDown; + +/** + * @abstract Represents a Eject Button. + * + */ +extern SDLButtonName const SDLButtonNameEject; + +/** + * @abstract Represents a Source button. + * + */ +extern SDLButtonName const SDLButtonNameSource; + +/** + * @abstract Represents a SHUFFLE button. + * + */ +extern SDLButtonName const SDLButtonNameShuffle; + +/** + * @abstract Represents a Repeat button. + */ +extern SDLButtonName const SDLButtonNameRepeat; diff --git a/SmartDeviceLink/SDLButtonName.m b/SmartDeviceLink/SDLButtonName.m index 8e0ae3454..8283fa5a2 100644 --- a/SmartDeviceLink/SDLButtonName.m +++ b/SmartDeviceLink/SDLButtonName.m @@ -4,179 +4,38 @@ #import "SDLButtonName.h" -SDLButtonName *SDLButtonName_OK = nil; -SDLButtonName *SDLButtonName_SEEKLEFT = nil; -SDLButtonName *SDLButtonName_SEEKRIGHT = nil; -SDLButtonName *SDLButtonName_TUNEUP = nil; -SDLButtonName *SDLButtonName_TUNEDOWN = nil; -SDLButtonName *SDLButtonName_PRESET_0 = nil; -SDLButtonName *SDLButtonName_PRESET_1 = nil; -SDLButtonName *SDLButtonName_PRESET_2 = nil; -SDLButtonName *SDLButtonName_PRESET_3 = nil; -SDLButtonName *SDLButtonName_PRESET_4 = nil; -SDLButtonName *SDLButtonName_PRESET_5 = nil; -SDLButtonName *SDLButtonName_PRESET_6 = nil; -SDLButtonName *SDLButtonName_PRESET_7 = nil; -SDLButtonName *SDLButtonName_PRESET_8 = nil; -SDLButtonName *SDLButtonName_PRESET_9 = nil; -SDLButtonName *SDLButtonName_CUSTOM_BUTTON = nil; -SDLButtonName *SDLButtonName_SEARCH = nil; - -NSArray *SDLButtonName_values = nil; - -@implementation SDLButtonName - -+ (SDLButtonName *)valueOf:(NSString *)value { - for (SDLButtonName *item in SDLButtonName.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLButtonName_values == nil) { - SDLButtonName_values = @[ - SDLButtonName.OK, - SDLButtonName.SEEKLEFT, - SDLButtonName.SEEKRIGHT, - SDLButtonName.TUNEUP, - SDLButtonName.TUNEDOWN, - SDLButtonName.PRESET_0, - SDLButtonName.PRESET_1, - SDLButtonName.PRESET_2, - SDLButtonName.PRESET_3, - SDLButtonName.PRESET_4, - SDLButtonName.PRESET_5, - SDLButtonName.PRESET_6, - SDLButtonName.PRESET_7, - SDLButtonName.PRESET_8, - SDLButtonName.PRESET_9, - SDLButtonName.CUSTOM_BUTTON, - SDLButtonName.SEARCH, - ]; - } - return SDLButtonName_values; -} - -+ (SDLButtonName *)OK { - if (SDLButtonName_OK == nil) { - SDLButtonName_OK = [[SDLButtonName alloc] initWithValue:@"OK"]; - } - return SDLButtonName_OK; -} - -+ (SDLButtonName *)SEEKLEFT { - if (SDLButtonName_SEEKLEFT == nil) { - SDLButtonName_SEEKLEFT = [[SDLButtonName alloc] initWithValue:@"SEEKLEFT"]; - } - return SDLButtonName_SEEKLEFT; -} - -+ (SDLButtonName *)SEEKRIGHT { - if (SDLButtonName_SEEKRIGHT == nil) { - SDLButtonName_SEEKRIGHT = [[SDLButtonName alloc] initWithValue:@"SEEKRIGHT"]; - } - return SDLButtonName_SEEKRIGHT; -} - -+ (SDLButtonName *)TUNEUP { - if (SDLButtonName_TUNEUP == nil) { - SDLButtonName_TUNEUP = [[SDLButtonName alloc] initWithValue:@"TUNEUP"]; - } - return SDLButtonName_TUNEUP; -} - -+ (SDLButtonName *)TUNEDOWN { - if (SDLButtonName_TUNEDOWN == nil) { - SDLButtonName_TUNEDOWN = [[SDLButtonName alloc] initWithValue:@"TUNEDOWN"]; - } - return SDLButtonName_TUNEDOWN; -} - -+ (SDLButtonName *)PRESET_0 { - if (SDLButtonName_PRESET_0 == nil) { - SDLButtonName_PRESET_0 = [[SDLButtonName alloc] initWithValue:@"PRESET_0"]; - } - return SDLButtonName_PRESET_0; -} - -+ (SDLButtonName *)PRESET_1 { - if (SDLButtonName_PRESET_1 == nil) { - SDLButtonName_PRESET_1 = [[SDLButtonName alloc] initWithValue:@"PRESET_1"]; - } - return SDLButtonName_PRESET_1; -} - -+ (SDLButtonName *)PRESET_2 { - if (SDLButtonName_PRESET_2 == nil) { - SDLButtonName_PRESET_2 = [[SDLButtonName alloc] initWithValue:@"PRESET_2"]; - } - return SDLButtonName_PRESET_2; -} - -+ (SDLButtonName *)PRESET_3 { - if (SDLButtonName_PRESET_3 == nil) { - SDLButtonName_PRESET_3 = [[SDLButtonName alloc] initWithValue:@"PRESET_3"]; - } - return SDLButtonName_PRESET_3; -} - -+ (SDLButtonName *)PRESET_4 { - if (SDLButtonName_PRESET_4 == nil) { - SDLButtonName_PRESET_4 = [[SDLButtonName alloc] initWithValue:@"PRESET_4"]; - } - return SDLButtonName_PRESET_4; -} - -+ (SDLButtonName *)PRESET_5 { - if (SDLButtonName_PRESET_5 == nil) { - SDLButtonName_PRESET_5 = [[SDLButtonName alloc] initWithValue:@"PRESET_5"]; - } - return SDLButtonName_PRESET_5; -} - -+ (SDLButtonName *)PRESET_6 { - if (SDLButtonName_PRESET_6 == nil) { - SDLButtonName_PRESET_6 = [[SDLButtonName alloc] initWithValue:@"PRESET_6"]; - } - return SDLButtonName_PRESET_6; -} - -+ (SDLButtonName *)PRESET_7 { - if (SDLButtonName_PRESET_7 == nil) { - SDLButtonName_PRESET_7 = [[SDLButtonName alloc] initWithValue:@"PRESET_7"]; - } - return SDLButtonName_PRESET_7; -} - -+ (SDLButtonName *)PRESET_8 { - if (SDLButtonName_PRESET_8 == nil) { - SDLButtonName_PRESET_8 = [[SDLButtonName alloc] initWithValue:@"PRESET_8"]; - } - return SDLButtonName_PRESET_8; -} - -+ (SDLButtonName *)PRESET_9 { - if (SDLButtonName_PRESET_9 == nil) { - SDLButtonName_PRESET_9 = [[SDLButtonName alloc] initWithValue:@"PRESET_9"]; - } - return SDLButtonName_PRESET_9; -} - -+ (SDLButtonName *)CUSTOM_BUTTON { - if (SDLButtonName_CUSTOM_BUTTON == nil) { - SDLButtonName_CUSTOM_BUTTON = [[SDLButtonName alloc] initWithValue:@"CUSTOM_BUTTON"]; - } - return SDLButtonName_CUSTOM_BUTTON; -} - -+ (SDLButtonName *)SEARCH { - if (SDLButtonName_SEARCH == nil) { - SDLButtonName_SEARCH = [[SDLButtonName alloc] initWithValue:@"SEARCH"]; - } - return SDLButtonName_SEARCH; -} - -@end +SDLButtonName const SDLButtonNameOk = @"OK"; +SDLButtonName const SDLButtonNameSeekLeft = @"SEEKLEFT"; +SDLButtonName const SDLButtonNameSeekRight = @"SEEKRIGHT"; +SDLButtonName const SDLButtonNameTuneUp = @"TUNEUP"; +SDLButtonName const SDLButtonNameTuneDown = @"TUNEDOWN"; +SDLButtonName const SDLButtonNamePreset0 = @"PRESET_0"; +SDLButtonName const SDLButtonNamePreset1 = @"PRESET_1"; +SDLButtonName const SDLButtonNamePreset2 = @"PRESET_2"; +SDLButtonName const SDLButtonNamePreset3 = @"PRESET_3"; +SDLButtonName const SDLButtonNamePreset4 = @"PRESET_4"; +SDLButtonName const SDLButtonNamePreset5 = @"PRESET_5"; +SDLButtonName const SDLButtonNamePreset6 = @"PRESET_6"; +SDLButtonName const SDLButtonNamePreset7 = @"PRESET_7"; +SDLButtonName const SDLButtonNamePreset8 = @"PRESET_8"; +SDLButtonName const SDLButtonNamePreset9 = @"PRESET_9"; +SDLButtonName const SDLButtonNameCustomButton = @"CUSTOM_BUTTON"; +SDLButtonName const SDLButtonNameSearch = @"SEARCH"; +SDLButtonName const SDLButtonNameACMax = @"AC_MAX"; +SDLButtonName const SDLButtonNameAC = @"AC"; +SDLButtonName const SDLButtonNameRecirculate = @"RECIRCULATE"; +SDLButtonName const SDLButtonNameFanUp = @"FAN_UP"; +SDLButtonName const SDLButtonNameFanDown = @"FAN_DOWN"; +SDLButtonName const SDLButtonNameTempUp = @"TEMP_UP"; +SDLButtonName const SDLButtonNameTempDown = @"TEMP_DOWN"; +SDLButtonName const SDLButtonNameDefrostMax = @"DEFROST_MAX"; +SDLButtonName const SDLButtonNameDefrostRear = @"DEFROST_REAR"; +SDLButtonName const SDLButtonNameDefrost = @"DEFROST"; +SDLButtonName const SDLButtonNameUpperVent = @"UPPER_VENT"; +SDLButtonName const SDLButtonNameLowerVent = @"LOWER_VENT"; +SDLButtonName const SDLButtonNameVolumeUp = @"VOLUME_UP"; +SDLButtonName const SDLButtonNameVolumeDown = @"VOLUME_DOWN"; +SDLButtonName const SDLButtonNameEject = @"EJECT"; +SDLButtonName const SDLButtonNameSource = @"SOURCE"; +SDLButtonName const SDLButtonNameShuffle = @"SHUFFLE"; +SDLButtonName const SDLButtonNameRepeat = @"REPEAT"; diff --git a/SmartDeviceLink/SDLButtonPress.h b/SmartDeviceLink/SDLButtonPress.h new file mode 100644 index 000000000..b019b4edd --- /dev/null +++ b/SmartDeviceLink/SDLButtonPress.h @@ -0,0 +1,40 @@ +// +// SDLButtonPress.h +// + +#import "SDLRPCRequest.h" +#import "SDLModuleType.h" +#import "SDLButtonName.h" +#import "SDLButtonPressMode.h" + +/** + * This RPC allows a remote control type mobile application to simulate a hardware button press event. + */ + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLButtonPress : SDLRPCRequest + +- (instancetype)initWithButtonName:(SDLButtonName)buttonName moduleType:(SDLModuleType) moduleType; + +/** + * The module where the button should be pressed. + * + */ +@property (strong, nonatomic) SDLModuleType moduleType; + +/** + * The name of supported RC climate or radio button. + * + */ +@property (strong, nonatomic) SDLButtonName buttonName; + +/** + * Indicates whether this is a LONG or SHORT button press event. + * + */ +@property (strong, nonatomic) SDLButtonPressMode buttonPressMode; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLButtonPress.m b/SmartDeviceLink/SDLButtonPress.m new file mode 100644 index 000000000..3555780fc --- /dev/null +++ b/SmartDeviceLink/SDLButtonPress.m @@ -0,0 +1,56 @@ +// +// SDLButtonPress.m +// + +#import "SDLButtonPress.h" +#import "SDLNames.h" +#import "NSMutableDictionary+Store.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLButtonPress + +- (instancetype)init { + if (self = [super initWithName:SDLNameButtonPress]) { + } + return self; +} + +- (instancetype)initWithButtonName:(SDLButtonName) buttonName moduleType:(SDLModuleType) moduleType { + self = [self init]; + if (!self) { + return nil; + } + + self.buttonName = buttonName; + self.moduleType = moduleType; + + return self; +} + +- (void)setModuleType:(SDLModuleType)moduleType { + [parameters sdl_setObject:moduleType forName:SDLNameModuleType]; +} + +- (SDLModuleType)moduleType { + return [parameters sdl_objectForName:SDLNameModuleType]; +} + +- (void)setButtonName:(SDLButtonName)buttonName { + [parameters sdl_setObject:buttonName forName:SDLNameButtonName]; +} + +- (SDLButtonName)buttonName { + return [parameters sdl_objectForName:SDLNameButtonName]; +} + +- (void)setButtonPressMode:(SDLButtonPressMode)buttonPressMode { + [parameters sdl_setObject:buttonPressMode forName:SDLNameButtonPressMode]; +} + +- (SDLButtonPressMode)buttonPressMode { + return [parameters sdl_objectForName:SDLNameButtonPressMode]; +} + +@end +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLButtonPressMode.h b/SmartDeviceLink/SDLButtonPressMode.h index 8aca9c143..7fd6084ea 100644 --- a/SmartDeviceLink/SDLButtonPressMode.h +++ b/SmartDeviceLink/SDLButtonPressMode.h @@ -9,37 +9,14 @@ * * @since SDL 1.0 */ -@interface SDLButtonPressMode : SDLEnum { -} - -/** - * @abstract Convert String to SDLButtonPressMode - * - * @param value The value of the string to get an object for - * - * @return SDLButtonPressMode - */ -+ (SDLButtonPressMode *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLButtonPressMode - * - * @return an array that store all possible SDLButtonPressMode - */ -+ (NSArray *)values; +typedef SDLEnum SDLButtonPressMode SDL_SWIFT_ENUM; /** * @abstract A button was released, after it was pressed for a long time. Actual timing is defined by the head unit and may vary. - * - * @return a SDLButtonPressMode with the value of *LONG* */ -+ (SDLButtonPressMode *)LONG; +extern SDLButtonPressMode const SDLButtonPressModeLong; /** * @abstract A button was released, after it was pressed for a short time. Actual timing is defined by the head unit and may vary. - * - * @return a SDLButtonPressMode with the value of *SHORT* */ -+ (SDLButtonPressMode *)SHORT; - -@end +extern SDLButtonPressMode const SDLButtonPressModeShort; diff --git a/SmartDeviceLink/SDLButtonPressMode.m b/SmartDeviceLink/SDLButtonPressMode.m index 15e4c2334..48d3652c6 100644 --- a/SmartDeviceLink/SDLButtonPressMode.m +++ b/SmartDeviceLink/SDLButtonPressMode.m @@ -4,44 +4,5 @@ #import "SDLButtonPressMode.h" -SDLButtonPressMode *SDLButtonPressMode_LONG = nil; -SDLButtonPressMode *SDLButtonPressMode_SHORT = nil; - -NSArray *SDLButtonPressMode_values = nil; - -@implementation SDLButtonPressMode - -+ (SDLButtonPressMode *)valueOf:(NSString *)value { - for (SDLButtonPressMode *item in SDLButtonPressMode.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLButtonPressMode_values == nil) { - SDLButtonPressMode_values = @[ - SDLButtonPressMode.LONG, - SDLButtonPressMode.SHORT, - ]; - } - return SDLButtonPressMode_values; -} - -+ (SDLButtonPressMode *)LONG { - if (SDLButtonPressMode_LONG == nil) { - SDLButtonPressMode_LONG = [[SDLButtonPressMode alloc] initWithValue:@"LONG"]; - } - return SDLButtonPressMode_LONG; -} - -+ (SDLButtonPressMode *)SHORT { - if (SDLButtonPressMode_SHORT == nil) { - SDLButtonPressMode_SHORT = [[SDLButtonPressMode alloc] initWithValue:@"SHORT"]; - } - return SDLButtonPressMode_SHORT; -} - -@end +SDLButtonPressMode const SDLButtonPressModeLong = @"LONG"; +SDLButtonPressMode const SDLButtonPressModeShort = @"SHORT"; diff --git a/SmartDeviceLink/SDLButtonPressResponse.h b/SmartDeviceLink/SDLButtonPressResponse.h new file mode 100644 index 000000000..7a717d310 --- /dev/null +++ b/SmartDeviceLink/SDLButtonPressResponse.h @@ -0,0 +1,13 @@ +// +// SDLButtonPressResponse.h +// + +#import "SDLRPCResponse.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLButtonPressResponse : SDLRPCResponse + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLButtonPressResponse.m b/SmartDeviceLink/SDLButtonPressResponse.m new file mode 100644 index 000000000..3e768a872 --- /dev/null +++ b/SmartDeviceLink/SDLButtonPressResponse.m @@ -0,0 +1,20 @@ +// +// SDLButtonPressResponse.m +// + +#import "SDLButtonPressResponse.h" +#import "SDLNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLButtonPressResponse + +- (instancetype)init { + if (self = [super initWithName:SDLNameButtonPress]) { + } + return self; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLCarModeStatus.h b/SmartDeviceLink/SDLCarModeStatus.h index 15bb7b284..32dab6bd3 100644 --- a/SmartDeviceLink/SDLCarModeStatus.h +++ b/SmartDeviceLink/SDLCarModeStatus.h @@ -7,26 +7,20 @@ /** Describes the carmode the vehicle is in. * Since SmartDeviceLink 2.0 */ -@interface SDLCarModeStatus : SDLEnum { -} +typedef SDLEnum SDLCarModeStatus SDL_SWIFT_ENUM; -+ (SDLCarModeStatus *)valueOf:(NSString *)value; - -+ (NSArray *)values; /** Provides carmode NORMAL to each module. */ -+ (SDLCarModeStatus *)NORMAL; +extern SDLCarModeStatus const SDLCarModeStatusNormal; /** Provides carmode FACTORY to each module. */ -+ (SDLCarModeStatus *)FACTORY; +extern SDLCarModeStatus const SDLCarModeStatusFactory; /** Provides carmode TRANSPORT to each module. */ -+ (SDLCarModeStatus *)TRANSPORT; +extern SDLCarModeStatus const SDLCarModeStatusTransport; /** Provides carmode CRASH to each module. */ -+ (SDLCarModeStatus *)CRASH; - -@end +extern SDLCarModeStatus const SDLCarModeStatusCrash; diff --git a/SmartDeviceLink/SDLCarModeStatus.m b/SmartDeviceLink/SDLCarModeStatus.m index 4f9c03c42..b93293da9 100644 --- a/SmartDeviceLink/SDLCarModeStatus.m +++ b/SmartDeviceLink/SDLCarModeStatus.m @@ -4,62 +4,7 @@ #import "SDLCarModeStatus.h" -SDLCarModeStatus *SDLCarModeStatus_NORMAL = nil; -SDLCarModeStatus *SDLCarModeStatus_FACTORY = nil; -SDLCarModeStatus *SDLCarModeStatus_TRANSPORT = nil; -SDLCarModeStatus *SDLCarModeStatus_CRASH = nil; - -NSArray *SDLCarModeStatus_values = nil; - -@implementation SDLCarModeStatus - -+ (SDLCarModeStatus *)valueOf:(NSString *)value { - for (SDLCarModeStatus *item in SDLCarModeStatus.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLCarModeStatus_values == nil) { - SDLCarModeStatus_values = @[ - SDLCarModeStatus.NORMAL, - SDLCarModeStatus.FACTORY, - SDLCarModeStatus.TRANSPORT, - SDLCarModeStatus.CRASH, - ]; - } - return SDLCarModeStatus_values; -} - -+ (SDLCarModeStatus *)NORMAL { - if (SDLCarModeStatus_NORMAL == nil) { - SDLCarModeStatus_NORMAL = [[SDLCarModeStatus alloc] initWithValue:@"NORMAL"]; - } - return SDLCarModeStatus_NORMAL; -} - -+ (SDLCarModeStatus *)FACTORY { - if (SDLCarModeStatus_FACTORY == nil) { - SDLCarModeStatus_FACTORY = [[SDLCarModeStatus alloc] initWithValue:@"FACTORY"]; - } - return SDLCarModeStatus_FACTORY; -} - -+ (SDLCarModeStatus *)TRANSPORT { - if (SDLCarModeStatus_TRANSPORT == nil) { - SDLCarModeStatus_TRANSPORT = [[SDLCarModeStatus alloc] initWithValue:@"TRANSPORT"]; - } - return SDLCarModeStatus_TRANSPORT; -} - -+ (SDLCarModeStatus *)CRASH { - if (SDLCarModeStatus_CRASH == nil) { - SDLCarModeStatus_CRASH = [[SDLCarModeStatus alloc] initWithValue:@"CRASH"]; - } - return SDLCarModeStatus_CRASH; -} - -@end +SDLCarModeStatus const SDLCarModeStatusNormal = @"NORMAL"; +SDLCarModeStatus const SDLCarModeStatusFactory = @"FACTORY"; +SDLCarModeStatus const SDLCarModeStatusTransport = @"TRANSPORT"; +SDLCarModeStatus const SDLCarModeStatusCrash = @"CRASH"; diff --git a/SmartDeviceLink/SDLChangeRegistration.h b/SmartDeviceLink/SDLChangeRegistration.h index 194c525da..063e24654 100644 --- a/SmartDeviceLink/SDLChangeRegistration.h +++ b/SmartDeviceLink/SDLChangeRegistration.h @@ -3,8 +3,8 @@ #import "SDLRPCRequest.h" +#import "SDLLanguage.h" -@class SDLLanguage; @class SDLTTSChunk; /** @@ -14,61 +14,53 @@ * * @since SDL 2.0 */ -@interface SDLChangeRegistration : SDLRPCRequest { -} -/** - * Constructs a new SDLChangeRegistration object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * Constructs a new SDLChangeRegistration object indicated by the dictionary parameter - * - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLChangeRegistration : SDLRPCRequest -- (instancetype)initWithLanguage:(SDLLanguage *)language hmiDisplayLanguage:(SDLLanguage *)hmiDisplayLanguage; +- (instancetype)initWithLanguage:(SDLLanguage)language hmiDisplayLanguage:(SDLLanguage)hmiDisplayLanguage; -- (instancetype)initWithLanguage:(SDLLanguage *)language hmiDisplayLanguage:(SDLLanguage *)hmiDisplayLanguage appName:(NSString *)appName ttsName:(NSArray *)ttsName ngnMediaScreenAppName:(NSString *)ngnMediaScreenAppName vrSynonyms:(NSArray *)vrSynonyms; +- (instancetype)initWithLanguage:(SDLLanguage)language hmiDisplayLanguage:(SDLLanguage)hmiDisplayLanguage appName:(nullable NSString *)appName ttsName:(nullable NSArray *)ttsName ngnMediaScreenAppName:(nullable NSString *)ngnMediaScreenAppName vrSynonyms:(nullable NSArray *)vrSynonyms; /** * @abstract The language the app wants to change to */ -@property (strong, nonatomic) SDLLanguage *language; +@property (strong, nonatomic) SDLLanguage language; /** * @abstract HMI display language */ -@property (strong, nonatomic) SDLLanguage *hmiDisplayLanguage; +@property (strong, nonatomic) SDLLanguage hmiDisplayLanguage; /** * Request a new app name registration * * Optional, Max string length 100 chars */ -@property (copy, nonatomic) NSString *appName; +@property (nullable, copy, nonatomic) NSString *appName; /** * Request a new TTSName registration. * * Optional, Array of SDLTTSChunk, 1 - 100 elements */ -@property (copy, nonatomic) NSArray *ttsName; +@property (nullable, copy, nonatomic) NSArray *ttsName; /** * Request a new app short name registration * * Optional, Max string length 100 chars */ -@property (copy, nonatomic) NSString *ngnMediaScreenAppName; +@property (nullable, copy, nonatomic) NSString *ngnMediaScreenAppName; /** * Request a new VR synonyms registration * * Optional, Array of NSString, 1 - 100 elements, max string length 40 chars */ -@property (copy, nonatomic) NSArray *vrSynonyms; +@property (nullable, copy, nonatomic) NSArray *vrSynonyms; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLChangeRegistration.m b/SmartDeviceLink/SDLChangeRegistration.m index 3a5c8051b..6d5c2bb4b 100644 --- a/SmartDeviceLink/SDLChangeRegistration.m +++ b/SmartDeviceLink/SDLChangeRegistration.m @@ -4,24 +4,21 @@ #import "SDLChangeRegistration.h" -#import "SDLLanguage.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +#import "SDLTTSChunk.h" + +NS_ASSUME_NONNULL_BEGIN @implementation SDLChangeRegistration - (instancetype)init { - if (self = [super initWithName:NAMES_ChangeRegistration]) { + if (self = [super initWithName:SDLNameChangeRegistration]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (instancetype)initWithLanguage:(SDLLanguage *)language hmiDisplayLanguage:(SDLLanguage *)hmiDisplayLanguage { +- (instancetype)initWithLanguage:(SDLLanguage)language hmiDisplayLanguage:(SDLLanguage)hmiDisplayLanguage { self = [self initWithLanguage:language hmiDisplayLanguage:hmiDisplayLanguage appName:nil ttsName:nil ngnMediaScreenAppName:nil vrSynonyms:nil]; if (!self) { return nil; @@ -30,7 +27,7 @@ - (instancetype)initWithLanguage:(SDLLanguage *)language hmiDisplayLanguage:(SDL return self; } -- (instancetype)initWithLanguage:(SDLLanguage *)language hmiDisplayLanguage:(SDLLanguage *)hmiDisplayLanguage appName:(NSString *)appName ttsName:(NSArray *)ttsName ngnMediaScreenAppName:(NSString *)ngnMediaScreenAppName vrSynonyms:(NSArray *)vrSynonyms { +- (instancetype)initWithLanguage:(SDLLanguage)language hmiDisplayLanguage:(SDLLanguage)hmiDisplayLanguage appName:(nullable NSString *)appName ttsName:(nullable NSArray *)ttsName ngnMediaScreenAppName:(nullable NSString *)ngnMediaScreenAppName vrSynonyms:(nullable NSArray *)vrSynonyms { self = [self init]; if (!self) { return nil; @@ -46,86 +43,54 @@ - (instancetype)initWithLanguage:(SDLLanguage *)language hmiDisplayLanguage:(SDL return self; } -- (void)setLanguage:(SDLLanguage *)language { - if (language != nil) { - [parameters setObject:language forKey:NAMES_language]; - } else { - [parameters removeObjectForKey:NAMES_language]; - } +- (void)setLanguage:(SDLLanguage)language { + [parameters sdl_setObject:language forName:SDLNameLanguage]; } -- (SDLLanguage *)language { - NSObject *obj = [parameters objectForKey:NAMES_language]; - if (obj == nil || [obj isKindOfClass:SDLLanguage.class]) { - return (SDLLanguage *)obj; - } else { - return [SDLLanguage valueOf:(NSString *)obj]; - } +- (SDLLanguage)language { + return [parameters sdl_objectForName:SDLNameLanguage]; } -- (void)setHmiDisplayLanguage:(SDLLanguage *)hmiDisplayLanguage { - if (hmiDisplayLanguage != nil) { - [parameters setObject:hmiDisplayLanguage forKey:NAMES_hmiDisplayLanguage]; - } else { - [parameters removeObjectForKey:NAMES_hmiDisplayLanguage]; - } +- (void)setHmiDisplayLanguage:(SDLLanguage )hmiDisplayLanguage { + [parameters sdl_setObject:hmiDisplayLanguage forName:SDLNameHMIDisplayLanguage]; } -- (SDLLanguage *)hmiDisplayLanguage { - NSObject *obj = [parameters objectForKey:NAMES_hmiDisplayLanguage]; - if (obj == nil || [obj isKindOfClass:SDLLanguage.class]) { - return (SDLLanguage *)obj; - } else { - return [SDLLanguage valueOf:(NSString *)obj]; - } +- (SDLLanguage)hmiDisplayLanguage { + return [parameters sdl_objectForName:SDLNameHMIDisplayLanguage]; } -- (void)setAppName:(NSString *)appName { - if (appName != nil) { - parameters[NAMES_appName] = [appName copy]; - } else { - [parameters removeObjectForKey:NAMES_appName]; - } +- (void)setAppName:(nullable NSString *)appName { + [parameters sdl_setObject:appName forName:SDLNameAppName]; } -- (NSString *)appName { - return [parameters[NAMES_appName] copy]; +- (nullable NSString *)appName { + return [[parameters sdl_objectForName:SDLNameAppName] copy]; } -- (void)setTtsName:(NSArray *)ttsName { - if (ttsName != nil) { - [parameters setObject:[ttsName copy] forKey:NAMES_ttsName]; - } else { - [parameters removeObjectForKey:NAMES_ttsName]; - } +- (void)setTtsName:(nullable NSArray *)ttsName { + [parameters sdl_setObject:ttsName forName:SDLNameTTSName]; } -- (NSArray *)ttsName { - return [parameters[NAMES_ttsName] copy]; +- (nullable NSArray *)ttsName { + return [parameters sdl_objectsForName:SDLNameTTSName ofClass:SDLTTSChunk.class]; } -- (void)setNgnMediaScreenAppName:(NSString *)ngnMediaScreenAppName { - if (ngnMediaScreenAppName != nil) { - parameters[NAMES_ngnMediaScreenAppName] = [ngnMediaScreenAppName copy]; - } else { - [parameters removeObjectForKey:NAMES_ngnMediaScreenAppName]; - } +- (void)setNgnMediaScreenAppName:(nullable NSString *)ngnMediaScreenAppName { + [parameters sdl_setObject:ngnMediaScreenAppName forName:SDLNameNGNMediaScreenAppName]; } -- (NSString *)ngnMediaScreenAppName { - return [parameters[NAMES_ngnMediaScreenAppName] copy]; +- (nullable NSString *)ngnMediaScreenAppName { + return [parameters sdl_objectForName:SDLNameNGNMediaScreenAppName]; } -- (void)setVrSynonyms:(NSArray *)vrSynonyms { - if (vrSynonyms != nil) { - [parameters setObject:[vrSynonyms copy] forKey:NAMES_vrSynonyms]; - } else { - [parameters removeObjectForKey:NAMES_vrSynonyms]; - } +- (void)setVrSynonyms:(nullable NSArray *)vrSynonyms { + [parameters sdl_setObject:vrSynonyms forName:SDLNameVRSynonyms]; } -- (NSArray *)vrSynonyms { - return [parameters[NAMES_vrSynonyms] copy]; +- (nullable NSArray *)vrSynonyms { + return [parameters sdl_objectForName:SDLNameVRSynonyms]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLChangeRegistrationResponse.h b/SmartDeviceLink/SDLChangeRegistrationResponse.h index 38709e235..89c469fd9 100644 --- a/SmartDeviceLink/SDLChangeRegistrationResponse.h +++ b/SmartDeviceLink/SDLChangeRegistrationResponse.h @@ -9,10 +9,11 @@ * * @since SDL 2.0 */ -@interface SDLChangeRegistrationResponse : SDLRPCResponse { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLChangeRegistrationResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLChangeRegistrationResponse.m b/SmartDeviceLink/SDLChangeRegistrationResponse.m index 710495d2c..1e5e6cbae 100644 --- a/SmartDeviceLink/SDLChangeRegistrationResponse.m +++ b/SmartDeviceLink/SDLChangeRegistrationResponse.m @@ -4,20 +4,19 @@ #import "SDLChangeRegistrationResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLChangeRegistrationResponse - (instancetype)init { - if (self = [super initWithName:NAMES_ChangeRegistration]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameChangeRegistration]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLCharacterSet.h b/SmartDeviceLink/SDLCharacterSet.h index 300afd720..4aaf52745 100644 --- a/SmartDeviceLink/SDLCharacterSet.h +++ b/SmartDeviceLink/SDLCharacterSet.h @@ -9,31 +9,13 @@ * * @since SDL 1.0 */ -@interface SDLCharacterSet : SDLEnum { -} +typedef SDLEnum SDLCharacterSet SDL_SWIFT_ENUM; -/** - * @abstract Convert String to SDLCharacterSet - * - * @param value The value of the string to get an object for - * - * @return SDLCharacterSet - */ -+ (SDLCharacterSet *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLCharacterSet - * - * @return an array that store all possible SDLCharacterSet - */ -+ (NSArray *)values; - -+ (SDLCharacterSet *)TYPE2SET; +extern SDLCharacterSet const SDLCharacterSetType2; -+ (SDLCharacterSet *)TYPE5SET; +extern SDLCharacterSet const SDLCharacterSetType5; -+ (SDLCharacterSet *)CID1SET; +extern SDLCharacterSet const SDLCharacterSetCID1; -+ (SDLCharacterSet *)CID2SET; +extern SDLCharacterSet const SDLCharacterSetCID2; -@end diff --git a/SmartDeviceLink/SDLCharacterSet.m b/SmartDeviceLink/SDLCharacterSet.m index 18f00de90..64733c0dc 100644 --- a/SmartDeviceLink/SDLCharacterSet.m +++ b/SmartDeviceLink/SDLCharacterSet.m @@ -4,62 +4,7 @@ #import "SDLCharacterSet.h" -SDLCharacterSet *SDLCharacterSet_TYPE2SET = nil; -SDLCharacterSet *SDLCharacterSet_TYPE5SET = nil; -SDLCharacterSet *SDLCharacterSet_CID1SET = nil; -SDLCharacterSet *SDLCharacterSet_CID2SET = nil; - -NSArray *SDLCharacterSet_values = nil; - -@implementation SDLCharacterSet - -+ (SDLCharacterSet *)valueOf:(NSString *)value { - for (SDLCharacterSet *item in SDLCharacterSet.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLCharacterSet_values == nil) { - SDLCharacterSet_values = @[ - SDLCharacterSet.TYPE2SET, - SDLCharacterSet.TYPE5SET, - SDLCharacterSet.CID1SET, - SDLCharacterSet.CID2SET, - ]; - } - return SDLCharacterSet_values; -} - -+ (SDLCharacterSet *)TYPE2SET { - if (SDLCharacterSet_TYPE2SET == nil) { - SDLCharacterSet_TYPE2SET = [[SDLCharacterSet alloc] initWithValue:@"TYPE2SET"]; - } - return SDLCharacterSet_TYPE2SET; -} - -+ (SDLCharacterSet *)TYPE5SET { - if (SDLCharacterSet_TYPE5SET == nil) { - SDLCharacterSet_TYPE5SET = [[SDLCharacterSet alloc] initWithValue:@"TYPE5SET"]; - } - return SDLCharacterSet_TYPE5SET; -} - -+ (SDLCharacterSet *)CID1SET { - if (SDLCharacterSet_CID1SET == nil) { - SDLCharacterSet_CID1SET = [[SDLCharacterSet alloc] initWithValue:@"CID1SET"]; - } - return SDLCharacterSet_CID1SET; -} - -+ (SDLCharacterSet *)CID2SET { - if (SDLCharacterSet_CID2SET == nil) { - SDLCharacterSet_CID2SET = [[SDLCharacterSet alloc] initWithValue:@"CID2SET"]; - } - return SDLCharacterSet_CID2SET; -} - -@end +SDLCharacterSet const SDLCharacterSetType2 = @"TYPE2SET"; +SDLCharacterSet const SDLCharacterSetType5 = @"TYPE5SET"; +SDLCharacterSet const SDLCharacterSetCID1 = @"CID1SET"; +SDLCharacterSet const SDLCharacterSetCID2 = @"CID2SET"; diff --git a/SmartDeviceLink/SDLChoice.h b/SmartDeviceLink/SDLChoice.h index d084ab33e..d5f521882 100644 --- a/SmartDeviceLink/SDLChoice.h +++ b/SmartDeviceLink/SDLChoice.h @@ -36,7 +36,7 @@ * * * vrCommands - * NSMutableArray * + * NSArray * * An array of strings to be used as VR synonyms for this choice. If this array is provided, it must have at least one non-empty element * SmartDeviceLink 1.0 * @@ -50,71 +50,63 @@ * * Since SmartDeviceLink 1.0
*/ -@interface SDLChoice : SDLRPCStruct { -} +NS_ASSUME_NONNULL_BEGIN -/** - * Constructs a newly allocated SDLChoice object - */ -- (instancetype)init; - -/** - * Constructs a newly allocated SDLChoice object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLChoice : SDLRPCStruct -- (instancetype)initWithId:(UInt16)choiceId menuName:(NSString *)menuName vrCommands:(NSArray *)vrCommands; +- (instancetype)initWithId:(UInt16)choiceId menuName:(NSString *)menuName vrCommands:(NSArray *)vrCommands; -- (instancetype)initWithId:(UInt16)choiceId menuName:(NSString *)menuName vrCommands:(NSArray *)vrCommands image:(SDLImage *)image secondaryText:(NSString *)secondaryText secondaryImage:(SDLImage *)secondaryImage tertiaryText:(NSString *)tertiaryText; +- (instancetype)initWithId:(UInt16)choiceId menuName:(NSString *)menuName vrCommands:(NSArray *)vrCommands image:(nullable SDLImage *)image secondaryText:(nullable NSString *)secondaryText secondaryImage:(nullable SDLImage *)secondaryImage tertiaryText:(nullable NSString *)tertiaryText; /** * @abstract the application-scoped identifier that uniquely identifies this choice * * Required, Integer 0 - 65535 */ -@property (strong) NSNumber *choiceID; +@property (strong, nonatomic) NSNumber *choiceID; /** * @abstract Text which appears in menu, representing this choice * * Required, Max string length 500 chars */ -@property (strong) NSString *menuName; +@property (strong, nonatomic) NSString *menuName; /** * @abstract VR synonyms for this choice * * Required, Array of Strings, Array length 1 - 100, Max String length 99 chars */ -@property (strong) NSMutableArray *vrCommands; +@property (strong, nonatomic) NSArray *vrCommands; /** * @abstract The image of the choice * * Optional */ -@property (strong) SDLImage *image; +@property (nullable, strong, nonatomic) SDLImage *image; /** * @abstract Optional secondary text to display; e.g. address of POI in a search result entry * * Optional, Max String length 500 chars */ -@property (strong) NSString *secondaryText; +@property (nullable, strong, nonatomic) NSString *secondaryText; /** * @abstract Optional tertiary text to display; e.g. distance to POI for a search result entry * * Optional, Max String length 500 chars */ -@property (strong) NSString *tertiaryText; +@property (nullable, strong, nonatomic) NSString *tertiaryText; /** * @abstract Optional secondary image for choice * * Optional */ -@property (strong) SDLImage *secondaryImage; +@property (nullable, strong, nonatomic) SDLImage *secondaryImage; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLChoice.m b/SmartDeviceLink/SDLChoice.m index 3195ddd9f..919ef6102 100644 --- a/SmartDeviceLink/SDLChoice.m +++ b/SmartDeviceLink/SDLChoice.m @@ -3,25 +3,15 @@ #import "SDLChoice.h" +#import "NSMutableDictionary+Store.h" #import "SDLImage.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLChoice -- (instancetype)init { - if (self = [super init]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (instancetype)initWithId:(UInt16)choiceId menuName:(NSString *)menuName vrCommands:(NSArray *)vrCommands image:(SDLImage *)image secondaryText:(NSString *)secondaryText secondaryImage:(SDLImage *)secondaryImage tertiaryText:(NSString *)tertiaryText { +- (instancetype)initWithId:(UInt16)choiceId menuName:(NSString *)menuName vrCommands:(NSArray *)vrCommands image:(nullable SDLImage *)image secondaryText:(nullable NSString *)secondaryText secondaryImage:(nullable SDLImage *)secondaryImage tertiaryText:(nullable NSString *)tertiaryText { self = [self initWithId:choiceId menuName:menuName vrCommands:vrCommands]; if (!self) { return nil; @@ -35,7 +25,7 @@ - (instancetype)initWithId:(UInt16)choiceId menuName:(NSString *)menuName vrComm return self; } -- (instancetype)initWithId:(UInt16)choiceId menuName:(NSString *)menuName vrCommands:(NSArray *)vrCommands { +- (instancetype)initWithId:(UInt16)choiceId menuName:(NSString *)menuName vrCommands:(NSArray *)vrCommands { self = [self init]; if (!self) { return nil; @@ -48,98 +38,62 @@ - (instancetype)initWithId:(UInt16)choiceId menuName:(NSString *)menuName vrComm return self; } -- (void)setChoiceID:(NSNumber *)choiceID { - if (choiceID != nil) { - [store setObject:choiceID forKey:NAMES_choiceID]; - } else { - [store removeObjectForKey:NAMES_choiceID]; - } +- (void)setChoiceID:(NSNumber *)choiceID { + [store sdl_setObject:choiceID forName:SDLNameChoiceId]; } -- (NSNumber *)choiceID { - return [store objectForKey:NAMES_choiceID]; +- (NSNumber *)choiceID { + return [store sdl_objectForName:SDLNameChoiceId]; } - (void)setMenuName:(NSString *)menuName { - if (menuName != nil) { - [store setObject:menuName forKey:NAMES_menuName]; - } else { - [store removeObjectForKey:NAMES_menuName]; - } + [store sdl_setObject:menuName forName:SDLNameMenuName]; } - (NSString *)menuName { - return [store objectForKey:NAMES_menuName]; + return [store sdl_objectForName:SDLNameMenuName]; } -- (void)setVrCommands:(NSMutableArray *)vrCommands { - if (vrCommands != nil) { - [store setObject:vrCommands forKey:NAMES_vrCommands]; - } else { - [store removeObjectForKey:NAMES_vrCommands]; - } +- (void)setVrCommands:(NSArray *)vrCommands { + [store sdl_setObject:vrCommands forName:SDLNameVRCommands]; } -- (NSMutableArray *)vrCommands { - return [store objectForKey:NAMES_vrCommands]; +- (NSArray *)vrCommands { + return [store sdl_objectForName:SDLNameVRCommands]; } -- (void)setImage:(SDLImage *)image { - if (image != nil) { - [store setObject:image forKey:NAMES_image]; - } else { - [store removeObjectForKey:NAMES_image]; - } +- (void)setImage:(nullable SDLImage *)image { + [store sdl_setObject:image forName:SDLNameImage]; } -- (SDLImage *)image { - NSObject *obj = [store objectForKey:NAMES_image]; - if (obj == nil || [obj isKindOfClass:SDLImage.class]) { - return (SDLImage *)obj; - } else { - return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLImage *)image { + return [store sdl_objectForName:SDLNameImage ofClass:SDLImage.class]; } -- (void)setSecondaryText:(NSString *)secondaryText { - if (secondaryText != nil) { - [store setObject:secondaryText forKey:NAMES_secondaryText]; - } else { - [store removeObjectForKey:NAMES_secondaryText]; - } +- (void)setSecondaryText:(nullable NSString *)secondaryText { + [store sdl_setObject:secondaryText forName:SDLNameSecondaryText]; } -- (NSString *)secondaryText { - return [store objectForKey:NAMES_secondaryText]; +- (nullable NSString *)secondaryText { + return [store sdl_objectForName:SDLNameSecondaryText]; } -- (void)setTertiaryText:(NSString *)tertiaryText { - if (tertiaryText != nil) { - [store setObject:tertiaryText forKey:NAMES_tertiaryText]; - } else { - [store removeObjectForKey:NAMES_tertiaryText]; - } +- (void)setTertiaryText:(nullable NSString *)tertiaryText { + [store sdl_setObject:tertiaryText forName:SDLNameTertiaryText]; } -- (NSString *)tertiaryText { - return [store objectForKey:NAMES_tertiaryText]; +- (nullable NSString *)tertiaryText { + return [store sdl_objectForName:SDLNameTertiaryText]; } -- (void)setSecondaryImage:(SDLImage *)secondaryImage { - if (secondaryImage != nil) { - [store setObject:secondaryImage forKey:NAMES_secondaryImage]; - } else { - [store removeObjectForKey:NAMES_secondaryImage]; - } +- (void)setSecondaryImage:(nullable SDLImage *)secondaryImage { + [store sdl_setObject:secondaryImage forName:SDLNameSecondaryImage]; } -- (SDLImage *)secondaryImage { - NSObject *obj = [store objectForKey:NAMES_secondaryImage]; - if (obj == nil || [obj isKindOfClass:SDLImage.class]) { - return (SDLImage *)obj; - } else { - return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLImage *)secondaryImage { + return [store sdl_objectForName:SDLNameSecondaryImage ofClass:SDLImage.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLClimateControlCapabilities.h b/SmartDeviceLink/SDLClimateControlCapabilities.h new file mode 100644 index 000000000..46482057e --- /dev/null +++ b/SmartDeviceLink/SDLClimateControlCapabilities.h @@ -0,0 +1,115 @@ +// +// SDLClimateControlCapabilities.h +// + +#import "SDLRPCMessage.h" +#import "SDLDefrostZone.h" +#import "SDLVentilationMode.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Contains information about a climate control module's capabilities. + */ +@interface SDLClimateControlCapabilities : SDLRPCStruct + +- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable; + +/** + * @abstract The short friendly name of the climate control module. + * It should not be used to identify a module by mobile application. + * + * Max string length 100 chars + */ +@property (strong, nonatomic) NSString *moduleName; + +/** + * @abstract Availability of the control of fan speed. + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *fanSpeedAvailable; + +/** + * @abstract Availability of the control of desired temperature. + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *desiredTemperatureAvailable; + +/** + * @abstract Availability of the control of turn on/off AC. + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *acEnableAvailable; + +/** + * @abstract Availability of the control of enable/disable air conditioning is ON on the maximum level. + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *acMaxEnableAvailable; + +/** + * @abstract Availability of the control of enable/disable circulate Air mode. + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *circulateAirEnableAvailable; + +/** + * @abstract Availability of the control of enable/disable auto mode. + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *autoModeEnableAvailable; + +/** + * @abstract Availability of the control of enable/disable dual mode. + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *dualModeEnableAvailable; + +/** + * @abstract Availability of the control of defrost zones. + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *defrostZoneAvailable; + +/** + * @abstract A set of all defrost zones that are controllable. + * + * Optional, NSArray of type SDLDefrostZone minsize="1" maxsize="100" + */ +@property (nullable, strong, nonatomic) NSArray *defrostZone; + +/** + * @abstract Availability of the control of air ventilation mode. + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *ventilationModeAvailable; + +/** + * @abstract A set of all ventilation modes that are controllable. + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, NSArray of type SDLVentilationMode minsize="1" maxsize="100" + */ +@property (nullable, strong, nonatomic) NSArray *ventilationMode; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLClimateControlCapabilities.m b/SmartDeviceLink/SDLClimateControlCapabilities.m new file mode 100644 index 000000000..9ea4143d8 --- /dev/null +++ b/SmartDeviceLink/SDLClimateControlCapabilities.m @@ -0,0 +1,130 @@ +// +// SDLClimateControlCapabilities.m +// + +#import "SDLClimateControlCapabilities.h" +#import "SDLNames.h" +#import "NSMutableDictionary+Store.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLClimateControlCapabilities + +- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable { + self = [self init]; + if (!self) { + return nil; + } + + self.moduleName = moduleName; + self.fanSpeedAvailable = @(fanSpeedAvailable); + self.desiredTemperatureAvailable = @(desiredTemperatureAvailable); + self.acEnableAvailable = @(acEnableAvailable); + self.acMaxEnableAvailable = @(acMaxEnableAvailable); + self.circulateAirEnableAvailable = @(circulateAirEnableAvailable); + self.autoModeEnableAvailable = @(autoModeEnableAvailable); + self.dualModeEnableAvailable = @(dualModeEnableAvailable); + self.defrostZoneAvailable = @(defrostZoneAvailable); + self.ventilationModeAvailable = @(ventilationModeAvailable); + return self; +} + +- (void)setModuleName:(NSString *)moduleName { + [store sdl_setObject:moduleName forName:SDLNameModuleName]; +} + +- (NSString *)moduleName { + return [store sdl_objectForName:SDLNameModuleName]; +} + +- (void)setFanSpeedAvailable:(nullable NSNumber *)fanSpeedAvailable { + [store sdl_setObject:fanSpeedAvailable forName:SDLNameFanSpeedAvailable]; +} + +- (nullable NSNumber *)fanSpeedAvailable { + return [store sdl_objectForName:SDLNameFanSpeedAvailable]; +} + +- (void)setDesiredTemperatureAvailable:(nullable NSNumber *)desiredTemperatureAvailable { + [store sdl_setObject:desiredTemperatureAvailable forName:SDLNameDesiredTemperatureAvailable]; +} + +- (nullable NSNumber *)desiredTemperatureAvailable { + return [store sdl_objectForName:SDLNameDesiredTemperatureAvailable]; +} + +- (void)setAcEnableAvailable:(nullable NSNumber *)acEnableAvailable { + [store sdl_setObject:acEnableAvailable forName:SDLNameACEnableAvailable]; +} + +- (nullable NSNumber *)acEnableAvailable { + return [store sdl_objectForName:SDLNameACEnableAvailable]; +} + +- (void)setAcMaxEnableAvailable:(nullable NSNumber *)acMaxEnableAvailable { + [store sdl_setObject:acMaxEnableAvailable forName:SDLNameACMaxEnableAvailable]; +} + +- (nullable NSNumber *)acMaxEnableAvailable { + return [store sdl_objectForName:SDLNameACMaxEnableAvailable]; +} + +- (void)setCirculateAirEnableAvailable:(nullable NSNumber *)circulateAirEnableAvailable { + [store sdl_setObject:circulateAirEnableAvailable forName:SDLNameCirculateAirEnableAvailable]; +} + +- (nullable NSNumber *)circulateAirEnableAvailable { + return [store sdl_objectForName:SDLNameCirculateAirEnableAvailable]; +} + +- (void)setAutoModeEnableAvailable:(nullable NSNumber *)autoModeEnableAvailable { + [store sdl_setObject:autoModeEnableAvailable forName:SDLNameAutoModeEnableAvailable]; +} + +- (nullable NSNumber *)autoModeEnableAvailable { + return [store sdl_objectForName:SDLNameAutoModeEnableAvailable]; +} + +- (void)setDualModeEnableAvailable:(nullable NSNumber *)dualModeEnableAvailable { + [store sdl_setObject:dualModeEnableAvailable forName:SDLNameDualModeEnableAvailable]; +} + +- (nullable NSNumber *)dualModeEnableAvailable { + return [store sdl_objectForName:SDLNameDualModeEnableAvailable]; +} + +- (void)setDefrostZoneAvailable:(nullable NSNumber *)defrostZoneAvailable { + [store sdl_setObject:defrostZoneAvailable forName:SDLNameDefrostZoneAvailable]; +} + +- (nullable NSNumber *)defrostZoneAvailable { + return [store sdl_objectForName:SDLNameDefrostZoneAvailable]; +} + +- (void)setDefrostZone:(nullable NSArray *)defrostZone { + [store sdl_setObject:defrostZone forName:SDLNameDefrostZone]; +} + +- (nullable NSArray *)defrostZone { + return [store sdl_objectForName:SDLNameDefrostZone]; +} + +- (void)setVentilationModeAvailable:(nullable NSNumber *)ventilationModeAvailable { + [store sdl_setObject:ventilationModeAvailable forName:SDLNameVentilationModeAvailable]; +} + +- (nullable NSNumber *)ventilationModeAvailable { + return [store sdl_objectForName:SDLNameVentilationModeAvailable]; +} + +- (void)setVentilationMode:(nullable NSArray *)ventilationMode { + [store sdl_setObject:ventilationMode forName:SDLNameVentilationMode]; +} + +- (nullable NSArray *)ventilationMode { + return [store sdl_objectForName:SDLNameVentilationMode]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLClimateControlData.h b/SmartDeviceLink/SDLClimateControlData.h new file mode 100644 index 000000000..722bcd395 --- /dev/null +++ b/SmartDeviceLink/SDLClimateControlData.h @@ -0,0 +1,92 @@ +// +// SDLClimateControlData.h +// + +#import "SDLRPCMessage.h" +#import "SDLDefrostZone.h" +#import "SDLVentilationMode.h" + +NS_ASSUME_NONNULL_BEGIN + +@class SDLTemperature; + + +@interface SDLClimateControlData : SDLRPCStruct + +- (instancetype)initWithFanSpeed:(nullable NSNumber *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber *)acEnable circulateAirEnable:(nullable NSNumber *)circulateAirEnable autoModeEnable:(nullable NSNumber *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber *)dualModeEnable acMaxEnable:(nullable NSNumber *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode; + +/** + * @abstract Speed of Fan in integer + * + * Optional, MinValue- 0 MaxValue= 100 + */ +@property (nullable, strong, nonatomic) NSNumber *fanSpeed; + +/** + * @abstract The Current Temperature in SDLTemperature + * + * @warning This property is readonly and cannot be set on the module. + * + * Optional + */ +@property (nullable, strong, nonatomic) SDLTemperature *currentTemperature; + +/** + * @abstract Desired Temperature in SDLTemperature + * + * Optional + */ +@property (nullable, strong, nonatomic) SDLTemperature *desiredTemperature; + +/** + * @abstract Represents if AC is enabled. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *acEnable; + +/** + * @abstract Represents if circulation of air is enabled. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *circulateAirEnable; + +/** + * @abstract Represents if auto mode is enabled. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *autoModeEnable; + +/** + * @abstract Represents the kind of defrost zone + * + * Optional, SDLDefrostZone + */ +@property (nullable, strong, nonatomic) SDLDefrostZone defrostZone; + +/** + * @abstract Represents if dual mode is enabled. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *dualModeEnable; + +/** + * @abstract Represents if ac max is enabled. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *acMaxEnable; + +/** + * @abstract Represents the kind of Ventilation zone + * + * Optional, SDLVentilationMode + */ +@property (nullable, strong, nonatomic) SDLVentilationMode ventilationMode; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLClimateControlData.m b/SmartDeviceLink/SDLClimateControlData.m new file mode 100644 index 000000000..ddb98c102 --- /dev/null +++ b/SmartDeviceLink/SDLClimateControlData.m @@ -0,0 +1,115 @@ +// +// SDLClimateControlData.m +// + +#import "SDLClimateControlData.h" +#import "SDLNames.h" +#import "SDLTemperature.h" +#import "NSMutableDictionary+Store.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLClimateControlData + +- (instancetype)initWithFanSpeed:(nullable NSNumber *)fanSpeed desiredTemperature:(nullable SDLTemperature *)desiredTemperature acEnable:(nullable NSNumber *)acEnable circulateAirEnable:(nullable NSNumber *)circulateAirEnable autoModeEnable:(nullable NSNumber *)autoModeEnable defrostZone:(nullable SDLDefrostZone)defrostZone dualModeEnable:(nullable NSNumber *)dualModeEnable acMaxEnable:(nullable NSNumber *)acMaxEnable ventilationMode:(nullable SDLVentilationMode)ventilationMode { + self = [self init]; + if (!self) { + return nil; + } + + self.fanSpeed = fanSpeed; + self.desiredTemperature = desiredTemperature; + self.acEnable = acEnable; + self.circulateAirEnable = circulateAirEnable; + self.autoModeEnable = autoModeEnable; + self.defrostZone = defrostZone; + self.dualModeEnable = dualModeEnable; + self.acMaxEnable = acMaxEnable; + self.ventilationMode = ventilationMode; + + return self; +} + +- (void)setFanSpeed:(nullable NSNumber *)fanSpeed { + [store sdl_setObject:fanSpeed forName:SDLNameFanSpeed]; +} + +- (nullable NSNumber *)fanSpeed { + return [store sdl_objectForName:SDLNameFanSpeed]; +} + +- (void)setCurrentTemperature:(nullable SDLTemperature *)currentTemperature { + [store sdl_setObject:currentTemperature forName:SDLNameCurrentTemperature]; +} + +- (nullable SDLTemperature *)currentTemperature { + return [store sdl_objectForName:SDLNameCurrentTemperature ofClass:SDLTemperature.class]; +} + +- (void)setDesiredTemperature:(nullable SDLTemperature *)desiredTemperature { + [store sdl_setObject:desiredTemperature forName:SDLNameDesiredTemperature]; +} + +- (nullable SDLTemperature *)desiredTemperature { + return [store sdl_objectForName:SDLNameDesiredTemperature ofClass:SDLTemperature.class]; +} + +- (void)setAcEnable:(nullable NSNumber *)acEnable { + [store sdl_setObject:acEnable forName:SDLNameACEnable]; +} + +- (nullable NSNumber *)acEnable { + return [store sdl_objectForName:SDLNameACEnable]; +} + +- (void)setCirculateAirEnable:(nullable NSNumber *)circulateAirEnable { + [store sdl_setObject:circulateAirEnable forName:SDLNameCirculateAirEnable]; +} + +- (nullable NSNumber *)circulateAirEnable { + return [store sdl_objectForName:SDLNameCirculateAirEnable]; +} + +- (void)setAutoModeEnable:(nullable NSNumber *)autoModeEnable { + [store sdl_setObject:autoModeEnable forName:SDLNameAutoModeEnable]; +} + +- (nullable NSNumber *)autoModeEnable { + return [store sdl_objectForName:SDLNameAutoModeEnable]; +} + +- (void)setDefrostZone:(nullable SDLDefrostZone)defrostZone { + [store sdl_setObject:defrostZone forName:SDLNameDefrostZone]; +} + +- (nullable SDLDefrostZone)defrostZone { + return [store sdl_objectForName:SDLNameDefrostZone]; +} + +- (void)setDualModeEnable:(nullable NSNumber *)dualModeEnable { + [store sdl_setObject:dualModeEnable forName:SDLNameDualModeEnable]; +} + +- (nullable NSNumber *)dualModeEnable { + return [store sdl_objectForName:SDLNameDualModeEnable]; +} + +- (void)setAcMaxEnable:(nullable NSNumber *)acMaxEnable { + [store sdl_setObject:acMaxEnable forName:SDLNameACMaxEnable]; +} + +- (nullable NSNumber *)acMaxEnable { + return [store sdl_objectForName:SDLNameACMaxEnable]; +} + +- (void)setVentilationMode:(nullable SDLVentilationMode)ventilationMode { + [store sdl_setObject:ventilationMode forName:SDLNameVentilationMode]; +} + +- (nullable SDLVentilationMode)ventilationMode { + return [store sdl_objectForName:SDLNameVentilationMode]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLClusterModeStatus.h b/SmartDeviceLink/SDLClusterModeStatus.h index 7b745804f..558a1fdcc 100644 --- a/SmartDeviceLink/SDLClusterModeStatus.h +++ b/SmartDeviceLink/SDLClusterModeStatus.h @@ -3,20 +3,19 @@ #import "SDLRPCMessage.h" -@class SDLCarModeStatus; -@class SDLPowerModeQualificationStatus; -@class SDLPowerModeStatus; +#import "SDLCarModeStatus.h" +#import "SDLPowerModeQualificationStatus.h" +#import "SDLPowerModeStatus.h" +NS_ASSUME_NONNULL_BEGIN -@interface SDLClusterModeStatus : SDLRPCStruct { -} +@interface SDLClusterModeStatus : SDLRPCStruct -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -@property (strong) NSNumber *powerModeActive; -@property (strong) SDLPowerModeQualificationStatus *powerModeQualificationStatus; -@property (strong) SDLCarModeStatus *carModeStatus; -@property (strong) SDLPowerModeStatus *powerModeStatus; +@property (strong, nonatomic) NSNumber *powerModeActive; +@property (strong, nonatomic) SDLPowerModeQualificationStatus powerModeQualificationStatus; +@property (strong, nonatomic) SDLCarModeStatus carModeStatus; +@property (strong, nonatomic) SDLPowerModeStatus powerModeStatus; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLClusterModeStatus.m b/SmartDeviceLink/SDLClusterModeStatus.m index ecd2a528b..e182fa17f 100644 --- a/SmartDeviceLink/SDLClusterModeStatus.m +++ b/SmartDeviceLink/SDLClusterModeStatus.m @@ -3,87 +3,45 @@ #import "SDLClusterModeStatus.h" -#import "SDLCarModeStatus.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -#import "SDLPowerModeQualificationStatus.h" -#import "SDLPowerModeStatus.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLClusterModeStatus -- (instancetype)init { - if (self = [super init]) { - } - return self; +- (void)setPowerModeActive:(NSNumber *)powerModeActive { + [store sdl_setObject:powerModeActive forName:SDLNamePowerModeActive]; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (NSNumber *)powerModeActive { + return [store sdl_objectForName:SDLNamePowerModeActive]; } -- (void)setPowerModeActive:(NSNumber *)powerModeActive { - if (powerModeActive != nil) { - [store setObject:powerModeActive forKey:NAMES_powerModeActive]; - } else { - [store removeObjectForKey:NAMES_powerModeActive]; - } +- (void)setPowerModeQualificationStatus:(SDLPowerModeQualificationStatus)powerModeQualificationStatus { + [store sdl_setObject:powerModeQualificationStatus forName:SDLNamePowerModeQualificationStatus]; } -- (NSNumber *)powerModeActive { - return [store objectForKey:NAMES_powerModeActive]; +- (SDLPowerModeQualificationStatus)powerModeQualificationStatus { + return [store sdl_objectForName:SDLNamePowerModeQualificationStatus]; } -- (void)setPowerModeQualificationStatus:(SDLPowerModeQualificationStatus *)powerModeQualificationStatus { - if (powerModeQualificationStatus != nil) { - [store setObject:powerModeQualificationStatus forKey:NAMES_powerModeQualificationStatus]; - } else { - [store removeObjectForKey:NAMES_powerModeQualificationStatus]; - } +- (void)setCarModeStatus:(SDLCarModeStatus)carModeStatus { + [store sdl_setObject:carModeStatus forName:SDLNameCarModeStatus]; } -- (SDLPowerModeQualificationStatus *)powerModeQualificationStatus { - NSObject *obj = [store objectForKey:NAMES_powerModeQualificationStatus]; - if (obj == nil || [obj isKindOfClass:SDLPowerModeQualificationStatus.class]) { - return (SDLPowerModeQualificationStatus *)obj; - } else { - return [SDLPowerModeQualificationStatus valueOf:(NSString *)obj]; - } +- (SDLCarModeStatus)carModeStatus { + return [store sdl_objectForName:SDLNameCarModeStatus]; } -- (void)setCarModeStatus:(SDLCarModeStatus *)carModeStatus { - if (carModeStatus != nil) { - [store setObject:carModeStatus forKey:NAMES_carModeStatus]; - } else { - [store removeObjectForKey:NAMES_carModeStatus]; - } +- (void)setPowerModeStatus:(SDLPowerModeStatus)powerModeStatus { + [store sdl_setObject:powerModeStatus forName:SDLNamePowerModeStatus]; } -- (SDLCarModeStatus *)carModeStatus { - NSObject *obj = [store objectForKey:NAMES_carModeStatus]; - if (obj == nil || [obj isKindOfClass:SDLCarModeStatus.class]) { - return (SDLCarModeStatus *)obj; - } else { - return [SDLCarModeStatus valueOf:(NSString *)obj]; - } -} - -- (void)setPowerModeStatus:(SDLPowerModeStatus *)powerModeStatus { - if (powerModeStatus != nil) { - [store setObject:powerModeStatus forKey:NAMES_powerModeStatus]; - } else { - [store removeObjectForKey:NAMES_powerModeStatus]; - } -} - -- (SDLPowerModeStatus *)powerModeStatus { - NSObject *obj = [store objectForKey:NAMES_powerModeStatus]; - if (obj == nil || [obj isKindOfClass:SDLPowerModeStatus.class]) { - return (SDLPowerModeStatus *)obj; - } else { - return [SDLPowerModeStatus valueOf:(NSString *)obj]; - } +- (SDLPowerModeStatus)powerModeStatus { + return [store sdl_objectForName:SDLNamePowerModeStatus]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLCompassDirection.h b/SmartDeviceLink/SDLCompassDirection.h index cad90cc90..712081452 100644 --- a/SmartDeviceLink/SDLCompassDirection.h +++ b/SmartDeviceLink/SDLCompassDirection.h @@ -9,68 +9,44 @@ * * @since SDL 2.0 */ -@interface SDLCompassDirection : SDLEnum { -} - -/** - * @abstract Convert String to SDLCompassDirection - * @param value The value of the string to get an object for - * @return SDLCompassDirection - */ -+ (SDLCompassDirection *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLCompassDirection - * @return An array that store all possible SDLCompassDirection - */ -+ (NSArray *)values; +typedef SDLEnum SDLCompassDirection SDL_SWIFT_ENUM; /** * @abstract Direction North - * @return A SDLCompassDirection with the value of *NORTH* */ -+ (SDLCompassDirection *)NORTH; +extern SDLCompassDirection const SDLCompassDirectionNorth; /** * @abstract Direction Northwest - * @return A SDLCompassDirection with the value of *NORTHWEST* */ -+ (SDLCompassDirection *)NORTHWEST; +extern SDLCompassDirection const SDLCompassDirectionNorthwest; /** * @abstract Direction West - * @return A SDLCompassDirection with the value of *WEST* */ -+ (SDLCompassDirection *)WEST; +extern SDLCompassDirection const SDLCompassDirectionWest; /** * @abstract Direction Southwest - * @return A SDLCompassDirection with the value of *SOUTHWEST* */ -+ (SDLCompassDirection *)SOUTHWEST; +extern SDLCompassDirection const SDLCompassDirectionSouthwest; /** * @abstract Direction South - * @return A SDLCompassDirection with the value of *SOUTH* */ -+ (SDLCompassDirection *)SOUTH; +extern SDLCompassDirection const SDLCompassDirectionSouth; /** * @abstract Direction Southeast - * @return A SDLCompassDirection with the value of *SOUTHEAST* */ -+ (SDLCompassDirection *)SOUTHEAST; +extern SDLCompassDirection const SDLCompassDirectionSoutheast; /** * @abstract Direction East - * @return A SDLCompassDirection with the value of *EAST* */ -+ (SDLCompassDirection *)EAST; +extern SDLCompassDirection const SDLCompassDirectionEast; /** * @abstract Direction Northeast - * @return A SDLCompassDirection with the value of *NORTHEAST* */ -+ (SDLCompassDirection *)NORTHEAST; - -@end +extern SDLCompassDirection const SDLCompassDirectionNortheast; diff --git a/SmartDeviceLink/SDLCompassDirection.m b/SmartDeviceLink/SDLCompassDirection.m index f1c79fed1..14d41a118 100644 --- a/SmartDeviceLink/SDLCompassDirection.m +++ b/SmartDeviceLink/SDLCompassDirection.m @@ -4,98 +4,11 @@ #import "SDLCompassDirection.h" -SDLCompassDirection *SDLCompassDirection_NORTH = nil; -SDLCompassDirection *SDLCompassDirection_NORTHWEST = nil; -SDLCompassDirection *SDLCompassDirection_WEST = nil; -SDLCompassDirection *SDLCompassDirection_SOUTHWEST = nil; -SDLCompassDirection *SDLCompassDirection_SOUTH = nil; -SDLCompassDirection *SDLCompassDirection_SOUTHEAST = nil; -SDLCompassDirection *SDLCompassDirection_EAST = nil; -SDLCompassDirection *SDLCompassDirection_NORTHEAST = nil; - -NSArray *SDLCompassDirection_values = nil; - -@implementation SDLCompassDirection - -+ (SDLCompassDirection *)valueOf:(NSString *)value { - for (SDLCompassDirection *item in SDLCompassDirection.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLCompassDirection_values == nil) { - SDLCompassDirection_values = @[ - SDLCompassDirection.NORTH, - SDLCompassDirection.NORTHWEST, - SDLCompassDirection.WEST, - SDLCompassDirection.SOUTHWEST, - SDLCompassDirection.SOUTH, - SDLCompassDirection.SOUTHEAST, - SDLCompassDirection.EAST, - SDLCompassDirection.NORTHEAST, - ]; - } - return SDLCompassDirection_values; -} - -+ (SDLCompassDirection *)NORTH { - if (SDLCompassDirection_NORTH == nil) { - SDLCompassDirection_NORTH = [[SDLCompassDirection alloc] initWithValue:@"NORTH"]; - } - return SDLCompassDirection_NORTH; -} - -+ (SDLCompassDirection *)NORTHWEST { - if (SDLCompassDirection_NORTHWEST == nil) { - SDLCompassDirection_NORTHWEST = [[SDLCompassDirection alloc] initWithValue:@"NORTHWEST"]; - } - return SDLCompassDirection_NORTHWEST; -} - -+ (SDLCompassDirection *)WEST { - if (SDLCompassDirection_WEST == nil) { - SDLCompassDirection_WEST = [[SDLCompassDirection alloc] initWithValue:@"WEST"]; - } - return SDLCompassDirection_WEST; -} - -+ (SDLCompassDirection *)SOUTHWEST { - if (SDLCompassDirection_SOUTHWEST == nil) { - SDLCompassDirection_SOUTHWEST = [[SDLCompassDirection alloc] initWithValue:@"SOUTHWEST"]; - } - return SDLCompassDirection_SOUTHWEST; -} - -+ (SDLCompassDirection *)SOUTH { - if (SDLCompassDirection_SOUTH == nil) { - SDLCompassDirection_SOUTH = [[SDLCompassDirection alloc] initWithValue:@"SOUTH"]; - } - return SDLCompassDirection_SOUTH; -} - -+ (SDLCompassDirection *)SOUTHEAST { - if (SDLCompassDirection_SOUTHEAST == nil) { - SDLCompassDirection_SOUTHEAST = [[SDLCompassDirection alloc] initWithValue:@"SOUTHEAST"]; - } - return SDLCompassDirection_SOUTHEAST; -} - -+ (SDLCompassDirection *)EAST { - if (SDLCompassDirection_EAST == nil) { - SDLCompassDirection_EAST = [[SDLCompassDirection alloc] initWithValue:@"EAST"]; - } - return SDLCompassDirection_EAST; -} - -+ (SDLCompassDirection *)NORTHEAST { - if (SDLCompassDirection_NORTHEAST == nil) { - SDLCompassDirection_NORTHEAST = [[SDLCompassDirection alloc] initWithValue:@"NORTHEAST"]; - } - return SDLCompassDirection_NORTHEAST; -} - -@end +SDLCompassDirection const SDLCompassDirectionNorth = @"NORTH"; +SDLCompassDirection const SDLCompassDirectionNorthwest = @"NORTHWEST"; +SDLCompassDirection const SDLCompassDirectionWest = @"WEST"; +SDLCompassDirection const SDLCompassDirectionSouthwest = @"SOUTHWEST"; +SDLCompassDirection const SDLCompassDirectionSouth = @"SOUTH"; +SDLCompassDirection const SDLCompassDirectionSoutheast = @"SOUTHEAST"; +SDLCompassDirection const SDLCompassDirectionEast = @"EAST"; +SDLCompassDirection const SDLCompassDirectionNortheast = @"NORTHEAST"; diff --git a/SmartDeviceLink/SDLComponentVolumeStatus.h b/SmartDeviceLink/SDLComponentVolumeStatus.h index 8df22663c..b9e69b7ed 100644 --- a/SmartDeviceLink/SDLComponentVolumeStatus.h +++ b/SmartDeviceLink/SDLComponentVolumeStatus.h @@ -9,56 +9,34 @@ * * @since SDL 2.0 */ -@interface SDLComponentVolumeStatus : SDLEnum { -} - -/** - * @abstract Convert String to SDLComponentVolumeStatus - * @param value The value of the string to get an object for - * @return SDLComponentVolumeStatus - */ -+ (SDLComponentVolumeStatus *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLComponentVolumeStatus - * @return An array that store all possible SDLComponentVolumeStatus - */ -+ (NSArray *)values; +typedef SDLEnum SDLComponentVolumeStatus SDL_SWIFT_ENUM; /** * @abstract Unknown SDLComponentVolumeStatus - * @return a SDLComponentVolumeStatus with the value of *UNKNOWN* */ -+ (SDLComponentVolumeStatus *)UNKNOWN; +extern SDLComponentVolumeStatus const SDLComponentVolumeStatusUnknown; /** * @abstract Normal SDLComponentVolumeStatus - * @return a SDLComponentVolumeStatus with the value of *NORMAL* */ -+ (SDLComponentVolumeStatus *)NORMAL; +extern SDLComponentVolumeStatus const SDLComponentVolumeStatusNormal; /** * @abstract Low SDLComponentVolumeStatus - * @return a SDLComponentVolumeStatus with the value of *LOW* */ -+ (SDLComponentVolumeStatus *)LOW; +extern SDLComponentVolumeStatus const SDLComponentVolumeStatusLow; /** * @abstract Fault SDLComponentVolumeStatus - * @return a SDLComponentVolumeStatus with the value of *FAULT* */ -+ (SDLComponentVolumeStatus *)FAULT; +extern SDLComponentVolumeStatus const SDLComponentVolumeStatusFault; /** * @abstract Alert SDLComponentVolumeStatus - * @return a SDLComponentVolumeStatus with the value of *ALERT* */ -+ (SDLComponentVolumeStatus *)ALERT; +extern SDLComponentVolumeStatus const SDLComponentVolumeStatusAlert; /** * @abstract Not supported SDLComponentVolumeStatus - * @return a SDLComponentVolumeStatus with the value of *NOT_SUPPORTED* */ -+ (SDLComponentVolumeStatus *)NOT_SUPPORTED; - -@end +extern SDLComponentVolumeStatus const SDLComponentVolumeStatusNotSupported; diff --git a/SmartDeviceLink/SDLComponentVolumeStatus.m b/SmartDeviceLink/SDLComponentVolumeStatus.m index 2e6834fb5..e688b9fc2 100644 --- a/SmartDeviceLink/SDLComponentVolumeStatus.m +++ b/SmartDeviceLink/SDLComponentVolumeStatus.m @@ -4,80 +4,9 @@ #import "SDLComponentVolumeStatus.h" -SDLComponentVolumeStatus *SDLComponentVolumeStatus_UNKNOWN = nil; -SDLComponentVolumeStatus *SDLComponentVolumeStatus_NORMAL = nil; -SDLComponentVolumeStatus *SDLComponentVolumeStatus_LOW = nil; -SDLComponentVolumeStatus *SDLComponentVolumeStatus_FAULT = nil; -SDLComponentVolumeStatus *SDLComponentVolumeStatus_ALERT = nil; -SDLComponentVolumeStatus *SDLComponentVolumeStatus_NOT_SUPPORTED = nil; - -NSArray *SDLComponentVolumeStatus_values = nil; - -@implementation SDLComponentVolumeStatus - -+ (SDLComponentVolumeStatus *)valueOf:(NSString *)value { - for (SDLComponentVolumeStatus *item in SDLComponentVolumeStatus.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLComponentVolumeStatus_values == nil) { - SDLComponentVolumeStatus_values = @[ - SDLComponentVolumeStatus.UNKNOWN, - SDLComponentVolumeStatus.NORMAL, - SDLComponentVolumeStatus.LOW, - SDLComponentVolumeStatus.FAULT, - SDLComponentVolumeStatus.ALERT, - SDLComponentVolumeStatus.NOT_SUPPORTED, - ]; - } - return SDLComponentVolumeStatus_values; -} - -+ (SDLComponentVolumeStatus *)UNKNOWN { - if (SDLComponentVolumeStatus_UNKNOWN == nil) { - SDLComponentVolumeStatus_UNKNOWN = [[SDLComponentVolumeStatus alloc] initWithValue:@"UNKNOWN"]; - } - return SDLComponentVolumeStatus_UNKNOWN; -} - -+ (SDLComponentVolumeStatus *)NORMAL { - if (SDLComponentVolumeStatus_NORMAL == nil) { - SDLComponentVolumeStatus_NORMAL = [[SDLComponentVolumeStatus alloc] initWithValue:@"NORMAL"]; - } - return SDLComponentVolumeStatus_NORMAL; -} - -+ (SDLComponentVolumeStatus *)LOW { - if (SDLComponentVolumeStatus_LOW == nil) { - SDLComponentVolumeStatus_LOW = [[SDLComponentVolumeStatus alloc] initWithValue:@"LOW"]; - } - return SDLComponentVolumeStatus_LOW; -} - -+ (SDLComponentVolumeStatus *)FAULT { - if (SDLComponentVolumeStatus_FAULT == nil) { - SDLComponentVolumeStatus_FAULT = [[SDLComponentVolumeStatus alloc] initWithValue:@"FAULT"]; - } - return SDLComponentVolumeStatus_FAULT; -} - -+ (SDLComponentVolumeStatus *)ALERT { - if (SDLComponentVolumeStatus_ALERT == nil) { - SDLComponentVolumeStatus_ALERT = [[SDLComponentVolumeStatus alloc] initWithValue:@"ALERT"]; - } - return SDLComponentVolumeStatus_ALERT; -} - -+ (SDLComponentVolumeStatus *)NOT_SUPPORTED { - if (SDLComponentVolumeStatus_NOT_SUPPORTED == nil) { - SDLComponentVolumeStatus_NOT_SUPPORTED = [[SDLComponentVolumeStatus alloc] initWithValue:@"NOT_SUPPORTED"]; - } - return SDLComponentVolumeStatus_NOT_SUPPORTED; -} - -@end +SDLComponentVolumeStatus const SDLComponentVolumeStatusUnknown = @"UNKNOWN"; +SDLComponentVolumeStatus const SDLComponentVolumeStatusNormal = @"NORMAL"; +SDLComponentVolumeStatus const SDLComponentVolumeStatusLow = @"LOW"; +SDLComponentVolumeStatus const SDLComponentVolumeStatusFault = @"FAULT"; +SDLComponentVolumeStatus const SDLComponentVolumeStatusAlert = @"ALERT"; +SDLComponentVolumeStatus const SDLComponentVolumeStatusNotSupported = @"NOT_SUPPORTED"; diff --git a/SmartDeviceLink/SDLConfiguration.h b/SmartDeviceLink/SDLConfiguration.h index ad3a8cb95..9f92cd6c1 100644 --- a/SmartDeviceLink/SDLConfiguration.h +++ b/SmartDeviceLink/SDLConfiguration.h @@ -10,6 +10,8 @@ @class SDLLifecycleConfiguration; @class SDLLockScreenConfiguration; +@class SDLLogConfiguration; +@class SDLStreamingMediaConfiguration; NS_ASSUME_NONNULL_BEGIN @@ -26,24 +28,56 @@ NS_ASSUME_NONNULL_BEGIN @property (copy, nonatomic, readonly) SDLLockScreenConfiguration *lockScreenConfig; /** - * Create a new configuration to be passed into SDLManager. - * - * @param lifecycleConfig The lifecycle configuration to be used. - * @param lockScreenConfig The lockscreen configuration to be used. If nil, this will be `enabledConfiguration`. - * - * @return The configuration + The log configuration. */ -- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(SDLLockScreenConfiguration *)lockScreenConfig; +@property (copy, nonatomic, readonly) SDLLogConfiguration *loggingConfig; /** - * Create a new configuration to be passed into SDLManager. - * - * @param lifecycleConfig The lifecycle configuration to be used. - * @param lockScreenConfig The lockscreen configuration to be used. If nil, this will be `enabledConfiguration`. - * - * @return The configuration + The configuration */ -+ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(SDLLockScreenConfiguration *)lockScreenConfig; +@property (copy, nonatomic, readonly) SDLStreamingMediaConfiguration *streamingMediaConfig; + +/** + Create a new configuration to be passed into SDLManager with a custom lifecycle, lock screen, and logging configuration. + + @param lifecycleConfig The lifecycle configuration to be used. + @param lockScreenConfig The lockscreen configuration to be used, or `enabledConfiguration` if nil. + @param logConfig The logging configuration to be used, or `defaultConfiguration` if nil. + @return The configuration + */ +- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig; + +/** + Create a new configuration to be passed into SDLManager with a custom lifecycle, lock screen, and logging configuration. + + @param lifecycleConfig The lifecycle configuration to be used. + @param lockScreenConfig The lockscreen configuration to be used, or `enabledConfiguration` if nil. + @param logConfig The logging configuration to be used, or `defaultConfiguration` if nil. + @return The configuration + */ ++ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig NS_SWIFT_UNAVAILABLE("Use an initializer instead"); + +/** + Create a new configuration to be passed into SDLManager with a custom lifecycle, lock screen, logging, and streaming media configuration. + + @param lifecycleConfig The lifecycle configuration to be used. + @param lockScreenConfig The lockscreen configuration to be used, or `enabledConfiguration` if nil. + @param logConfig The logging configuration to be used, or `defaultConfiguration` if nil. + @param streamingMediaConfig The streaming media configuration to be used, or nil because it is not needed. + @return The configuration + */ +- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig; + +/** + Create a new configuration to be passed into SDLManager with a custom lifecycle, lock screen, logging, and streaming media configuration. + + @param lifecycleConfig The lifecycle configuration to be used. + @param lockScreenConfig The lockscreen configuration to be used, or `enabledConfiguration` if nil. + @param logConfig The logging configuration to be used, or `defaultConfiguration` if nil. + @param streamingMediaConfig The streaming media configuration to be used, or nil because it is not needed. + @return The configuration + */ ++ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig NS_SWIFT_UNAVAILABLE("Use an initializer instead"); @end diff --git a/SmartDeviceLink/SDLConfiguration.m b/SmartDeviceLink/SDLConfiguration.m index 3ad25dbd8..cbf700ba9 100644 --- a/SmartDeviceLink/SDLConfiguration.m +++ b/SmartDeviceLink/SDLConfiguration.m @@ -10,29 +10,77 @@ #import "SDLLifecycleConfiguration.h" #import "SDLLockScreenConfiguration.h" +#import "SDLLogConfiguration.h" +#import "SDLStreamingMediaConfiguration.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLConfiguration -- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(SDLLockScreenConfiguration *)lockScreenConfig { +- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfiguration { + return [self initWithLifecycle:lifecycleConfiguration lockScreen:nil logging:nil]; +} + ++ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfiguration { + return [[self alloc] initWithLifecycle:lifecycleConfiguration lockScreen:nil logging:nil]; +} + +- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig { + return [self initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:nil]; +} + ++ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig { + return [[self alloc] initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig]; +} + +- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig { self = [super init]; if (!self) { return nil; } _lifecycleConfig = lifecycleConfig; - _lockScreenConfig = lockScreenConfig; + _lockScreenConfig = lockScreenConfig ?: [SDLLockScreenConfiguration enabledConfiguration]; + _loggingConfig = logConfig ?: [SDLLogConfiguration defaultConfiguration]; return self; } -+ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(SDLLockScreenConfiguration *)lockScreenConfig { - return [[self alloc] initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig]; ++ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig { + return [[self alloc] initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig]; } +- (instancetype)initWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig { + self = [super init]; + if (!self) { + return nil; + } + + _lifecycleConfig = lifecycleConfig; + _lockScreenConfig = lockScreenConfig ?: [SDLLockScreenConfiguration enabledConfiguration]; + _loggingConfig = logConfig ?: [SDLLogConfiguration defaultConfiguration]; + _streamingMediaConfig = streamingMediaConfig; + + if (_streamingMediaConfig != nil) { + // If we have a streaming config, the apptype MUST be navigation or projection + NSAssert(([_lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeNavigation] || [_lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeProjection]), @"You should only set a streaming media configuration if your app is a NAVIGATION or PROJECTION HMI type"); + _streamingMediaConfig = streamingMediaConfig; + } else { + // If we don't have a streaming config, we MUST NOT be navigation or projection + NSAssert(!([_lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeNavigation] || [_lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeProjection]), @"If your app is a NAVIGATION or PROJECTION HMI type, you must set a streaming media configuration on SDLConfiguration"); + } + + return self; +} + ++ (instancetype)configurationWithLifecycle:(SDLLifecycleConfiguration *)lifecycleConfig lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig logging:(nullable SDLLogConfiguration *)logConfig streamingMedia:(nullable SDLStreamingMediaConfiguration *)streamingMediaConfig { + return [[self alloc] initWithLifecycle:lifecycleConfig lockScreen:lockScreenConfig logging:logConfig streamingMedia:streamingMediaConfig]; +} + +#pragma mark - NSCopying + - (id)copyWithZone:(nullable NSZone *)zone { - SDLConfiguration *new = [[SDLConfiguration allocWithZone:zone] initWithLifecycle : _lifecycleConfig lockScreen : _lockScreenConfig]; + SDLConfiguration *new = [[SDLConfiguration allocWithZone:zone] initWithLifecycle: _lifecycleConfig lockScreen: _lockScreenConfig logging:_loggingConfig streamingMedia:_streamingMediaConfig]; return new; } diff --git a/SmartDeviceLink/SDLConsoleController.h b/SmartDeviceLink/SDLConsoleController.h deleted file mode 100644 index 5dec97948..000000000 --- a/SmartDeviceLink/SDLConsoleController.h +++ /dev/null @@ -1,21 +0,0 @@ -// SDLConsoleController.h -// - -#import -#import - -#import "SDLDebugTool.h" - - -@interface SDLConsoleController : UITableViewController { - NSMutableArray *messageList; - BOOL atBottom; - NSDateFormatter *dateFormatter; -} - -@property (strong, readonly) NSMutableArray *messageList; - -- (instancetype)initWithTableView:(UITableView *)tableView; - - -@end diff --git a/SmartDeviceLink/SDLConsoleController.m b/SmartDeviceLink/SDLConsoleController.m deleted file mode 100644 index fcbcd78a7..000000000 --- a/SmartDeviceLink/SDLConsoleController.m +++ /dev/null @@ -1,201 +0,0 @@ -// SDLConsoleController.m -// - -#import "SDLConsoleController.h" - -#import "SDLJsonEncoder.h" -#import "SDLRPCResponse.h" - - -@implementation SDLConsoleController - -@synthesize messageList; - -- (instancetype)initWithTableView:(UITableView *)tableView { - if (self = [super initWithStyle:UITableViewStylePlain]) { - self.tableView = tableView; - self.tableView.delegate = self; - self.tableView.dataSource = self; - [self viewDidLoad]; - } - return self; -} - - -- (void)append:(id)toAppend { - dispatch_async(dispatch_get_main_queue(), ^{ - //Insert the new data - NSMutableDictionary *dictionary = [NSMutableDictionary dictionary]; - - [dictionary setObject:toAppend forKey:@"object"]; - [dictionary setObject:[NSDate date] forKey:@"date"]; - - [messageList addObject:dictionary]; - NSIndexPath *newIndex = [NSIndexPath indexPathForRow:(messageList.count - 1) inSection:0]; - [self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndex] withRowAnimation:UITableViewRowAnimationNone]; - - //If we were at the bottom, scroll to the new bottom. - if (atBottom) { - [self.tableView scrollToRowAtIndexPath:newIndex atScrollPosition:UITableViewScrollPositionBottom animated:YES]; - } - - [self.tableView reloadData]; - }); -} - -- (BOOL)isLastRowVisible { - if (messageList.count == 0) { - return YES; - } else { - NSIndexPath *lastIndex = [NSIndexPath indexPathForRow:(messageList.count - 1) inSection:0]; - - NSArray *visibleRowIndexes = [self.tableView indexPathsForVisibleRows]; - for (NSIndexPath *aPath in visibleRowIndexes) { - if ([aPath compare:lastIndex] == NSOrderedSame) { - return YES; - } - } - } - return NO; -} - - -#pragma mark - -#pragma mark SDLDebugTool Console Delegate - -- (void)logInfo:(NSString *)info { - [self append:info]; -} - -- (void)logException:(NSException *)ex withMessage:(NSString *)message { - [self append:message]; - [self append:[ex description]]; -} - -- (void)logMessage:(SDLRPCMessage *)message { - [self append:message]; -} - - -#pragma mark - -#pragma mark View lifecycle - - -- (void)viewDidLoad { - [SDLDebugTool addConsole:self]; - - [super viewDidLoad]; - - atBottom = YES; - - messageList = [[NSMutableArray alloc] initWithCapacity:100]; - dateFormatter = [[NSDateFormatter alloc] init]; - dateFormatter.dateFormat = @"hh:mm:ss.SSS"; -} - -#pragma mark - -#pragma mark Scroll View Delegate - -- (void)updateWhetherScrolledToBottom { - if ([self isLastRowVisible]) { - atBottom = YES; - } else { - atBottom = NO; - } -} - -- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { - [self updateWhetherScrolledToBottom]; -} - -- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)willDecelerate { - [self updateWhetherScrolledToBottom]; -} - - -#pragma mark - -#pragma mark Table view data source - -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { - // Return the number of sections. - return 1; -} - -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - // Return the number of rows in the section. - return messageList.count; -} - -// Customize the appearance of table view cells. -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - static NSString *CellIdentifier = @"Cell"; - - UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; - if (cell == nil) { - cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; - } - - NSDictionary *currentDictionary = [messageList objectAtIndex:indexPath.row]; - id msg = [currentDictionary objectForKey:@"object"]; - - NSString *tempdetail = [@"Time: " stringByAppendingString:[dateFormatter stringFromDate:[currentDictionary objectForKey:@"date"]]]; - - if ([msg isKindOfClass:SDLRPCMessage.class]) { - SDLRPCMessage *rpc = msg; - NSString *title = [NSString stringWithFormat:@"%@ (%@)", rpc.name, rpc.messageType]; - - cell.textLabel.text = title; - - if ([rpc.messageType isEqualToString:@"response"]) { - SDLRPCResponse *response = (SDLRPCResponse *)rpc; - - NSString *detail = [NSString stringWithFormat:@"%@ - %@", tempdetail, [response resultCode]]; - cell.detailTextLabel.text = detail; - } else { - cell.detailTextLabel.text = tempdetail; - } - - } else { - cell.textLabel.text = msg; - cell.detailTextLabel.text = tempdetail; - } - - return cell; -} - - -#pragma mark - -#pragma mark Table view delegate - -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { - NSDictionary *currentDictionary = [messageList objectAtIndex:indexPath.row]; - id obj = [currentDictionary objectForKey:@"object"]; - - NSString *alertText = nil; - if (obj == nil || [obj isKindOfClass:SDLRPCMessage.class]) { - SDLRPCMessage *rpc = obj; - NSDictionary *dictionary = [rpc serializeAsDictionary:2]; - NSError *error = nil; - NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary - options:NSJSONWritingPrettyPrinted - error:&error]; - - if (!jsonData) { - alertText = @"Error parsing the JSON."; - } else { - alertText = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; - } - - } else { - alertText = [NSString stringWithFormat:@"%@", [obj description]]; - } - - UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"RPCMessage", nil) message:alertText delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; - [alertView show]; - alertView = nil; - - [self.tableView deselectRowAtIndexPath:indexPath animated:YES]; -} - - -@end diff --git a/SmartDeviceLink/SDLControlFramePayloadRPCStartService.h b/SmartDeviceLink/SDLControlFramePayloadRPCStartService.h index af3d97a12..2a1f7d674 100644 --- a/SmartDeviceLink/SDLControlFramePayloadRPCStartService.h +++ b/SmartDeviceLink/SDLControlFramePayloadRPCStartService.h @@ -17,7 +17,7 @@ NS_ASSUME_NONNULL_BEGIN /// The max version of protocol version supported by client requesting service to start. Must be in the format "Major.Minor.Patch" @property (copy, nonatomic, readonly, nullable) NSString *protocolVersion; -- (instancetype)initWithVersion:(NSString *)stringVersion; +- (instancetype)initWithVersion:(nullable NSString *)stringVersion; @end diff --git a/SmartDeviceLink/SDLControlFramePayloadRPCStartService.m b/SmartDeviceLink/SDLControlFramePayloadRPCStartService.m index 95245e93e..d943d6a47 100644 --- a/SmartDeviceLink/SDLControlFramePayloadRPCStartService.m +++ b/SmartDeviceLink/SDLControlFramePayloadRPCStartService.m @@ -23,7 +23,7 @@ @interface SDLControlFramePayloadRPCStartService () @implementation SDLControlFramePayloadRPCStartService -- (instancetype)initWithVersion:(NSString *)stringVersion { +- (instancetype)initWithVersion:(nullable NSString *)stringVersion { self = [super init]; if (!self) return nil; diff --git a/SmartDeviceLink/SDLControlFramePayloadVideoStartService.h b/SmartDeviceLink/SDLControlFramePayloadVideoStartService.h index 30ea57e8f..63274f3ef 100644 --- a/SmartDeviceLink/SDLControlFramePayloadVideoStartService.h +++ b/SmartDeviceLink/SDLControlFramePayloadVideoStartService.h @@ -10,8 +10,8 @@ #import "SDLControlFramePayloadType.h" -@class SDLVideoStreamingCodec; -@class SDLVideoStreamingProtocol; +#import "SDLVideoStreamingCodec.h" +#import "SDLVideoStreamingProtocol.h" NS_ASSUME_NONNULL_BEGIN @@ -24,12 +24,12 @@ NS_ASSUME_NONNULL_BEGIN @property (assign, nonatomic, readonly) int32_t width; /// Desired video protocol to be used. See VideoStreamingProtocol RPC -@property (copy, nonatomic, readonly, nullable) SDLVideoStreamingCodec *videoCodec; +@property (copy, nonatomic, readonly, nullable) SDLVideoStreamingCodec videoCodec; /// Desired video codec to be used. See VideoStreamingCodec RPC -@property (copy, nonatomic, readonly, nullable) SDLVideoStreamingProtocol *videoProtocol; +@property (copy, nonatomic, readonly, nullable) SDLVideoStreamingProtocol videoProtocol; -- (instancetype)initWithVideoHeight:(int32_t)height width:(int32_t)width protocol:(nullable SDLVideoStreamingProtocol *)protocol codec:(nullable SDLVideoStreamingCodec *)codec; +- (instancetype)initWithVideoHeight:(int32_t)height width:(int32_t)width protocol:(nullable SDLVideoStreamingProtocol)protocol codec:(nullable SDLVideoStreamingCodec)codec; @end diff --git a/SmartDeviceLink/SDLControlFramePayloadVideoStartService.m b/SmartDeviceLink/SDLControlFramePayloadVideoStartService.m index 94f498d2b..d33698ebb 100644 --- a/SmartDeviceLink/SDLControlFramePayloadVideoStartService.m +++ b/SmartDeviceLink/SDLControlFramePayloadVideoStartService.m @@ -10,8 +10,6 @@ #import "bson_object.h" #import "SDLControlFramePayloadConstants.h" -#import "SDLVideoStreamingCodec.h" -#import "SDLVideoStreamingProtocol.h" NS_ASSUME_NONNULL_BEGIN @@ -20,14 +18,14 @@ @interface SDLControlFramePayloadVideoStartService () @property (assign, nonatomic, readwrite) int32_t height; @property (assign, nonatomic, readwrite) int32_t width; -@property (copy, nonatomic, readwrite, nullable) SDLVideoStreamingCodec *videoCodec; -@property (copy, nonatomic, readwrite, nullable) SDLVideoStreamingProtocol *videoProtocol; +@property (copy, nonatomic, readwrite, nullable) SDLVideoStreamingCodec videoCodec; +@property (copy, nonatomic, readwrite, nullable) SDLVideoStreamingProtocol videoProtocol; @end @implementation SDLControlFramePayloadVideoStartService -- (instancetype)initWithVideoHeight:(int32_t)height width:(int32_t)width protocol:(nullable SDLVideoStreamingProtocol *)protocol codec:(nullable SDLVideoStreamingCodec *)codec { +- (instancetype)initWithVideoHeight:(int32_t)height width:(int32_t)width protocol:(nullable SDLVideoStreamingProtocol)protocol codec:(nullable SDLVideoStreamingCodec)codec { self = [super init]; if (!self) return nil; @@ -73,11 +71,11 @@ - (nullable NSData *)data { } if (self.videoProtocol != nil) { - bson_object_put_string(&payloadObject, SDLControlFrameVideoProtocolKey, (char *)self.videoProtocol.value.UTF8String); + bson_object_put_string(&payloadObject, SDLControlFrameVideoProtocolKey, (char *)self.videoProtocol.UTF8String); } if (self.videoCodec != nil) { - bson_object_put_string(&payloadObject, SDLControlFrameVideoCodecKey, (char *)self.videoCodec.value.UTF8String); + bson_object_put_string(&payloadObject, SDLControlFrameVideoCodecKey, (char *)self.videoCodec.UTF8String); } BytePtr bsonData = bson_object_to_bytes(&payloadObject); @@ -96,12 +94,12 @@ - (void)sdl_parse:(NSData *)data { char *utf8String = bson_object_get_string(&payloadObject, SDLControlFrameVideoProtocolKey); if (utf8String != NULL) { - self.videoProtocol = [SDLVideoStreamingProtocol valueOf:[NSString stringWithUTF8String:utf8String]]; + self.videoProtocol = [NSString stringWithUTF8String:utf8String]; } utf8String = bson_object_get_string(&payloadObject, SDLControlFrameVideoCodecKey); if (utf8String != NULL) { - self.videoCodec = [SDLVideoStreamingCodec valueOf:[NSString stringWithUTF8String:utf8String]]; + self.videoCodec = [NSString stringWithUTF8String:utf8String]; } bson_object_deinitialize(&payloadObject); diff --git a/SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.h b/SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.h index ed6c17474..58b6887f6 100644 --- a/SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.h +++ b/SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.h @@ -10,8 +10,9 @@ #import "SDLControlFramePayloadType.h" -@class SDLVideoStreamingCodec; -@class SDLVideoStreamingProtocol; +#import "SDLVideoStreamingCodec.h" +#import "SDLVideoStreamingProtocol.h" + NS_ASSUME_NONNULL_BEGIN @@ -27,12 +28,12 @@ NS_ASSUME_NONNULL_BEGIN @property (assign, nonatomic, readonly) int32_t width; /// Accepted video protocol to be used. See VideoStreamingProtocol RPC -@property (copy, nonatomic, readonly, nullable) SDLVideoStreamingProtocol *videoProtocol; +@property (copy, nonatomic, readonly, nullable) SDLVideoStreamingProtocol videoProtocol; /// Accepted video codec to be used. See VideoStreamingCodec RPC -@property (copy, nonatomic, readonly, nullable) SDLVideoStreamingCodec *videoCodec; +@property (copy, nonatomic, readonly, nullable) SDLVideoStreamingCodec videoCodec; -- (instancetype)initWithMTU:(int64_t)mtu height:(int32_t)height width:(int32_t)width protocol:(SDLVideoStreamingProtocol *)protocol codec:(SDLVideoStreamingCodec *)codec; +- (instancetype)initWithMTU:(int64_t)mtu height:(int32_t)height width:(int32_t)width protocol:(nullable SDLVideoStreamingProtocol)protocol codec:(nullable SDLVideoStreamingCodec)codec; @end diff --git a/SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.m b/SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.m index dfb896b73..d690d6690 100644 --- a/SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.m +++ b/SmartDeviceLink/SDLControlFramePayloadVideoStartServiceAck.m @@ -10,8 +10,6 @@ #import "bson_object.h" #import "SDLControlFramePayloadConstants.h" -#import "SDLVideoStreamingCodec.h" -#import "SDLVideoStreamingProtocol.h" @interface SDLControlFramePayloadVideoStartServiceAck () @@ -19,14 +17,14 @@ @interface SDLControlFramePayloadVideoStartServiceAck () @property (assign, nonatomic, readwrite) int64_t mtu; @property (assign, nonatomic, readwrite) int32_t height; @property (assign, nonatomic, readwrite) int32_t width; -@property (copy, nonatomic, readwrite) SDLVideoStreamingProtocol *videoProtocol; -@property (copy, nonatomic, readwrite) SDLVideoStreamingCodec *videoCodec; +@property (copy, nonatomic, readwrite) SDLVideoStreamingProtocol videoProtocol; +@property (copy, nonatomic, readwrite) SDLVideoStreamingCodec videoCodec; @end @implementation SDLControlFramePayloadVideoStartServiceAck -- (instancetype)initWithMTU:(int64_t)mtu height:(int32_t)height width:(int32_t)width protocol:(SDLVideoStreamingProtocol *)protocol codec:(SDLVideoStreamingCodec *)codec { +- (instancetype)initWithMTU:(int64_t)mtu height:(int32_t)height width:(int32_t)width protocol:(nullable SDLVideoStreamingProtocol)protocol codec:(nullable SDLVideoStreamingCodec)codec { self = [super init]; if (!self) return nil; @@ -79,11 +77,11 @@ - (nullable NSData *)data { } if (self.videoProtocol != nil) { - bson_object_put_string(&payloadObject, SDLControlFrameVideoProtocolKey, (char *)self.videoProtocol.value.UTF8String); + bson_object_put_string(&payloadObject, SDLControlFrameVideoProtocolKey, (char *)self.videoProtocol.UTF8String); } if (self.videoCodec != nil) { - bson_object_put_string(&payloadObject, SDLControlFrameVideoCodecKey, (char *)self.videoCodec.value.UTF8String); + bson_object_put_string(&payloadObject, SDLControlFrameVideoCodecKey, (char *)self.videoCodec.UTF8String); } BytePtr bsonData = bson_object_to_bytes(&payloadObject); @@ -103,12 +101,12 @@ - (void)sdl_parse:(NSData *)data { char *utf8String = bson_object_get_string(&payloadObject, SDLControlFrameVideoProtocolKey); if (utf8String != NULL) { - self.videoProtocol = [SDLVideoStreamingProtocol valueOf:[NSString stringWithUTF8String:utf8String]]; + self.videoProtocol = [NSString stringWithUTF8String:utf8String]; } utf8String = bson_object_get_string(&payloadObject, SDLControlFrameVideoCodecKey); if (utf8String != NULL) { - self.videoCodec = [SDLVideoStreamingCodec valueOf:[NSString stringWithUTF8String:utf8String]]; + self.videoCodec = [NSString stringWithUTF8String:utf8String]; } bson_object_deinitialize(&payloadObject); diff --git a/SmartDeviceLink/SDLCreateInteractionChoiceSet.h b/SmartDeviceLink/SDLCreateInteractionChoiceSet.h index 18d910728..80ae3e9a9 100644 --- a/SmartDeviceLink/SDLCreateInteractionChoiceSet.h +++ b/SmartDeviceLink/SDLCreateInteractionChoiceSet.h @@ -19,20 +19,9 @@ * * @see SDLDeleteInteractionChoiceSet SDLPerformInteraction */ -@interface SDLCreateInteractionChoiceSet : SDLRPCRequest { -} +NS_ASSUME_NONNULL_BEGIN -/** - * Constructs a new SDLCreateInteractionChoiceSet object - */ -- (instancetype)init; - -/** - * Constructs a new SDLCreateInteractionChoiceSet object indicated by the dictionary parameter - * - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLCreateInteractionChoiceSet : SDLRPCRequest - (instancetype)initWithId:(UInt32)choiceId choiceSet:(NSArray *)choiceSet; @@ -41,13 +30,15 @@ * * Required, Integer, 0 - 2,000,000,000 */ -@property (strong) NSNumber *interactionChoiceSetID; +@property (strong, nonatomic) NSNumber *interactionChoiceSetID; /** * @abstract Array of choices, which the user can select by menu or voice recognition * * Required, SDLChoice, Array size 1 - 100 */ -@property (strong) NSMutableArray *choiceSet; +@property (strong, nonatomic) NSArray *choiceSet; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLCreateInteractionChoiceSet.m b/SmartDeviceLink/SDLCreateInteractionChoiceSet.m index b81d27f8a..570054eec 100644 --- a/SmartDeviceLink/SDLCreateInteractionChoiceSet.m +++ b/SmartDeviceLink/SDLCreateInteractionChoiceSet.m @@ -4,24 +4,21 @@ #import "SDLCreateInteractionChoiceSet.h" +#import "NSMutableDictionary+Store.h" #import "SDLChoice.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLCreateInteractionChoiceSet - (instancetype)init { - if (self = [super initWithName:NAMES_CreateInteractionChoiceSet]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameCreateInteractionChoiceSet]) { } return self; } -- (instancetype)initWithId:(UInt32)choiceId choiceSet:(NSArray *)choiceSet { +- (instancetype)initWithId:(UInt32)choiceId choiceSet:(NSArray *)choiceSet { self = [self init]; if (!self) { return nil; @@ -32,39 +29,22 @@ - (instancetype)initWithId:(UInt32)choiceId choiceSet:(NSArray *)choiceSet { return self; } -- (void)setInteractionChoiceSetID:(NSNumber *)interactionChoiceSetID { - if (interactionChoiceSetID != nil) { - [parameters setObject:interactionChoiceSetID forKey:NAMES_interactionChoiceSetID]; - } else { - [parameters removeObjectForKey:NAMES_interactionChoiceSetID]; - } +- (void)setInteractionChoiceSetID:(NSNumber *)interactionChoiceSetID { + [parameters sdl_setObject:interactionChoiceSetID forName:SDLNameInteractionChoiceSetId]; } -- (NSNumber *)interactionChoiceSetID { - return [parameters objectForKey:NAMES_interactionChoiceSetID]; +- (NSNumber *)interactionChoiceSetID { + return [parameters sdl_objectForName:SDLNameInteractionChoiceSetId]; } -- (void)setChoiceSet:(NSMutableArray *)choiceSet { - if (choiceSet != nil) { - [parameters setObject:choiceSet forKey:NAMES_choiceSet]; - } else { - [parameters removeObjectForKey:NAMES_choiceSet]; - } +- (void)setChoiceSet:(NSArray *)choiceSet { + [parameters sdl_setObject:choiceSet forName:SDLNameChoiceSet]; } -- (NSMutableArray *)choiceSet { - NSMutableArray *array = [parameters objectForKey:NAMES_choiceSet]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLChoice.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLChoice alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (NSArray *)choiceSet { + return [parameters sdl_objectsForName:SDLNameChoiceSet ofClass:SDLChoice.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h b/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h index e2d3b76e5..0f9cd4346 100644 --- a/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h +++ b/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h @@ -10,10 +10,11 @@ * * Since SmartDeviceLink 1.0 */ -@interface SDLCreateInteractionChoiceSetResponse : SDLRPCResponse { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLCreateInteractionChoiceSetResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m b/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m index 17c2bf3f9..b9de5f3b1 100644 --- a/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m +++ b/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.m @@ -4,20 +4,19 @@ #import "SDLCreateInteractionChoiceSetResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLCreateInteractionChoiceSetResponse - (instancetype)init { - if (self = [super initWithName:NAMES_CreateInteractionChoiceSet]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameCreateInteractionChoiceSet]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDIDResult.h b/SmartDeviceLink/SDLDIDResult.h index a7d0b6c16..2ee14af44 100644 --- a/SmartDeviceLink/SDLDIDResult.h +++ b/SmartDeviceLink/SDLDIDResult.h @@ -3,17 +3,16 @@ #import "SDLRPCMessage.h" -@class SDLVehicleDataResultCode; +#import "SDLVehicleDataResultCode.h" +NS_ASSUME_NONNULL_BEGIN -@interface SDLDIDResult : SDLRPCStruct { -} +@interface SDLDIDResult : SDLRPCStruct -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -@property (strong) SDLVehicleDataResultCode *resultCode; -@property (strong) NSNumber *didLocation; -@property (strong) NSString *data; +@property (strong, nonatomic) SDLVehicleDataResultCode resultCode; +@property (strong, nonatomic) NSNumber *didLocation; +@property (nullable, strong, nonatomic) NSString *data; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDIDResult.m b/SmartDeviceLink/SDLDIDResult.m index be42582e7..0d0e5d39f 100644 --- a/SmartDeviceLink/SDLDIDResult.m +++ b/SmartDeviceLink/SDLDIDResult.m @@ -3,63 +3,37 @@ #import "SDLDIDResult.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -#import "SDLVehicleDataResultCode.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLDIDResult -- (instancetype)init { - if (self = [super init]) { - } - return self; +- (void)setResultCode:(SDLVehicleDataResultCode)resultCode { + [store sdl_setObject:resultCode forName:SDLNameResultCode]; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (SDLVehicleDataResultCode)resultCode { + return [store sdl_objectForName:SDLNameResultCode]; } -- (void)setResultCode:(SDLVehicleDataResultCode *)resultCode { - if (resultCode != nil) { - [store setObject:resultCode forKey:NAMES_resultCode]; - } else { - [store removeObjectForKey:NAMES_resultCode]; - } +- (void)setDidLocation:(NSNumber *)didLocation { + [store sdl_setObject:didLocation forName:SDLNameDIDLocation]; } -- (SDLVehicleDataResultCode *)resultCode { - NSObject *obj = [store objectForKey:NAMES_resultCode]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResultCode.class]) { - return (SDLVehicleDataResultCode *)obj; - } else { - return [SDLVehicleDataResultCode valueOf:(NSString *)obj]; - } +- (NSNumber *)didLocation { + return [store sdl_objectForName:SDLNameDIDLocation]; } -- (void)setDidLocation:(NSNumber *)didLocation { - if (didLocation != nil) { - [store setObject:didLocation forKey:NAMES_didLocation]; - } else { - [store removeObjectForKey:NAMES_didLocation]; - } +- (void)setData:(nullable NSString *)data { + [store sdl_setObject:data forName:SDLNameData]; } -- (NSNumber *)didLocation { - return [store objectForKey:NAMES_didLocation]; -} - -- (void)setData:(NSString *)data { - if (data != nil) { - [store setObject:data forKey:NAMES_data]; - } else { - [store removeObjectForKey:NAMES_data]; - } -} - -- (NSString *)data { - return [store objectForKey:NAMES_data]; +- (nullable NSString *)data { + return [store sdl_objectForName:SDLNameData]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDateTime.h b/SmartDeviceLink/SDLDateTime.h index 7dffbd5d2..9239696c9 100644 --- a/SmartDeviceLink/SDLDateTime.h +++ b/SmartDeviceLink/SDLDateTime.h @@ -3,6 +3,8 @@ #import "SDLRPCStruct.h" +NS_ASSUME_NONNULL_BEGIN + @interface SDLDateTime : SDLRPCStruct - (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute; @@ -77,3 +79,5 @@ @property (copy, nonatomic) NSNumber *timezoneHourOffset; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDateTime.m b/SmartDeviceLink/SDLDateTime.m index 8475b78bf..88c691c89 100644 --- a/SmartDeviceLink/SDLDateTime.m +++ b/SmartDeviceLink/SDLDateTime.m @@ -2,6 +2,8 @@ // #import "SDLDateTime.h" + +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" @implementation SDLDateTime @@ -57,111 +59,75 @@ - (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute second:(UInt8)seco } - (void)setMillisecond:(NSNumber *)millisecond { - if (millisecond != nil) { - store[NAMES_millisecond] = millisecond; - } else { - [store removeObjectForKey:NAMES_millisecond]; - } + [store sdl_setObject:millisecond forName:SDLNameMillisecond]; } - (NSNumber *)millisecond { - return store[NAMES_millisecond]; + return [store sdl_objectForName:SDLNameMillisecond]; } - (void)setSecond:(NSNumber *)second { - if (second != nil) { - store[NAMES_second] = second; - } else { - [store removeObjectForKey:NAMES_second]; - } + [store sdl_setObject:second forName:SDLNameSecond]; } - (NSNumber *)second { - return store[NAMES_second]; + return [store sdl_objectForName:SDLNameSecond]; } - (void)setMinute:(NSNumber *)minute { - if (minute != nil) { - store[NAMES_minute] = minute; - } else { - [store removeObjectForKey:NAMES_minute]; - } + [store sdl_setObject:minute forName:SDLNameMinute]; } - (NSNumber *)minute { - return store[NAMES_minute]; + return [store sdl_objectForName:SDLNameMinute]; } - (void)setHour:(NSNumber *)hour { - if (hour != nil) { - store[NAMES_hour] = hour; - } else { - [store removeObjectForKey:NAMES_hour]; - } + [store sdl_setObject:hour forName:SDLNameHour]; } - (NSNumber *)hour { - return store[NAMES_hour]; + return [store sdl_objectForName:SDLNameHour]; } - (void)setDay:(NSNumber *)day { - if (day != nil) { - store[NAMES_day] = day; - } else { - [store removeObjectForKey:NAMES_day]; - } + [store sdl_setObject:day forName:SDLNameDay]; } - (NSNumber *)day { - return store[NAMES_day]; + return [store sdl_objectForName:SDLNameDay]; } - (void)setMonth:(NSNumber *)month { - if (month != nil) { - store[NAMES_month] = month; - } else { - [store removeObjectForKey:NAMES_month]; - } + [store sdl_setObject:month forName:SDLNameMonth]; } - (NSNumber *)month { - return store[NAMES_month]; + return [store sdl_objectForName:SDLNameMonth]; } - (void)setYear:(NSNumber *)year { - if (year != nil) { - store[NAMES_year] = year; - } else { - [store removeObjectForKey:NAMES_year]; - } + [store sdl_setObject:year forName:SDLNameYear]; } - (NSNumber *)year { - return store[NAMES_year]; + return [store sdl_objectForName:SDLNameYear]; } - (void)setTimezoneMinuteOffset:(NSNumber *)timezoneMinuteOffset { - if (timezoneMinuteOffset != nil) { - store[NAMES_timezoneMinuteOffset] = timezoneMinuteOffset; - } else { - [store removeObjectForKey:NAMES_timezoneMinuteOffset]; - } + [store sdl_setObject:timezoneMinuteOffset forName:SDLNameTimezoneMinuteOffset]; } - (NSNumber *)timezoneMinuteOffset { - return store[NAMES_timezoneMinuteOffset]; + return [store sdl_objectForName:SDLNameTimezoneMinuteOffset]; } - (void)setTimezoneHourOffset:(NSNumber *)timezoneHourOffset { - if (timezoneHourOffset != nil) { - store[NAMES_timezoneHourOffset] = timezoneHourOffset; - } else { - [store removeObjectForKey:NAMES_timezoneHourOffset]; - } + [store sdl_setObject:timezoneHourOffset forName:SDLNameTimezoneHourOffset]; } - (NSNumber *)timezoneHourOffset { - return store[NAMES_timezoneHourOffset]; + return [store sdl_objectForName:SDLNameTimezoneHourOffset]; } @end diff --git a/SmartDeviceLink/SDLDebugTool.h b/SmartDeviceLink/SDLDebugTool.h deleted file mode 100644 index 98ddc6c77..000000000 --- a/SmartDeviceLink/SDLDebugTool.h +++ /dev/null @@ -1,51 +0,0 @@ -// SDLDebugTool.h -// - - -#import "SDLDebugToolConsole.h" -#import - -@class SDLRPCMessage; - - -typedef NS_ENUM(UInt8, SDLDebugType) { - SDLDebugType_Debug = 0, - SDLDebugType_Transport_iAP = 1, - SDLDebugType_Transport_TCP = 2, - SDLDebugType_Protocol = 3, - SDLDebugType_RPC = 4, - SDLDebugType_APP = 5 -}; - -typedef NS_ENUM(UInt8, SDLDebugOutput) { - SDLDebugOutput_All = 0xFF, - SDLDebugOutput_DeviceConsole = 1, - SDLDebugOutput_DebugToolConsole = 2, - SDLDebugOutput_File = 4 -}; - - -@interface SDLDebugTool : NSObject { -} - -+ (void)enable; -+ (void)disable; -+ (void)addConsole:(NSObject *)console; -+ (void)addConsole:(NSObject *)console toGroup:(NSString *)groupName; -+ (void)removeConsole:(NSObject *)console; -+ (void)removeConsole:(NSObject *)console fromGroup:(NSString *)groupName; -+ (void)logInfo:(NSString *)info; -+ (void)logFormat:(NSString *)info, ...; -+ (void)logInfo:(NSString *)info withType:(SDLDebugType)type; -+ (void)logInfo:(NSString *)info withType:(SDLDebugType)type toOutput:(SDLDebugOutput)output; -+ (void)logInfo:(NSString *)info andBinaryData:(NSData *)data withType:(SDLDebugType)type toOutput:(SDLDebugOutput)output; -+ (void)logInfo:(NSString *)info withType:(SDLDebugType)type toOutput:(SDLDebugOutput)output toGroup:(NSString *)consoleGroupName; - -+ (void)enableDebugToLogFile; -+ (void)disableDebugToLogFile; -+ (void)writeToLogFile:(NSString *)info; - -+ (NSString *)stringForDebugType:(SDLDebugType)type; - - -@end diff --git a/SmartDeviceLink/SDLDebugTool.m b/SmartDeviceLink/SDLDebugTool.m deleted file mode 100644 index d3327ef77..000000000 --- a/SmartDeviceLink/SDLDebugTool.m +++ /dev/null @@ -1,287 +0,0 @@ -// SDLDebugTool.m -// - -#import "SDLDebugTool.h" -#import "NSThread+ThreadIndex.h" -#import "SDLHexUtility.h" -#import "SDLRPCMessage.h" -#import "SDLSiphonServer.h" - - -@interface SDLDebugTool () - -@property (nonatomic, assign) BOOL enabled; -@property (nonatomic, assign) BOOL debugToLogFile; -@property (nonatomic, strong) NSMutableDictionary *namedConsoleSets; -@property (nonatomic, strong) NSDateFormatter *logDateFormatter; -@property (nonatomic, strong) NSFileHandle *logFileHandle; -@property (nonatomic, strong) dispatch_queue_t logQueue; - -@end - - -@implementation SDLDebugTool - -#pragma mark - Lifecycle - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - _enabled = YES; - _debugToLogFile = NO; - _logQueue = dispatch_queue_create("com.sdl.log.file", DISPATCH_QUEUE_SERIAL); - - return self; -} - -+ (SDLDebugTool *)sharedTool { - static SDLDebugTool *sharedTool = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - sharedTool = [[self alloc] init]; - }); - - return sharedTool; -} - -+ (void)enable { - [SDLDebugTool sharedTool].enabled = YES; -} - -+ (void)disable { - [SDLDebugTool sharedTool].enabled = NO; -} - - -#pragma mark - Console Management - -+ (void)addConsole:(NSObject *)console { - [self addConsole:console toGroup:@"default"]; -} - -- (void)sdl_addConsole:(NSObject *)console toGroup:(NSString *)groupName { - // Make sure master dictionary exists - if (self.namedConsoleSets == nil) { - self.namedConsoleSets = [NSMutableDictionary new]; - } - - // Make sure the set to contain this group's elements exists - if ([self.namedConsoleSets objectForKey:groupName] == nil) { - [self.namedConsoleSets setValue:[NSMutableSet new] forKey:groupName]; - } - - // Add the console to the set - [[self.namedConsoleSets valueForKey:groupName] addObject:console]; -} - -+ (void)addConsole:(NSObject *)console toGroup:(NSString *)groupName { - [[self sharedTool] sdl_addConsole:console toGroup:groupName]; -} - -+ (void)removeConsole:(NSObject *)console { - [self removeConsole:console fromGroup:@"default"]; -} - -+ (void)removeConsole:(NSObject *)console fromGroup:(NSString *)groupName { - [[SDLDebugTool getConsoleListenersForGroup:groupName] removeObject:console]; -} - -+ (NSMutableSet *)getConsoleListenersForGroup:(NSString *)groupName { - return [[self sharedTool] sdl_getConsoleListenersForGroup:groupName]; -} - -- (NSMutableSet *)sdl_getConsoleListenersForGroup:(NSString *)groupName { - return [self.namedConsoleSets valueForKey:groupName]; -} - - -#pragma mark - Logging - -+ (void)logInfo:(NSString *)info { - [self logInfo:info withType:SDLDebugType_Debug toOutput:SDLDebugOutput_All toGroup:@"default"]; -} - -+ (void)logFormat:(NSString *)info, ... { - va_list args; - va_start(args, info); - - NSString *format = [[NSString alloc] initWithFormat:info arguments:args]; - [self logInfo:format]; -} - -+ (void)logInfo:(NSString *)info withType:(SDLDebugType)type { - [self logInfo:info withType:type toOutput:SDLDebugOutput_All toGroup:@"default"]; -} - -+ (void)logInfo:(NSString *)info withType:(SDLDebugType)type toOutput:(SDLDebugOutput)output { - [SDLDebugTool logInfo:info withType:type toOutput:output toGroup:@"default"]; -} - -+ (void)logInfo:(NSString *)info andBinaryData:(NSData *)data withType:(SDLDebugType)type toOutput:(SDLDebugOutput)output { - if (![SDLDebugTool sharedTool].enabled) { - return; - } - - // convert binary data to string, append the two strings, then pass to usual log method. - NSMutableString *outputString = [[NSMutableString alloc] init]; - if (info) { - [outputString appendString:info]; - } - - if (data != nil) { - @autoreleasepool { - NSString *dataString = [SDLHexUtility getHexString:data]; - if (dataString) { - [outputString appendString:dataString]; - } - } - } - - [SDLDebugTool logInfo:outputString withType:type toOutput:output toGroup:@"default"]; -} - -// The designated logInfo method. All outputs should be performed here. -+ (void)logInfo:(NSString *)info withType:(SDLDebugType)type toOutput:(SDLDebugOutput)output toGroup:(NSString *)consoleGroupName { - if (![SDLDebugTool sharedTool].enabled) { - return; - } - - // Format the message, prepend the thread id - NSString *outputString = [NSString stringWithFormat:@"[%li] %@", (long)[[NSThread currentThread] threadIndex], info]; - - // Output to the various destinations - - //Output To DeviceConsole - if ((output & SDLDebugOutput_DeviceConsole) == SDLDebugOutput_DeviceConsole) { - NSLog(@"%@", outputString); - } - - //Output To DebugToolConsoles - if ((output & SDLDebugOutput_DebugToolConsole) == SDLDebugOutput_DebugToolConsole) { - NSSet *consoleListeners = [self getConsoleListenersForGroup:consoleGroupName]; - for (NSObject *console in consoleListeners) { - [console logInfo:outputString]; - } - } - - //Output To LogFile - if ((output & SDLDebugOutput_File) == SDLDebugOutput_File) { - [SDLDebugTool writeToLogFile:outputString]; - } - - //Output To Siphon - [SDLSiphonServer init]; - [SDLSiphonServer _siphonNSLogData:outputString]; -} - - -#pragma mark - File Handling - -+ (void)enableDebugToLogFile { - [[self sharedTool] sdl_enableDebugToLogFile]; -} - -- (void)sdl_enableDebugToLogFile { - if (self.debugToLogFile) { - return; - } - - [SDLDebugTool logInfo:@"Enabling Log File" withType:SDLDebugType_Debug]; - - self.debugToLogFile = YES; - - //Delete Log File If It Exists - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); - NSString *documentsDirectory = [paths objectAtIndex:0]; - NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"smartdevicelink.log"]; - - NSFileManager *manager = [NSFileManager defaultManager]; - if ([manager fileExistsAtPath:filePath]) { - [manager removeItemAtPath:filePath error:nil]; - } - - // Create log file - [manager createFileAtPath:filePath contents:nil attributes:nil]; - self.logFileHandle = [NSFileHandle fileHandleForWritingAtPath:filePath]; - [self.logFileHandle seekToEndOfFile]; -} - -+ (void)disableDebugToLogFile { - [[self sharedTool] sdl_disableDebugToLogFile]; -} - -- (void)sdl_disableDebugToLogFile { - self.debugToLogFile = false; -} - -+ (void)writeToLogFile:(NSString *)info { - [[self sharedTool] sdl_writeToLogFile:info]; -} - -- (void)sdl_writeToLogFile:(NSString *)info { - // Warning: do not call any logInfo method from here. recursion of death. - if (!self.debugToLogFile || info == NULL || info.length == 0) { - return; - } - - dispatch_async(self.logQueue, ^{ - // Create timestamp string, add it in front of the message to be logged - NSDate *currentDate = [NSDate date]; - NSString *dateString = [self.logDateFormatter stringFromDate:currentDate]; - NSString *outputString = [dateString stringByAppendingFormat:@": %@\n", info]; - - // File write takes an NSData, so convert string to data. - NSData *dataToLog = [outputString dataUsingEncoding:NSUTF8StringEncoding]; - - if (self.logFileHandle != nil) { - [self.logFileHandle seekToEndOfFile]; - [self.logFileHandle writeData:dataToLog]; - } else { - NSLog(@"SDL ERROR: Unable to log to file. File handle does not exist."); - } - }); -} - -- (NSDateFormatter *)logDateFormatter { - if (_logDateFormatter == nil) { - _logDateFormatter = [[NSDateFormatter alloc] init]; - [_logDateFormatter setDateFormat:@"MM/dd/YY HH:mm:ss.SSS"]; - } - - return _logDateFormatter; -} - - -#pragma mark - Helper Methods - -+ (NSString *)stringForDebugType:(SDLDebugType)debugType { - switch (debugType) { - case SDLDebugType_Debug: - return @"DBG"; - break; - case SDLDebugType_Transport_iAP: - return @"iAP"; - break; - case SDLDebugType_Transport_TCP: - return @"TCP"; - break; - case SDLDebugType_Protocol: - return @"Pro"; - break; - case SDLDebugType_RPC: - return @"RPC"; - break; - case SDLDebugType_APP: - return @"APP"; - break; - - default: - return @"Invalid DebugType"; - break; - } -} - -@end diff --git a/SmartDeviceLink/SDLDebugToolConsole.h b/SmartDeviceLink/SDLDebugToolConsole.h deleted file mode 100644 index 75d541e16..000000000 --- a/SmartDeviceLink/SDLDebugToolConsole.h +++ /dev/null @@ -1,12 +0,0 @@ -// -// SDLDebugToolConsole.h -// SmartDeviceLink-iOS - -#import - -@protocol SDLDebugToolConsole - -@required -- (void)logInfo:(NSString *)info; - -@end diff --git a/SmartDeviceLink/SDLDecoder.h b/SmartDeviceLink/SDLDecoder.h deleted file mode 100644 index 6328ecf82..000000000 --- a/SmartDeviceLink/SDLDecoder.h +++ /dev/null @@ -1,11 +0,0 @@ -// SDLDecoder.h -// - - -#import - -@protocol SDLDecoder - -- (NSDictionary *)decode:(NSData *)msgBytes; - -@end diff --git a/SmartDeviceLink/SDLDefrostZone.h b/SmartDeviceLink/SDLDefrostZone.h new file mode 100644 index 000000000..3563b58f3 --- /dev/null +++ b/SmartDeviceLink/SDLDefrostZone.h @@ -0,0 +1,32 @@ +// +// SDLDefrostZone.h +// + +#import "SDLEnum.h" + +/** + * Enumeration listing possible defrost zones. + * + * @since SDL 2.0 + */ +typedef SDLEnum SDLDefrostZone SDL_SWIFT_ENUM; + +/** + * @abstract A SDLDefrostZone with the value of *FRONT* + */ +extern SDLDefrostZone const SDLDefrostZoneFront; + +/** + * @abstract A SDLDefrostZone with the value of *REAR* + */ +extern SDLDefrostZone const SDLDefrostZoneRear; + +/** + * @abstract A SDLDefrostZone with the value of *All* + */ +extern SDLDefrostZone const SDLDefrostZoneAll; + +/** + * @abstract A SDLDefrostZone with the value of *None* + */ +extern SDLDefrostZone const SDLDefrostZoneNone; diff --git a/SmartDeviceLink/SDLDefrostZone.m b/SmartDeviceLink/SDLDefrostZone.m new file mode 100644 index 000000000..f4f2862f2 --- /dev/null +++ b/SmartDeviceLink/SDLDefrostZone.m @@ -0,0 +1,10 @@ +// +// SDLDefrostZone.m +// + +#import "SDLDefrostZone.h" + +SDLDefrostZone const SDLDefrostZoneFront = @"FRONT"; +SDLDefrostZone const SDLDefrostZoneRear = @"REAR"; +SDLDefrostZone const SDLDefrostZoneAll = @"ALL"; +SDLDefrostZone const SDLDefrostZoneNone = @"NONE"; diff --git a/SmartDeviceLink/SDLDeleteCommand.h b/SmartDeviceLink/SDLDeleteCommand.h index 24adaa9cd..2bc9e7769 100644 --- a/SmartDeviceLink/SDLDeleteCommand.h +++ b/SmartDeviceLink/SDLDeleteCommand.h @@ -16,21 +16,10 @@ * Since SmartDeviceLink 1.0
* see SDLAddCommand SDLAddSubMenu SDLDeleteSubMenu */ -@interface SDLDeleteCommand : SDLRPCRequest { -} -/** - * Constructs a new SDLDeleteCommand object - */ -- (instancetype)init; -/** - * Constructs a new SDLDeleteCommand object indicated by the NSMutableDictionary - * parameter - *

- * - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLDeleteCommand : SDLRPCRequest - (instancetype)initWithId:(UInt32)commandId; @@ -40,6 +29,8 @@ *

* Notes: Min Value: 0; Max Value: 2000000000 */ -@property (strong) NSNumber *cmdID; +@property (strong, nonatomic) NSNumber *cmdID; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDeleteCommand.m b/SmartDeviceLink/SDLDeleteCommand.m index 0f876e0ed..d96276d56 100644 --- a/SmartDeviceLink/SDLDeleteCommand.m +++ b/SmartDeviceLink/SDLDeleteCommand.m @@ -4,18 +4,15 @@ #import "SDLDeleteCommand.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLDeleteCommand - (instancetype)init { - if (self = [super initWithName:NAMES_DeleteCommand]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameDeleteCommand]) { } return self; } @@ -31,16 +28,14 @@ - (instancetype)initWithId:(UInt32)commandId { return self; } -- (void)setCmdID:(NSNumber *)cmdID { - if (cmdID != nil) { - [parameters setObject:cmdID forKey:NAMES_cmdID]; - } else { - [parameters removeObjectForKey:NAMES_cmdID]; - } +- (void)setCmdID:(NSNumber *)cmdID { + [parameters sdl_setObject:cmdID forName:SDLNameCommandId]; } -- (NSNumber *)cmdID { - return [parameters objectForKey:NAMES_cmdID]; +- (NSNumber *)cmdID { + return [parameters sdl_objectForName:SDLNameCommandId]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDeleteCommandResponse.h b/SmartDeviceLink/SDLDeleteCommandResponse.h index 7f231c8e3..95df39a6f 100644 --- a/SmartDeviceLink/SDLDeleteCommandResponse.h +++ b/SmartDeviceLink/SDLDeleteCommandResponse.h @@ -9,10 +9,11 @@ * * Since SmartDeviceLink 1.0
*/ -@interface SDLDeleteCommandResponse : SDLRPCResponse { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLDeleteCommandResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDeleteCommandResponse.m b/SmartDeviceLink/SDLDeleteCommandResponse.m index 3c3d5b7a7..f956c02ab 100644 --- a/SmartDeviceLink/SDLDeleteCommandResponse.m +++ b/SmartDeviceLink/SDLDeleteCommandResponse.m @@ -4,20 +4,19 @@ #import "SDLDeleteCommandResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLDeleteCommandResponse - (instancetype)init { - if (self = [super initWithName:NAMES_DeleteCommand]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameDeleteCommand]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDeleteFile.h b/SmartDeviceLink/SDLDeleteFile.h index b0b1295ff..4372e4333 100644 --- a/SmartDeviceLink/SDLDeleteFile.h +++ b/SmartDeviceLink/SDLDeleteFile.h @@ -12,20 +12,10 @@ * Since SmartDeviceLink 2.0
* see SDLPutFile SDLListFiles */ -@interface SDLDeleteFile : SDLRPCRequest { -} -/** - * Constructs a new SDLDeleteFile object - */ -- (instancetype)init; -/** - * Constructs a new SDLDeleteFile object indicated by the dictionary parameter - *

- * - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLDeleteFile : SDLRPCRequest - (instancetype)initWithFileName:(NSString *)fileName; @@ -33,6 +23,8 @@ * @abstract a file reference name * @discussion a String value representing a file reference name */ -@property (strong) NSString *syncFileName; +@property (strong, nonatomic) NSString *syncFileName; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDeleteFile.m b/SmartDeviceLink/SDLDeleteFile.m index 188a2ef1f..b7a8929a2 100644 --- a/SmartDeviceLink/SDLDeleteFile.m +++ b/SmartDeviceLink/SDLDeleteFile.m @@ -4,18 +4,15 @@ #import "SDLDeleteFile.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLDeleteFile - (instancetype)init { - if (self = [super initWithName:NAMES_DeleteFile]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameDeleteFile]) { } return self; } @@ -32,15 +29,13 @@ - (instancetype)initWithFileName:(NSString *)fileName { } - (void)setSyncFileName:(NSString *)syncFileName { - if (syncFileName != nil) { - [parameters setObject:syncFileName forKey:NAMES_syncFileName]; - } else { - [parameters removeObjectForKey:NAMES_syncFileName]; - } + [parameters sdl_setObject:syncFileName forName:SDLNameSyncFileName]; } - (NSString *)syncFileName { - return [parameters objectForKey:NAMES_syncFileName]; + return [parameters sdl_objectForName:SDLNameSyncFileName]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDeleteFileResponse.h b/SmartDeviceLink/SDLDeleteFileResponse.h index ee61aa9d0..aaf8e8f9e 100644 --- a/SmartDeviceLink/SDLDeleteFileResponse.h +++ b/SmartDeviceLink/SDLDeleteFileResponse.h @@ -9,12 +9,13 @@ * * Since SmartDeviceLink 2.0
*/ -@interface SDLDeleteFileResponse : SDLRPCResponse { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN -@property (strong) NSNumber *spaceAvailable; +@interface SDLDeleteFileResponse : SDLRPCResponse + +@property (strong, nonatomic) NSNumber *spaceAvailable; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDeleteFileResponse.m b/SmartDeviceLink/SDLDeleteFileResponse.m index b94075b39..5c54b9852 100644 --- a/SmartDeviceLink/SDLDeleteFileResponse.m +++ b/SmartDeviceLink/SDLDeleteFileResponse.m @@ -4,32 +4,27 @@ #import "SDLDeleteFileResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLDeleteFileResponse - (instancetype)init { - if (self = [super initWithName:NAMES_DeleteFile]) { + if (self = [super initWithName:SDLNameDeleteFile]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (void)setSpaceAvailable:(NSNumber *)spaceAvailable { + [parameters sdl_setObject:spaceAvailable forName:SDLNameSpaceAvailable]; } -- (void)setSpaceAvailable:(NSNumber *)spaceAvailable { - if (spaceAvailable != nil) { - [parameters setObject:spaceAvailable forKey:NAMES_spaceAvailable]; - } else { - [parameters removeObjectForKey:NAMES_spaceAvailable]; - } -} - -- (NSNumber *)spaceAvailable { - return [parameters objectForKey:NAMES_spaceAvailable]; +- (NSNumber *)spaceAvailable { + return [parameters sdl_objectForName:SDLNameSpaceAvailable]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDeleteInteractionChoiceSet.h b/SmartDeviceLink/SDLDeleteInteractionChoiceSet.h index 74acae89d..8c03f2eca 100644 --- a/SmartDeviceLink/SDLDeleteInteractionChoiceSet.h +++ b/SmartDeviceLink/SDLDeleteInteractionChoiceSet.h @@ -18,21 +18,10 @@ * Since SmartDeviceLink 1.0
* see SDLCreateInteractionChoiceSet SDLPerformInteraction */ -@interface SDLDeleteInteractionChoiceSet : SDLRPCRequest { -} -/** - * Constructs a new SDLDeleteInteractionChoiceSet object - */ -- (instancetype)init; -/** - * Constructs a new SDLDeleteInteractionChoiceSet object indicated by the - * NSMutableDictionary parameter - *

- * - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLDeleteInteractionChoiceSet : SDLRPCRequest - (instancetype)initWithId:(UInt32)choiceId; @@ -42,6 +31,8 @@ *

* Notes: Min Value: 0; Max Value: 2000000000 */ -@property (strong) NSNumber *interactionChoiceSetID; +@property (strong, nonatomic) NSNumber *interactionChoiceSetID; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDeleteInteractionChoiceSet.m b/SmartDeviceLink/SDLDeleteInteractionChoiceSet.m index 4fe99ae45..a1f2585e5 100644 --- a/SmartDeviceLink/SDLDeleteInteractionChoiceSet.m +++ b/SmartDeviceLink/SDLDeleteInteractionChoiceSet.m @@ -4,18 +4,15 @@ #import "SDLDeleteInteractionChoiceSet.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLDeleteInteractionChoiceSet - (instancetype)init { - if (self = [super initWithName:NAMES_DeleteInteractionChoiceSet]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameDeleteInteractionChoiceSet]) { } return self; } @@ -31,16 +28,14 @@ - (instancetype)initWithId:(UInt32)choiceId { return self; } -- (void)setInteractionChoiceSetID:(NSNumber *)interactionChoiceSetID { - if (interactionChoiceSetID != nil) { - [parameters setObject:interactionChoiceSetID forKey:NAMES_interactionChoiceSetID]; - } else { - [parameters removeObjectForKey:NAMES_interactionChoiceSetID]; - } +- (void)setInteractionChoiceSetID:(NSNumber *)interactionChoiceSetID { + [parameters sdl_setObject:interactionChoiceSetID forName:SDLNameInteractionChoiceSetId]; } -- (NSNumber *)interactionChoiceSetID { - return [parameters objectForKey:NAMES_interactionChoiceSetID]; +- (NSNumber *)interactionChoiceSetID { + return [parameters sdl_objectForName:SDLNameInteractionChoiceSetId]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h b/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h index 7a5cd4406..ad0dc0fc7 100644 --- a/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h +++ b/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h @@ -9,10 +9,11 @@ * * Since SmartDeviceLink 1.0 */ -@interface SDLDeleteInteractionChoiceSetResponse : SDLRPCResponse { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLDeleteInteractionChoiceSetResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m b/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m index 666a758a1..e6cc631fa 100644 --- a/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m +++ b/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.m @@ -4,20 +4,19 @@ #import "SDLDeleteInteractionChoiceSetResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLDeleteInteractionChoiceSetResponse - (instancetype)init { - if (self = [super initWithName:NAMES_DeleteInteractionChoiceSet]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameDeleteInteractionChoiceSet]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDeleteSubMenu.h b/SmartDeviceLink/SDLDeleteSubMenu.h index a7d8aa5ad..74a6363a9 100644 --- a/SmartDeviceLink/SDLDeleteSubMenu.h +++ b/SmartDeviceLink/SDLDeleteSubMenu.h @@ -16,18 +16,10 @@ * Since SmartDeviceLink 1.0
* see SDLAddCommand SDLAddSubMenu SDLDeleteCommand */ -@interface SDLDeleteSubMenu : SDLRPCRequest { -} -/** - * Constructs a new SDLDeleteSubMenu object - */ -- (instancetype)init; -/** - * Constructs a new SDLDeleteSubMenu object indicated by the dictionary parameter

- * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLDeleteSubMenu : SDLRPCRequest - (instancetype)initWithId:(UInt32)menuId; @@ -35,6 +27,8 @@ * @abstract the MenuID that identifies the SDLSubMenu to be delete * @discussion Notes: Min Value: 0; Max Value: 2000000000 */ -@property (strong) NSNumber *menuID; +@property (strong, nonatomic) NSNumber *menuID; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDeleteSubMenu.m b/SmartDeviceLink/SDLDeleteSubMenu.m index e3eed71a4..b03372c7d 100644 --- a/SmartDeviceLink/SDLDeleteSubMenu.m +++ b/SmartDeviceLink/SDLDeleteSubMenu.m @@ -4,18 +4,15 @@ #import "SDLDeleteSubMenu.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLDeleteSubMenu - (instancetype)init { - if (self = [super initWithName:NAMES_DeleteSubMenu]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameDeleteSubMenu]) { } return self; } @@ -31,16 +28,14 @@ - (instancetype)initWithId:(UInt32)menuId { return self; } -- (void)setMenuID:(NSNumber *)menuID { - if (menuID != nil) { - [parameters setObject:menuID forKey:NAMES_menuID]; - } else { - [parameters removeObjectForKey:NAMES_menuID]; - } +- (void)setMenuID:(NSNumber *)menuID { + [parameters sdl_setObject:menuID forName:SDLNameMenuId]; } -- (NSNumber *)menuID { - return [parameters objectForKey:NAMES_menuID]; +- (NSNumber *)menuID { + return [parameters sdl_objectForName:SDLNameMenuId]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDeleteSubMenuResponse.h b/SmartDeviceLink/SDLDeleteSubMenuResponse.h index 3b32df8f3..e50781e85 100644 --- a/SmartDeviceLink/SDLDeleteSubMenuResponse.h +++ b/SmartDeviceLink/SDLDeleteSubMenuResponse.h @@ -9,10 +9,11 @@ * * Since SmartDeviceLink 1.0 */ -@interface SDLDeleteSubMenuResponse : SDLRPCResponse { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLDeleteSubMenuResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDeleteSubMenuResponse.m b/SmartDeviceLink/SDLDeleteSubMenuResponse.m index b88d9b626..5594763e9 100644 --- a/SmartDeviceLink/SDLDeleteSubMenuResponse.m +++ b/SmartDeviceLink/SDLDeleteSubMenuResponse.m @@ -4,20 +4,19 @@ #import "SDLDeleteSubMenuResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLDeleteSubMenuResponse - (instancetype)init { - if (self = [super initWithName:NAMES_DeleteSubMenu]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameDeleteSubMenu]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDeliveryMode.h b/SmartDeviceLink/SDLDeliveryMode.h index 16a6cfe84..84575bc2f 100644 --- a/SmartDeviceLink/SDLDeliveryMode.h +++ b/SmartDeviceLink/SDLDeliveryMode.h @@ -6,43 +6,22 @@ /** *Specifies the mode in which the sendLocation request is sent. */ -@interface SDLDeliveryMode : SDLEnum - -/** - * @abstract Convert String to SDLDeliveryMode - * - * @param value The value of the string to get an object for - * - * @return SDLDeliveryMode - */ -+ (SDLDeliveryMode *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLDeliveryMode - * - * @return an array that store all possible SDLDeliveryMode - */ -+ (NSArray *)values; +typedef SDLEnum SDLDeliveryMode SDL_SWIFT_ENUM; /** * @abstract User is prompted on HMI * - * @return a SDLDeliveryMode with value of *PROMPT* */ -+ (SDLDeliveryMode *)PROMPT; +extern SDLDeliveryMode const SDLDeliveryModePrompt; /** * @abstract Set the location as destination without prompting the user * - * @return a SDLDeliveryMode with value of *DESTINATION* */ -+ (SDLDeliveryMode *)DESTINATION; +extern SDLDeliveryMode const SDLDeliveryModeDestination; /** * @abstract Adds the current location to navigation queue * - * @return a SDLDeliveryMode with value of *QUEUE* */ -+ (SDLDeliveryMode *)QUEUE; - -@end +extern SDLDeliveryMode const SDLDeliveryModeQueue; diff --git a/SmartDeviceLink/SDLDeliveryMode.m b/SmartDeviceLink/SDLDeliveryMode.m index 3c17cc41f..b97b7ae23 100644 --- a/SmartDeviceLink/SDLDeliveryMode.m +++ b/SmartDeviceLink/SDLDeliveryMode.m @@ -3,53 +3,6 @@ #import "SDLDeliveryMode.h" -SDLDeliveryMode *SDLDeliveryMode_PROMPT = nil; -SDLDeliveryMode *SDLDeliveryMode_DESTINATION = nil; -SDLDeliveryMode *SDLDeliveryMode_QUEUE = nil; - -NSArray *SDLDeliveryMode_values = nil; - -@implementation SDLDeliveryMode - -+ (SDLDeliveryMode *)valueOf:(NSString *)value { - for (SDLDeliveryMode *item in SDLDeliveryMode.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLDeliveryMode_values == nil) { - SDLDeliveryMode_values = @[ - SDLDeliveryMode.PROMPT, - SDLDeliveryMode.DESTINATION, - SDLDeliveryMode.QUEUE, - ]; - } - return SDLDeliveryMode_values; -} - -+ (SDLDeliveryMode *)PROMPT { - if (SDLDeliveryMode_PROMPT == nil) { - SDLDeliveryMode_PROMPT = [[SDLDeliveryMode alloc] initWithValue:@"PROMPT"]; - } - return SDLDeliveryMode_PROMPT; -} - -+ (SDLDeliveryMode *)DESTINATION { - if (SDLDeliveryMode_DESTINATION == nil) { - SDLDeliveryMode_DESTINATION = [[SDLDeliveryMode alloc] initWithValue:@"DESTINATION"]; - } - return SDLDeliveryMode_DESTINATION; -} - -+ (SDLDeliveryMode *)QUEUE { - if (SDLDeliveryMode_QUEUE == nil) { - SDLDeliveryMode_QUEUE = [[SDLDeliveryMode alloc] initWithValue:@"QUEUE"]; - } - return SDLDeliveryMode_QUEUE; -} - -@end +SDLDeliveryMode const SDLDeliveryModePrompt = @"PROMPT"; +SDLDeliveryMode const SDLDeliveryModeDestination = @"DESTINATION"; +SDLDeliveryMode const SDLDeliveryModeQueue = @"QUEUE"; diff --git a/SmartDeviceLink/SDLDeviceInfo.h b/SmartDeviceLink/SDLDeviceInfo.h index b2ab1423c..0af061abc 100644 --- a/SmartDeviceLink/SDLDeviceInfo.h +++ b/SmartDeviceLink/SDLDeviceInfo.h @@ -3,20 +3,19 @@ #import "SDLRPCMessage.h" +NS_ASSUME_NONNULL_BEGIN -@interface SDLDeviceInfo : SDLRPCStruct { -} - -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLDeviceInfo : SDLRPCStruct + (instancetype)currentDevice; -@property (strong) NSString *hardware; -@property (strong) NSString *firmwareRev; -@property (strong) NSString *os; -@property (strong) NSString *osVersion; -@property (strong) NSString *carrier; -@property (strong) NSNumber *maxNumberRFCOMMPorts; +@property (nullable, strong, nonatomic) NSString *hardware; +@property (nullable, strong, nonatomic) NSString *firmwareRev; +@property (nullable, strong, nonatomic) NSString *os; +@property (nullable, strong, nonatomic) NSString *osVersion; +@property (nullable, strong, nonatomic) NSString *carrier; +@property (nullable, strong, nonatomic) NSNumber *maxNumberRFCOMMPorts; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDeviceInfo.m b/SmartDeviceLink/SDLDeviceInfo.m index a91e04935..8b321bf8d 100644 --- a/SmartDeviceLink/SDLDeviceInfo.m +++ b/SmartDeviceLink/SDLDeviceInfo.m @@ -7,21 +7,12 @@ #import #import +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -@implementation SDLDeviceInfo - -- (instancetype)init { - if (self = [super init]) { - } - return self; -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} +@implementation SDLDeviceInfo + (instancetype)currentDevice { static SDLDeviceInfo *deviceInfo = nil; @@ -38,76 +29,54 @@ + (instancetype)currentDevice { return deviceInfo; } -- (void)setHardware:(NSString *)hardware { - if (hardware != nil) { - [store setObject:hardware forKey:NAMES_hardware]; - } else { - [store removeObjectForKey:NAMES_hardware]; - } +- (void)setHardware:(nullable NSString *)hardware { + [store sdl_setObject:hardware forName:SDLNameHardware]; } -- (NSString *)hardware { - return [store objectForKey:NAMES_hardware]; +- (nullable NSString *)hardware { + return [store sdl_objectForName:SDLNameHardware]; } -- (void)setFirmwareRev:(NSString *)firmwareRev { - if (firmwareRev != nil) { - [store setObject:firmwareRev forKey:NAMES_firmwareRev]; - } else { - [store removeObjectForKey:NAMES_firmwareRev]; - } +- (void)setFirmwareRev:(nullable NSString *)firmwareRev { + [store sdl_setObject:firmwareRev forName:SDLNameFirmwareRevision]; } -- (NSString *)firmwareRev { - return [store objectForKey:NAMES_firmwareRev]; +- (nullable NSString *)firmwareRev { + return [store sdl_objectForName:SDLNameFirmwareRevision]; } -- (void)setOs:(NSString *)os { - if (os != nil) { - [store setObject:os forKey:NAMES_os]; - } else { - [store removeObjectForKey:NAMES_os]; - } +- (void)setOs:(nullable NSString *)os { + [store sdl_setObject:os forName:SDLNameOS]; } -- (NSString *)os { - return [store objectForKey:NAMES_os]; +- (nullable NSString *)os { + return [store sdl_objectForName:SDLNameOS]; } -- (void)setOsVersion:(NSString *)osVersion { - if (osVersion != nil) { - [store setObject:osVersion forKey:NAMES_osVersion]; - } else { - [store removeObjectForKey:NAMES_osVersion]; - } +- (void)setOsVersion:(nullable NSString *)osVersion { + [store sdl_setObject:osVersion forName:SDLNameOSVersion]; } -- (NSString *)osVersion { - return [store objectForKey:NAMES_osVersion]; +- (nullable NSString *)osVersion { + return [store sdl_objectForName:SDLNameOSVersion]; } -- (void)setCarrier:(NSString *)carrier { - if (carrier != nil) { - [store setObject:carrier forKey:NAMES_carrier]; - } else { - [store removeObjectForKey:NAMES_carrier]; - } +- (void)setCarrier:(nullable NSString *)carrier { + [store sdl_setObject:carrier forName:SDLNameCarrier]; } -- (NSString *)carrier { - return [store objectForKey:NAMES_carrier]; +- (nullable NSString *)carrier { + return [store sdl_objectForName:SDLNameCarrier]; } -- (void)setMaxNumberRFCOMMPorts:(NSNumber *)maxNumberRFCOMMPorts { - if (maxNumberRFCOMMPorts != nil) { - [store setObject:maxNumberRFCOMMPorts forKey:NAMES_maxNumberRFCOMMPorts]; - } else { - [store removeObjectForKey:NAMES_maxNumberRFCOMMPorts]; - } +- (void)setMaxNumberRFCOMMPorts:(nullable NSNumber *)maxNumberRFCOMMPorts { + [store sdl_setObject:maxNumberRFCOMMPorts forName:SDLNameMaxNumberRFCOMMPorts]; } -- (NSNumber *)maxNumberRFCOMMPorts { - return [store objectForKey:NAMES_maxNumberRFCOMMPorts]; +- (nullable NSNumber *)maxNumberRFCOMMPorts { + return [store sdl_objectForName:SDLNameMaxNumberRFCOMMPorts]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDeviceLevelStatus.h b/SmartDeviceLink/SDLDeviceLevelStatus.h index e0cb85aea..95a3d3ccd 100644 --- a/SmartDeviceLink/SDLDeviceLevelStatus.h +++ b/SmartDeviceLink/SDLDeviceLevelStatus.h @@ -9,56 +9,34 @@ * * @since SDL 2.0 */ -@interface SDLDeviceLevelStatus : SDLEnum { -} - -/** - * Convert String to DeviceLevelStatus - * @param value String - * @return DeviceLevelStatus - */ -+ (SDLDeviceLevelStatus *)valueOf:(NSString *)value; - -/** - @abstract Store the enumeration of all possible SDLDeviceLevelStatus - @return an array that store all possible SDLDeviceLevelStatus - */ -+ (NSArray *)values; +typedef SDLEnum SDLDeviceLevelStatus SDL_SWIFT_ENUM; /** * @abstract Device battery level is zero bars - * @return a SDLDeviceLevelStatus with value of *ZERO_LEVEL_BARS* */ -+ (SDLDeviceLevelStatus *)ZERO_LEVEL_BARS; +extern SDLDeviceLevelStatus const SDLDeviceLevelStatusZeroBars; /** * @abstract Device battery level is one bar - * @return a SDLDeviceLevelStatus with value of *ONE_LEVEL_BARS* */ -+ (SDLDeviceLevelStatus *)ONE_LEVEL_BARS; +extern SDLDeviceLevelStatus const SDLDeviceLevelStatusOneBar; /** * @abstract Device battery level is two bars - * @return a SDLDeviceLevelStatus with value of *TWO_LEVEL_BARS* */ -+ (SDLDeviceLevelStatus *)TWO_LEVEL_BARS; +extern SDLDeviceLevelStatus const SDLDeviceLevelStatusTwoBars; /** * @abstract Device battery level is three bars - * @return a SDLDeviceLevelStatus with value of *THREE_LEVEL_BARS* */ -+ (SDLDeviceLevelStatus *)THREE_LEVEL_BARS; +extern SDLDeviceLevelStatus const SDLDeviceLevelStatusThreeBars; /** * @abstract Device battery level is four bars - * @return a SDLDeviceLevelStatus with value of *FOUR_LEVEL_BARS* */ -+ (SDLDeviceLevelStatus *)FOUR_LEVEL_BARS; +extern SDLDeviceLevelStatus const SDLDeviceLevelStatusFourBars; /** * @abstract Device battery level is unknown - * @return a SDLDeviceLevelStatus with value of *NOT_PROVIDED* */ -+ (SDLDeviceLevelStatus *)NOT_PROVIDED; - -@end +extern SDLDeviceLevelStatus const SDLDeviceLevelStatusNotProvided; diff --git a/SmartDeviceLink/SDLDeviceLevelStatus.m b/SmartDeviceLink/SDLDeviceLevelStatus.m index 5babd37b5..2c15db3a2 100644 --- a/SmartDeviceLink/SDLDeviceLevelStatus.m +++ b/SmartDeviceLink/SDLDeviceLevelStatus.m @@ -4,80 +4,9 @@ #import "SDLDeviceLevelStatus.h" -SDLDeviceLevelStatus *SDLDeviceLevelStatus_ZERO_LEVEL_BARS = nil; -SDLDeviceLevelStatus *SDLDeviceLevelStatus_ONE_LEVEL_BARS = nil; -SDLDeviceLevelStatus *SDLDeviceLevelStatus_TWO_LEVEL_BARS = nil; -SDLDeviceLevelStatus *SDLDeviceLevelStatus_THREE_LEVEL_BARS = nil; -SDLDeviceLevelStatus *SDLDeviceLevelStatus_FOUR_LEVEL_BARS = nil; -SDLDeviceLevelStatus *SDLDeviceLevelStatus_NOT_PROVIDED = nil; - -NSArray *SDLDeviceLevelStatus_values = nil; - -@implementation SDLDeviceLevelStatus - -+ (SDLDeviceLevelStatus *)valueOf:(NSString *)value { - for (SDLDeviceLevelStatus *item in SDLDeviceLevelStatus.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLDeviceLevelStatus_values == nil) { - SDLDeviceLevelStatus_values = @[ - SDLDeviceLevelStatus.ZERO_LEVEL_BARS, - SDLDeviceLevelStatus.ONE_LEVEL_BARS, - SDLDeviceLevelStatus.TWO_LEVEL_BARS, - SDLDeviceLevelStatus.THREE_LEVEL_BARS, - SDLDeviceLevelStatus.FOUR_LEVEL_BARS, - SDLDeviceLevelStatus.NOT_PROVIDED, - ]; - } - return SDLDeviceLevelStatus_values; -} - -+ (SDLDeviceLevelStatus *)ZERO_LEVEL_BARS { - if (SDLDeviceLevelStatus_ZERO_LEVEL_BARS == nil) { - SDLDeviceLevelStatus_ZERO_LEVEL_BARS = [[SDLDeviceLevelStatus alloc] initWithValue:@"ZERO_LEVEL_BARS"]; - } - return SDLDeviceLevelStatus_ZERO_LEVEL_BARS; -} - -+ (SDLDeviceLevelStatus *)ONE_LEVEL_BARS { - if (SDLDeviceLevelStatus_ONE_LEVEL_BARS == nil) { - SDLDeviceLevelStatus_ONE_LEVEL_BARS = [[SDLDeviceLevelStatus alloc] initWithValue:@"ONE_LEVEL_BARS"]; - } - return SDLDeviceLevelStatus_ONE_LEVEL_BARS; -} - -+ (SDLDeviceLevelStatus *)TWO_LEVEL_BARS { - if (SDLDeviceLevelStatus_TWO_LEVEL_BARS == nil) { - SDLDeviceLevelStatus_TWO_LEVEL_BARS = [[SDLDeviceLevelStatus alloc] initWithValue:@"TWO_LEVEL_BARS"]; - } - return SDLDeviceLevelStatus_TWO_LEVEL_BARS; -} - -+ (SDLDeviceLevelStatus *)THREE_LEVEL_BARS { - if (SDLDeviceLevelStatus_THREE_LEVEL_BARS == nil) { - SDLDeviceLevelStatus_THREE_LEVEL_BARS = [[SDLDeviceLevelStatus alloc] initWithValue:@"THREE_LEVEL_BARS"]; - } - return SDLDeviceLevelStatus_THREE_LEVEL_BARS; -} - -+ (SDLDeviceLevelStatus *)FOUR_LEVEL_BARS { - if (SDLDeviceLevelStatus_FOUR_LEVEL_BARS == nil) { - SDLDeviceLevelStatus_FOUR_LEVEL_BARS = [[SDLDeviceLevelStatus alloc] initWithValue:@"FOUR_LEVEL_BARS"]; - } - return SDLDeviceLevelStatus_FOUR_LEVEL_BARS; -} - -+ (SDLDeviceLevelStatus *)NOT_PROVIDED { - if (SDLDeviceLevelStatus_NOT_PROVIDED == nil) { - SDLDeviceLevelStatus_NOT_PROVIDED = [[SDLDeviceLevelStatus alloc] initWithValue:@"NOT_PROVIDED"]; - } - return SDLDeviceLevelStatus_NOT_PROVIDED; -} - -@end +SDLDeviceLevelStatus const SDLDeviceLevelStatusZeroBars = @"ZERO_LEVEL_BARS"; +SDLDeviceLevelStatus const SDLDeviceLevelStatusOneBar = @"ONE_LEVEL_BARS"; +SDLDeviceLevelStatus const SDLDeviceLevelStatusTwoBars = @"TWO_LEVEL_BARS"; +SDLDeviceLevelStatus const SDLDeviceLevelStatusThreeBars = @"THREE_LEVEL_BARS"; +SDLDeviceLevelStatus const SDLDeviceLevelStatusFourBars = @"FOUR_LEVEL_BARS"; +SDLDeviceLevelStatus const SDLDeviceLevelStatusNotProvided = @"NOT_PROVIDED"; diff --git a/SmartDeviceLink/SDLDeviceStatus.h b/SmartDeviceLink/SDLDeviceStatus.h index d8442d438..d1f36d215 100644 --- a/SmartDeviceLink/SDLDeviceStatus.h +++ b/SmartDeviceLink/SDLDeviceStatus.h @@ -3,8 +3,8 @@ #import "SDLRPCMessage.h" -@class SDLDeviceLevelStatus; -@class SDLPrimaryAudioSource; +#import "SDLDeviceLevelStatus.h" +#import "SDLPrimaryAudioSource.h" /** @@ -98,55 +98,45 @@ * * @since SDL 2.0 */ -@interface SDLDeviceStatus : SDLRPCStruct { -} -/** - * Constructs a newly allocated SDLDeviceStatus object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * Constructs a newly allocated SDLDeviceStatus object indicated by the dictionary parameter - * - * @param dict The dictionary to use to construct the object - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLDeviceStatus : SDLRPCStruct /** * @abstract Indicates whether the voice recognition is on or off * * Required, Boolean */ -@property (strong) NSNumber *voiceRecOn; +@property (strong, nonatomic) NSNumber *voiceRecOn; /** * @abstract Indicates whether the bluetooth connection established * * Required, Boolean */ -@property (strong) NSNumber *btIconOn; +@property (strong, nonatomic) NSNumber *btIconOn; /** * @abstract Indicates whether a call is being active * * Required, Boolean */ -@property (strong) NSNumber *callActive; +@property (strong, nonatomic) NSNumber *callActive; /** * @abstract Indicates whether the phone is in roaming mode * * Required, Boolean */ -@property (strong) NSNumber *phoneRoaming; +@property (strong, nonatomic) NSNumber *phoneRoaming; /** * @abstract Indicates whether a textmessage is available * * Required, Boolean */ -@property (strong) NSNumber *textMsgAvailable; +@property (strong, nonatomic) NSNumber *textMsgAvailable; /** * @abstract Battery level status @@ -155,21 +145,21 @@ * * Required */ -@property (strong) SDLDeviceLevelStatus *battLevelStatus; +@property (strong, nonatomic) SDLDeviceLevelStatus battLevelStatus; /** * @abstract The status of the stereo audio output channel * * Required, Boolean */ -@property (strong) NSNumber *stereoAudioOutputMuted; +@property (strong, nonatomic) NSNumber *stereoAudioOutputMuted; /** * @abstract The status of the mono audio output channel * * Required, Boolean */ -@property (strong) NSNumber *monoAudioOutputMuted; +@property (strong, nonatomic) NSNumber *monoAudioOutputMuted; /** * @abstract Signal level status @@ -178,7 +168,7 @@ * * Required */ -@property (strong) SDLDeviceLevelStatus *signalLevelStatus; +@property (strong, nonatomic) SDLDeviceLevelStatus signalLevelStatus; /** * @abstract The current primary audio source of SDL (if selected). @@ -187,13 +177,15 @@ * * Required */ -@property (strong) SDLPrimaryAudioSource *primaryAudioSource; +@property (strong, nonatomic) SDLPrimaryAudioSource primaryAudioSource; /** * @abstract Indicates if an emergency call is active * * Required, Boolean */ -@property (strong) NSNumber *eCallEventActive; +@property (strong, nonatomic) NSNumber *eCallEventActive; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDeviceStatus.m b/SmartDeviceLink/SDLDeviceStatus.m index fbe3b4b96..ca449c517 100644 --- a/SmartDeviceLink/SDLDeviceStatus.m +++ b/SmartDeviceLink/SDLDeviceStatus.m @@ -3,170 +3,103 @@ #import "SDLDeviceStatus.h" +#import "NSMutableDictionary+Store.h" #import "SDLDeviceLevelStatus.h" #import "SDLNames.h" #import "SDLPrimaryAudioSource.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLDeviceStatus -- (instancetype)init { - if (self = [super init]) { - } - return self; +- (void)setVoiceRecOn:(NSNumber *)voiceRecOn { + [store sdl_setObject:voiceRecOn forName:SDLNameVoiceRecognitionOn]; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (NSNumber *)voiceRecOn { + return [store sdl_objectForName:SDLNameVoiceRecognitionOn]; } -- (void)setVoiceRecOn:(NSNumber *)voiceRecOn { - if (voiceRecOn != nil) { - [store setObject:voiceRecOn forKey:NAMES_voiceRecOn]; - } else { - [store removeObjectForKey:NAMES_voiceRecOn]; - } +- (void)setBtIconOn:(NSNumber *)btIconOn { + [store sdl_setObject:btIconOn forName:SDLNameBluetoothIconOn]; } -- (NSNumber *)voiceRecOn { - return [store objectForKey:NAMES_voiceRecOn]; +- (NSNumber *)btIconOn { + return [store sdl_objectForName:SDLNameBluetoothIconOn]; } -- (void)setBtIconOn:(NSNumber *)btIconOn { - if (btIconOn != nil) { - [store setObject:btIconOn forKey:NAMES_btIconOn]; - } else { - [store removeObjectForKey:NAMES_btIconOn]; - } +- (void)setCallActive:(NSNumber *)callActive { + [store sdl_setObject:callActive forName:SDLNameCallActive]; } -- (NSNumber *)btIconOn { - return [store objectForKey:NAMES_btIconOn]; +- (NSNumber *)callActive { + return [store sdl_objectForName:SDLNameCallActive]; } -- (void)setCallActive:(NSNumber *)callActive { - if (callActive != nil) { - [store setObject:callActive forKey:NAMES_callActive]; - } else { - [store removeObjectForKey:NAMES_callActive]; - } +- (void)setPhoneRoaming:(NSNumber *)phoneRoaming { + [store sdl_setObject:phoneRoaming forName:SDLNamePhoneRoaming]; } -- (NSNumber *)callActive { - return [store objectForKey:NAMES_callActive]; +- (NSNumber *)phoneRoaming { + return [store sdl_objectForName:SDLNamePhoneRoaming]; } -- (void)setPhoneRoaming:(NSNumber *)phoneRoaming { - if (phoneRoaming != nil) { - [store setObject:phoneRoaming forKey:NAMES_phoneRoaming]; - } else { - [store removeObjectForKey:NAMES_phoneRoaming]; - } +- (void)setTextMsgAvailable:(NSNumber *)textMsgAvailable { + [store sdl_setObject:textMsgAvailable forName:SDLNameTextMessageAvailable]; } -- (NSNumber *)phoneRoaming { - return [store objectForKey:NAMES_phoneRoaming]; +- (NSNumber *)textMsgAvailable { + return [store sdl_objectForName:SDLNameTextMessageAvailable]; } -- (void)setTextMsgAvailable:(NSNumber *)textMsgAvailable { - if (textMsgAvailable != nil) { - [store setObject:textMsgAvailable forKey:NAMES_textMsgAvailable]; - } else { - [store removeObjectForKey:NAMES_textMsgAvailable]; - } +- (void)setBattLevelStatus:(SDLDeviceLevelStatus )battLevelStatus { + [store sdl_setObject:battLevelStatus forName:SDLNameBatteryLevelStatus]; } -- (NSNumber *)textMsgAvailable { - return [store objectForKey:NAMES_textMsgAvailable]; +- (SDLDeviceLevelStatus)battLevelStatus { + return [store sdl_objectForName:SDLNameBatteryLevelStatus]; } -- (void)setBattLevelStatus:(SDLDeviceLevelStatus *)battLevelStatus { - if (battLevelStatus != nil) { - [store setObject:battLevelStatus forKey:NAMES_battLevelStatus]; - } else { - [store removeObjectForKey:NAMES_battLevelStatus]; - } +- (void)setStereoAudioOutputMuted:(NSNumber *)stereoAudioOutputMuted { + [store sdl_setObject:stereoAudioOutputMuted forName:SDLNameStereoAudioOutputMuted]; } -- (SDLDeviceLevelStatus *)battLevelStatus { - NSObject *obj = [store objectForKey:NAMES_battLevelStatus]; - if (obj == nil || [obj isKindOfClass:SDLDeviceLevelStatus.class]) { - return (SDLDeviceLevelStatus *)obj; - } else { - return [SDLDeviceLevelStatus valueOf:(NSString *)obj]; - } +- (NSNumber *)stereoAudioOutputMuted { + return [store sdl_objectForName:SDLNameStereoAudioOutputMuted]; } -- (void)setStereoAudioOutputMuted:(NSNumber *)stereoAudioOutputMuted { - if (stereoAudioOutputMuted != nil) { - [store setObject:stereoAudioOutputMuted forKey:NAMES_stereoAudioOutputMuted]; - } else { - [store removeObjectForKey:NAMES_stereoAudioOutputMuted]; - } +- (void)setMonoAudioOutputMuted:(NSNumber *)monoAudioOutputMuted { + [store sdl_setObject:monoAudioOutputMuted forName:SDLNameMonoAudioOutputMuted]; } -- (NSNumber *)stereoAudioOutputMuted { - return [store objectForKey:NAMES_stereoAudioOutputMuted]; +- (NSNumber *)monoAudioOutputMuted { + return [store sdl_objectForName:SDLNameMonoAudioOutputMuted]; } -- (void)setMonoAudioOutputMuted:(NSNumber *)monoAudioOutputMuted { - if (monoAudioOutputMuted != nil) { - [store setObject:monoAudioOutputMuted forKey:NAMES_monoAudioOutputMuted]; - } else { - [store removeObjectForKey:NAMES_monoAudioOutputMuted]; - } +- (void)setSignalLevelStatus:(SDLDeviceLevelStatus)signalLevelStatus { + [store sdl_setObject:signalLevelStatus forName:SDLNameSignalLevelStatus]; } -- (NSNumber *)monoAudioOutputMuted { - return [store objectForKey:NAMES_monoAudioOutputMuted]; +- (SDLDeviceLevelStatus)signalLevelStatus { + return [store sdl_objectForName:SDLNameSignalLevelStatus]; } -- (void)setSignalLevelStatus:(SDLDeviceLevelStatus *)signalLevelStatus { - if (signalLevelStatus != nil) { - [store setObject:signalLevelStatus forKey:NAMES_signalLevelStatus]; - } else { - [store removeObjectForKey:NAMES_signalLevelStatus]; - } +- (void)setPrimaryAudioSource:(SDLPrimaryAudioSource)primaryAudioSource { + [store sdl_setObject:primaryAudioSource forName:SDLNamePrimaryAudioSource]; } -- (SDLDeviceLevelStatus *)signalLevelStatus { - NSObject *obj = [store objectForKey:NAMES_signalLevelStatus]; - if (obj == nil || [obj isKindOfClass:SDLDeviceLevelStatus.class]) { - return (SDLDeviceLevelStatus *)obj; - } else { - return [SDLDeviceLevelStatus valueOf:(NSString *)obj]; - } +- (SDLPrimaryAudioSource)primaryAudioSource { + return [store sdl_objectForName:SDLNamePrimaryAudioSource]; } -- (void)setPrimaryAudioSource:(SDLPrimaryAudioSource *)primaryAudioSource { - if (primaryAudioSource != nil) { - [store setObject:primaryAudioSource forKey:NAMES_primaryAudioSource]; - } else { - [store removeObjectForKey:NAMES_primaryAudioSource]; - } +- (void)setECallEventActive:(NSNumber *)eCallEventActive { + [store sdl_setObject:eCallEventActive forName:SDLNameECallEventActive]; } -- (SDLPrimaryAudioSource *)primaryAudioSource { - NSObject *obj = [store objectForKey:NAMES_primaryAudioSource]; - if (obj == nil || [obj isKindOfClass:SDLPrimaryAudioSource.class]) { - return (SDLPrimaryAudioSource *)obj; - } else { - return [SDLPrimaryAudioSource valueOf:(NSString *)obj]; - } -} - -- (void)setECallEventActive:(NSNumber *)eCallEventActive { - if (eCallEventActive != nil) { - [store setObject:eCallEventActive forKey:NAMES_eCallEventActive]; - } else { - [store removeObjectForKey:NAMES_eCallEventActive]; - } -} - -- (NSNumber *)eCallEventActive { - return [store objectForKey:NAMES_eCallEventActive]; +- (NSNumber *)eCallEventActive { + return [store sdl_objectForName:SDLNameECallEventActive]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDiagnosticMessage.h b/SmartDeviceLink/SDLDiagnosticMessage.h index 45be93544..d056c5488 100644 --- a/SmartDeviceLink/SDLDiagnosticMessage.h +++ b/SmartDeviceLink/SDLDiagnosticMessage.h @@ -9,11 +9,10 @@ * * @since SDL 3.0 */ -@interface SDLDiagnosticMessage : SDLRPCRequest { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLDiagnosticMessage : SDLRPCRequest - (instancetype)initWithTargetId:(UInt16)targetId length:(UInt16)length data:(NSArray *> *)data; @@ -22,20 +21,22 @@ * * Required, Integer, 0 - 65535 */ -@property (strong) NSNumber *targetID; +@property (strong, nonatomic) NSNumber *targetID; /** * Length of message (in bytes) * * Required, Integer, 65535 */ -@property (strong) NSNumber *messageLength; +@property (strong, nonatomic) NSNumber *messageLength; /** * Array of bytes comprising CAN message. * * Required, Array of NSNumber (Integers), Array size 1 - 65535, Integer Size 0 - 255 */ -@property (strong) NSMutableArray *messageData; +@property (strong, nonatomic) NSArray *> *messageData; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDiagnosticMessage.m b/SmartDeviceLink/SDLDiagnosticMessage.m index 37d1a26c8..dff509a4d 100644 --- a/SmartDeviceLink/SDLDiagnosticMessage.m +++ b/SmartDeviceLink/SDLDiagnosticMessage.m @@ -4,23 +4,20 @@ #import "SDLDiagnosticMessage.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLDiagnosticMessage - (instancetype)init { - if (self = [super initWithName:NAMES_DiagnosticMessage]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameDiagnosticMessage]) { } return self; } -- (instancetype)initWithTargetId:(UInt16)targetId length:(UInt16)length data:(NSArray *> *)data { +- (instancetype)initWithTargetId:(UInt16)targetId length:(UInt16)length data:(NSArray *)data { self = [self init]; if (!self) { return nil; @@ -33,40 +30,30 @@ - (instancetype)initWithTargetId:(UInt16)targetId length:(UInt16)length data:(NS return self; } -- (void)setTargetID:(NSNumber *)targetID { - if (targetID != nil) { - [parameters setObject:targetID forKey:NAMES_targetID]; - } else { - [parameters removeObjectForKey:NAMES_targetID]; - } +- (void)setTargetID:(NSNumber *)targetID { + [parameters sdl_setObject:targetID forName:SDLNameTargetId]; } -- (NSNumber *)targetID { - return [parameters objectForKey:NAMES_targetID]; +- (NSNumber *)targetID { + return [parameters sdl_objectForName:SDLNameTargetId]; } -- (void)setMessageLength:(NSNumber *)messageLength { - if (messageLength != nil) { - [parameters setObject:messageLength forKey:NAMES_messageLength]; - } else { - [parameters removeObjectForKey:NAMES_messageLength]; - } +- (void)setMessageLength:(NSNumber *)messageLength { + [parameters sdl_setObject:messageLength forName:SDLNameMessageLength]; } -- (NSNumber *)messageLength { - return [parameters objectForKey:NAMES_messageLength]; +- (NSNumber *)messageLength { + return [parameters sdl_objectForName:SDLNameMessageLength]; } -- (void)setMessageData:(NSMutableArray *)messageData { - if (messageData != nil) { - [parameters setObject:messageData forKey:NAMES_messageData]; - } else { - [parameters removeObjectForKey:NAMES_messageData]; - } +- (void)setMessageData:(NSArray *> *)messageData { + [parameters sdl_setObject:messageData forName:SDLNameMessageData]; } -- (NSMutableArray *)messageData { - return [parameters objectForKey:NAMES_messageData]; +- (NSArray *> *)messageData { + return [parameters sdl_objectForName:SDLNameMessageData]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDiagnosticMessageResponse.h b/SmartDeviceLink/SDLDiagnosticMessageResponse.h index 4820b893f..60124540e 100644 --- a/SmartDeviceLink/SDLDiagnosticMessageResponse.h +++ b/SmartDeviceLink/SDLDiagnosticMessageResponse.h @@ -7,12 +7,13 @@ /** SDLDiagnosticMessageResponse is sent, when SDLDiagnosticMessage has been called. * SinceSmartDeviceLink 3.0 */ -@interface SDLDiagnosticMessageResponse : SDLRPCResponse { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN -@property (strong) NSMutableArray *messageDataResult; +@interface SDLDiagnosticMessageResponse : SDLRPCResponse + +@property (strong, nonatomic) NSArray *> *messageDataResult; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDiagnosticMessageResponse.m b/SmartDeviceLink/SDLDiagnosticMessageResponse.m index f8215d977..fac88769c 100644 --- a/SmartDeviceLink/SDLDiagnosticMessageResponse.m +++ b/SmartDeviceLink/SDLDiagnosticMessageResponse.m @@ -3,32 +3,27 @@ #import "SDLDiagnosticMessageResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLDiagnosticMessageResponse - (instancetype)init { - if (self = [super initWithName:NAMES_DiagnosticMessage]) { + if (self = [super initWithName:SDLNameDiagnosticMessage]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (void)setMessageDataResult:(NSArray *> *)messageDataResult { + [parameters sdl_setObject:messageDataResult forName:SDLNameMessageDataResult]; } -- (void)setMessageDataResult:(NSMutableArray *)messageDataResult { - if (messageDataResult != nil) { - [parameters setObject:messageDataResult forKey:NAMES_messageDataResult]; - } else { - [parameters removeObjectForKey:NAMES_messageDataResult]; - } -} - -- (NSMutableArray *)messageDataResult { - return [parameters objectForKey:NAMES_messageDataResult]; +- (NSArray *> *)messageDataResult { + return [parameters sdl_objectForName:SDLNameMessageDataResult]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDialNumber.h b/SmartDeviceLink/SDLDialNumber.h index e04ccfb37..292ab7adc 100644 --- a/SmartDeviceLink/SDLDialNumber.h +++ b/SmartDeviceLink/SDLDialNumber.h @@ -9,10 +9,10 @@ @since SDL 4.0 */ -@interface SDLDialNumber : SDLRPCRequest -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLDialNumber : SDLRPCRequest - (instancetype)initWithNumber:(NSString *)number; @@ -22,3 +22,5 @@ @property (strong, nonatomic) NSString *number; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDialNumber.m b/SmartDeviceLink/SDLDialNumber.m index 95b51e226..7930892d1 100644 --- a/SmartDeviceLink/SDLDialNumber.m +++ b/SmartDeviceLink/SDLDialNumber.m @@ -4,18 +4,13 @@ #import "SDLDialNumber.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" @implementation SDLDialNumber - (instancetype)init { - if (self = [super initWithName:NAMES_DialNumber]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameDialNumber]) { } return self; } @@ -32,15 +27,11 @@ - (instancetype)initWithNumber:(NSString *)number { } - (void)setNumber:(NSString *)number { - if (number != nil) { - parameters[NAMES_number] = number; - } else { - [parameters removeObjectForKey:NAMES_number]; - } + [parameters sdl_setObject:number forName:SDLNameNumber]; } - (NSString *)number { - return parameters[NAMES_number]; + return [parameters sdl_objectForName:SDLNameNumber]; } @end diff --git a/SmartDeviceLink/SDLDialNumberResponse.h b/SmartDeviceLink/SDLDialNumberResponse.h index 454babcf3..7f8dfaa14 100644 --- a/SmartDeviceLink/SDLDialNumberResponse.h +++ b/SmartDeviceLink/SDLDialNumberResponse.h @@ -9,9 +9,11 @@ @since SDL 4.0 */ -@interface SDLDialNumberResponse : SDLRPCResponse -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLDialNumberResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDialNumberResponse.m b/SmartDeviceLink/SDLDialNumberResponse.m index a0b6dd83e..b791e2cd2 100644 --- a/SmartDeviceLink/SDLDialNumberResponse.m +++ b/SmartDeviceLink/SDLDialNumberResponse.m @@ -4,21 +4,19 @@ #import "SDLDialNumberResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLDialNumberResponse - (instancetype)init { - if (self = [super initWithName:NAMES_DialNumber]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameDialNumber]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDimension.h b/SmartDeviceLink/SDLDimension.h index 535f93e6e..a05d9f1f0 100644 --- a/SmartDeviceLink/SDLDimension.h +++ b/SmartDeviceLink/SDLDimension.h @@ -4,48 +4,24 @@ #import "SDLEnum.h" -#import - /** * The supported dimensions of the GPS. * * @since SDL 2.0 */ -@interface SDLDimension : SDLEnum { -} - -/** - * Convert String to SDLDimension - * - * @param value The value of the string to get an object for - * - * @return SDLDimension - */ -+ (SDLDimension *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLDimension - * - * @return An array that store all possible SDLDimension - */ -+ (NSArray *)values; +typedef SDLEnum SDLDimension SDL_SWIFT_ENUM; /** * @abstract No GPS at all - * @return the dimension with value of *NO_FIX* */ -+ (SDLDimension *)NO_FIX; +extern SDLDimension const SDLDimensionNoFix; /** * @abstract Longitude and latitude of the GPS - * @return the dimension with value of *2D* */ -+ (SDLDimension *)_2D; +extern SDLDimension const SDLDimension2D; /** * @abstract Longitude and latitude and altitude of the GPS - * @return the dimension with value of *3D* */ -+ (SDLDimension *)_3D; - -@end +extern SDLDimension const SDLDimension3D; diff --git a/SmartDeviceLink/SDLDimension.m b/SmartDeviceLink/SDLDimension.m index 81e0114fc..0730fcf75 100644 --- a/SmartDeviceLink/SDLDimension.m +++ b/SmartDeviceLink/SDLDimension.m @@ -4,53 +4,6 @@ #import "SDLDimension.h" -SDLDimension *SDLDimension_NO_FIX = nil; -SDLDimension *SDLDimension_2D = nil; -SDLDimension *SDLDimension_3D = nil; - -NSArray *SDLDimension_values = nil; - -@implementation SDLDimension - -+ (SDLDimension *)valueOf:(NSString *)value { - for (SDLDimension *item in SDLDimension.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLDimension_values == nil) { - SDLDimension_values = @[ - SDLDimension.NO_FIX, - SDLDimension._2D, - SDLDimension._3D, - ]; - } - return SDLDimension_values; -} - -+ (SDLDimension *)NO_FIX { - if (SDLDimension_NO_FIX == nil) { - SDLDimension_NO_FIX = [[SDLDimension alloc] initWithValue:@"NO_FIX"]; - } - return SDLDimension_NO_FIX; -} - -+ (SDLDimension *)_2D { - if (SDLDimension_2D == nil) { - SDLDimension_2D = [[SDLDimension alloc] initWithValue:@"2D"]; - } - return SDLDimension_2D; -} - -+ (SDLDimension *)_3D { - if (SDLDimension_3D == nil) { - SDLDimension_3D = [[SDLDimension alloc] initWithValue:@"3D"]; - } - return SDLDimension_3D; -} - -@end +SDLDimension const SDLDimensionNoFix = @"NO_FIX"; +SDLDimension const SDLDimension2D = @"2D"; +SDLDimension const SDLDimension3D = @"3D"; diff --git a/SmartDeviceLink/SDLDisplayCapabilities.h b/SmartDeviceLink/SDLDisplayCapabilities.h index 57ebd6719..3ef70cb1b 100644 --- a/SmartDeviceLink/SDLDisplayCapabilities.h +++ b/SmartDeviceLink/SDLDisplayCapabilities.h @@ -3,36 +3,29 @@ #import "SDLRPCMessage.h" -@class SDLDisplayType; -@class SDLScreenParams; +#import "SDLDisplayType.h" +#import "SDLMediaClockFormat.h" +@class SDLImageField; +@class SDLScreenParams; +@class SDLTextField; /** * Contains information about the display for the SDL system to which the application is currently connected. * * @since SDL 1.0 */ -@interface SDLDisplayCapabilities : SDLRPCStruct { -} -/** - * Constructs a newly allocated SDLDisplayCapabilities object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * Constructs a newly allocated SDLDisplayCapabilities object indicated by the dictionary parameter - * - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLDisplayCapabilities : SDLRPCStruct /** * @abstract The type of display * * Required */ -@property (strong) SDLDisplayType *displayType; +@property (strong, nonatomic) SDLDisplayType displayType; /** * @abstract An array of SDLTextField structures, each of which describes a field in the HMI which the application can write to using operations such as *SDLShow*, *SDLSetMediaClockTimer*, etc. @@ -43,7 +36,7 @@ * * Required, Array of SDLTextField, 1 - 100 objects */ -@property (strong) NSMutableArray *textFields; +@property (strong, nonatomic) NSArray *textFields; /** * @abstract An array of SDLImageField elements @@ -54,7 +47,7 @@ * * Optional, Array of SDLImageField, 1 - 100 objects */ -@property (strong) NSMutableArray *imageFields; +@property (nullable, strong, nonatomic) NSArray *imageFields; /** * @abstract An array of SDLMediaClockFormat elements, defining the valid string formats used in specifying the contents of the media clock field @@ -63,7 +56,7 @@ * * Required, Array of SDLMediaClockFormats, 0 - 100 objects */ -@property (strong) NSMutableArray *mediaClockFormats; +@property (strong, nonatomic) NSArray *mediaClockFormats; /** * @abstract The display's persistent screen supports. @@ -72,7 +65,7 @@ * * Required, Boolean */ -@property (strong) NSNumber *graphicSupported; +@property (strong, nonatomic) NSNumber *graphicSupported; /** * @abstract Number of presets the screen supports @@ -81,20 +74,22 @@ * * Optional, Array of String, max string size 100, 0 - 100 objects */ -@property (strong) NSMutableArray *templatesAvailable; +@property (nullable, strong, nonatomic) NSArray *templatesAvailable; /** * @abstract A set of all parameters related to a prescribed screen area (e.g. for video / touch input) * * Optional */ -@property (strong) SDLScreenParams *screenParams; +@property (nullable, strong, nonatomic) SDLScreenParams *screenParams; /** * @abstract The number of on-screen custom presets available (if any); otherwise omitted * * Optional, Integer 1 - 100 */ -@property (strong) NSNumber *numCustomPresetsAvailable; +@property (nullable, strong, nonatomic) NSNumber *numCustomPresetsAvailable; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDisplayCapabilities.m b/SmartDeviceLink/SDLDisplayCapabilities.m index a9ddd21f2..06a8912e7 100644 --- a/SmartDeviceLink/SDLDisplayCapabilities.m +++ b/SmartDeviceLink/SDLDisplayCapabilities.m @@ -3,165 +3,80 @@ #import "SDLDisplayCapabilities.h" -#import "SDLDisplayType.h" -#import "SDLImageField.h" -#import "SDLMediaClockFormat.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +#import "SDLImageField.h" #import "SDLScreenParams.h" #import "SDLTextField.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLDisplayCapabilities -- (instancetype)init { - if (self = [super init]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (void)setDisplayType:(SDLDisplayType *)displayType { - if (displayType != nil) { - [store setObject:displayType forKey:NAMES_displayType]; - } else { - [store removeObjectForKey:NAMES_displayType]; - } -} - -- (SDLDisplayType *)displayType { - NSObject *obj = [store objectForKey:NAMES_displayType]; - if (obj == nil || [obj isKindOfClass:SDLDisplayType.class]) { - return (SDLDisplayType *)obj; - } else { - return [SDLDisplayType valueOf:(NSString *)obj]; - } -} - -- (void)setTextFields:(NSMutableArray *)textFields { - if (textFields != nil) { - [store setObject:textFields forKey:NAMES_textFields]; - } else { - [store removeObjectForKey:NAMES_textFields]; - } -} - -- (NSMutableArray *)textFields { - NSMutableArray *array = [store objectForKey:NAMES_textFields]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTextField.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLTextField alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } -} - -- (void)setImageFields:(NSMutableArray *)imageFields { - if (imageFields != nil) { - [store setObject:imageFields forKey:NAMES_imageFields]; - } else { - [store removeObjectForKey:NAMES_imageFields]; - } -} - -- (NSMutableArray *)imageFields { - NSMutableArray *array = [store objectForKey:NAMES_imageFields]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLImageField.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLImageField alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } -} - -- (void)setMediaClockFormats:(NSMutableArray *)mediaClockFormats { - if (mediaClockFormats != nil) { - [store setObject:mediaClockFormats forKey:NAMES_mediaClockFormats]; - } else { - [store removeObjectForKey:NAMES_mediaClockFormats]; - } -} - -- (NSMutableArray *)mediaClockFormats { - NSMutableArray *array = [store objectForKey:NAMES_mediaClockFormats]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLMediaClockFormat.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSString *enumString in array) { - [newList addObject:[SDLMediaClockFormat valueOf:enumString]]; - } - return newList; - } -} - -- (void)setGraphicSupported:(NSNumber *)graphicSupported { - if (graphicSupported != nil) { - [store setObject:graphicSupported forKey:NAMES_graphicSupported]; - } else { - [store removeObjectForKey:NAMES_graphicSupported]; - } +- (void)setDisplayType:(SDLDisplayType)displayType { + [store sdl_setObject:displayType forName:SDLNameDisplayType]; +} + +- (SDLDisplayType)displayType { + return [store sdl_objectForName:SDLNameDisplayType]; +} + +- (void)setTextFields:(NSArray *)textFields { + [store sdl_setObject:textFields forName:SDLNameTextFields]; +} + +- (NSArray *)textFields { + return [store sdl_objectsForName:SDLNameTextFields ofClass:SDLTextField.class]; +} + +- (void)setImageFields:(nullable NSArray *)imageFields { + [store sdl_setObject:imageFields forName:SDLNameImageFields]; +} + +- (nullable NSArray *)imageFields { + return [store sdl_objectsForName:SDLNameImageFields ofClass:SDLImageField.class]; +} + +- (void)setMediaClockFormats:(NSArray *)mediaClockFormats { + [store sdl_setObject:mediaClockFormats forName:SDLNameMediaClockFormats]; +} + +- (NSArray *)mediaClockFormats { + return [store sdl_objectForName:SDLNameMediaClockFormats]; +} + +- (void)setGraphicSupported:(NSNumber *)graphicSupported { + [store sdl_setObject:graphicSupported forName:SDLNameGraphicSupported]; +} + +- (NSNumber *)graphicSupported { + return [store sdl_objectForName:SDLNameGraphicSupported]; +} + +- (void)setTemplatesAvailable:(nullable NSArray *)templatesAvailable { + [store sdl_setObject:templatesAvailable forName:SDLNameTemplatesAvailable]; } - -- (NSNumber *)graphicSupported { - return [store objectForKey:NAMES_graphicSupported]; -} - -- (void)setTemplatesAvailable:(NSMutableArray *)templatesAvailable { - if (templatesAvailable != nil) { - [store setObject:templatesAvailable forKey:NAMES_templatesAvailable]; - } else { - [store removeObjectForKey:NAMES_templatesAvailable]; - } -} - -- (NSMutableArray *)templatesAvailable { - return [store objectForKey:NAMES_templatesAvailable]; -} - -- (void)setScreenParams:(SDLScreenParams *)screenParams { - if (screenParams != nil) { - [store setObject:screenParams forKey:NAMES_screenParams]; - } else { - [store removeObjectForKey:NAMES_screenParams]; - } -} - -- (SDLScreenParams *)screenParams { - NSObject *obj = [store objectForKey:NAMES_screenParams]; - if (obj == nil || [obj isKindOfClass:SDLScreenParams.class]) { - return (SDLScreenParams *)obj; - } else { - return [[SDLScreenParams alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } -} - -- (void)setNumCustomPresetsAvailable:(NSNumber *)numCustomPresetsAvailable { - if (numCustomPresetsAvailable != nil) { - [store setObject:numCustomPresetsAvailable forKey:NAMES_numCustomPresetsAvailable]; - } else { - [store removeObjectForKey:NAMES_numCustomPresetsAvailable]; - } + +- (nullable NSArray *)templatesAvailable { + return [store sdl_objectForName:SDLNameTemplatesAvailable]; } -- (NSNumber *)numCustomPresetsAvailable { - return [store objectForKey:NAMES_numCustomPresetsAvailable]; +- (void)setScreenParams:(nullable SDLScreenParams *)screenParams { + [store sdl_setObject:screenParams forName:SDLNameScreenParams]; +} + +- (nullable SDLScreenParams *)screenParams { + return [store sdl_objectForName:SDLNameScreenParams ofClass:SDLScreenParams.class]; +} + +- (void)setNumCustomPresetsAvailable:(nullable NSNumber *)numCustomPresetsAvailable { + [store sdl_setObject:numCustomPresetsAvailable forName:SDLNameNumberCustomPresetsAvailable]; +} + +- (nullable NSNumber *)numCustomPresetsAvailable { + return [store sdl_objectForName:SDLNameNumberCustomPresetsAvailable]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLDisplayType.h b/SmartDeviceLink/SDLDisplayType.h index a25590ecb..e9e9e5fec 100644 --- a/SmartDeviceLink/SDLDisplayType.h +++ b/SmartDeviceLink/SDLDisplayType.h @@ -9,55 +9,32 @@ * * @since SDL 1.0 */ -@interface SDLDisplayType : SDLEnum { -} - -/** - * Convert String to SDLDisplayType - * - * @param value The value of the string to get an object for - * - * @return SDLDisplayType - */ -+ (SDLDisplayType *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLDisplayType - * - * @return an array that store all possible SDLDisplayType - */ -+ (NSArray *)values; +typedef SDLEnum SDLDisplayType SDL_SWIFT_ENUM; /** * @abstract This display type provides a 2-line x 20 character "dot matrix" display. - * - * @return SDLDisplayType with value of *CID* */ -+ (SDLDisplayType *)CID; +extern SDLDisplayType const SDLDisplayTypeCID; -+ (SDLDisplayType *)TYPE2; +extern SDLDisplayType const SDLDisplayTypeType2; -+ (SDLDisplayType *)TYPE5; +extern SDLDisplayType const SDLDisplayTypeType5; /** * @abstract This display type provides an 8 inch touchscreen display. - * - * @return SDLDisplayType with value of *NGN* */ -+ (SDLDisplayType *)NGN; - -+ (SDLDisplayType *)GEN2_8_DMA; +extern SDLDisplayType const SDLDisplayTypeNGN; -+ (SDLDisplayType *)GEN2_6_DMA; +extern SDLDisplayType const SDLDisplayTypeGen28DMA; -+ (SDLDisplayType *)MFD3; +extern SDLDisplayType const SDLDisplayTypeGen26DMA; -+ (SDLDisplayType *)MFD4; +extern SDLDisplayType const SDLDisplayTypeMFD3; -+ (SDLDisplayType *)MFD5; +extern SDLDisplayType const SDLDisplayTypeMFD4; -+ (SDLDisplayType *)GEN3_8_INCH; +extern SDLDisplayType const SDLDisplayTypeMFD5; -+ (SDLDisplayType *)GENERIC; +extern SDLDisplayType const SDLDisplayTypeGen38Inch; -@end +extern SDLDisplayType const SDLDisplayTypeGeneric; diff --git a/SmartDeviceLink/SDLDisplayType.m b/SmartDeviceLink/SDLDisplayType.m index 0c44413c0..be057354f 100644 --- a/SmartDeviceLink/SDLDisplayType.m +++ b/SmartDeviceLink/SDLDisplayType.m @@ -4,125 +4,14 @@ #import "SDLDisplayType.h" -SDLDisplayType *SDLDisplayType_CID = nil; -SDLDisplayType *SDLDisplayType_TYPE2 = nil; -SDLDisplayType *SDLDisplayType_TYPE5 = nil; -SDLDisplayType *SDLDisplayType_NGN = nil; -SDLDisplayType *SDLDisplayType_GEN2_8_DMA = nil; -SDLDisplayType *SDLDisplayType_GEN2_6_DMA = nil; -SDLDisplayType *SDLDisplayType_MFD3 = nil; -SDLDisplayType *SDLDisplayType_MFD4 = nil; -SDLDisplayType *SDLDisplayType_MFD5 = nil; -SDLDisplayType *SDLDisplayType_GEN3_8_INCH = nil; -SDLDisplayType *SDLDisplayType_GENERIC = nil; - -NSArray *SDLDisplayType_values = nil; - -@implementation SDLDisplayType - -+ (SDLDisplayType *)valueOf:(NSString *)value { - for (SDLDisplayType *item in SDLDisplayType.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLDisplayType_values == nil) { - SDLDisplayType_values = @[ - SDLDisplayType.CID, - SDLDisplayType.TYPE2, - SDLDisplayType.TYPE5, - SDLDisplayType.NGN, - SDLDisplayType.GEN2_8_DMA, - SDLDisplayType.GEN2_6_DMA, - SDLDisplayType.MFD3, - SDLDisplayType.MFD4, - SDLDisplayType.MFD5, - SDLDisplayType.GEN3_8_INCH, - SDLDisplayType.GENERIC - ]; - } - return SDLDisplayType_values; -} - -+ (SDLDisplayType *)CID { - if (SDLDisplayType_CID == nil) { - SDLDisplayType_CID = [[SDLDisplayType alloc] initWithValue:@"CID"]; - } - return SDLDisplayType_CID; -} - -+ (SDLDisplayType *)TYPE2 { - if (SDLDisplayType_TYPE2 == nil) { - SDLDisplayType_TYPE2 = [[SDLDisplayType alloc] initWithValue:@"TYPE2"]; - } - return SDLDisplayType_TYPE2; -} - -+ (SDLDisplayType *)TYPE5 { - if (SDLDisplayType_TYPE5 == nil) { - SDLDisplayType_TYPE5 = [[SDLDisplayType alloc] initWithValue:@"TYPE5"]; - } - return SDLDisplayType_TYPE5; -} - -+ (SDLDisplayType *)NGN { - if (SDLDisplayType_NGN == nil) { - SDLDisplayType_NGN = [[SDLDisplayType alloc] initWithValue:@"NGN"]; - } - return SDLDisplayType_NGN; -} - -+ (SDLDisplayType *)GEN2_8_DMA { - if (SDLDisplayType_GEN2_8_DMA == nil) { - SDLDisplayType_GEN2_8_DMA = [[SDLDisplayType alloc] initWithValue:@"GEN2_8_DMA"]; - } - return SDLDisplayType_GEN2_8_DMA; -} - -+ (SDLDisplayType *)GEN2_6_DMA { - if (SDLDisplayType_GEN2_6_DMA == nil) { - SDLDisplayType_GEN2_6_DMA = [[SDLDisplayType alloc] initWithValue:@"GEN2_6_DMA"]; - } - return SDLDisplayType_GEN2_6_DMA; -} - -+ (SDLDisplayType *)MFD3 { - if (SDLDisplayType_MFD3 == nil) { - SDLDisplayType_MFD3 = [[SDLDisplayType alloc] initWithValue:@"MFD3"]; - } - return SDLDisplayType_MFD3; -} - -+ (SDLDisplayType *)MFD4 { - if (SDLDisplayType_MFD4 == nil) { - SDLDisplayType_MFD4 = [[SDLDisplayType alloc] initWithValue:@"MFD4"]; - } - return SDLDisplayType_MFD4; -} - -+ (SDLDisplayType *)MFD5 { - if (SDLDisplayType_MFD5 == nil) { - SDLDisplayType_MFD5 = [[SDLDisplayType alloc] initWithValue:@"MFD5"]; - } - return SDLDisplayType_MFD5; -} - -+ (SDLDisplayType *)GEN3_8_INCH { - if (SDLDisplayType_GEN3_8_INCH == nil) { - SDLDisplayType_GEN3_8_INCH = [[SDLDisplayType alloc] initWithValue:@"GEN3_8-INCH"]; - } - return SDLDisplayType_GEN3_8_INCH; -} - -+ (SDLDisplayType *)GENERIC { - if (SDLDisplayType_GENERIC == nil) { - SDLDisplayType_GENERIC = [[SDLDisplayType alloc] initWithValue:@"SDL_GENERIC"]; - } - return SDLDisplayType_GENERIC; -} - -@end +SDLDisplayType const SDLDisplayTypeCID = @"CID"; +SDLDisplayType const SDLDisplayTypeType2 = @"TYPE2"; +SDLDisplayType const SDLDisplayTypeType5 = @"TYPE5"; +SDLDisplayType const SDLDisplayTypeNGN = @"NGN"; +SDLDisplayType const SDLDisplayTypeGen28DMA = @"GEN2_8_DMA"; +SDLDisplayType const SDLDisplayTypeGen26DMA = @"GEN2_6_DMA"; +SDLDisplayType const SDLDisplayTypeMFD3 = @"MFD3"; +SDLDisplayType const SDLDisplayTypeMFD4 = @"MFD4"; +SDLDisplayType const SDLDisplayTypeMFD5 = @"MFD5"; +SDLDisplayType const SDLDisplayTypeGen38Inch = @"GEN3_8-INCH"; +SDLDisplayType const SDLDisplayTypeGeneric = @"SDL_GENERIC"; diff --git a/SmartDeviceLink/SDLDriverDistractionState.h b/SmartDeviceLink/SDLDriverDistractionState.h index 7143d09d2..be94148cb 100644 --- a/SmartDeviceLink/SDLDriverDistractionState.h +++ b/SmartDeviceLink/SDLDriverDistractionState.h @@ -9,37 +9,15 @@ * * @since SDL 1.0 */ -@interface SDLDriverDistractionState : SDLEnum { -} - -/** - * Convert String to SDLDisplayType - * - * @param value The value of the string to get an object for - * - * @return SDLDisplayType - */ -+ (SDLDriverDistractionState *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLDriverDistractionState - * - * @return an array that store all possible SDLDriverDistractionState - */ -+ (NSArray *)values; +typedef SDLEnum SDLDriverDistractionState SDL_SWIFT_ENUM; /** * @abstract Driver distraction rules are in effect. - * - * @return a SDLDriverDistractionState with value of *DD_ON* */ -+ (SDLDriverDistractionState *)DD_ON; +extern SDLDriverDistractionState const SDLDriverDistractionStateOn; /** * @abstract Driver distraction rules are NOT in effect. - * - * @return a SDLDriverDistractionState with value of *DD_OFF* */ -+ (SDLDriverDistractionState *)DD_OFF; +extern SDLDriverDistractionState const SDLDriverDistractionStateOff; -@end diff --git a/SmartDeviceLink/SDLDriverDistractionState.m b/SmartDeviceLink/SDLDriverDistractionState.m index c9a6d8714..17290359a 100644 --- a/SmartDeviceLink/SDLDriverDistractionState.m +++ b/SmartDeviceLink/SDLDriverDistractionState.m @@ -4,44 +4,5 @@ #import "SDLDriverDistractionState.h" -SDLDriverDistractionState *SDLDriverDistractionState_DD_ON = nil; -SDLDriverDistractionState *SDLDriverDistractionState_DD_OFF = nil; - -NSArray *SDLDriverDistractionState_values = nil; - -@implementation SDLDriverDistractionState - -+ (SDLDriverDistractionState *)valueOf:(NSString *)value { - for (SDLDriverDistractionState *item in SDLDriverDistractionState.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLDriverDistractionState_values == nil) { - SDLDriverDistractionState_values = @[ - SDLDriverDistractionState.DD_ON, - SDLDriverDistractionState.DD_OFF, - ]; - } - return SDLDriverDistractionState_values; -} - -+ (SDLDriverDistractionState *)DD_ON { - if (SDLDriverDistractionState_DD_ON == nil) { - SDLDriverDistractionState_DD_ON = [[SDLDriverDistractionState alloc] initWithValue:@"DD_ON"]; - } - return SDLDriverDistractionState_DD_ON; -} - -+ (SDLDriverDistractionState *)DD_OFF { - if (SDLDriverDistractionState_DD_OFF == nil) { - SDLDriverDistractionState_DD_OFF = [[SDLDriverDistractionState alloc] initWithValue:@"DD_OFF"]; - } - return SDLDriverDistractionState_DD_OFF; -} - -@end +SDLDriverDistractionState const SDLDriverDistractionStateOn = @"DD_ON"; +SDLDriverDistractionState const SDLDriverDistractionStateOff = @"DD_OFF"; diff --git a/SmartDeviceLink/SDLECallConfirmationStatus.h b/SmartDeviceLink/SDLECallConfirmationStatus.h index 46fa78de6..ae63ca4da 100644 --- a/SmartDeviceLink/SDLECallConfirmationStatus.h +++ b/SmartDeviceLink/SDLECallConfirmationStatus.h @@ -8,45 +8,32 @@ *Since SmartDeviceLink 2.0

*/ -@interface SDLECallConfirmationStatus : SDLEnum { -} - -+ (SDLECallConfirmationStatus *)valueOf:(NSString *)value; -+ (NSArray *)values; +typedef SDLEnum SDLECallConfirmationStatus SDL_SWIFT_ENUM; /** No E-Call signal triggered. */ - -+ (SDLECallConfirmationStatus *)NORMAL; +extern SDLECallConfirmationStatus const SDLECallConfirmationStatusNormal; /** An E-Call is being in progress. */ - -+ (SDLECallConfirmationStatus *)CALL_IN_PROGRESS; +extern SDLECallConfirmationStatus const SDLECallConfirmationStatusInProgress; /** CALL_CANCELLED An E-Call was cancelled by the user. */ - -+ (SDLECallConfirmationStatus *)CALL_CANCELLED; +extern SDLECallConfirmationStatus const SDLECallConfirmationStatusCancelled; /** The E-Call sequence is completed. */ - -+ (SDLECallConfirmationStatus *)CALL_COMPLETED; +extern SDLECallConfirmationStatus const SDLECallConfirmationStatusCompleted; /** An E-Call could not be connected. */ - -+ (SDLECallConfirmationStatus *)CALL_UNSUCCESSFUL; +extern SDLECallConfirmationStatus const SDLECallConfirmationStatusUnsuccessful; /** E-Call is not configured on this vehicle. */ - -+ (SDLECallConfirmationStatus *)ECALL_CONFIGURED_OFF; +extern SDLECallConfirmationStatus const SDLECallConfirmationStatusConfiguredOff; /** E-Call is considered to be complete without Emergency Operator contact. */ - -+ (SDLECallConfirmationStatus *)CALL_COMPLETE_DTMF_TIMEOUT; - -@end +extern SDLECallConfirmationStatus const SDLECallConfirmationStatusCompleteDTMFTimeout; diff --git a/SmartDeviceLink/SDLECallConfirmationStatus.m b/SmartDeviceLink/SDLECallConfirmationStatus.m index aae11a791..a7ce2c856 100644 --- a/SmartDeviceLink/SDLECallConfirmationStatus.m +++ b/SmartDeviceLink/SDLECallConfirmationStatus.m @@ -4,89 +4,10 @@ #import "SDLECallConfirmationStatus.h" -SDLECallConfirmationStatus *SDLECallConfirmationStatus_NORMAL = nil; -SDLECallConfirmationStatus *SDLECallConfirmationStatus_CALL_IN_PROGRESS = nil; -SDLECallConfirmationStatus *SDLECallConfirmationStatus_CALL_CANCELLED = nil; -SDLECallConfirmationStatus *SDLECallConfirmationStatus_CALL_COMPLETED = nil; -SDLECallConfirmationStatus *SDLECallConfirmationStatus_CALL_UNSUCCESSFUL = nil; -SDLECallConfirmationStatus *SDLECallConfirmationStatus_ECALL_CONFIGURED_OFF = nil; -SDLECallConfirmationStatus *SDLECallConfirmationStatus_CALL_COMPLETE_DTMF_TIMEOUT = nil; - -NSArray *SDLECallConfirmationStatus_values = nil; - -@implementation SDLECallConfirmationStatus - -+ (SDLECallConfirmationStatus *)valueOf:(NSString *)value { - for (SDLECallConfirmationStatus *item in SDLECallConfirmationStatus.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLECallConfirmationStatus_values == nil) { - SDLECallConfirmationStatus_values = @[ - SDLECallConfirmationStatus.NORMAL, - SDLECallConfirmationStatus.CALL_IN_PROGRESS, - SDLECallConfirmationStatus.CALL_CANCELLED, - SDLECallConfirmationStatus.CALL_COMPLETED, - SDLECallConfirmationStatus.CALL_UNSUCCESSFUL, - SDLECallConfirmationStatus.ECALL_CONFIGURED_OFF, - SDLECallConfirmationStatus.CALL_COMPLETE_DTMF_TIMEOUT, - ]; - } - return SDLECallConfirmationStatus_values; -} - -+ (SDLECallConfirmationStatus *)NORMAL { - if (SDLECallConfirmationStatus_NORMAL == nil) { - SDLECallConfirmationStatus_NORMAL = [[SDLECallConfirmationStatus alloc] initWithValue:@"NORMAL"]; - } - return SDLECallConfirmationStatus_NORMAL; -} - -+ (SDLECallConfirmationStatus *)CALL_IN_PROGRESS { - if (SDLECallConfirmationStatus_CALL_IN_PROGRESS == nil) { - SDLECallConfirmationStatus_CALL_IN_PROGRESS = [[SDLECallConfirmationStatus alloc] initWithValue:@"CALL_IN_PROGRESS"]; - } - return SDLECallConfirmationStatus_CALL_IN_PROGRESS; -} - -+ (SDLECallConfirmationStatus *)CALL_CANCELLED { - if (SDLECallConfirmationStatus_CALL_CANCELLED == nil) { - SDLECallConfirmationStatus_CALL_CANCELLED = [[SDLECallConfirmationStatus alloc] initWithValue:@"CALL_CANCELLED"]; - } - return SDLECallConfirmationStatus_CALL_CANCELLED; -} - -+ (SDLECallConfirmationStatus *)CALL_COMPLETED { - if (SDLECallConfirmationStatus_CALL_COMPLETED == nil) { - SDLECallConfirmationStatus_CALL_COMPLETED = [[SDLECallConfirmationStatus alloc] initWithValue:@"CALL_COMPLETED"]; - } - return SDLECallConfirmationStatus_CALL_COMPLETED; -} - -+ (SDLECallConfirmationStatus *)CALL_UNSUCCESSFUL { - if (SDLECallConfirmationStatus_CALL_UNSUCCESSFUL == nil) { - SDLECallConfirmationStatus_CALL_UNSUCCESSFUL = [[SDLECallConfirmationStatus alloc] initWithValue:@"CALL_UNSUCCESSFUL"]; - } - return SDLECallConfirmationStatus_CALL_UNSUCCESSFUL; -} - -+ (SDLECallConfirmationStatus *)ECALL_CONFIGURED_OFF { - if (SDLECallConfirmationStatus_ECALL_CONFIGURED_OFF == nil) { - SDLECallConfirmationStatus_ECALL_CONFIGURED_OFF = [[SDLECallConfirmationStatus alloc] initWithValue:@"ECALL_CONFIGURED_OFF"]; - } - return SDLECallConfirmationStatus_ECALL_CONFIGURED_OFF; -} - -+ (SDLECallConfirmationStatus *)CALL_COMPLETE_DTMF_TIMEOUT { - if (SDLECallConfirmationStatus_CALL_COMPLETE_DTMF_TIMEOUT == nil) { - SDLECallConfirmationStatus_CALL_COMPLETE_DTMF_TIMEOUT = [[SDLECallConfirmationStatus alloc] initWithValue:@"CALL_COMPLETE_DTMF_TIMEOUT"]; - } - return SDLECallConfirmationStatus_CALL_COMPLETE_DTMF_TIMEOUT; -} - -@end +SDLECallConfirmationStatus const SDLECallConfirmationStatusNormal = @"NORMAL"; +SDLECallConfirmationStatus const SDLECallConfirmationStatusInProgress = @"CALL_IN_PROGRESS"; +SDLECallConfirmationStatus const SDLECallConfirmationStatusCancelled = @"CALL_CANCELLED"; +SDLECallConfirmationStatus const SDLECallConfirmationStatusCompleted = @"CALL_COMPLETED"; +SDLECallConfirmationStatus const SDLECallConfirmationStatusUnsuccessful = @"CALL_UNSUCCESSFUL"; +SDLECallConfirmationStatus const SDLECallConfirmationStatusConfiguredOff = @"ECALL_CONFIGURED_OFF"; +SDLECallConfirmationStatus const SDLECallConfirmationStatusCompleteDTMFTimeout = @"CALL_COMPLETE_DTMF_TIMEOUT"; diff --git a/SmartDeviceLink/SDLECallInfo.h b/SmartDeviceLink/SDLECallInfo.h index 932cf056a..75d88f309 100644 --- a/SmartDeviceLink/SDLECallInfo.h +++ b/SmartDeviceLink/SDLECallInfo.h @@ -3,18 +3,17 @@ #import "SDLRPCMessage.h" -@class SDLVehicleDataNotificationStatus; -@class SDLECallConfirmationStatus; +#import "SDLECallConfirmationStatus.h" +#import "SDLVehicleDataNotificationStatus.h" +NS_ASSUME_NONNULL_BEGIN -@interface SDLECallInfo : SDLRPCStruct { -} +@interface SDLECallInfo : SDLRPCStruct -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -@property (strong) SDLVehicleDataNotificationStatus *eCallNotificationStatus; -@property (strong) SDLVehicleDataNotificationStatus *auxECallNotificationStatus; -@property (strong) SDLECallConfirmationStatus *eCallConfirmationStatus; +@property (strong, nonatomic) SDLVehicleDataNotificationStatus eCallNotificationStatus; +@property (strong, nonatomic) SDLVehicleDataNotificationStatus auxECallNotificationStatus; +@property (strong, nonatomic) SDLECallConfirmationStatus eCallConfirmationStatus; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLECallInfo.m b/SmartDeviceLink/SDLECallInfo.m index 44046fcd0..656ee3329 100644 --- a/SmartDeviceLink/SDLECallInfo.m +++ b/SmartDeviceLink/SDLECallInfo.m @@ -3,74 +3,37 @@ #import "SDLECallInfo.h" -#import "SDLECallConfirmationStatus.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -#import "SDLVehicleDataNotificationStatus.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLECallInfo -- (instancetype)init { - if (self = [super init]) { - } - return self; +- (void)setECallNotificationStatus:(SDLVehicleDataNotificationStatus)eCallNotificationStatus { + [store sdl_setObject:eCallNotificationStatus forName:SDLNameECallNotificationStatus]; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (SDLVehicleDataNotificationStatus)eCallNotificationStatus { + return [store sdl_objectForName:SDLNameECallNotificationStatus]; } -- (void)setECallNotificationStatus:(SDLVehicleDataNotificationStatus *)eCallNotificationStatus { - if (eCallNotificationStatus != nil) { - [store setObject:eCallNotificationStatus forKey:NAMES_eCallNotificationStatus]; - } else { - [store removeObjectForKey:NAMES_eCallNotificationStatus]; - } +- (void)setAuxECallNotificationStatus:(SDLVehicleDataNotificationStatus)auxECallNotificationStatus { + [store sdl_setObject:auxECallNotificationStatus forName:SDLNameAuxECallNotificationStatus]; } -- (SDLVehicleDataNotificationStatus *)eCallNotificationStatus { - NSObject *obj = [store objectForKey:NAMES_eCallNotificationStatus]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataNotificationStatus.class]) { - return (SDLVehicleDataNotificationStatus *)obj; - } else { - return [SDLVehicleDataNotificationStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataNotificationStatus)auxECallNotificationStatus { + return [store sdl_objectForName:SDLNameAuxECallNotificationStatus]; } -- (void)setAuxECallNotificationStatus:(SDLVehicleDataNotificationStatus *)auxECallNotificationStatus { - if (auxECallNotificationStatus != nil) { - [store setObject:auxECallNotificationStatus forKey:NAMES_auxECallNotificationStatus]; - } else { - [store removeObjectForKey:NAMES_auxECallNotificationStatus]; - } +- (void)setECallConfirmationStatus:(SDLECallConfirmationStatus)eCallConfirmationStatus { + [store sdl_setObject:eCallConfirmationStatus forName:SDLNameECallConfirmationStatus]; } -- (SDLVehicleDataNotificationStatus *)auxECallNotificationStatus { - NSObject *obj = [store objectForKey:NAMES_auxECallNotificationStatus]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataNotificationStatus.class]) { - return (SDLVehicleDataNotificationStatus *)obj; - } else { - return [SDLVehicleDataNotificationStatus valueOf:(NSString *)obj]; - } -} - -- (void)setECallConfirmationStatus:(SDLECallConfirmationStatus *)eCallConfirmationStatus { - if (eCallConfirmationStatus != nil) { - [store setObject:eCallConfirmationStatus forKey:NAMES_eCallConfirmationStatus]; - } else { - [store removeObjectForKey:NAMES_eCallConfirmationStatus]; - } -} - -- (SDLECallConfirmationStatus *)eCallConfirmationStatus { - NSObject *obj = [store objectForKey:NAMES_eCallConfirmationStatus]; - if (obj == nil || [obj isKindOfClass:SDLECallConfirmationStatus.class]) { - return (SDLECallConfirmationStatus *)obj; - } else { - return [SDLECallConfirmationStatus valueOf:(NSString *)obj]; - } +- (SDLECallConfirmationStatus)eCallConfirmationStatus { + return [store sdl_objectForName:SDLNameECallConfirmationStatus]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLEmergencyEvent.h b/SmartDeviceLink/SDLEmergencyEvent.h index 6dd0c410d..759c64659 100644 --- a/SmartDeviceLink/SDLEmergencyEvent.h +++ b/SmartDeviceLink/SDLEmergencyEvent.h @@ -3,21 +3,20 @@ #import "SDLRPCMessage.h" -@class SDLEmergencyEventType; -@class SDLFuelCutoffStatus; -@class SDLVehicleDataEventStatus; +#import "SDLEmergencyEventType.h" +#import "SDLFuelCutoffStatus.h" +#import "SDLVehicleDataEventStatus.h" +NS_ASSUME_NONNULL_BEGIN -@interface SDLEmergencyEvent : SDLRPCStruct { -} +@interface SDLEmergencyEvent : SDLRPCStruct -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -@property (strong) SDLEmergencyEventType *emergencyEventType; -@property (strong) SDLFuelCutoffStatus *fuelCutoffStatus; -@property (strong) SDLVehicleDataEventStatus *rolloverEvent; -@property (strong) NSNumber *maximumChangeVelocity; -@property (strong) SDLVehicleDataEventStatus *multipleEvents; +@property (strong, nonatomic) SDLEmergencyEventType emergencyEventType; +@property (strong, nonatomic) SDLFuelCutoffStatus fuelCutoffStatus; +@property (strong, nonatomic) SDLVehicleDataEventStatus rolloverEvent; +@property (strong, nonatomic) NSNumber *maximumChangeVelocity; +@property (strong, nonatomic) SDLVehicleDataEventStatus multipleEvents; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLEmergencyEvent.m b/SmartDeviceLink/SDLEmergencyEvent.m index 76fca57e2..1aa18743e 100644 --- a/SmartDeviceLink/SDLEmergencyEvent.m +++ b/SmartDeviceLink/SDLEmergencyEvent.m @@ -3,104 +3,53 @@ #import "SDLEmergencyEvent.h" -#import "SDLEmergencyEventType.h" -#import "SDLFuelCutoffStatus.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -#import "SDLVehicleDataEventStatus.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLEmergencyEvent -- (instancetype)init { - if (self = [super init]) { - } - return self; +- (void)setEmergencyEventType:(SDLEmergencyEventType)emergencyEventType { + [store sdl_setObject:emergencyEventType forName:SDLNameEmergencyEventType]; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (SDLEmergencyEventType)emergencyEventType { + return [store sdl_objectForName:SDLNameEmergencyEventType]; } -- (void)setEmergencyEventType:(SDLEmergencyEventType *)emergencyEventType { - if (emergencyEventType != nil) { - [store setObject:emergencyEventType forKey:NAMES_emergencyEventType]; - } else { - [store removeObjectForKey:NAMES_emergencyEventType]; - } +- (void)setFuelCutoffStatus:(SDLFuelCutoffStatus)fuelCutoffStatus { + [store sdl_setObject:fuelCutoffStatus forName:SDLNameFuelCutoffStatus]; } -- (SDLEmergencyEventType *)emergencyEventType { - NSObject *obj = [store objectForKey:NAMES_emergencyEventType]; - if (obj == nil || [obj isKindOfClass:SDLEmergencyEventType.class]) { - return (SDLEmergencyEventType *)obj; - } else { - return [SDLEmergencyEventType valueOf:(NSString *)obj]; - } +- (SDLFuelCutoffStatus)fuelCutoffStatus { + return [store sdl_objectForName:SDLNameFuelCutoffStatus]; } -- (void)setFuelCutoffStatus:(SDLFuelCutoffStatus *)fuelCutoffStatus { - if (fuelCutoffStatus != nil) { - [store setObject:fuelCutoffStatus forKey:NAMES_fuelCutoffStatus]; - } else { - [store removeObjectForKey:NAMES_fuelCutoffStatus]; - } +- (void)setRolloverEvent:(SDLVehicleDataEventStatus)rolloverEvent { + [store sdl_setObject:rolloverEvent forName:SDLNameRolloverEvent]; } -- (SDLFuelCutoffStatus *)fuelCutoffStatus { - NSObject *obj = [store objectForKey:NAMES_fuelCutoffStatus]; - if (obj == nil || [obj isKindOfClass:SDLFuelCutoffStatus.class]) { - return (SDLFuelCutoffStatus *)obj; - } else { - return [SDLFuelCutoffStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataEventStatus)rolloverEvent { + return [store sdl_objectForName:SDLNameRolloverEvent]; } -- (void)setRolloverEvent:(SDLVehicleDataEventStatus *)rolloverEvent { - if (rolloverEvent != nil) { - [store setObject:rolloverEvent forKey:NAMES_rolloverEvent]; - } else { - [store removeObjectForKey:NAMES_rolloverEvent]; - } +- (void)setMaximumChangeVelocity:(NSNumber *)maximumChangeVelocity { + [store sdl_setObject:maximumChangeVelocity forName:SDLNameMaximumChangeVelocity]; } -- (SDLVehicleDataEventStatus *)rolloverEvent { - NSObject *obj = [store objectForKey:NAMES_rolloverEvent]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (NSNumber *)maximumChangeVelocity { + return [store sdl_objectForName:SDLNameMaximumChangeVelocity]; } -- (void)setMaximumChangeVelocity:(NSNumber *)maximumChangeVelocity { - if (maximumChangeVelocity != nil) { - [store setObject:maximumChangeVelocity forKey:NAMES_maximumChangeVelocity]; - } else { - [store removeObjectForKey:NAMES_maximumChangeVelocity]; - } +- (void)setMultipleEvents:(SDLVehicleDataEventStatus)multipleEvents { + [store sdl_setObject:multipleEvents forName:SDLNameMultipleEvents]; } -- (NSNumber *)maximumChangeVelocity { - return [store objectForKey:NAMES_maximumChangeVelocity]; -} - -- (void)setMultipleEvents:(SDLVehicleDataEventStatus *)multipleEvents { - if (multipleEvents != nil) { - [store setObject:multipleEvents forKey:NAMES_multipleEvents]; - } else { - [store removeObjectForKey:NAMES_multipleEvents]; - } -} - -- (SDLVehicleDataEventStatus *)multipleEvents { - NSObject *obj = [store objectForKey:NAMES_multipleEvents]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataEventStatus)multipleEvents { + return [store sdl_objectForName:SDLNameMultipleEvents]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLEmergencyEventType.h b/SmartDeviceLink/SDLEmergencyEventType.h index 1e75b3ee0..d75129948 100644 --- a/SmartDeviceLink/SDLEmergencyEventType.h +++ b/SmartDeviceLink/SDLEmergencyEventType.h @@ -8,46 +8,32 @@ * Since: SmartDeviceLink 2.0 *

*/ - -@interface SDLEmergencyEventType : SDLEnum { -} - -+ (SDLEmergencyEventType *)valueOf:(NSString *)value; -+ (NSArray *)values; +typedef SDLEnum SDLEmergencyEventType SDL_SWIFT_ENUM; /** No emergency event has happened. */ - -+ (SDLEmergencyEventType *)NO_EVENT; +extern SDLEmergencyEventType const SDLEmergencyEventTypeNoEvent; /** Frontal collision has happened. */ - -+ (SDLEmergencyEventType *)FRONTAL; +extern SDLEmergencyEventType const SDLEmergencyEventTypeFrontal; /** Side collision has happened. */ - -+ (SDLEmergencyEventType *)SIDE; +extern SDLEmergencyEventType const SDLEmergencyEventTypeSide; /**Rear collision has happened. */ - -+ (SDLEmergencyEventType *)REAR; +extern SDLEmergencyEventType const SDLEmergencyEventTypeRear; /** A rollover event has happened. */ - -+ (SDLEmergencyEventType *)ROLLOVER; +extern SDLEmergencyEventType const SDLEmergencyEventTypeRollover; /** The signal is not supported */ - -+ (SDLEmergencyEventType *)NOT_SUPPORTED; +extern SDLEmergencyEventType const SDLEmergencyEventTypeNotSupported; /** Emergency status cannot be determined */ - -+ (SDLEmergencyEventType *)FAULT; - -@end +extern SDLEmergencyEventType const SDLEmergencyEventTypeFault; diff --git a/SmartDeviceLink/SDLEmergencyEventType.m b/SmartDeviceLink/SDLEmergencyEventType.m index b07979d01..47d0fed4d 100644 --- a/SmartDeviceLink/SDLEmergencyEventType.m +++ b/SmartDeviceLink/SDLEmergencyEventType.m @@ -4,89 +4,10 @@ #import "SDLEmergencyEventType.h" -SDLEmergencyEventType *SDLEmergencyEventType_NO_EVENT = nil; -SDLEmergencyEventType *SDLEmergencyEventType_FRONTAL = nil; -SDLEmergencyEventType *SDLEmergencyEventType_SIDE = nil; -SDLEmergencyEventType *SDLEmergencyEventType_REAR = nil; -SDLEmergencyEventType *SDLEmergencyEventType_ROLLOVER = nil; -SDLEmergencyEventType *SDLEmergencyEventType_NOT_SUPPORTED = nil; -SDLEmergencyEventType *SDLEmergencyEventType_FAULT = nil; - -NSArray *SDLEmergencyEventType_values = nil; - -@implementation SDLEmergencyEventType - -+ (SDLEmergencyEventType *)valueOf:(NSString *)value { - for (SDLEmergencyEventType *item in SDLEmergencyEventType.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLEmergencyEventType_values == nil) { - SDLEmergencyEventType_values = @[ - SDLEmergencyEventType.NO_EVENT, - SDLEmergencyEventType.FRONTAL, - SDLEmergencyEventType.SIDE, - SDLEmergencyEventType.REAR, - SDLEmergencyEventType.ROLLOVER, - SDLEmergencyEventType.NOT_SUPPORTED, - SDLEmergencyEventType.FAULT, - ]; - } - return SDLEmergencyEventType_values; -} - -+ (SDLEmergencyEventType *)NO_EVENT { - if (SDLEmergencyEventType_NO_EVENT == nil) { - SDLEmergencyEventType_NO_EVENT = [[SDLEmergencyEventType alloc] initWithValue:@"NO_EVENT"]; - } - return SDLEmergencyEventType_NO_EVENT; -} - -+ (SDLEmergencyEventType *)FRONTAL { - if (SDLEmergencyEventType_FRONTAL == nil) { - SDLEmergencyEventType_FRONTAL = [[SDLEmergencyEventType alloc] initWithValue:@"FRONTAL"]; - } - return SDLEmergencyEventType_FRONTAL; -} - -+ (SDLEmergencyEventType *)SIDE { - if (SDLEmergencyEventType_SIDE == nil) { - SDLEmergencyEventType_SIDE = [[SDLEmergencyEventType alloc] initWithValue:@"SIDE"]; - } - return SDLEmergencyEventType_SIDE; -} - -+ (SDLEmergencyEventType *)REAR { - if (SDLEmergencyEventType_REAR == nil) { - SDLEmergencyEventType_REAR = [[SDLEmergencyEventType alloc] initWithValue:@"REAR"]; - } - return SDLEmergencyEventType_REAR; -} - -+ (SDLEmergencyEventType *)ROLLOVER { - if (SDLEmergencyEventType_ROLLOVER == nil) { - SDLEmergencyEventType_ROLLOVER = [[SDLEmergencyEventType alloc] initWithValue:@"ROLLOVER"]; - } - return SDLEmergencyEventType_ROLLOVER; -} - -+ (SDLEmergencyEventType *)NOT_SUPPORTED { - if (SDLEmergencyEventType_NOT_SUPPORTED == nil) { - SDLEmergencyEventType_NOT_SUPPORTED = [[SDLEmergencyEventType alloc] initWithValue:@"NOT_SUPPORTED"]; - } - return SDLEmergencyEventType_NOT_SUPPORTED; -} - -+ (SDLEmergencyEventType *)FAULT { - if (SDLEmergencyEventType_FAULT == nil) { - SDLEmergencyEventType_FAULT = [[SDLEmergencyEventType alloc] initWithValue:@"FAULT"]; - } - return SDLEmergencyEventType_FAULT; -} - -@end +SDLEmergencyEventType const SDLEmergencyEventTypeNoEvent = @"NO_EVENT"; +SDLEmergencyEventType const SDLEmergencyEventTypeFrontal = @"FRONTAL"; +SDLEmergencyEventType const SDLEmergencyEventTypeSide = @"SIDE"; +SDLEmergencyEventType const SDLEmergencyEventTypeRear = @"REAR"; +SDLEmergencyEventType const SDLEmergencyEventTypeRollover = @"ROLLOVER"; +SDLEmergencyEventType const SDLEmergencyEventTypeNotSupported = @"NOT_SUPPORTED"; +SDLEmergencyEventType const SDLEmergencyEventTypeFault = @"FAULT"; diff --git a/SmartDeviceLink/SDLEncodedSyncPData.h b/SmartDeviceLink/SDLEncodedSyncPData.h index b3b0276b7..2d2c8fe3d 100644 --- a/SmartDeviceLink/SDLEncodedSyncPData.h +++ b/SmartDeviceLink/SDLEncodedSyncPData.h @@ -4,12 +4,12 @@ #import "SDLRPCRequest.h" -@interface SDLEncodedSyncPData : SDLRPCRequest { -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLEncodedSyncPData : SDLRPCRequest -@property (strong) NSMutableArray *data; +@property (strong, nonatomic) NSArray *data; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLEncodedSyncPData.m b/SmartDeviceLink/SDLEncodedSyncPData.m index b44cb7b3e..3f9838509 100644 --- a/SmartDeviceLink/SDLEncodedSyncPData.m +++ b/SmartDeviceLink/SDLEncodedSyncPData.m @@ -4,32 +4,27 @@ #import "SDLEncodedSyncPData.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLEncodedSyncPData - (instancetype)init { - if (self = [super initWithName:NAMES_EncodedSyncPData]) { + if (self = [super initWithName:SDLNameEncodedSyncPData]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (void)setData:(NSArray *)data { + [parameters sdl_setObject:data forName:SDLNameData]; } -- (void)setData:(NSMutableArray *)data { - if (data != nil) { - [parameters setObject:data forKey:NAMES_data]; - } else { - [parameters removeObjectForKey:NAMES_data]; - } -} - -- (NSMutableArray *)data { - return [parameters objectForKey:NAMES_data]; +- (NSArray *)data { + return [parameters sdl_objectForName:SDLNameData]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLEncodedSyncPDataResponse.h b/SmartDeviceLink/SDLEncodedSyncPDataResponse.h index 7d646ed23..f8a4daf20 100644 --- a/SmartDeviceLink/SDLEncodedSyncPDataResponse.h +++ b/SmartDeviceLink/SDLEncodedSyncPDataResponse.h @@ -4,10 +4,10 @@ #import "SDLRPCResponse.h" -@interface SDLEncodedSyncPDataResponse : SDLRPCResponse { -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLEncodedSyncPDataResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLEncodedSyncPDataResponse.m b/SmartDeviceLink/SDLEncodedSyncPDataResponse.m index cf899a21b..c8d4c673e 100644 --- a/SmartDeviceLink/SDLEncodedSyncPDataResponse.m +++ b/SmartDeviceLink/SDLEncodedSyncPDataResponse.m @@ -4,20 +4,19 @@ #import "SDLEncodedSyncPDataResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLEncodedSyncPDataResponse - (instancetype)init { - if (self = [super initWithName:NAMES_EncodedSyncPData]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameEncodedSyncPData]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLEncoder.h b/SmartDeviceLink/SDLEncoder.h deleted file mode 100644 index 911eb95d8..000000000 --- a/SmartDeviceLink/SDLEncoder.h +++ /dev/null @@ -1,11 +0,0 @@ -// SDLEncoder.h -// - - -#import - -@protocol SDLEncoder - -- (NSData *)encodeDictionary:(NSDictionary *)dict; - -@end diff --git a/SmartDeviceLink/SDLEndAudioPassThru.h b/SmartDeviceLink/SDLEndAudioPassThru.h index fddde6c13..f3c87e0f1 100644 --- a/SmartDeviceLink/SDLEndAudioPassThru.h +++ b/SmartDeviceLink/SDLEndAudioPassThru.h @@ -14,20 +14,11 @@ * Since SmartDeviceLink 2.0
* see SDLPerformAudioPassThru */ -@interface SDLEndAudioPassThru : SDLRPCRequest { -} -/** - * Constructs a new SDLEndAudioPassThru object - */ -- (instancetype)init; -/** - * Constructs a new SDLEndAudioPassThru object indicated by the NSMutableDictionary - * parameter - *

- * - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLEndAudioPassThru : SDLRPCRequest @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLEndAudioPassThru.m b/SmartDeviceLink/SDLEndAudioPassThru.m index 576287170..127702a06 100644 --- a/SmartDeviceLink/SDLEndAudioPassThru.m +++ b/SmartDeviceLink/SDLEndAudioPassThru.m @@ -4,20 +4,19 @@ #import "SDLEndAudioPassThru.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLEndAudioPassThru - (instancetype)init { - if (self = [super initWithName:NAMES_EndAudioPassThru]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameEndAudioPassThru]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLEndAudioPassThruResponse.h b/SmartDeviceLink/SDLEndAudioPassThruResponse.h index e464f5d32..bda7b4f89 100644 --- a/SmartDeviceLink/SDLEndAudioPassThruResponse.h +++ b/SmartDeviceLink/SDLEndAudioPassThruResponse.h @@ -9,10 +9,11 @@ * * Since SmartDeviceLink 2.0 */ -@interface SDLEndAudioPassThruResponse : SDLRPCResponse { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLEndAudioPassThruResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLEndAudioPassThruResponse.m b/SmartDeviceLink/SDLEndAudioPassThruResponse.m index 73c3b6336..3efaa3915 100644 --- a/SmartDeviceLink/SDLEndAudioPassThruResponse.m +++ b/SmartDeviceLink/SDLEndAudioPassThruResponse.m @@ -4,20 +4,19 @@ #import "SDLEndAudioPassThruResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLEndAudioPassThruResponse - (instancetype)init { - if (self = [super initWithName:NAMES_EndAudioPassThru]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameEndAudioPassThru]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLEnum.h b/SmartDeviceLink/SDLEnum.h index c12c1ec97..f224d8ea3 100644 --- a/SmartDeviceLink/SDLEnum.h +++ b/SmartDeviceLink/SDLEnum.h @@ -3,16 +3,16 @@ #import +#import "SDLMacros.h" +NS_ASSUME_NONNULL_BEGIN -@interface SDLEnum : NSObject { - NSString *value; -} +typedef NSString* SDLEnum SDL_SWIFT_ENUM; -- (instancetype)initWithValue:(NSString *)value; +@interface NSString (SDLEnum) -- (BOOL)isEqualToEnum:(SDLEnum *)object; - -@property (strong, readonly) NSString *value; +- (BOOL)isEqualToEnum:(SDLEnum)enumObj; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLEnum.m b/SmartDeviceLink/SDLEnum.m index 7a474437d..dae9c8f06 100644 --- a/SmartDeviceLink/SDLEnum.m +++ b/SmartDeviceLink/SDLEnum.m @@ -1,62 +1,21 @@ +// // SDLEnum.m +// SmartDeviceLink-iOS +// +// Created by Muller, Alexander (A.) on 3/13/17. +// Copyright © 2017 smartdevicelink. All rights reserved. // - #import "SDLEnum.h" -@implementation SDLEnum - -@synthesize value; - -- (instancetype)initWithValue:(NSString *)aValue { - if (self = [super init]) { - value = aValue; - } - return self; -} - -- (NSString *)description { - return value; -} - -- (id)debugQuickLookObject { - return value; -} - +NS_ASSUME_NONNULL_BEGIN -#pragma mark - Equality +@implementation NSString (SDLEnum) -- (NSUInteger)hash { - return [self.value hash]; -} - -- (BOOL)isEqual:(id)object { - // Test pointer equality - if (self == object) { - return YES; - } - - // Test class equality, if not equal, value equality doesn't matter - if (![object isMemberOfClass:self.class]) { - return NO; - } - - return [self isEqualToEnum:object]; -} - -- (BOOL)isEqualToEnum:(SDLEnum *)object { - // Test value equality, if it's equal we're good - if ([self.value isEqualToString:object.value]) { - return YES; - } - - return NO; -} - -#pragma mark - NSCopying - -- (id)copyWithZone:(NSZone *)zone { - return [[self.class alloc] initWithValue:[self.value copy]]; +- (BOOL)isEqualToEnum:(SDLEnum)enumObj { + return [self isEqualToString:enumObj]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLError.h b/SmartDeviceLink/SDLError.h index 7572adc9a..9c4911d77 100644 --- a/SmartDeviceLink/SDLError.h +++ b/SmartDeviceLink/SDLError.h @@ -10,7 +10,7 @@ #import "SDLErrorConstants.h" -@class SDLResult; +#import "SDLResult.h" NS_ASSUME_NONNULL_BEGIN @@ -29,8 +29,9 @@ extern SDLErrorDomain *const SDLErrorDomainFileManager; + (NSError *)sdl_lifecycle_notReadyError; + (NSError *)sdl_lifecycle_unknownRemoteErrorWithDescription:(NSString *)description andReason:(NSString *)reason; + (NSError *)sdl_lifecycle_managersFailedToStart; -+ (NSError *)sdl_lifecycle_startedWithBadResult:(SDLResult *)result info:(NSString *)info; -+ (NSError *)sdl_lifecycle_failedWithBadResult:(SDLResult *)result info:(NSString *)info; ++ (NSError *)sdl_lifecycle_startedWithBadResult:(SDLResult)result info:(NSString *)info; ++ (NSError *)sdl_lifecycle_startedWithWarning:(SDLResult)result info:(NSString *)info; ++ (NSError *)sdl_lifecycle_failedWithBadResult:(SDLResult)result info:(NSString *)info; #pragma mark SDLFileManager @@ -38,6 +39,10 @@ extern SDLErrorDomain *const SDLErrorDomainFileManager; + (NSError *)sdl_fileManager_noKnownFileError; + (NSError *)sdl_fileManager_unableToStartError; + (NSError *)sdl_fileManager_unableToUploadError; ++ (NSError *)sdl_fileManager_unableToUpload_ErrorWithUserInfo:(NSDictionary *)userInfo; ++ (NSError *)sdl_fileManager_unableToDelete_ErrorWithUserInfo:(NSDictionary *)userInfo; ++ (NSError *)sdl_fileManager_fileDoesNotExistError; ++ (NSError *)sdl_fileManager_fileUploadCanceled; @end @@ -45,6 +50,7 @@ extern SDLErrorDomain *const SDLErrorDomainFileManager; + (NSException *)sdl_missingHandlerException; + (NSException *)sdl_missingIdException; ++ (NSException *)sdl_missingFilesException; @end diff --git a/SmartDeviceLink/SDLError.m b/SmartDeviceLink/SDLError.m index 07d28878b..44fe9ac16 100644 --- a/SmartDeviceLink/SDLError.m +++ b/SmartDeviceLink/SDLError.m @@ -8,9 +8,6 @@ #import "SDLError.h" -#import "SDLResult.h" - - NS_ASSUME_NONNULL_BEGIN #pragma mark Error Domains @@ -23,7 +20,7 @@ @implementation NSError (SDLErrors) #pragma mark - SDLManager + (NSError *)sdl_lifecycle_rpcErrorWithDescription:(NSString *)description andReason:(NSString *)reason { - NSDictionary *userInfo = @{ + NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: NSLocalizedString(description, nil), NSLocalizedFailureReasonErrorKey: NSLocalizedString(reason, nil), NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Have you tried turning it off and on again?", nil) @@ -34,7 +31,7 @@ + (NSError *)sdl_lifecycle_rpcErrorWithDescription:(NSString *)description andRe } + (NSError *)sdl_lifecycle_notConnectedError { - NSDictionary *userInfo = @{ + NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: NSLocalizedString(@"Could not find a connection", nil), NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The SDL library could not find a current connection to an SDL hardware device", nil), NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Have you tried turning it off and on again?", nil) @@ -46,7 +43,7 @@ + (NSError *)sdl_lifecycle_notConnectedError { } + (NSError *)sdl_lifecycle_notReadyError { - NSDictionary *userInfo = @{ + NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: NSLocalizedString(@"Lifecycle manager not ready", nil), NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The SDL library is not finished setting up the connection, please wait until the lifecycleState is SDLLifecycleStateReady", nil), NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Have you tried turning it off and on again?", nil) @@ -58,7 +55,7 @@ + (NSError *)sdl_lifecycle_notReadyError { } + (NSError *)sdl_lifecycle_unknownRemoteErrorWithDescription:(NSString *)description andReason:(NSString *)reason { - NSDictionary *userInfo = @{ + NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: NSLocalizedString(description, nil), NSLocalizedFailureReasonErrorKey: NSLocalizedString(reason, nil), NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Have you tried turning it off and on again?", nil) @@ -74,9 +71,9 @@ + (NSError *)sdl_lifecycle_managersFailedToStart { userInfo:nil]; } -+ (NSError *)sdl_lifecycle_startedWithBadResult:(SDLResult *)result info:(NSString *)info { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: NSLocalizedString(result.value, nil), ++ (NSError *)sdl_lifecycle_startedWithBadResult:(SDLResult)result info:(NSString *)info { + NSDictionary *userInfo = @{ + NSLocalizedDescriptionKey: NSLocalizedString(result, nil), NSLocalizedFailureReasonErrorKey: NSLocalizedString(info, nil) }; return [NSError errorWithDomain:SDLErrorDomainLifecycleManager @@ -84,9 +81,19 @@ + (NSError *)sdl_lifecycle_startedWithBadResult:(SDLResult *)result info:(NSStri userInfo:userInfo]; } -+ (NSError *)sdl_lifecycle_failedWithBadResult:(SDLResult *)result info:(NSString *)info { - NSDictionary *userInfo = @{ - NSLocalizedDescriptionKey: NSLocalizedString(result.value, nil), ++ (NSError *)sdl_lifecycle_startedWithWarning:(SDLResult)result info:(NSString *)info { + NSDictionary *userInfo = @{ + NSLocalizedDescriptionKey: NSLocalizedString(result, nil), + NSLocalizedFailureReasonErrorKey: NSLocalizedString(info, nil) + }; + return [NSError errorWithDomain:SDLErrorDomainLifecycleManager + code:SDLManagerErrorRegistrationSuccessWithWarning + userInfo:userInfo]; +} + ++ (NSError *)sdl_lifecycle_failedWithBadResult:(SDLResult)result info:(NSString *)info { + NSDictionary *userInfo = @{ + NSLocalizedDescriptionKey: NSLocalizedString(result, nil), NSLocalizedFailureReasonErrorKey: NSLocalizedString(info, nil) }; return [NSError errorWithDomain:SDLErrorDomainLifecycleManager @@ -98,7 +105,7 @@ + (NSError *)sdl_lifecycle_failedWithBadResult:(SDLResult *)result info:(NSStrin #pragma mark SDLFileManager + (NSError *)sdl_fileManager_cannotOverwriteError { - NSDictionary *userInfo = @{ + NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: NSLocalizedString(@"Cannot overwrite remote file", nil), NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The remote file system already has a file of this name, and the file manager is set to not automatically overwrite files", nil), NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Set SDLFileManager autoOverwrite to YES, or call forceUploadFile:completion:", nil) @@ -107,7 +114,7 @@ + (NSError *)sdl_fileManager_cannotOverwriteError { } + (NSError *)sdl_fileManager_noKnownFileError { - NSDictionary *userInfo = @{ + NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: NSLocalizedString(@"No such remote file is currently known", nil), NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The remote file is not currently known by the file manager. It could be that this file does not exist on the remote system or that the file manager has not completed its initialization and received a list of files from the remote system.", nil), NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Make sure a file with this name is present on the remote system and that the file manager has finished its initialization.", nil) @@ -116,7 +123,7 @@ + (NSError *)sdl_fileManager_noKnownFileError { } + (NSError *)sdl_fileManager_unableToStartError { - NSDictionary *userInfo = @{ + NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: NSLocalizedString(@"The file manager was unable to start", nil), NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"This may be because files are not supported on this unit and / or LISTFILES returned an error", nil), NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Make sure that the system is sending back a proper LIST FILES response", nil) @@ -125,7 +132,7 @@ + (NSError *)sdl_fileManager_unableToStartError { } + (NSError *)sdl_fileManager_unableToUploadError { - NSDictionary *userInfo = @{ + NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: NSLocalizedString(@"The file manager was unable to send this file", nil), NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"This could be because the file manager has not started, or the head unit does not support files", nil), NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Make sure that the system is sending back a proper LIST FILES response and check the file manager's state", nil) @@ -133,6 +140,35 @@ + (NSError *)sdl_fileManager_unableToUploadError { return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorUnableToUpload userInfo:userInfo]; } ++ (NSError *)sdl_fileManager_unableToUpload_ErrorWithUserInfo:(NSDictionary *)userInfo { + return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerMultipleFileUploadTasksFailed userInfo:userInfo]; +} + ++ (NSError *)sdl_fileManager_unableToDelete_ErrorWithUserInfo:(NSDictionary *)userInfo { + return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerMultipleFileDeleteTasksFailed userInfo:userInfo]; +} + ++ (NSError *)sdl_fileManager_fileUploadCanceled { + NSDictionary *userInfo = @{ + NSLocalizedDescriptionKey: NSLocalizedString(@"The file upload was canceled", nil), + NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The file upload transaction was canceled before it could be completed", nil), + NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"The file upload was canceled", nil) + }; + return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerUploadCanceled userInfo:userInfo]; +} + +#pragma mark SDLUploadFileOperation + ++ (NSError *)sdl_fileManager_fileDoesNotExistError { + NSDictionary *userInfo = @{ + NSLocalizedDescriptionKey: NSLocalizedString(@"The file manager was unable to send the file", nil), + NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"This could be because the file does not exist at the specified file path or that passed data is invalid", nil), + NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Make sure that the the correct file path is being set and that the passed data is valid", nil) + }; + return [NSError errorWithDomain:SDLErrorDomainFileManager code:SDLFileManagerErrorFileDoesNotExist userInfo:userInfo]; +} + + @end @@ -152,6 +188,13 @@ + (NSException *)sdl_missingIdException { userInfo:nil]; } ++ (NSException *)sdl_missingFilesException { + return [NSException + exceptionWithName:@"MissingFilesNames" + reason:@"This request requires that the array of files not be empty" + userInfo:nil]; +} + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLErrorConstants.h b/SmartDeviceLink/SDLErrorConstants.h index 24d1d58f7..e3d473109 100644 --- a/SmartDeviceLink/SDLErrorConstants.h +++ b/SmartDeviceLink/SDLErrorConstants.h @@ -36,6 +36,10 @@ typedef NS_ENUM(NSInteger, SDLManagerError) { * Registering with the remote system failed. */ SDLManagerErrorRegistrationFailed = -6, + /** + * Registering with the remote system was successful, but had a warning. + */ + SDLManagerErrorRegistrationSuccessWithWarning = -7 }; /** @@ -51,11 +55,27 @@ typedef NS_ENUM(NSInteger, SDLFileManagerError) { */ SDLFileManagerErrorNoKnownFile = -2, /** - * The file manager attempted to start but encountered an error. + * The file manager attempted to start but encountered an error. */ SDLFileManagerErrorUnableToStart = -3, /** - * The file manager was unable to send this file. + * The file manager was unable to send this file. */ SDLFileManagerErrorUnableToUpload = -4, + /** + * The file manager could not find the local file. + */ + SDLFileManagerErrorFileDoesNotExist = -5, + /* + * The file upload was canceled. + */ + SDLFileManagerUploadCanceled = -6, + /* + * One or more of multiple files being uploaded or deleted failed. + */ + SDLFileManagerMultipleFileUploadTasksFailed = -7, + /* + * One or more of multiple files being uploaded or deleted failed. + */ + SDLFileManagerMultipleFileDeleteTasksFailed = -8, }; diff --git a/SmartDeviceLink/SDLFile.h b/SmartDeviceLink/SDLFile.h index f8162ac0a..72123155f 100644 --- a/SmartDeviceLink/SDLFile.h +++ b/SmartDeviceLink/SDLFile.h @@ -8,7 +8,7 @@ #import -@class SDLFileType; +#import "SDLFileType.h" NS_ASSUME_NONNULL_BEGIN @@ -40,11 +40,20 @@ NS_ASSUME_NONNULL_BEGIN */ @property (copy, nonatomic, readonly) NSData *data; +/** + * The size of the binary data of the SDLFile. + */ +@property (nonatomic, readonly) unsigned long long fileSize; + /** * The system will attempt to determine the type of file that you have passed in. It will default to BINARY if it does not recognize the file type or the file type is not supported by SDL. */ -@property (strong, nonatomic, readonly) SDLFileType *fileType; +@property (strong, nonatomic, readonly) SDLFileType fileType; +/** + * A stream to pull binary data from a SDLFile. The stream only pulls required data from the file on disk or in memory. This reduces memory usage while uploading a large file to the remote system as each chunk of data can be released immediately after it is uploaded. + */ +@property (nonatomic, readonly) NSInputStream *inputStream; - (instancetype)init NS_UNAVAILABLE; @@ -73,7 +82,7 @@ NS_ASSUME_NONNULL_BEGIN * * @return An instance of this class, or nil if a readable file at the path could not be found. */ -+ (instancetype)persistentFileAtFileURL:(NSURL *)url name:(NSString *)name; ++ (instancetype)persistentFileAtFileURL:(NSURL *)url name:(NSString *)name NS_SWIFT_UNAVAILABLE("Use the standard initializer and set persistant to true"); /** * Create an SDL file using a local file URL. @@ -114,7 +123,7 @@ NS_ASSUME_NONNULL_BEGIN * * @return An instance of this class */ -+ (instancetype)persistentFileWithData:(NSData *)data name:(NSString *)name fileExtension:(NSString *)extension; ++ (instancetype)persistentFileWithData:(NSData *)data name:(NSString *)name fileExtension:(NSString *)extension NS_SWIFT_UNAVAILABLE("Use the standard initializer and set persistant to true"); /** * Create an SDL file using raw data. It is strongly preferred to pass a file URL instead of data, as it is currently held in memory until the file is sent. diff --git a/SmartDeviceLink/SDLFile.m b/SmartDeviceLink/SDLFile.m index c711feaa0..9fc4d5423 100644 --- a/SmartDeviceLink/SDLFile.m +++ b/SmartDeviceLink/SDLFile.m @@ -19,10 +19,11 @@ @interface SDLFile () @property (copy, nonatomic, readwrite, nullable) NSURL *fileURL; @property (copy, nonatomic, readwrite) NSData *data; -@property (strong, nonatomic, readwrite) SDLFileType *fileType; +@property (strong, nonatomic, readwrite) SDLFileType fileType; @property (assign, nonatomic, readwrite) BOOL persistent; @property (copy, nonatomic, readwrite) NSString *name; +@property (nonatomic, readwrite) NSInputStream *inputStream; @end @@ -86,42 +87,74 @@ + (instancetype)fileWithData:(NSData *)data name:(NSString *)name fileExtension: return [[self alloc] initWithData:data name:name fileExtension:extension persistent:NO]; } - #pragma mark - Getters - (NSData *)data { if (_data.length == 0 && _fileURL != nil) { - _data = [NSData dataWithContentsOfURL:_fileURL]; + return [NSData dataWithContentsOfURL:_fileURL]; } return _data; } +/** + Initalizes a socket from which to read data. + + @return A socket + */ +- (NSInputStream *)inputStream { + if (!_inputStream) { + if (_fileURL) { + // Data in file + _inputStream = [[NSInputStream alloc] initWithURL:_fileURL]; + } else if (_data.length != 0) { + // Data in memory + _inputStream = [[NSInputStream alloc] initWithData:_data]; + } + } + return _inputStream; +} + +/** + Gets the size of the data. The data may be stored on disk or it may already be in the application's memory. + + @return The size of the data. + */ +- (unsigned long long)fileSize { + if (_fileURL) { + // Data in file + NSString *path = [_fileURL path]; + return [[NSFileManager defaultManager] attributesOfItemAtPath:path error:nil].fileSize; + } else if (_data) { + // Data in memory + return _data.length; + } + return 0; +} #pragma mark - File Type -+ (SDLFileType *)sdl_fileTypeFromFileExtension:(NSString *)fileExtension { ++ (SDLFileType)sdl_fileTypeFromFileExtension:(NSString *)fileExtension { if ([fileExtension caseInsensitiveCompare:@"bmp"] == NSOrderedSame) { - return [SDLFileType GRAPHIC_BMP]; + return SDLFileTypeBMP; } else if (([fileExtension caseInsensitiveCompare:@"jpg"] == NSOrderedSame) || ([fileExtension caseInsensitiveCompare:@"jpeg"] == NSOrderedSame)) { - return [SDLFileType GRAPHIC_JPEG]; + return SDLFileTypeJPEG; } else if ([fileExtension caseInsensitiveCompare:@"png"] == NSOrderedSame) { - return [SDLFileType GRAPHIC_PNG]; + return SDLFileTypePNG; } else if ([fileExtension caseInsensitiveCompare:@"wav"] == NSOrderedSame) { - return [SDLFileType AUDIO_WAVE]; + return SDLFileTypeWAV; } else if ([fileExtension caseInsensitiveCompare:@"mp3"] == NSOrderedSame) { - return [SDLFileType AUDIO_MP3]; + return SDLFileTypeMP3; } else if ([fileExtension caseInsensitiveCompare:@"aac"] == NSOrderedSame) { - return [SDLFileType AUDIO_AAC]; + return SDLFileTypeAAC; } else if ([fileExtension caseInsensitiveCompare:@"json"] == NSOrderedSame) { - return [SDLFileType JSON]; + return SDLFileTypeJSON; } else { - return [SDLFileType BINARY]; + return SDLFileTypeBinary; } } - #pragma mark - NSCopying - (id)copyWithZone:(nullable NSZone *)zone { diff --git a/SmartDeviceLink/SDLFileManager.h b/SmartDeviceLink/SDLFileManager.h index 0831a1ecd..720e95044 100644 --- a/SmartDeviceLink/SDLFileManager.h +++ b/SmartDeviceLink/SDLFileManager.h @@ -85,7 +85,15 @@ typedef void (^SDLFileManagerStartupCompletionHandler)(BOOL success, NSError *__ * @param name The name of the remote file. It should be a name currently stored in remoteFileNames * @param completion An optional completion handler that sends an error should one occur. */ -- (void)deleteRemoteFileWithName:(SDLFileName *)name completionHandler:(nullable SDLFileManagerDeleteCompletionHandler)completion; +- (void)deleteRemoteFileWithName:(SDLFileName *)name completionHandler:(nullable SDLFileManagerDeleteCompletionHandler)completion NS_SWIFT_NAME(delete(fileName:completionHandler:)); + +/** + * 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. + * + * @param names The names of the files to be deleted + * @param completionHandler an optional SDLFileManagerMultiDeleteCompletionHandler + */ +- (void)deleteRemoteFilesWithNames:(NSArray *)names completionHandler:(nullable SDLFileManagerMultiDeleteCompletionHandler)completionHandler NS_SWIFT_NAME(delete(fileNames:completionHandler:)); /** * 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. @@ -93,7 +101,26 @@ typedef void (^SDLFileManagerStartupCompletionHandler)(BOOL success, NSError *__ * @param file An SDLFile that contains metadata about the file to be sent * @param completion An optional completion handler that sends an error should one occur. */ -- (void)uploadFile:(SDLFile *)file completionHandler:(nullable SDLFileManagerUploadCompletionHandler)completion; +- (void)uploadFile:(SDLFile *)file completionHandler:(nullable SDLFileManagerUploadCompletionHandler)completion NS_SWIFT_NAME(upload(file:completionHandler:)); + +/** + * 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. + * + * The optional progress handler can be used to keep track of the upload progress. After each file upload, the progress handler returns the upload percentage and an error, if one occured during the upload process. The progress handler also includes an option to cancel the upload of all remaining files in queue. + * + * @param files An array of SDLFiles to be sent + * @param progressHandler an optional SDLFileManagerMultiUploadProgressHandler + * @param completionHandler an optional SDLFileManagerMultiUploadCompletionHandler + */ +- (void)uploadFiles:(NSArray *)files progressHandler:(nullable SDLFileManagerMultiUploadProgressHandler)progressHandler completionHandler:(nullable SDLFileManagerMultiUploadCompletionHandler)completionHandler NS_SWIFT_NAME(upload(files:progressHandler:completionHandler:)); + +/** + * 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. + * + * @param files An array of SDLFiles to be sent + * @param completionHandler an optional SDLFileManagerMultiUploadCompletionHandler + */ +- (void)uploadFiles:(NSArray *)files completionHandler:(nullable SDLFileManagerMultiUploadCompletionHandler)completionHandler NS_SWIFT_NAME(upload(files:completionHandler:)); /** * 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. diff --git a/SmartDeviceLink/SDLFileManager.m b/SmartDeviceLink/SDLFileManager.m index 7f20080f4..0296bffb6 100644 --- a/SmartDeviceLink/SDLFileManager.m +++ b/SmartDeviceLink/SDLFileManager.m @@ -9,7 +9,7 @@ #import "SDLFileManager.h" #import "SDLConnectionManagerType.h" -#import "SDLDebugTool.h" +#import "SDLLogMacros.h" #import "SDLDeleteFileOperation.h" #import "SDLError.h" #import "SDLFile.h" @@ -45,11 +45,13 @@ @interface SDLFileManager () // Local state @property (strong, nonatomic) NSOperationQueue *transactionQueue; +@property (strong, nonatomic) NSMutableDictionary *uploadsInProgress; @property (strong, nonatomic) SDLStateMachine *stateMachine; @property (copy, nonatomic, nullable) SDLFileManagerStartupCompletionHandler startupCompletionHandler; @end +#pragma mark Constants @implementation SDLFileManager @@ -68,6 +70,7 @@ - (instancetype)initWithConnectionManager:(id)manager _transactionQueue = [[NSOperationQueue alloc] init]; _transactionQueue.name = @"SDLFileManager Transaction Queue"; _transactionQueue.maxConcurrentOperationCount = 1; + _uploadsInProgress = [[NSMutableDictionary alloc] init]; _stateMachine = [[SDLStateMachine alloc] initWithTarget:self initialState:SDLFileManagerStateShutdown states:[self.class sdl_stateTransitionDictionary]]; @@ -122,11 +125,11 @@ - (void)setSuspended:(BOOL)suspended { + (NSDictionary *)sdl_stateTransitionDictionary { return @{ - SDLFileManagerStateShutdown: @[SDLFileManagerStateFetchingInitialList], - SDLFileManagerStateFetchingInitialList: @[SDLFileManagerStateShutdown, SDLFileManagerStateReady, SDLFileManagerStateStartupError], - SDLFileManagerStateReady: @[SDLFileManagerStateShutdown], - SDLFileManagerStateStartupError: @[SDLFileManagerStateShutdown] - }; + SDLFileManagerStateShutdown: @[SDLFileManagerStateFetchingInitialList], + SDLFileManagerStateFetchingInitialList: @[SDLFileManagerStateShutdown, SDLFileManagerStateReady, SDLFileManagerStateStartupError], + SDLFileManagerStateReady: @[SDLFileManagerStateShutdown], + SDLFileManagerStateStartupError: @[SDLFileManagerStateShutdown] + }; } - (void)didEnterStateStartupError { @@ -171,19 +174,18 @@ - (void)didEnterStateReady { - (void)sdl_listRemoteFilesWithCompletionHandler:(SDLFileManagerListFilesCompletionHandler)handler { __weak typeof(self) weakSelf = self; - SDLListFilesOperation *listOperation = [[SDLListFilesOperation alloc] initWithConnectionManager:self.connectionManager - completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSArray *_Nonnull fileNames, NSError *_Nullable error) { - if (error != nil || !success) { - handler(success, bytesAvailable, fileNames, error); - BLOCK_RETURN; - } + SDLListFilesOperation *listOperation = [[SDLListFilesOperation alloc] initWithConnectionManager:self.connectionManager completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSArray *_Nonnull fileNames, NSError *_Nullable error) { + if (error != nil || !success) { + handler(success, bytesAvailable, fileNames, error); + BLOCK_RETURN; + } - // If there was no error, set our properties and call back to the startup completion handler - [weakSelf.mutableRemoteFileNames addObjectsFromArray:fileNames]; - weakSelf.bytesAvailable = bytesAvailable; + // If there was no error, set our properties and call back to the startup completion handler + [weakSelf.mutableRemoteFileNames addObjectsFromArray:fileNames]; + weakSelf.bytesAvailable = bytesAvailable; - handler(success, bytesAvailable, fileNames, error); - }]; + handler(success, bytesAvailable, fileNames, error); + }]; [self.transactionQueue addOperation:listOperation]; } @@ -194,31 +196,144 @@ - (void)sdl_listRemoteFilesWithCompletionHandler:(SDLFileManagerListFilesComplet - (void)deleteRemoteFileWithName:(SDLFileName *)name completionHandler:(nullable SDLFileManagerDeleteCompletionHandler)handler { if ((![self.remoteFileNames containsObject:name]) && (handler != nil)) { handler(NO, self.bytesAvailable, [NSError sdl_fileManager_noKnownFileError]); + return; } __weak typeof(self) weakSelf = self; - SDLDeleteFileOperation *deleteOperation = [[SDLDeleteFileOperation alloc] initWithFileName:name - connectionManager:self.connectionManager - completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError *_Nullable error) { - __strong typeof(weakSelf) strongSelf = weakSelf; - - // Mutate self based on the changes - strongSelf.bytesAvailable = bytesAvailable; - if (success) { - [strongSelf.mutableRemoteFileNames removeObject:name]; - } - - if (handler != nil) { - handler(YES, self.bytesAvailable, nil); - } - }]; + SDLDeleteFileOperation *deleteOperation = [[SDLDeleteFileOperation alloc] initWithFileName:name connectionManager:self.connectionManager completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError *_Nullable error) { + __strong typeof(weakSelf) strongSelf = weakSelf; + + // Mutate self based on the changes + strongSelf.bytesAvailable = bytesAvailable; + if (success) { + [strongSelf.mutableRemoteFileNames removeObject:name]; + } + + if (handler != nil) { + handler(success, self.bytesAvailable, error); + } + }]; [self.transactionQueue addOperation:deleteOperation]; } +- (void)deleteRemoteFilesWithNames:(NSArray *)names completionHandler:(nullable SDLFileManagerMultiDeleteCompletionHandler)completionHandler { + if (names.count == 0) { + @throw [NSException sdl_missingFilesException]; + } + + NSMutableDictionary *failedDeletes = [[NSMutableDictionary alloc] init]; + + dispatch_group_t deleteFilesTask = dispatch_group_create(); + dispatch_group_enter(deleteFilesTask); + for(NSString *name in names) { + dispatch_group_enter(deleteFilesTask); + [self deleteRemoteFileWithName:name completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError * _Nullable error) { + if(!success) { + failedDeletes[name] = error; + } + dispatch_group_leave(deleteFilesTask); + }]; + } + dispatch_group_leave(deleteFilesTask); + + // Wait for all files to be deleted + dispatch_group_notify(deleteFilesTask, dispatch_get_main_queue(), ^{ + if (completionHandler == nil) { return; } + if (failedDeletes.count > 0) { + return completionHandler([NSError sdl_fileManager_unableToDelete_ErrorWithUserInfo:failedDeletes]); + } + return completionHandler(nil); + }); +} #pragma mark - Uploading +- (void)uploadFiles:(NSArray *)files completionHandler:(nullable SDLFileManagerMultiUploadCompletionHandler)completionHandler { + [self uploadFiles:files progressHandler:nil completionHandler:completionHandler]; +} + +- (void)uploadFiles:(NSArray *)files progressHandler:(nullable SDLFileManagerMultiUploadProgressHandler)progressHandler completionHandler:(nullable SDLFileManagerMultiUploadCompletionHandler)completionHandler { + if (files.count == 0) { + @throw [NSException sdl_missingFilesException]; + } + + NSMutableDictionary *failedUploads = [[NSMutableDictionary alloc] init]; + float totalBytesToUpload = (progressHandler == nil ? 0.0 : [self sdl_totalBytesToUpload:files]); + __block float totalBytesUploaded = 0.0; + + dispatch_group_t uploadFilesTask = dispatch_group_create(); + dispatch_group_enter(uploadFilesTask); + for(SDLFile *file in files) { + dispatch_group_enter(uploadFilesTask); + + [self uploadFile:file completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError * _Nullable error) { + if(!success) { + failedUploads[file.name] = error; + } + + // Send an update for each file sent to the remote + if (progressHandler != nil) { + totalBytesUploaded += file.fileSize; + float uploadPercentage = [self sdl_uploadPercentage:totalBytesToUpload uploadedBytes:totalBytesUploaded]; + BOOL continueWithRemainingUploads = progressHandler(file.name, uploadPercentage, error); + if (!continueWithRemainingUploads) { + // Cancel any remaining files waiting to be uploaded + for(SDLFile *file in files) { + NSOperation *fileUploadOperation = self.uploadsInProgress[file.name]; + if (fileUploadOperation) { + [fileUploadOperation cancel]; + } + } + + dispatch_group_leave(uploadFilesTask); + BLOCK_RETURN; + } + } + dispatch_group_leave(uploadFilesTask); + }]; + } + dispatch_group_leave(uploadFilesTask); + + // Wait for all files to be uploaded + dispatch_group_notify(uploadFilesTask, dispatch_get_main_queue(), ^{ + if (completionHandler == nil) { return; } + if (failedUploads.count > 0) { + return completionHandler([NSError sdl_fileManager_unableToUpload_ErrorWithUserInfo:failedUploads]); + } + return completionHandler(nil); + }); +} + +/** + * Computes the total amount of bytes to be uploaded to the remote. This total is computed by summing up the file size of all files to be uploaded to the remote + * + * @param files All the files being uploaded to the remote + * @return The total byte count + */ +- (float)sdl_totalBytesToUpload:(NSArray *)files { + float totalBytes = 0.0; + for(SDLFile *file in files) { + totalBytes += file.fileSize; + } + + return totalBytes; +} + +/** + * Computes the percentage of files uploaded to the remote. This percentage is a decimal number between 0.0 - 1.0. It is calculated by dividing the total number of bytes in files successfully or unsuccessfully uploaded by the total number of bytes in all files to be uploaded. + * + * @param totalBytes The total number of bytes in all files to be uploaded + * @param uploadedBytes The total number of bytes in files successfully or unsuccessfully uploaded + * @return The upload percentage + */ +- (float)sdl_uploadPercentage:(float)totalBytes uploadedBytes:(float)uploadedBytes { + if (totalBytes == 0 || uploadedBytes == 0) { + return 0.0; + } + return uploadedBytes / totalBytes; +} + - (void)uploadFile:(SDLFile *)file completionHandler:(nullable SDLFileManagerUploadCompletionHandler)handler { if (file == nil) { if (handler != nil) { @@ -253,23 +368,25 @@ - (void)sdl_uploadFile:(SDLFile *)file completionHandler:(nullable SDLFileManage __block SDLFileManagerUploadCompletionHandler uploadCompletion = [handler copy]; __weak typeof(self) weakSelf = self; - SDLFileWrapper *fileWrapper = [SDLFileWrapper wrapperWithFile:file - completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError *_Nullable error) { - [weakSelf.class sdl_deleteTemporaryFile:file.fileURL]; - - if (bytesAvailable != 0) { - weakSelf.bytesAvailable = bytesAvailable; - } - if (success) { - [weakSelf.mutableRemoteFileNames addObject:fileName]; - } - if (uploadCompletion != nil) { - uploadCompletion(success, bytesAvailable, error); - } - }]; + SDLFileWrapper *fileWrapper = [SDLFileWrapper wrapperWithFile:file completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError *_Nullable error) { + if (self.uploadsInProgress[file.name]) { + [self.uploadsInProgress removeObjectForKey:file.name]; + } + + if (bytesAvailable != 0) { + weakSelf.bytesAvailable = bytesAvailable; + } + if (success) { + [weakSelf.mutableRemoteFileNames addObject:fileName]; + } + if (uploadCompletion != nil) { + uploadCompletion(success, bytesAvailable, error); + } + }]; SDLUploadFileOperation *uploadOperation = [[SDLUploadFileOperation alloc] initWithFile:fileWrapper connectionManager:self.connectionManager]; + self.uploadsInProgress[file.name] = uploadOperation; [self.transactionQueue addOperation:uploadOperation]; } @@ -296,18 +413,10 @@ + (void)sdl_clearTemporaryFileDirectory { } if (error != nil) { - NSString *debugString = [NSString stringWithFormat:@"[Error clearing temporary file directory] %@", error]; - [SDLDebugTool logInfo:debugString]; + SDLLogW(@"[Error clearing temporary file directory] %@", error); } } -+ (void)sdl_deleteTemporaryFile:(NSURL *)fileURL { - NSError *error = nil; - if (![[NSFileManager defaultManager] removeItemAtURL:fileURL error:&error]) { - NSString *debugString = [NSString stringWithFormat:@"[Error clearing temporary file directory] %@ (%@)", error, fileURL]; - [SDLDebugTool logInfo:debugString]; - } -} @end diff --git a/SmartDeviceLink/SDLFileManagerConstants.h b/SmartDeviceLink/SDLFileManagerConstants.h index c0241b020..e448322c0 100644 --- a/SmartDeviceLink/SDLFileManagerConstants.h +++ b/SmartDeviceLink/SDLFileManagerConstants.h @@ -7,11 +7,64 @@ // #import +#import "SDLRPCRequest.h" +#import "SDLRPCResponse.h" NS_ASSUME_NONNULL_BEGIN +typedef NSString SDLFileName; + +/** + * A completion handler called after a response from Core to a upload request. + * + * @param success Whether or not the upload was successful + * @param bytesAvailable The amount of space left for files on Core + * @param error The error that occurred during the request if one occurred, nil if no error occured + */ typedef void (^SDLFileManagerUploadCompletionHandler)(BOOL success, NSUInteger bytesAvailable, NSError *__nullable error); + +/** + * A completion handler called after a set of upload requests has completed. + * + * @param error The userInfo dictionary property, of type , contains information on all failed uploads. The key is the name of the file that did not upload properly, the value is an error describing what went wrong on that particular upload attempt. If all files are uploaded successfully, nil is returned + */ +typedef void(^SDLFileManagerMultiUploadCompletionHandler)(NSError *__nullable error); + +/** + * In a multiple request send, a handler called after each response from Core to a upload request. + * + * @param fileName The name of the file that received a response from SDL Core + * @param uploadPercentage The percentage of uploaded data. The upload percentage is calculated as the total file size of all attempted file uploads (regardless of the successfulness of the upload) divided by the sum of the data in all the files + * @param error The error that occurred during the request if one occurred, nil if no error occured + * @return Return NO to cancel any requests that have not yet been sent. Return YES to continue sending requests + */ +typedef BOOL (^SDLFileManagerMultiUploadProgressHandler)(SDLFileName *fileName, float uploadPercentage, NSError *__nullable error); + +/** + * A completion handler called after a response from Core to a delete request. + * + * @param success Whether or not the delete was successful + * @param bytesAvailable The amount of space left for files on Core + * @param error The error that occurred during the request if one occurred, nil if no error occured + */ typedef void (^SDLFileManagerDeleteCompletionHandler)(BOOL success, NSUInteger bytesAvailable, NSError *__nullable error); + +/** + * A completion handler called after a set of delete requests has completed. + * + * @param error The userInfo dictionary property, of type , will return information on all failed deletes. The key is the name of the file that did not delete properly, the value is an error describing what went wrong on that particular delete attempt. If all files are deleted successfully, nil is returned + */ +typedef void(^SDLFileManagerMultiDeleteCompletionHandler)(NSError *__nullable error); + +/** + * A completion handler called after response from Core to a list files request. + * + * @param success Whether or not the list files request was successful + * @param bytesAvailable The amount of space available for files on Core + * @param fileNames The names of the files stored on SDL Core + * @param error The error that occurred during the request if one occurred, nil if no error occured + */ typedef void (^SDLFileManagerListFilesCompletionHandler)(BOOL success, NSUInteger bytesAvailable, NSArray *fileNames, NSError *__nullable error); -NS_ASSUME_NONNULL_END \ No newline at end of file + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLFileType.h b/SmartDeviceLink/SDLFileType.h index eb4339868..76968d781 100644 --- a/SmartDeviceLink/SDLFileType.h +++ b/SmartDeviceLink/SDLFileType.h @@ -9,79 +9,44 @@ * * @since SDL 2.0 */ -@interface SDLFileType : SDLEnum { -} - -/** - * @abstract Convert String to SDLFileType - * - * @param value String value to retrieve the object for - * - * @return SDLFileType - */ -+ (SDLFileType *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLFileType - * - * @return an array that store all possible SDLFileType - */ -+ (NSArray *)values; +typedef SDLEnum SDLFileType SDL_SWIFT_ENUM; /** * @abstract file type: Bitmap (BMP) - * - * @return SDLFileType with value of *GRAPHIC_BMP* */ -+ (SDLFileType *)GRAPHIC_BMP; +extern SDLFileType const SDLFileTypeBMP; /** * @abstract file type: JPEG - * - * @return SDLFileType with value of *GRAPHIC_JPEG* */ -+ (SDLFileType *)GRAPHIC_JPEG; +extern SDLFileType const SDLFileTypeJPEG; /** * @abstract file type: PNG - * - * @return SDLFileType with value of *GRAPHIC_PNG* */ -+ (SDLFileType *)GRAPHIC_PNG; +extern SDLFileType const SDLFileTypePNG; /** * @abstract file type: WAVE (WAV) - * - * @return SDLFileType with value of *AUDIO_WAVE* */ -+ (SDLFileType *)AUDIO_WAVE; +extern SDLFileType const SDLFileTypeWAV; /** * @abstract file type: MP3 - * - * @return SDLFileType with value of *AUDIO_MP3* */ -+ (SDLFileType *)AUDIO_MP3; +extern SDLFileType const SDLFileTypeMP3; /** * @abstract file type: AAC - * - * @return SDLFileType with value of *AUDIO_AAC* */ -+ (SDLFileType *)AUDIO_AAC; +extern SDLFileType const SDLFileTypeAAC; /** * @abstract file type: BINARY - * - * @return SDLFileType with value of *BINARY* */ -+ (SDLFileType *)BINARY; +extern SDLFileType const SDLFileTypeBinary; /** * @abstract file type: JSON - * - * @return SDLFileType with value of *JSON* */ -+ (SDLFileType *)JSON; - -@end +extern SDLFileType const SDLFileTypeJSON; diff --git a/SmartDeviceLink/SDLFileType.m b/SmartDeviceLink/SDLFileType.m index f47932e9e..b86dc3539 100644 --- a/SmartDeviceLink/SDLFileType.m +++ b/SmartDeviceLink/SDLFileType.m @@ -4,98 +4,11 @@ #import "SDLFileType.h" -SDLFileType *SDLFileType_GRAPHIC_BMP = nil; -SDLFileType *SDLFileType_GRAPHIC_JPEG = nil; -SDLFileType *SDLFileType_GRAPHIC_PNG = nil; -SDLFileType *SDLFileType_AUDIO_WAVE = nil; -SDLFileType *SDLFileType_AUDIO_MP3 = nil; -SDLFileType *SDLFileType_AUDIO_AAC = nil; -SDLFileType *SDLFileType_BINARY = nil; -SDLFileType *SDLFileType_JSON = nil; - -NSArray *SDLFileType_values = nil; - -@implementation SDLFileType - -+ (SDLFileType *)valueOf:(NSString *)value { - for (SDLFileType *item in SDLFileType.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLFileType_values == nil) { - SDLFileType_values = @[ - SDLFileType.GRAPHIC_BMP, - SDLFileType.GRAPHIC_JPEG, - SDLFileType.GRAPHIC_PNG, - SDLFileType.AUDIO_WAVE, - SDLFileType.AUDIO_MP3, - SDLFileType.AUDIO_AAC, - SDLFileType.BINARY, - SDLFileType.JSON, - ]; - } - return SDLFileType_values; -} - -+ (SDLFileType *)GRAPHIC_BMP { - if (SDLFileType_GRAPHIC_BMP == nil) { - SDLFileType_GRAPHIC_BMP = [[SDLFileType alloc] initWithValue:@"GRAPHIC_BMP"]; - } - return SDLFileType_GRAPHIC_BMP; -} - -+ (SDLFileType *)GRAPHIC_JPEG { - if (SDLFileType_GRAPHIC_JPEG == nil) { - SDLFileType_GRAPHIC_JPEG = [[SDLFileType alloc] initWithValue:@"GRAPHIC_JPEG"]; - } - return SDLFileType_GRAPHIC_JPEG; -} - -+ (SDLFileType *)GRAPHIC_PNG { - if (SDLFileType_GRAPHIC_PNG == nil) { - SDLFileType_GRAPHIC_PNG = [[SDLFileType alloc] initWithValue:@"GRAPHIC_PNG"]; - } - return SDLFileType_GRAPHIC_PNG; -} - -+ (SDLFileType *)AUDIO_WAVE { - if (SDLFileType_AUDIO_WAVE == nil) { - SDLFileType_AUDIO_WAVE = [[SDLFileType alloc] initWithValue:@"AUDIO_WAVE"]; - } - return SDLFileType_AUDIO_WAVE; -} - -+ (SDLFileType *)AUDIO_MP3 { - if (SDLFileType_AUDIO_MP3 == nil) { - SDLFileType_AUDIO_MP3 = [[SDLFileType alloc] initWithValue:@"AUDIO_MP3"]; - } - return SDLFileType_AUDIO_MP3; -} - -+ (SDLFileType *)AUDIO_AAC { - if (SDLFileType_AUDIO_AAC == nil) { - SDLFileType_AUDIO_AAC = [[SDLFileType alloc] initWithValue:@"AUDIO_AAC"]; - } - return SDLFileType_AUDIO_AAC; -} - -+ (SDLFileType *)BINARY { - if (SDLFileType_BINARY == nil) { - SDLFileType_BINARY = [[SDLFileType alloc] initWithValue:@"BINARY"]; - } - return SDLFileType_BINARY; -} - -+ (SDLFileType *)JSON { - if (SDLFileType_JSON == nil) { - SDLFileType_JSON = [[SDLFileType alloc] initWithValue:@"JSON"]; - } - return SDLFileType_JSON; -} - -@end +SDLFileType const SDLFileTypeBMP = @"GRAPHIC_BMP"; +SDLFileType const SDLFileTypeJPEG = @"GRAPHIC_JPEG"; +SDLFileType const SDLFileTypePNG = @"GRAPHIC_PNG"; +SDLFileType const SDLFileTypeWAV = @"AUDIO_WAVE"; +SDLFileType const SDLFileTypeMP3 = @"AUDIO_MP3"; +SDLFileType const SDLFileTypeAAC = @"AUDIO_AAC"; +SDLFileType const SDLFileTypeBinary = @"BINARY"; +SDLFileType const SDLFileTypeJSON = @"JSON"; diff --git a/SmartDeviceLink/SDLFocusableItemHitTester.h b/SmartDeviceLink/SDLFocusableItemHitTester.h new file mode 100644 index 000000000..fe5080500 --- /dev/null +++ b/SmartDeviceLink/SDLFocusableItemHitTester.h @@ -0,0 +1,26 @@ +// +// SDLHapticHitTester.h +// SmartDeviceLink-iOS +// +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +@class SDLTouch; + +NS_ASSUME_NONNULL_BEGIN + +@protocol SDLFocusableItemHitTester + +/** + Determines which view was selected based on SDLTouch object. If no view gets matched null value will be returned. + + @param point Point to check for a view + @return point UIView object or nil + */ +- (nullable UIView *)viewForPoint:(CGPoint)point; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLFocusableItemLocator.h b/SmartDeviceLink/SDLFocusableItemLocator.h new file mode 100644 index 000000000..377b72571 --- /dev/null +++ b/SmartDeviceLink/SDLFocusableItemLocator.h @@ -0,0 +1,21 @@ +// +// SDLHapticManager.h +// SmartDeviceLink-iOS +// +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLFocusableItemLocatorType.h" +#import "SDLFocusableItemHitTester.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLFocusableItemLocator : NSObject + +@property (nonatomic, assign) BOOL enableHapticDataRequests; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLFocusableItemLocator.m b/SmartDeviceLink/SDLFocusableItemLocator.m new file mode 100644 index 000000000..c4b22103a --- /dev/null +++ b/SmartDeviceLink/SDLFocusableItemLocator.m @@ -0,0 +1,157 @@ +// +// SDLHapticManager.m +// SmartDeviceLink-iOS +// +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLFocusableItemLocator.h" +#import "SDLLogMacros.h" +#import "SDLNotificationConstants.h" +#import "SDLRectangle.h" +#import "SDLHapticRect.h" +#import "SDLSendHapticData.h" +#import "SDLTouch.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLFocusableItemLocator() + +/** + The projection window associated with the Haptic Manager + */ +@property (nonatomic, weak) UIWindow *projectionWindow; + +/** + Array of focusable view objects extracted from the projection window + */ +@property (nonatomic, strong) NSMutableArray *focusableViews; + +/** + reference to SDLConnectionManager + */ +@property (nonatomic, weak) id connectionManager; +@end + + +@implementation SDLFocusableItemLocator + +- (instancetype)initWithWindow:(UIWindow *)window connectionManager:(id)connectionManager{ + self = [super init]; + if(!self) { + return nil; + } + + _projectionWindow = window; + _connectionManager = connectionManager; + _enableHapticDataRequests = NO; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_projectionViewUpdated:) name:SDLDidUpdateProjectionView object:nil]; + + return self; +} + +- (void)updateInterfaceLayout { + self.focusableViews = [[NSMutableArray alloc] init]; + [self sdl_parseViewHierarchy:self.projectionWindow.subviews.lastObject]; + + // If there is a preferred view bring that into top of the array + NSUInteger preferredViewIndex = [self.focusableViews indexOfObject:self.projectionWindow.subviews.lastObject.preferredFocusedView]; + if (preferredViewIndex != NSNotFound && self.focusableViews.count > 1) { + [self.focusableViews exchangeObjectAtIndex:preferredViewIndex withObjectAtIndex:0]; + } + + [self sdl_sendHapticRPC]; +} + +/** + Crawls through the views recursively and adds focusable view into the member array + + @param currentView is the view hierarchy to be processed + */ +- (void)sdl_parseViewHierarchy:(UIView *)currentView { + if (currentView == nil) { + SDLLogW(@"Error: Cannot parse nil view"); + return; + } + + NSArray *focusableSubviews = [currentView.subviews filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(UIView * _Nullable evaluatedObject, NSDictionary * _Nullable bindings) { + return (evaluatedObject.canBecomeFocused || [evaluatedObject isKindOfClass:[UIButton class]]); + }]]; + + BOOL isButton = [currentView isKindOfClass:[UIButton class]]; + if ((currentView.canBecomeFocused || isButton) && focusableSubviews.count == 0) { + //if current view is focusable and it doesn't have any focusable sub views then add the current view and return + [self.focusableViews addObject:currentView]; + return; + } else if (currentView.subviews.count > 0) { + // if current view has focusable sub views parse them recursively + NSArray *subviews = currentView.subviews; + + for (UIView *childView in subviews) { + [self sdl_parseViewHierarchy:childView]; + } + } else { + return; + } +} + +/** + Iterates through the focusable views, extracts rectangular parameters, creates Haptic RPC request and sends it + */ +- (void)sdl_sendHapticRPC { + if (!self.enableHapticDataRequests) { + return; + } + + NSMutableArray *hapticRects = [[NSMutableArray alloc] init]; + + for (UIView *view in self.focusableViews) { + CGPoint originOnScreen = [self.projectionWindow convertPoint:view.frame.origin toView:nil]; + CGRect convertedRect = {originOnScreen, view.bounds.size}; + SDLRectangle* rect = [[SDLRectangle alloc] initWithCGRect:(convertedRect)]; + // using the view index as the id field in SendHapticData request (should be guaranteed unique) + NSUInteger rectId = [self.focusableViews indexOfObject:view]; + SDLHapticRect *hapticRect = [[SDLHapticRect alloc] initWithId:(UInt32)rectId rect:rect]; + [hapticRects addObject:hapticRect]; + } + + SDLSendHapticData* hapticRPC = [[SDLSendHapticData alloc] initWithHapticRectData:hapticRects]; + [self.connectionManager sendManagerRequest:hapticRPC withResponseHandler:nil]; +} + +#pragma mark SDLHapticHitTester 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.projectionWindow]; + if ([view pointInside:localPoint withEvent:nil]) { + if (selectedView != nil) { + selectedView = nil; + break; + //the point has been indentified in two views. We cannot identify which with confidence. + } else { + selectedView = view; + } + } + } + + return selectedView; +} + +#pragma mark notifications +/** + Function that gets called when projection view updated notification occurs. + + @param notification object with notification data + */ +- (void)sdl_projectionViewUpdated:(NSNotification *)notification { + [self updateInterfaceLayout]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLFocusableItemLocatorType.h b/SmartDeviceLink/SDLFocusableItemLocatorType.h new file mode 100644 index 000000000..dc4d9488b --- /dev/null +++ b/SmartDeviceLink/SDLFocusableItemLocatorType.h @@ -0,0 +1,39 @@ +// +// SDLHapticInterface.h +// SmartDeviceLink-iOS +// +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import +#import "SDLConnectionManagerType.h" + +@class SDLManager; + +NS_ASSUME_NONNULL_BEGIN + +@protocol SDLFocusableItemLocatorType + +/** + Whether or not this will attempt to send haptic RPCs. + + @note Defaults to NO. + */ +@property (nonatomic, assign) BOOL enableHapticDataRequests; + +/** + Initializes haptic interface. After initializing the application must call updateInterfaceLayout to process the UIWindow. Application must update later view changes in the window by sending SDLDidUpdateProjectionView notification. + + @param window UIWindow to be stored in haptic interface + @param connectionManager Object of a class that implements ConnectionManagerType. This is used for RPC communication. + */ +- (instancetype)initWithWindow:(UIWindow *)window connectionManager:(id)connectionManager; + +/** + updateInterfaceLayout crawls through the view hierarchy, updates and keep tracks of views to be reported through Haptic RPC. This function is automatically called when SDLDidUpdateProjectionView notification is sent by the application. + */ +- (void)updateInterfaceLayout; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLFuelCutoffStatus.h b/SmartDeviceLink/SDLFuelCutoffStatus.h index df213ff07..2158c31f9 100644 --- a/SmartDeviceLink/SDLFuelCutoffStatus.h +++ b/SmartDeviceLink/SDLFuelCutoffStatus.h @@ -10,41 +10,19 @@ * * @since SDL 2.0 */ -@interface SDLFuelCutoffStatus : SDLEnum { -} - -/** - * @abstract Convert String to SDLFuelCutoffStatus - * - * @param value String value to retrieve the object for - * - * @return SDLFuelCutoffStatus - */ -+ (SDLFuelCutoffStatus *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLFuelCutoffStatus - * - * @return an array that stores all possible SDLFuelCutoffStatus - */ -+ (NSArray *)values; +typedef SDLEnum SDLFuelCutoffStatus SDL_SWIFT_ENUM; /** * @abstract Fuel is cut off - * @return the fuel cutoff status: *TERMINATE_FUEL* */ -+ (SDLFuelCutoffStatus *)TERMINATE_FUEL; +extern SDLFuelCutoffStatus const SDLFuelCutoffStatusTerminateFuel; /** * @abstract Fuel is not cut off - * @return the fuel cutoff status: *NORMAL_OPERATION* */ -+ (SDLFuelCutoffStatus *)NORMAL_OPERATION; +extern SDLFuelCutoffStatus const SDLFuelCutoffStatusNormalOperation; /** * @abstract Status of the fuel pump cannot be determined - * @return the fuel cutoff status: *FAULT* */ -+ (SDLFuelCutoffStatus *)FAULT; - -@end +extern SDLFuelCutoffStatus const SDLFuelCutoffStatusFault; diff --git a/SmartDeviceLink/SDLFuelCutoffStatus.m b/SmartDeviceLink/SDLFuelCutoffStatus.m index 3bbd92bb8..2ed2feb40 100644 --- a/SmartDeviceLink/SDLFuelCutoffStatus.m +++ b/SmartDeviceLink/SDLFuelCutoffStatus.m @@ -4,53 +4,6 @@ #import "SDLFuelCutoffStatus.h" -SDLFuelCutoffStatus *SDLFuelCutoffStatus_TERMINATE_FUEL = nil; -SDLFuelCutoffStatus *SDLFuelCutoffStatus_NORMAL_OPERATION = nil; -SDLFuelCutoffStatus *SDLFuelCutoffStatus_FAULT = nil; - -NSArray *SDLFuelCutoffStatus_values = nil; - -@implementation SDLFuelCutoffStatus - -+ (SDLFuelCutoffStatus *)valueOf:(NSString *)value { - for (SDLFuelCutoffStatus *item in SDLFuelCutoffStatus.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLFuelCutoffStatus_values == nil) { - SDLFuelCutoffStatus_values = @[ - SDLFuelCutoffStatus.TERMINATE_FUEL, - SDLFuelCutoffStatus.NORMAL_OPERATION, - SDLFuelCutoffStatus.FAULT, - ]; - } - return SDLFuelCutoffStatus_values; -} - -+ (SDLFuelCutoffStatus *)TERMINATE_FUEL { - if (SDLFuelCutoffStatus_TERMINATE_FUEL == nil) { - SDLFuelCutoffStatus_TERMINATE_FUEL = [[SDLFuelCutoffStatus alloc] initWithValue:@"TERMINATE_FUEL"]; - } - return SDLFuelCutoffStatus_TERMINATE_FUEL; -} - -+ (SDLFuelCutoffStatus *)NORMAL_OPERATION { - if (SDLFuelCutoffStatus_NORMAL_OPERATION == nil) { - SDLFuelCutoffStatus_NORMAL_OPERATION = [[SDLFuelCutoffStatus alloc] initWithValue:@"NORMAL_OPERATION"]; - } - return SDLFuelCutoffStatus_NORMAL_OPERATION; -} - -+ (SDLFuelCutoffStatus *)FAULT { - if (SDLFuelCutoffStatus_FAULT == nil) { - SDLFuelCutoffStatus_FAULT = [[SDLFuelCutoffStatus alloc] initWithValue:@"FAULT"]; - } - return SDLFuelCutoffStatus_FAULT; -} - -@end +SDLFuelCutoffStatus const SDLFuelCutoffStatusTerminateFuel = @"TERMINATE_FUEL"; +SDLFuelCutoffStatus const SDLFuelCutoffStatusNormalOperation = @"NORMAL_OPERATION"; +SDLFuelCutoffStatus const SDLFuelCutoffStatusFault = @"FAULT"; diff --git a/SmartDeviceLink/SDLFunctionID.h b/SmartDeviceLink/SDLFunctionID.h index 8bbd1a52a..7cb9d6cb1 100644 --- a/SmartDeviceLink/SDLFunctionID.h +++ b/SmartDeviceLink/SDLFunctionID.h @@ -4,12 +4,19 @@ #import +#import "NSMutableDictionary+Store.h" +#import "SDLNames.h" +#import "NSNumber+NumberType.h" -@interface SDLFunctionID : NSObject { - NSDictionary *functionIDs; -} +NS_ASSUME_NONNULL_BEGIN -- (NSString *)getFunctionName:(int)functionID; -- (NSNumber *)getFunctionID:(NSString *)functionName; +@interface SDLFunctionID : NSObject + ++ (instancetype)sharedInstance; + +- (nullable SDLName)functionNameForId:(int)functionID; +- (nullable NSNumber *)functionIdForName:(SDLName)functionName; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLFunctionID.m b/SmartDeviceLink/SDLFunctionID.m index 0c8765e38..14742e907 100644 --- a/SmartDeviceLink/SDLFunctionID.m +++ b/SmartDeviceLink/SDLFunctionID.m @@ -4,37 +4,114 @@ #import "SDLFunctionID.h" -#import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + +@interface SDLFunctionID () + +@property (nonatomic, strong, nonnull) NSDictionary* functionIds; + +@end @implementation SDLFunctionID ++ (instancetype)sharedInstance { + static SDLFunctionID* functionId = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + functionId = [[SDLFunctionID alloc] init]; + }); + return functionId; +} + - (instancetype)init { - if (self = [super init]) { - functionIDs = [NSDictionary dictionaryWithObjectsAndKeys: - NAMES_reserved, @"0", NAMES_RegisterAppInterface, @"1", NAMES_UnregisterAppInterface, @"2", NAMES_SetGlobalProperties, @"3", NAMES_ResetGlobalProperties, @"4", NAMES_AddCommand, @"5", NAMES_DeleteCommand, @"6", NAMES_AddSubMenu, @"7", NAMES_DeleteSubMenu, @"8", NAMES_CreateInteractionChoiceSet, @"9", NAMES_PerformInteraction, @"10", NAMES_DeleteInteractionChoiceSet, @"11", NAMES_Alert, @"12", NAMES_Show, @"13", NAMES_Speak, @"14", NAMES_SetMediaClockTimer, @"15", NAMES_PerformAudioPassThru, @"16", NAMES_EndAudioPassThru, @"17", NAMES_SubscribeButton, @"18", NAMES_UnsubscribeButton, @"19", NAMES_SubscribeVehicleData, @"20", NAMES_UnsubscribeVehicleData, @"21", NAMES_GetVehicleData, @"22", NAMES_ReadDID, @"23", NAMES_GetDTCs, @"24", NAMES_ScrollableMessage, @"25", NAMES_Slider, @"26", NAMES_ShowConstantTBT, @"27", NAMES_AlertManeuver, @"28", NAMES_UpdateTurnList, @"29", NAMES_ChangeRegistration, @"30", NAMES_GenericResponse, @"31", NAMES_PutFile, @"32", NAMES_DeleteFile, @"33", NAMES_ListFiles, @"34", NAMES_SetAppIcon, @"35", NAMES_SetDisplayLayout, @"36", NAMES_DiagnosticMessage, @"37", NAMES_SystemRequest, @"38", NAMES_SendLocation, @"39", NAMES_DialNumber, @"40", NAMES_GetWaypoints, @"45", NAMES_SubscribeWaypoints, @"46", NAMES_UnsubscribeWaypoints, @"47", NAMES_GetSystemCapability, @"48", NAMES_SendHapticData, @"49", NAMES_OnHMIStatus, @"32768", NAMES_OnAppInterfaceUnregistered, @"32769", NAMES_OnButtonEvent, @"32770", NAMES_OnButtonPress, @"32771", NAMES_OnVehicleData, @"32772", NAMES_OnCommand, @"32773", NAMES_OnTBTClientState, @"32774", NAMES_OnDriverDistraction, @"32775", NAMES_OnPermissionsChange, @"32776", NAMES_OnAudioPassThru, @"32777", NAMES_OnLanguageChange, @"32778", NAMES_OnKeyboardInput, @"32779", NAMES_OnTouchEvent, @"32780", NAMES_OnSystemRequest, @"32781", NAMES_OnHashChange, @"32782", NAMES_OnWaypointChange, @"32784", - - NAMES_EncodedSyncPData, - @"65536", - NAMES_SyncPData, - @"65537", - - NAMES_OnEncodedSyncPData, - @"98304", - NAMES_OnSyncPData, - @"98305", - nil]; + self = [super init]; + if (!self) { + return nil; } + + 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, + @65536: SDLNameEncodedSyncPData, + @65537: SDLNameSyncPData, + @98304: SDLNameOnEncodedSyncPData, + @98305: SDLNameOnSyncPData + }; return self; } -- (NSString *)getFunctionName:(int)functionID { - return [functionIDs objectForKey:[NSString stringWithFormat:@"%d", functionID]]; +- (nullable SDLName)functionNameForId:(int)functionID { + return self.functionIds[@(functionID)]; } - -- (NSNumber *)getFunctionID:(NSString *)functionName { - return [NSNumber numberWithInt:[[[functionIDs allKeysForObject:functionName] objectAtIndex:0] intValue]]; +- (nullable NSNumber *)functionIdForName:(SDLName)functionName { + return [[self.functionIds allKeysForObject:functionName] firstObject]; } - @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGPSData.h b/SmartDeviceLink/SDLGPSData.h index cfeebaa41..892bd7e46 100644 --- a/SmartDeviceLink/SDLGPSData.h +++ b/SmartDeviceLink/SDLGPSData.h @@ -3,8 +3,8 @@ #import "SDLRPCMessage.h" -@class SDLCompassDirection; -@class SDLDimension; +#import "SDLCompassDirection.h" +#import "SDLDimension.h" /** @@ -12,80 +12,71 @@ * * @since SDL 2.0 */ -@interface SDLGPSData : SDLRPCStruct { -} -/** - * Constructs a newly allocated SDLGPSData object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * Constructs a newly allocated SDLGPSData object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLGPSData : SDLRPCStruct /** * @abstract longitude degrees * * Required, Float, -180 - 180 */ -@property (strong) NSNumber *longitudeDegrees; +@property (strong, nonatomic) NSNumber *longitudeDegrees; /** * @abstract latitude degrees * * Required, Float, -90 - 90 */ -@property (strong) NSNumber *latitudeDegrees; +@property (strong, nonatomic) NSNumber *latitudeDegrees; /** * @abstract utc year * * Required, Integer, 2010 - 2100 */ -@property (strong) NSNumber *utcYear; +@property (strong, nonatomic) NSNumber *utcYear; /** * @abstract utc month * * Required, Integer, 1 - 12 */ -@property (strong) NSNumber *utcMonth; +@property (strong, nonatomic) NSNumber *utcMonth; /** * @abstract utc day * * Required, Integer, 1 - 31 */ -@property (strong) NSNumber *utcDay; +@property (strong, nonatomic) NSNumber *utcDay; /** * @abstract utc hours * * Required, Integer, 0 - 23 */ -@property (strong) NSNumber *utcHours; +@property (strong, nonatomic) NSNumber *utcHours; /** * @abstract utc minutes * * Required, Integer, 0 - 59 */ -@property (strong) NSNumber *utcMinutes; +@property (strong, nonatomic) NSNumber *utcMinutes; /** * @abstract utc seconds * * Required, Integer, 0 - 59 */ -@property (strong) NSNumber *utcSeconds; +@property (strong, nonatomic) NSNumber *utcSeconds; /** * Potential Compass Directions */ -@property (strong) SDLCompassDirection *compassDirection; +@property (strong, nonatomic) SDLCompassDirection compassDirection; /** * @abstract The 3D positional dilution of precision. @@ -94,7 +85,7 @@ * * Required, Float, 0.0 - 10.0 */ -@property (strong) NSNumber *pdop; +@property (strong, nonatomic) NSNumber *pdop; /** * @abstract The horizontal dilution of precision @@ -103,7 +94,7 @@ * * Required, Float, 0.0 - 10.0 */ -@property (strong) NSNumber *hdop; +@property (strong, nonatomic) NSNumber *hdop; /** * @abstract the vertical dilution of precision @@ -112,7 +103,7 @@ * * Required, Float, 0.0 - 10.0 */ -@property (strong) NSNumber *vdop; +@property (strong, nonatomic) NSNumber *vdop; /** * @abstract What the coordinates are based on @@ -121,28 +112,28 @@ * * Required, Boolean */ -@property (strong) NSNumber *actual; +@property (strong, nonatomic) NSNumber *actual; /** * @abstract The number of satellites in view * * Required, Integer, 0 - 31 */ -@property (strong) NSNumber *satellites; +@property (strong, nonatomic) NSNumber *satellites; /** * The supported dimensions of the GPS * * Required */ -@property (strong) SDLDimension *dimension; +@property (strong, nonatomic) SDLDimension dimension; /** * @abstract altitude in meters * * Required, Float, -10000.0 - 10000.0 */ -@property (strong) NSNumber *altitude; +@property (strong, nonatomic) NSNumber *altitude; /** * @abstract Heading based on the GPS data. @@ -151,13 +142,15 @@ * * Required, Float, 0.0 - 359.99 */ -@property (strong) NSNumber *heading; +@property (strong, nonatomic) NSNumber *heading; /** * @abstract speed in KPH * * Required, Float, 0.0 - 500.0 */ -@property (strong) NSNumber *speed; +@property (strong, nonatomic) NSNumber *speed; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGPSData.m b/SmartDeviceLink/SDLGPSData.m index 1cec52112..8bd17706f 100644 --- a/SmartDeviceLink/SDLGPSData.m +++ b/SmartDeviceLink/SDLGPSData.m @@ -3,249 +3,157 @@ #import "SDLGPSData.h" -#import "SDLCompassDirection.h" -#import "SDLDimension.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLGPSData -- (instancetype)init { - if (self = [super init]) { - } - return self; +- (void)setLongitudeDegrees:(NSNumber *)longitudeDegrees { + [store sdl_setObject:longitudeDegrees forName:SDLNameLongitudeDegrees]; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (NSNumber *)longitudeDegrees { + return [store sdl_objectForName:SDLNameLongitudeDegrees]; } -- (void)setLongitudeDegrees:(NSNumber *)longitudeDegrees { - if (longitudeDegrees != nil) { - [store setObject:longitudeDegrees forKey:NAMES_longitudeDegrees]; - } else { - [store removeObjectForKey:NAMES_longitudeDegrees]; - } +- (void)setLatitudeDegrees:(NSNumber *)latitudeDegrees { + [store sdl_setObject:latitudeDegrees forName:SDLNameLatitudeDegrees]; } -- (NSNumber *)longitudeDegrees { - return [store objectForKey:NAMES_longitudeDegrees]; +- (NSNumber *)latitudeDegrees { + return [store sdl_objectForName:SDLNameLatitudeDegrees]; } -- (void)setLatitudeDegrees:(NSNumber *)latitudeDegrees { - if (latitudeDegrees != nil) { - [store setObject:latitudeDegrees forKey:NAMES_latitudeDegrees]; - } else { - [store removeObjectForKey:NAMES_latitudeDegrees]; - } +- (void)setUtcYear:(NSNumber *)utcYear { + [store sdl_setObject:utcYear forName:SDLNameUTCYear]; } -- (NSNumber *)latitudeDegrees { - return [store objectForKey:NAMES_latitudeDegrees]; +- (NSNumber *)utcYear { + return [store sdl_objectForName:SDLNameUTCYear]; } -- (void)setUtcYear:(NSNumber *)utcYear { - if (utcYear != nil) { - [store setObject:utcYear forKey:NAMES_utcYear]; - } else { - [store removeObjectForKey:NAMES_utcYear]; - } +- (void)setUtcMonth:(NSNumber *)utcMonth { + [store sdl_setObject:utcMonth forName:SDLNameUTCMonth]; } -- (NSNumber *)utcYear { - return [store objectForKey:NAMES_utcYear]; +- (NSNumber *)utcMonth { + return [store sdl_objectForName:SDLNameUTCMonth]; } -- (void)setUtcMonth:(NSNumber *)utcMonth { - if (utcMonth != nil) { - [store setObject:utcMonth forKey:NAMES_utcMonth]; - } else { - [store removeObjectForKey:NAMES_utcMonth]; - } +- (void)setUtcDay:(NSNumber *)utcDay { + [store sdl_setObject:utcDay forName:SDLNameUTCDay]; } -- (NSNumber *)utcMonth { - return [store objectForKey:NAMES_utcMonth]; +- (NSNumber *)utcDay { + return [store sdl_objectForName:SDLNameUTCDay]; } -- (void)setUtcDay:(NSNumber *)utcDay { - if (utcDay != nil) { - [store setObject:utcDay forKey:NAMES_utcDay]; - } else { - [store removeObjectForKey:NAMES_utcDay]; - } +- (void)setUtcHours:(NSNumber *)utcHours { + [store sdl_setObject:utcHours forName:SDLNameUTCHours]; } -- (NSNumber *)utcDay { - return [store objectForKey:NAMES_utcDay]; +- (NSNumber *)utcHours { + return [store sdl_objectForName:SDLNameUTCHours]; } -- (void)setUtcHours:(NSNumber *)utcHours { - if (utcHours != nil) { - [store setObject:utcHours forKey:NAMES_utcHours]; - } else { - [store removeObjectForKey:NAMES_utcHours]; - } +- (void)setUtcMinutes:(NSNumber *)utcMinutes { + [store sdl_setObject:utcMinutes forName:SDLNameUTCMinutes]; } -- (NSNumber *)utcHours { - return [store objectForKey:NAMES_utcHours]; +- (NSNumber *)utcMinutes { + return [store sdl_objectForName:SDLNameUTCMinutes]; } -- (void)setUtcMinutes:(NSNumber *)utcMinutes { - if (utcMinutes != nil) { - [store setObject:utcMinutes forKey:NAMES_utcMinutes]; - } else { - [store removeObjectForKey:NAMES_utcMinutes]; - } +- (void)setUtcSeconds:(NSNumber *)utcSeconds { + [store sdl_setObject:utcSeconds forName:SDLNameUTCSeconds]; } -- (NSNumber *)utcMinutes { - return [store objectForKey:NAMES_utcMinutes]; +- (NSNumber *)utcSeconds { + return [store sdl_objectForName:SDLNameUTCSeconds]; } -- (void)setUtcSeconds:(NSNumber *)utcSeconds { - if (utcSeconds != nil) { - [store setObject:utcSeconds forKey:NAMES_utcSeconds]; - } else { - [store removeObjectForKey:NAMES_utcSeconds]; - } +- (void)setCompassDirection:(SDLCompassDirection)compassDirection { + [store sdl_setObject:compassDirection forName:SDLNameCompassDirection]; } -- (NSNumber *)utcSeconds { - return [store objectForKey:NAMES_utcSeconds]; +- (SDLCompassDirection)compassDirection { + return [store sdl_objectForName:SDLNameCompassDirection]; } -- (void)setCompassDirection:(SDLCompassDirection *)compassDirection { - if (compassDirection != nil) { - [store setObject:compassDirection forKey:NAMES_compassDirection]; - } else { - [store removeObjectForKey:NAMES_compassDirection]; - } +- (void)setPdop:(NSNumber *)pdop { + [store sdl_setObject:pdop forName:SDLNamePDOP]; } -- (SDLCompassDirection *)compassDirection { - NSObject *obj = [store objectForKey:NAMES_compassDirection]; - if (obj == nil || [obj isKindOfClass:SDLCompassDirection.class]) { - return (SDLCompassDirection *)obj; - } else { - return [SDLCompassDirection valueOf:(NSString *)obj]; - } +- (NSNumber *)pdop { + return [store sdl_objectForName:SDLNamePDOP]; } -- (void)setPdop:(NSNumber *)pdop { - if (pdop != nil) { - [store setObject:pdop forKey:NAMES_pdop]; - } else { - [store removeObjectForKey:NAMES_pdop]; - } +- (void)setHdop:(NSNumber *)hdop { + [store sdl_setObject:hdop forName:SDLNameHDOP]; } -- (NSNumber *)pdop { - return [store objectForKey:NAMES_pdop]; +- (NSNumber *)hdop { + return [store sdl_objectForName:SDLNameHDOP]; } -- (void)setHdop:(NSNumber *)hdop { - if (hdop != nil) { - [store setObject:hdop forKey:NAMES_hdop]; - } else { - [store removeObjectForKey:NAMES_hdop]; - } +- (void)setVdop:(NSNumber *)vdop { + [store sdl_setObject:vdop forName:SDLNameVDOP]; } -- (NSNumber *)hdop { - return [store objectForKey:NAMES_hdop]; +- (NSNumber *)vdop { + return [store sdl_objectForName:SDLNameVDOP]; } -- (void)setVdop:(NSNumber *)vdop { - if (vdop != nil) { - [store setObject:vdop forKey:NAMES_vdop]; - } else { - [store removeObjectForKey:NAMES_vdop]; - } +- (void)setActual:(NSNumber *)actual { + [store sdl_setObject:actual forName:SDLNameActual]; } -- (NSNumber *)vdop { - return [store objectForKey:NAMES_vdop]; +- (NSNumber *)actual { + return [store sdl_objectForName:SDLNameActual]; } -- (void)setActual:(NSNumber *)actual { - if (actual != nil) { - [store setObject:actual forKey:NAMES_actual]; - } else { - [store removeObjectForKey:NAMES_actual]; - } +- (void)setSatellites:(NSNumber *)satellites { + [store sdl_setObject:satellites forName:SDLNameSatellites]; } -- (NSNumber *)actual { - return [store objectForKey:NAMES_actual]; +- (NSNumber *)satellites { + return [store sdl_objectForName:SDLNameSatellites]; } -- (void)setSatellites:(NSNumber *)satellites { - if (satellites != nil) { - [store setObject:satellites forKey:NAMES_satellites]; - } else { - [store removeObjectForKey:NAMES_satellites]; - } +- (void)setDimension:(SDLDimension)dimension { + [store sdl_setObject:dimension forName:SDLNameDimension]; } -- (NSNumber *)satellites { - return [store objectForKey:NAMES_satellites]; +- (SDLDimension)dimension { + return [store sdl_objectForName:SDLNameDimension]; } -- (void)setDimension:(SDLDimension *)dimension { - if (dimension != nil) { - [store setObject:dimension forKey:NAMES_dimension]; - } else { - [store removeObjectForKey:NAMES_dimension]; - } +- (void)setAltitude:(NSNumber *)altitude { + [store sdl_setObject:altitude forName:SDLNameAltitude]; } -- (SDLDimension *)dimension { - NSObject *obj = [store objectForKey:NAMES_dimension]; - if (obj == nil || [obj isKindOfClass:SDLDimension.class]) { - return (SDLDimension *)obj; - } else { - return [SDLDimension valueOf:(NSString *)obj]; - } +- (NSNumber *)altitude { + return [store sdl_objectForName:SDLNameAltitude]; } -- (void)setAltitude:(NSNumber *)altitude { - if (altitude != nil) { - [store setObject:altitude forKey:NAMES_altitude]; - } else { - [store removeObjectForKey:NAMES_altitude]; - } +- (void)setHeading:(NSNumber *)heading { + [store sdl_setObject:heading forName:SDLNameHeading]; } -- (NSNumber *)altitude { - return [store objectForKey:NAMES_altitude]; +- (NSNumber *)heading { + return [store sdl_objectForName:SDLNameHeading]; } -- (void)setHeading:(NSNumber *)heading { - if (heading != nil) { - [store setObject:heading forKey:NAMES_heading]; - } else { - [store removeObjectForKey:NAMES_heading]; - } +- (void)setSpeed:(NSNumber *)speed { + [store sdl_setObject:speed forName:SDLNameSpeed]; } -- (NSNumber *)heading { - return [store objectForKey:NAMES_heading]; -} - -- (void)setSpeed:(NSNumber *)speed { - if (speed != nil) { - [store setObject:speed forKey:NAMES_speed]; - } else { - [store removeObjectForKey:NAMES_speed]; - } -} - -- (NSNumber *)speed { - return [store objectForKey:NAMES_speed]; +- (NSNumber *)speed { + return [store sdl_objectForName:SDLNameSpeed]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGenericResponse.h b/SmartDeviceLink/SDLGenericResponse.h index 4d339fb64..74f1fa495 100644 --- a/SmartDeviceLink/SDLGenericResponse.h +++ b/SmartDeviceLink/SDLGenericResponse.h @@ -9,10 +9,11 @@ * retrieved. Only used in case of an error. Currently, only resultCode * INVALID_DATA is used. */ -@interface SDLGenericResponse : SDLRPCResponse { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLGenericResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGenericResponse.m b/SmartDeviceLink/SDLGenericResponse.m index aff982d8f..6c3849018 100644 --- a/SmartDeviceLink/SDLGenericResponse.m +++ b/SmartDeviceLink/SDLGenericResponse.m @@ -4,20 +4,19 @@ #import "SDLGenericResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLGenericResponse - (instancetype)init { - if (self = [super initWithName:NAMES_GenericResponse]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameGenericResponse]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetDTCs.h b/SmartDeviceLink/SDLGetDTCs.h index e2e5ef438..c212e7f95 100644 --- a/SmartDeviceLink/SDLGetDTCs.h +++ b/SmartDeviceLink/SDLGetDTCs.h @@ -13,19 +13,10 @@ * HMILevel needs to be FULL, LIMITED or BACKGROUND *

*/ -@interface SDLGetDTCs : SDLRPCRequest { -} -/** - * Constructs a new SDLGetDTCs object - */ -- (instancetype)init; -/** - * Constructs a new SDLGetDTCs object indicated by the dictionary parameter - *

- * - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLGetDTCs : SDLRPCRequest - (instancetype)initWithECUName:(UInt16)name; @@ -38,9 +29,11 @@ *

* Notes: Minvalue:0; Maxvalue:65535 */ -@property (strong) NSNumber *ecuName; +@property (strong, nonatomic) NSNumber *ecuName; /** * @abstract DTC Mask Byte to be sent in diagnostic request to module. NSNumber* dtcMask Minvalue:0; Maxvalue:255 */ -@property (strong) NSNumber *dtcMask; +@property (nullable, strong, nonatomic) NSNumber *dtcMask; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetDTCs.m b/SmartDeviceLink/SDLGetDTCs.m index 7041e44d4..3bbd551ff 100644 --- a/SmartDeviceLink/SDLGetDTCs.m +++ b/SmartDeviceLink/SDLGetDTCs.m @@ -4,18 +4,15 @@ #import "SDLGetDTCs.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLGetDTCs - (instancetype)init { - if (self = [super initWithName:NAMES_GetDTCs]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameGetDTCs]) { } return self; } @@ -42,28 +39,22 @@ - (instancetype)initWithECUName:(UInt16)name { return self; } -- (void)setEcuName:(NSNumber *)ecuName { - if (ecuName != nil) { - [parameters setObject:ecuName forKey:NAMES_ecuName]; - } else { - [parameters removeObjectForKey:NAMES_ecuName]; - } +- (void)setEcuName:(NSNumber *)ecuName { + [parameters sdl_setObject:ecuName forName:SDLNameECUName]; } -- (NSNumber *)ecuName { - return [parameters objectForKey:NAMES_ecuName]; +- (NSNumber *)ecuName { + return [parameters sdl_objectForName:SDLNameECUName]; } -- (void)setDtcMask:(NSNumber *)dtcMask { - if (dtcMask != nil) { - [parameters setObject:dtcMask forKey:NAMES_dtcMask]; - } else { - [parameters removeObjectForKey:NAMES_dtcMask]; - } +- (void)setDtcMask:(nullable NSNumber *)dtcMask { + [parameters sdl_setObject:dtcMask forName:SDLNameDTCMask]; } -- (NSNumber *)dtcMask { - return [parameters objectForKey:NAMES_dtcMask]; +- (nullable NSNumber *)dtcMask { + return [parameters sdl_objectForName:SDLNameDTCMask]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetDTCsResponse.h b/SmartDeviceLink/SDLGetDTCsResponse.h index 4e0af4a39..dd87f377f 100644 --- a/SmartDeviceLink/SDLGetDTCsResponse.h +++ b/SmartDeviceLink/SDLGetDTCsResponse.h @@ -9,13 +9,14 @@ * * Since SmartDeviceLink 2.0 */ -@interface SDLGetDTCsResponse : SDLRPCResponse { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN -@property (strong) NSNumber *ecuHeader; -@property (strong) NSMutableArray *dtc; +@interface SDLGetDTCsResponse : SDLRPCResponse + +@property (strong, nonatomic) NSNumber *ecuHeader; +@property (strong, nonatomic) NSArray *dtc; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetDTCsResponse.m b/SmartDeviceLink/SDLGetDTCsResponse.m index bbf678a78..898a36de6 100644 --- a/SmartDeviceLink/SDLGetDTCsResponse.m +++ b/SmartDeviceLink/SDLGetDTCsResponse.m @@ -4,44 +4,35 @@ #import "SDLGetDTCsResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLGetDTCsResponse - (instancetype)init { - if (self = [super initWithName:NAMES_GetDTCs]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameGetDTCs]) { } return self; } -- (void)setEcuHeader:(NSNumber *)ecuHeader { - if (ecuHeader != nil) { - [parameters setObject:ecuHeader forKey:NAMES_ecuHeader]; - } else { - [parameters removeObjectForKey:NAMES_ecuHeader]; - } +- (void)setEcuHeader:(NSNumber *)ecuHeader { + [parameters sdl_setObject:ecuHeader forName:SDLNameECUHeader]; } -- (NSNumber *)ecuHeader { - return [parameters objectForKey:NAMES_ecuHeader]; +- (NSNumber *)ecuHeader { + return [parameters sdl_objectForName:SDLNameECUHeader]; } -- (void)setDtc:(NSMutableArray *)dtc { - if (dtc != nil) { - [parameters setObject:dtc forKey:NAMES_dtc]; - } else { - [parameters removeObjectForKey:NAMES_dtc]; - } +- (void)setDtc:(NSArray *)dtc { + [parameters sdl_setObject:dtc forName:SDLNameDTC]; } -- (NSMutableArray *)dtc { - return [parameters objectForKey:NAMES_dtc]; +- (NSArray *)dtc { + return [parameters sdl_objectForName:SDLNameDTC]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetInteriorVehicleData.h b/SmartDeviceLink/SDLGetInteriorVehicleData.h new file mode 100644 index 000000000..01d208f71 --- /dev/null +++ b/SmartDeviceLink/SDLGetInteriorVehicleData.h @@ -0,0 +1,42 @@ +// +// SDLGetInteriorVehicleData.h +// + +#import "SDLRPCRequest.h" +#import "SDLModuleType.h" + +/** + * Reads the current status value of specified remote control module (type). + * When subscribe is true, subscribes for specific remote control module data items. + * When subscribe is false, unsubscribes for specific remote control module data items. + * Once subscribed, the application will be notified by the onInteriorVehicleData RPC notification + * whenever new data is available for the module. + */ + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLGetInteriorVehicleData : SDLRPCRequest + +- (instancetype)initWithModuleType:(SDLModuleType)moduleType; + +- (instancetype)initAndSubscribeToModuleType:(SDLModuleType)moduleType; + +- (instancetype)initAndUnsubscribeToModuleType:(SDLModuleType)moduleType; + +/** + * The type of a RC module to retrieve module data from the vehicle. + * + */ +@property (strong, nonatomic) SDLModuleType moduleType; + +/** + * If subscribe is true, the head unit will register onInteriorVehicleData notifications for the requested moduelType. + * If subscribe is false, the head unit will unregister onInteriorVehicleData notifications for the requested moduelType. + * + * optional, Boolean, default Value = false + */ +@property (nullable, strong, nonatomic) NSNumber *subscribe; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetInteriorVehicleData.m b/SmartDeviceLink/SDLGetInteriorVehicleData.m new file mode 100755 index 000000000..efdf2c3b4 --- /dev/null +++ b/SmartDeviceLink/SDLGetInteriorVehicleData.m @@ -0,0 +1,72 @@ +// +// SDLGetInteriorVehicleData.m +// + +#import "SDLGetInteriorVehicleData.h" +#import "SDLNames.h" +#import "NSMutableDictionary+Store.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLGetInteriorVehicleData + +- (instancetype)init { + if (self = [super initWithName:SDLNameGetInteriorVehicleData]) { + } + return self; +} + +- (instancetype)initWithModuleType:(SDLModuleType)moduleType; { + self = [self init]; + if (!self) { + return nil; + } + + self.moduleType = moduleType; + + return self; +} + +- (instancetype)initAndSubscribeToModuleType:(SDLModuleType)moduleType { + self = [self init]; + if (!self) { + return nil; + } + + self.moduleType = moduleType; + self.subscribe = @(YES); + + return self; +} + +- (instancetype)initAndUnsubscribeToModuleType:(SDLModuleType)moduleType { + self = [self init]; + if (!self) { + return nil; + } + + self.moduleType = moduleType; + self.subscribe = @(NO); + + return self; +} + +- (void)setModuleType:(SDLModuleType)moduleType { + [parameters sdl_setObject:moduleType forName:SDLNameModuleType]; +} + +- (SDLModuleType)moduleType { + return [parameters sdl_objectForName:SDLNameModuleType]; +} + +- (void)setSubscribe:(nullable NSNumber *)subscribe { + [parameters sdl_setObject:subscribe forName:SDLNameSubscribe]; +} + +- (nullable NSNumber *)subscribe { + return [parameters sdl_objectForName:SDLNameSubscribe]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h b/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h new file mode 100644 index 000000000..6a5de3e73 --- /dev/null +++ b/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h @@ -0,0 +1,25 @@ +// +// SDLGetInteriorVehicleDataResponse.h +// + +#import "SDLRPCResponse.h" +@class SDLModuleData; + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLGetInteriorVehicleDataResponse : SDLRPCResponse + +@property (strong, nonatomic) SDLModuleData *moduleData; + +/** + * @abstract It is a conditional-mandatory parameter: must be returned in case "subscribe" parameter was present in the related request. + * if "true" - the "moduleType" from request is successfully subscribed and the head unit will send onInteriorVehicleData notifications for the moduleType. + * if "false" - the "moduleType" from request is either unsubscribed or failed to subscribe. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *isSubscribed; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m b/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m new file mode 100644 index 000000000..43491be57 --- /dev/null +++ b/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.m @@ -0,0 +1,40 @@ +// +// SDLGetInteriorVehicleDataResponse.m +// + +#import "SDLGetInteriorVehicleDataResponse.h" +#import "SDLModuleData.h" +#import "SDLNames.h" +#import "NSMutableDictionary+Store.h" + +NS_ASSUME_NONNULL_BEGIN + + +@implementation SDLGetInteriorVehicleDataResponse + +- (instancetype)init { + if (self = [super initWithName:SDLNameGetInteriorVehicleData]) { + } + return self; +} + +- (void)setModuleData:(SDLModuleData *)moduleData { + [parameters sdl_setObject:moduleData forName:SDLNameModuleData]; +} + +- (SDLModuleData *)moduleData { + return [parameters sdl_objectForName:SDLNameModuleData ofClass:SDLModuleData.class]; +} + +- (void)setIsSubscribed:(nullable NSNumber *)isSubscribed { + [parameters sdl_setObject:isSubscribed forName:SDLNameIsSubscribed]; +} + +- (nullable NSNumber *)isSubscribed { + return [parameters sdl_objectForName:SDLNameIsSubscribed]; +} + +@end + +NS_ASSUME_NONNULL_END + diff --git a/SmartDeviceLink/SDLGetSystemCapability.h b/SmartDeviceLink/SDLGetSystemCapability.h index 43f98c468..7d7490eeb 100644 --- a/SmartDeviceLink/SDLGetSystemCapability.h +++ b/SmartDeviceLink/SDLGetSystemCapability.h @@ -9,21 +9,21 @@ #import #import "SDLRPCRequest.h" +#import "SDLSystemCapabilityType.h" -@class SDLSystemCapabilityType; +NS_ASSUME_NONNULL_BEGIN @interface SDLGetSystemCapability : SDLRPCRequest -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -- (instancetype)initWithType:(SDLSystemCapabilityType *)type; +- (instancetype)initWithType:(SDLSystemCapabilityType)type; /** They type of capability you'd like to receive in the response. Mandatory */ -@property (strong, nonatomic) SDLSystemCapabilityType *systemCapabilityType; +@property (strong, nonatomic) SDLSystemCapabilityType systemCapabilityType; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetSystemCapability.m b/SmartDeviceLink/SDLGetSystemCapability.m index f253c315a..5bc0e2b7f 100644 --- a/SmartDeviceLink/SDLGetSystemCapability.m +++ b/SmartDeviceLink/SDLGetSystemCapability.m @@ -8,24 +8,21 @@ #import "SDLGetSystemCapability.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" #import "SDLSystemCapabilityType.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLGetSystemCapability - (instancetype)init { - if (self = [super initWithName:NAMES_GetSystemCapability]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameGetSystemCapability]) { } return self; } -- (instancetype)initWithType:(SDLSystemCapabilityType *)type { +- (instancetype)initWithType:(SDLSystemCapabilityType)type { self = [self init]; if (!self) { return nil; @@ -36,21 +33,14 @@ - (instancetype)initWithType:(SDLSystemCapabilityType *)type { return self; } -- (void)setSystemCapabilityType:(SDLSystemCapabilityType *)type { - if (type != nil) { - [parameters setObject:type forKey:NAMES_systemCapabilityType]; - } else { - [parameters removeObjectForKey:NAMES_systemCapabilityType]; - } +- (void)setSystemCapabilityType:(SDLSystemCapabilityType)type { + [parameters sdl_setObject:type forName:SDLNameSystemCapabilityType]; } -- (SDLSystemCapabilityType *)systemCapabilityType { - id obj = parameters[NAMES_systemCapabilityType]; - if (obj == nil || [obj isKindOfClass:SDLSystemCapabilityType.class]) { - return (SDLSystemCapabilityType *)obj; - } else { - return [SDLSystemCapabilityType valueOf:(NSString *)obj]; - } +- (SDLSystemCapabilityType)systemCapabilityType { + return [parameters sdl_objectForName:SDLNameSystemCapabilityType]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetSystemCapabilityResponse.h b/SmartDeviceLink/SDLGetSystemCapabilityResponse.h index e22917480..944261e3a 100644 --- a/SmartDeviceLink/SDLGetSystemCapabilityResponse.h +++ b/SmartDeviceLink/SDLGetSystemCapabilityResponse.h @@ -12,11 +12,13 @@ @class SDLSystemCapability; -@interface SDLGetSystemCapabilityResponse : SDLRPCResponse -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLGetSystemCapabilityResponse : SDLRPCResponse @property (strong, nonatomic) SDLSystemCapability *systemCapability; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetSystemCapabilityResponse.m b/SmartDeviceLink/SDLGetSystemCapabilityResponse.m index 5470c4379..00c1cf7f4 100644 --- a/SmartDeviceLink/SDLGetSystemCapabilityResponse.m +++ b/SmartDeviceLink/SDLGetSystemCapabilityResponse.m @@ -8,39 +8,32 @@ #import "SDLGetSystemCapabilityResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" #import "SDLSystemCapability.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLGetSystemCapabilityResponse - (instancetype)init { - if (self = [super initWithName:NAMES_GetSystemCapability]) { + self = [super initWithName:SDLNameGetSystemCapability]; + if (!self) { + return nil; } - return self; -} -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } return self; } - (void)setSystemCapability:(SDLSystemCapability *)systemCapability { - if (systemCapability != nil) { - parameters[NAMES_systemCapability] = systemCapability; - } else { - [parameters removeObjectForKey:NAMES_systemCapability]; - } + [parameters sdl_setObject:systemCapability forName:SDLNameSystemCapability]; } - (SDLSystemCapability *)systemCapability { - NSObject *obj = [parameters objectForKey:NAMES_systemCapability]; - if (obj == nil || [obj isKindOfClass:SDLSystemCapability.class]) { - return (SDLSystemCapability *)obj; - } else { - return [[SDLSystemCapability alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } + return [parameters sdl_objectForName:SDLNameSystemCapability ofClass:SDLSystemCapability.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetVehicleData.h b/SmartDeviceLink/SDLGetVehicleData.h index 6f7fddd1e..cee465c23 100644 --- a/SmartDeviceLink/SDLGetVehicleData.h +++ b/SmartDeviceLink/SDLGetVehicleData.h @@ -15,127 +15,119 @@ * Since SmartDeviceLink 2.0
* See SDLSubscribeVehicleData SDLUnsubscribeVehicleData */ -@interface SDLGetVehicleData : SDLRPCRequest { -} -/** - * @abstract Constructs a new SDLGetVehicleData object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a new SDLGetVehicleData object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLGetVehicleData : SDLRPCRequest - (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; /** * @abstract A boolean value. If true, requests Gps data */ -@property (strong) NSNumber *gps; +@property (nullable, strong, nonatomic) NSNumber *gps; /** * @abstract A boolean value. If true, requests speed data */ -@property (strong) NSNumber *speed; +@property (nullable, strong, nonatomic) NSNumber *speed; /** * @abstract A boolean value. If true, requests rpm data */ -@property (strong) NSNumber *rpm; +@property (nullable, strong, nonatomic) NSNumber *rpm; /** * @abstract A boolean value. If true, requests FuelLevel data */ -@property (strong) NSNumber *fuelLevel; +@property (nullable, strong, nonatomic) NSNumber *fuelLevel; /** * @abstract A boolean value. If true, requests fuelLevel_State data */ -@property (strong) NSNumber *fuelLevel_State; +@property (nullable, strong, nonatomic) NSNumber *fuelLevel_State; /** * @abstract A boolean value. If true, requests instantFuelConsumption data */ -@property (strong) NSNumber *instantFuelConsumption; +@property (nullable, strong, nonatomic) NSNumber *instantFuelConsumption; /** * @abstract A boolean value. If true, requests externalTemperature data */ -@property (strong) NSNumber *externalTemperature; +@property (nullable, strong, nonatomic) NSNumber *externalTemperature; /** * @abstract A boolean value. If true, requests Vehicle Identification Number */ -@property (strong) NSNumber *vin; +@property (nullable, strong, nonatomic) NSNumber *vin; /** * @abstract A boolean value. If true, requests Currently selected gear data */ -@property (strong) NSNumber *prndl; +@property (nullable, strong, nonatomic) NSNumber *prndl; /** * @abstract A boolean value. If true, requests tire pressure status data */ -@property (strong) NSNumber *tirePressure; +@property (nullable, strong, nonatomic) NSNumber *tirePressure; /** * @abstract A boolean value. If true, requests odometer data */ -@property (strong) NSNumber *odometer; +@property (nullable, strong, nonatomic) NSNumber *odometer; /** * @abstract A boolean value. If true, requests belt Status data */ -@property (strong) NSNumber *beltStatus; +@property (nullable, strong, nonatomic) NSNumber *beltStatus; /** * @abstract A boolean value. If true, requests body Information data */ -@property (strong) NSNumber *bodyInformation; +@property (nullable, strong, nonatomic) NSNumber *bodyInformation; /** * @abstract A boolean value. If true, requests device Status data */ -@property (strong) NSNumber *deviceStatus; +@property (nullable, strong, nonatomic) NSNumber *deviceStatus; /** * @abstract A boolean value. If true, requests driver Braking data */ -@property (strong) NSNumber *driverBraking; +@property (nullable, strong, nonatomic) NSNumber *driverBraking; /** * @abstract A boolean value. If true, requests wiper Status data */ -@property (strong) NSNumber *wiperStatus; +@property (nullable, strong, nonatomic) NSNumber *wiperStatus; /** * @abstract A boolean value. If true, requests Head Lamp Status data */ -@property (strong) NSNumber *headLampStatus; +@property (nullable, strong, nonatomic) NSNumber *headLampStatus; /** * @abstract A boolean value. If true, requests Engine Torque data */ -@property (strong) NSNumber *engineTorque; +@property (nullable, strong, nonatomic) NSNumber *engineTorque; /** * @abstract A boolean value. If true, means the accPedalPosition data has been * subscribed. */ -@property (strong) NSNumber *accPedalPosition; +@property (nullable, strong, nonatomic) NSNumber *accPedalPosition; /** * @abstract A boolean value. If true, means the steeringWheelAngle data has been * subscribed. */ -@property (strong) NSNumber *steeringWheelAngle; -@property (strong) NSNumber *eCallInfo; -@property (strong) NSNumber *airbagStatus; -@property (strong) NSNumber *emergencyEvent; -@property (strong) NSNumber *clusterModeStatus; -@property (strong) NSNumber *myKey; +@property (nullable, strong, nonatomic) NSNumber *steeringWheelAngle; +@property (nullable, strong, nonatomic) NSNumber *eCallInfo; +@property (nullable, strong, nonatomic) NSNumber *airbagStatus; +@property (nullable, strong, nonatomic) NSNumber *emergencyEvent; +@property (nullable, strong, nonatomic) NSNumber *clusterModeStatus; +@property (nullable, strong, nonatomic) NSNumber *myKey; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetVehicleData.m b/SmartDeviceLink/SDLGetVehicleData.m index 320350fc2..53a897b7d 100644 --- a/SmartDeviceLink/SDLGetVehicleData.m +++ b/SmartDeviceLink/SDLGetVehicleData.m @@ -4,18 +4,15 @@ #import "SDLGetVehicleData.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLGetVehicleData - (instancetype)init { - if (self = [super initWithName:NAMES_GetVehicleData]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameGetVehicleData]) { } return self; } @@ -55,304 +52,206 @@ - (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPositio return self; } -- (void)setGps:(NSNumber *)gps { - if (gps != nil) { - [parameters setObject:gps forKey:NAMES_gps]; - } else { - [parameters removeObjectForKey:NAMES_gps]; - } +- (void)setGps:(nullable NSNumber *)gps { + [parameters sdl_setObject:gps forName:SDLNameGPS]; } -- (NSNumber *)gps { - return [parameters objectForKey:NAMES_gps]; +- (nullable NSNumber *)gps { + return [parameters sdl_objectForName:SDLNameGPS]; } -- (void)setSpeed:(NSNumber *)speed { - if (speed != nil) { - [parameters setObject:speed forKey:NAMES_speed]; - } else { - [parameters removeObjectForKey:NAMES_speed]; - } +- (void)setSpeed:(nullable NSNumber *)speed { + [parameters sdl_setObject:speed forName:SDLNameSpeed]; } -- (NSNumber *)speed { - return [parameters objectForKey:NAMES_speed]; +- (nullable NSNumber *)speed { + return [parameters sdl_objectForName:SDLNameSpeed]; } -- (void)setRpm:(NSNumber *)rpm { - if (rpm != nil) { - [parameters setObject:rpm forKey:NAMES_rpm]; - } else { - [parameters removeObjectForKey:NAMES_rpm]; - } +- (void)setRpm:(nullable NSNumber *)rpm { + [parameters sdl_setObject:rpm forName:SDLNameRPM]; } -- (NSNumber *)rpm { - return [parameters objectForKey:NAMES_rpm]; +- (nullable NSNumber *)rpm { + return [parameters sdl_objectForName:SDLNameRPM]; } -- (void)setFuelLevel:(NSNumber *)fuelLevel { - if (fuelLevel != nil) { - [parameters setObject:fuelLevel forKey:NAMES_fuelLevel]; - } else { - [parameters removeObjectForKey:NAMES_fuelLevel]; - } +- (void)setFuelLevel:(nullable NSNumber *)fuelLevel { + [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; } -- (NSNumber *)fuelLevel { - return [parameters objectForKey:NAMES_fuelLevel]; +- (nullable NSNumber *)fuelLevel { + return [parameters sdl_objectForName:SDLNameFuelLevel]; } -- (void)setFuelLevel_State:(NSNumber *)fuelLevel_State { - if (fuelLevel_State != nil) { - [parameters setObject:fuelLevel_State forKey:NAMES_fuelLevel_State]; - } else { - [parameters removeObjectForKey:NAMES_fuelLevel_State]; - } +- (void)setFuelLevel_State:(nullable NSNumber *)fuelLevel_State { + [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; } -- (NSNumber *)fuelLevel_State { - return [parameters objectForKey:NAMES_fuelLevel_State]; +- (nullable NSNumber *)fuelLevel_State { + return [parameters sdl_objectForName:SDLNameFuelLevelState]; } -- (void)setInstantFuelConsumption:(NSNumber *)instantFuelConsumption { - if (instantFuelConsumption != nil) { - [parameters setObject:instantFuelConsumption forKey:NAMES_instantFuelConsumption]; - } else { - [parameters removeObjectForKey:NAMES_instantFuelConsumption]; - } +- (void)setInstantFuelConsumption:(nullable NSNumber *)instantFuelConsumption { + [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; } -- (NSNumber *)instantFuelConsumption { - return [parameters objectForKey:NAMES_instantFuelConsumption]; +- (nullable NSNumber *)instantFuelConsumption { + return [parameters sdl_objectForName:SDLNameInstantFuelConsumption]; } -- (void)setExternalTemperature:(NSNumber *)externalTemperature { - if (externalTemperature != nil) { - [parameters setObject:externalTemperature forKey:NAMES_externalTemperature]; - } else { - [parameters removeObjectForKey:NAMES_externalTemperature]; - } +- (void)setExternalTemperature:(nullable NSNumber *)externalTemperature { + [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; } -- (NSNumber *)externalTemperature { - return [parameters objectForKey:NAMES_externalTemperature]; +- (nullable NSNumber *)externalTemperature { + return [parameters sdl_objectForName:SDLNameExternalTemperature]; } -- (void)setVin:(NSNumber *)vin { - if (vin != nil) { - [parameters setObject:vin forKey:NAMES_vin]; - } else { - [parameters removeObjectForKey:NAMES_vin]; - } +- (void)setVin:(nullable NSNumber *)vin { + [parameters sdl_setObject:vin forName:SDLNameVIN]; } -- (NSNumber *)vin { - return [parameters objectForKey:NAMES_vin]; +- (nullable NSNumber *)vin { + return [parameters sdl_objectForName:SDLNameVIN]; } -- (void)setPrndl:(NSNumber *)prndl { - if (prndl != nil) { - [parameters setObject:prndl forKey:NAMES_prndl]; - } else { - [parameters removeObjectForKey:NAMES_prndl]; - } +- (void)setPrndl:(nullable NSNumber *)prndl { + [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; } -- (NSNumber *)prndl { - return [parameters objectForKey:NAMES_prndl]; +- (nullable NSNumber *)prndl { + return [parameters sdl_objectForName:SDLNamePRNDL]; } -- (void)setTirePressure:(NSNumber *)tirePressure { - if (tirePressure != nil) { - [parameters setObject:tirePressure forKey:NAMES_tirePressure]; - } else { - [parameters removeObjectForKey:NAMES_tirePressure]; - } +- (void)setTirePressure:(nullable NSNumber *)tirePressure { + [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; } -- (NSNumber *)tirePressure { - return [parameters objectForKey:NAMES_tirePressure]; +- (nullable NSNumber *)tirePressure { + return [parameters sdl_objectForName:SDLNameTirePressure]; } -- (void)setOdometer:(NSNumber *)odometer { - if (odometer != nil) { - [parameters setObject:odometer forKey:NAMES_odometer]; - } else { - [parameters removeObjectForKey:NAMES_odometer]; - } +- (void)setOdometer:(nullable NSNumber *)odometer { + [parameters sdl_setObject:odometer forName:SDLNameOdometer]; } -- (NSNumber *)odometer { - return [parameters objectForKey:NAMES_odometer]; +- (nullable NSNumber *)odometer { + return [parameters sdl_objectForName:SDLNameOdometer]; } -- (void)setBeltStatus:(NSNumber *)beltStatus { - if (beltStatus != nil) { - [parameters setObject:beltStatus forKey:NAMES_beltStatus]; - } else { - [parameters removeObjectForKey:NAMES_beltStatus]; - } +- (void)setBeltStatus:(nullable NSNumber *)beltStatus { + [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; } -- (NSNumber *)beltStatus { - return [parameters objectForKey:NAMES_beltStatus]; +- (nullable NSNumber *)beltStatus { + return [parameters sdl_objectForName:SDLNameBeltStatus]; } -- (void)setBodyInformation:(NSNumber *)bodyInformation { - if (bodyInformation != nil) { - [parameters setObject:bodyInformation forKey:NAMES_bodyInformation]; - } else { - [parameters removeObjectForKey:NAMES_bodyInformation]; - } +- (void)setBodyInformation:(nullable NSNumber *)bodyInformation { + [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; } -- (NSNumber *)bodyInformation { - return [parameters objectForKey:NAMES_bodyInformation]; +- (nullable NSNumber *)bodyInformation { + return [parameters sdl_objectForName:SDLNameBodyInformation]; } -- (void)setDeviceStatus:(NSNumber *)deviceStatus { - if (deviceStatus != nil) { - [parameters setObject:deviceStatus forKey:NAMES_deviceStatus]; - } else { - [parameters removeObjectForKey:NAMES_deviceStatus]; - } +- (void)setDeviceStatus:(nullable NSNumber *)deviceStatus { + [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; } -- (NSNumber *)deviceStatus { - return [parameters objectForKey:NAMES_deviceStatus]; +- (nullable NSNumber *)deviceStatus { + return [parameters sdl_objectForName:SDLNameDeviceStatus]; } -- (void)setDriverBraking:(NSNumber *)driverBraking { - if (driverBraking != nil) { - [parameters setObject:driverBraking forKey:NAMES_driverBraking]; - } else { - [parameters removeObjectForKey:NAMES_driverBraking]; - } +- (void)setDriverBraking:(nullable NSNumber *)driverBraking { + [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; } -- (NSNumber *)driverBraking { - return [parameters objectForKey:NAMES_driverBraking]; +- (nullable NSNumber *)driverBraking { + return [parameters sdl_objectForName:SDLNameDriverBraking]; } -- (void)setWiperStatus:(NSNumber *)wiperStatus { - if (wiperStatus != nil) { - [parameters setObject:wiperStatus forKey:NAMES_wiperStatus]; - } else { - [parameters removeObjectForKey:NAMES_wiperStatus]; - } +- (void)setWiperStatus:(nullable NSNumber *)wiperStatus { + [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; } -- (NSNumber *)wiperStatus { - return [parameters objectForKey:NAMES_wiperStatus]; +- (nullable NSNumber *)wiperStatus { + return [parameters sdl_objectForName:SDLNameWiperStatus]; } -- (void)setHeadLampStatus:(NSNumber *)headLampStatus { - if (headLampStatus != nil) { - [parameters setObject:headLampStatus forKey:NAMES_headLampStatus]; - } else { - [parameters removeObjectForKey:NAMES_headLampStatus]; - } +- (void)setHeadLampStatus:(nullable NSNumber *)headLampStatus { + [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; } -- (NSNumber *)headLampStatus { - return [parameters objectForKey:NAMES_headLampStatus]; +- (nullable NSNumber *)headLampStatus { + return [parameters sdl_objectForName:SDLNameHeadLampStatus]; } -- (void)setEngineTorque:(NSNumber *)engineTorque { - if (engineTorque != nil) { - [parameters setObject:engineTorque forKey:NAMES_engineTorque]; - } else { - [parameters removeObjectForKey:NAMES_engineTorque]; - } +- (void)setEngineTorque:(nullable NSNumber *)engineTorque { + [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; } -- (NSNumber *)engineTorque { - return [parameters objectForKey:NAMES_engineTorque]; +- (nullable NSNumber *)engineTorque { + return [parameters sdl_objectForName:SDLNameEngineTorque]; } -- (void)setAccPedalPosition:(NSNumber *)accPedalPosition { - if (accPedalPosition != nil) { - [parameters setObject:accPedalPosition forKey:NAMES_accPedalPosition]; - } else { - [parameters removeObjectForKey:NAMES_accPedalPosition]; - } +- (void)setAccPedalPosition:(nullable NSNumber *)accPedalPosition { + [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; } -- (NSNumber *)accPedalPosition { - return [parameters objectForKey:NAMES_accPedalPosition]; +- (nullable NSNumber *)accPedalPosition { + return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition]; } -- (void)setSteeringWheelAngle:(NSNumber *)steeringWheelAngle { - if (steeringWheelAngle != nil) { - [parameters setObject:steeringWheelAngle forKey:NAMES_steeringWheelAngle]; - } else { - [parameters removeObjectForKey:NAMES_steeringWheelAngle]; - } +- (void)setSteeringWheelAngle:(nullable NSNumber *)steeringWheelAngle { + [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; } -- (NSNumber *)steeringWheelAngle { - return [parameters objectForKey:NAMES_steeringWheelAngle]; +- (nullable NSNumber *)steeringWheelAngle { + return [parameters sdl_objectForName:SDLNameSteeringWheelAngle]; } -- (void)setECallInfo:(NSNumber *)eCallInfo { - if (eCallInfo != nil) { - [parameters setObject:eCallInfo forKey:NAMES_eCallInfo]; - } else { - [parameters removeObjectForKey:NAMES_eCallInfo]; - } +- (void)setECallInfo:(nullable NSNumber *)eCallInfo { + [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; } -- (NSNumber *)eCallInfo { - return [parameters objectForKey:NAMES_eCallInfo]; +- (nullable NSNumber *)eCallInfo { + return [parameters sdl_objectForName:SDLNameECallInfo]; } -- (void)setAirbagStatus:(NSNumber *)airbagStatus { - if (airbagStatus != nil) { - [parameters setObject:airbagStatus forKey:NAMES_airbagStatus]; - } else { - [parameters removeObjectForKey:NAMES_airbagStatus]; - } +- (void)setAirbagStatus:(nullable NSNumber *)airbagStatus { + [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; } -- (NSNumber *)airbagStatus { - return [parameters objectForKey:NAMES_airbagStatus]; +- (nullable NSNumber *)airbagStatus { + return [parameters sdl_objectForName:SDLNameAirbagStatus]; } -- (void)setEmergencyEvent:(NSNumber *)emergencyEvent { - if (emergencyEvent != nil) { - [parameters setObject:emergencyEvent forKey:NAMES_emergencyEvent]; - } else { - [parameters removeObjectForKey:NAMES_emergencyEvent]; - } +- (void)setEmergencyEvent:(nullable NSNumber *)emergencyEvent { + [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; } -- (NSNumber *)emergencyEvent { - return [parameters objectForKey:NAMES_emergencyEvent]; +- (nullable NSNumber *)emergencyEvent { + return [parameters sdl_objectForName:SDLNameEmergencyEvent]; } -- (void)setClusterModeStatus:(NSNumber *)clusterModeStatus { - if (clusterModeStatus != nil) { - [parameters setObject:clusterModeStatus forKey:NAMES_clusterModeStatus]; - } else { - [parameters removeObjectForKey:NAMES_clusterModeStatus]; - } +- (void)setClusterModeStatus:(nullable NSNumber *)clusterModeStatus { + [parameters sdl_setObject:clusterModeStatus forName:SDLNameClusterModeStatus]; } -- (NSNumber *)clusterModeStatus { - return [parameters objectForKey:NAMES_clusterModeStatus]; +- (nullable NSNumber *)clusterModeStatus { + return [parameters sdl_objectForName:SDLNameClusterModeStatus]; } -- (void)setMyKey:(NSNumber *)myKey { - if (myKey != nil) { - [parameters setObject:myKey forKey:NAMES_myKey]; - } else { - [parameters removeObjectForKey:NAMES_myKey]; - } +- (void)setMyKey:(nullable NSNumber *)myKey { + [parameters sdl_setObject:myKey forName:SDLNameMyKey]; } -- (NSNumber *)myKey { - return [parameters objectForKey:NAMES_myKey]; +- (nullable NSNumber *)myKey { + return [parameters sdl_objectForName:SDLNameMyKey]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetVehicleDataResponse.h b/SmartDeviceLink/SDLGetVehicleDataResponse.h index 882c09b51..240f9907b 100644 --- a/SmartDeviceLink/SDLGetVehicleDataResponse.h +++ b/SmartDeviceLink/SDLGetVehicleDataResponse.h @@ -3,21 +3,23 @@ #import "SDLRPCResponse.h" +#import "SDLComponentVolumeStatus.h" +#import "SDLPRNDL.h" +#import "SDLVehicleDataEventStatus.h" +#import "SDLWiperStatus.h" + @class SDLAirbagStatus; @class SDLBeltStatus; @class SDLBodyInformation; @class SDLClusterModeStatus; -@class SDLComponentVolumeStatus; @class SDLDeviceStatus; @class SDLECallInfo; @class SDLEmergencyEvent; @class SDLGPSData; @class SDLHeadLampStatus; @class SDLMyKey; -@class SDLPRNDL; @class SDLTireStatus; -@class SDLVehicleDataEventStatus; -@class SDLWiperStatus; + /** @@ -25,126 +27,116 @@ * * Since SmartDeviceLink 2.0 */ -@interface SDLGetVehicleDataResponse : SDLRPCResponse { -} +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a new SDLGetVehicleDataResponse object - */ -- (instancetype)init; - -/** - * @abstract Constructs a new SDLGetVehicleDataResponse object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - +@interface SDLGetVehicleDataResponse : SDLRPCResponse /** * @abstract A SDLGPSData* value. See GPSData. */ -@property (strong) SDLGPSData *gps; +@property (nullable, strong, nonatomic) SDLGPSData *gps; /** * @abstract The vehicle speed in kilometers per hour. */ -@property (strong) NSNumber *speed; +@property (nullable, strong, nonatomic) NSNumber *speed; /** * @abstract The number of revolutions per minute of the engine. */ -@property (strong) NSNumber *rpm; +@property (nullable, strong, nonatomic) NSNumber *rpm; /** * @abstract The fuel level in the tank (percentage) */ -@property (strong) NSNumber *fuelLevel; +@property (nullable, strong, nonatomic) NSNumber *fuelLevel; /** * @abstract A SDLComponentVolumeStatus* value. The fuel level state. */ -@property (strong) SDLComponentVolumeStatus *fuelLevel_State; +@property (nullable, strong, nonatomic) SDLComponentVolumeStatus fuelLevel_State; /** * @abstract The instantaneous fuel consumption in microlitres. */ -@property (strong) NSNumber *instantFuelConsumption; +@property (nullable, strong, nonatomic) NSNumber *instantFuelConsumption; /** * @abstract The external temperature in degrees celsius. */ -@property (strong) NSNumber *externalTemperature; +@property (nullable, strong, nonatomic) NSNumber *externalTemperature; /** * @abstract The Vehicle Identification Number */ -@property (strong) NSString *vin; +@property (nullable, strong, nonatomic) NSString *vin; /** * @abstract See PRNDL. */ -@property (strong) SDLPRNDL *prndl; +@property (nullable, strong, nonatomic) SDLPRNDL prndl; /** * @abstract A SDLTireStatus* value. See TireStatus. */ -@property (strong) SDLTireStatus *tirePressure; +@property (nullable, strong, nonatomic) SDLTireStatus *tirePressure; /** * @abstract Odometer reading in km. */ -@property (strong) NSNumber *odometer; +@property (nullable, strong, nonatomic) NSNumber *odometer; /** * @abstract A SDLBeltStatus* value. The status of the seat belts. */ -@property (strong) SDLBeltStatus *beltStatus; +@property (nullable, strong, nonatomic) SDLBeltStatus *beltStatus; /** * @abstract A SDLBodyInformation* value. The body information including power modes. */ -@property (strong) SDLBodyInformation *bodyInformation; +@property (nullable, strong, nonatomic) SDLBodyInformation *bodyInformation; /** * @abstract A SDLDeviceStatus* value. The device status including signal and battery strength. */ -@property (strong) SDLDeviceStatus *deviceStatus; +@property (nullable, strong, nonatomic) SDLDeviceStatus *deviceStatus; /** * @abstract A SDLVehicleDataResult* value. The status of the brake pedal. */ -@property (strong) SDLVehicleDataEventStatus *driverBraking; +@property (nullable, strong, nonatomic) SDLVehicleDataEventStatus driverBraking; /** * @abstract A SDLWiperStatus* value. The status of the wipers. */ -@property (strong) SDLWiperStatus *wiperStatus; +@property (nullable, strong, nonatomic) SDLWiperStatus wiperStatus; /** * @abstract A SDLHeadLampStatus* value. Status of the head lamps. */ -@property (strong) SDLHeadLampStatus *headLampStatus; +@property (nullable, strong, nonatomic) SDLHeadLampStatus *headLampStatus; /** * @abstract Torque value for engine (in Nm) on non-diesel variants. */ -@property (strong) NSNumber *engineTorque; +@property (nullable, strong, nonatomic) NSNumber *engineTorque; /** * @abstract Accelerator pedal position (percentage depressed) */ -@property (strong) NSNumber *accPedalPosition; +@property (nullable, strong, nonatomic) NSNumber *accPedalPosition; /** * @abstract Current angle of the steering wheel (in deg) */ -@property (strong) NSNumber *steeringWheelAngle; -@property (strong) SDLECallInfo *eCallInfo; -@property (strong) SDLAirbagStatus *airbagStatus; -@property (strong) SDLEmergencyEvent *emergencyEvent; -@property (strong) SDLClusterModeStatus *clusterModeStatus; -@property (strong) SDLMyKey *myKey; +@property (nullable, strong, nonatomic) NSNumber *steeringWheelAngle; +@property (nullable, strong, nonatomic) SDLECallInfo *eCallInfo; +@property (nullable, strong, nonatomic) SDLAirbagStatus *airbagStatus; +@property (nullable, strong, nonatomic) SDLEmergencyEvent *emergencyEvent; +@property (nullable, strong, nonatomic) SDLClusterModeStatus *clusterModeStatus; +@property (nullable, strong, nonatomic) SDLMyKey *myKey; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetVehicleDataResponse.m b/SmartDeviceLink/SDLGetVehicleDataResponse.m index 7f1bdb351..81b379b49 100644 --- a/SmartDeviceLink/SDLGetVehicleDataResponse.m +++ b/SmartDeviceLink/SDLGetVehicleDataResponse.m @@ -4,11 +4,11 @@ #import "SDLGetVehicleDataResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLAirbagStatus.h" #import "SDLBeltStatus.h" #import "SDLBodyInformation.h" #import "SDLClusterModeStatus.h" -#import "SDLComponentVolumeStatus.h" #import "SDLDeviceStatus.h" #import "SDLECallInfo.h" #import "SDLEmergencyEvent.h" @@ -16,399 +16,218 @@ #import "SDLHeadLampStatus.h" #import "SDLMyKey.h" #import "SDLNames.h" -#import "SDLPRNDL.h" #import "SDLTireStatus.h" -#import "SDLVehicleDataEventStatus.h" -#import "SDLWiperStatus.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLGetVehicleDataResponse - (instancetype)init { - if (self = [super initWithName:NAMES_GetVehicleData]) { + if (self = [super initWithName:SDLNameGetVehicleData]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (void)setGps:(nullable SDLGPSData *)gps { + [parameters sdl_setObject:gps forName:SDLNameGPS]; } -- (void)setGps:(SDLGPSData *)gps { - if (gps != nil) { - [parameters setObject:gps forKey:NAMES_gps]; - } else { - [parameters removeObjectForKey:NAMES_gps]; - } +- (nullable SDLGPSData *)gps { + return [parameters sdl_objectForName:SDLNameGPS ofClass:SDLGPSData.class]; } -- (SDLGPSData *)gps { - NSObject *obj = [parameters objectForKey:NAMES_gps]; - if (obj == nil || [obj isKindOfClass:SDLGPSData.class]) { - return (SDLGPSData *)obj; - } else { - return [[SDLGPSData alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setSpeed:(nullable NSNumber *)speed { + [parameters sdl_setObject:speed forName:SDLNameSpeed]; } -- (void)setSpeed:(NSNumber *)speed { - if (speed != nil) { - [parameters setObject:speed forKey:NAMES_speed]; - } else { - [parameters removeObjectForKey:NAMES_speed]; - } +- (nullable NSNumber *)speed { + return [parameters sdl_objectForName:SDLNameSpeed]; } -- (NSNumber *)speed { - return [parameters objectForKey:NAMES_speed]; +- (void)setRpm:(nullable NSNumber *)rpm { + [parameters sdl_setObject:rpm forName:SDLNameRPM]; } -- (void)setRpm:(NSNumber *)rpm { - if (rpm != nil) { - [parameters setObject:rpm forKey:NAMES_rpm]; - } else { - [parameters removeObjectForKey:NAMES_rpm]; - } +- (nullable NSNumber *)rpm { + return [parameters sdl_objectForName:SDLNameRPM]; } -- (NSNumber *)rpm { - return [parameters objectForKey:NAMES_rpm]; +- (void)setFuelLevel:(nullable NSNumber *)fuelLevel { + [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; } -- (void)setFuelLevel:(NSNumber *)fuelLevel { - if (fuelLevel != nil) { - [parameters setObject:fuelLevel forKey:NAMES_fuelLevel]; - } else { - [parameters removeObjectForKey:NAMES_fuelLevel]; - } +- (nullable NSNumber *)fuelLevel { + return [parameters sdl_objectForName:SDLNameFuelLevel]; } -- (NSNumber *)fuelLevel { - return [parameters objectForKey:NAMES_fuelLevel]; +- (void)setFuelLevel_State:(nullable SDLComponentVolumeStatus)fuelLevel_State { + [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; } -- (void)setFuelLevel_State:(SDLComponentVolumeStatus *)fuelLevel_State { - if (fuelLevel_State != nil) { - [parameters setObject:fuelLevel_State forKey:NAMES_fuelLevel_State]; - } else { - [parameters removeObjectForKey:NAMES_fuelLevel_State]; - } +- (nullable SDLComponentVolumeStatus)fuelLevel_State { + return [parameters sdl_objectForName:SDLNameFuelLevelState]; } -- (SDLComponentVolumeStatus *)fuelLevel_State { - NSObject *obj = [parameters objectForKey:NAMES_fuelLevel_State]; - if (obj == nil || [obj isKindOfClass:SDLComponentVolumeStatus.class]) { - return (SDLComponentVolumeStatus *)obj; - } else { - return [SDLComponentVolumeStatus valueOf:(NSString *)obj]; - } +- (void)setInstantFuelConsumption:(nullable NSNumber *)instantFuelConsumption { + [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; } -- (void)setInstantFuelConsumption:(NSNumber *)instantFuelConsumption { - if (instantFuelConsumption != nil) { - [parameters setObject:instantFuelConsumption forKey:NAMES_instantFuelConsumption]; - } else { - [parameters removeObjectForKey:NAMES_instantFuelConsumption]; - } +- (nullable NSNumber *)instantFuelConsumption { + return [parameters sdl_objectForName:SDLNameInstantFuelConsumption]; } -- (NSNumber *)instantFuelConsumption { - return [parameters objectForKey:NAMES_instantFuelConsumption]; +- (void)setExternalTemperature:(nullable NSNumber *)externalTemperature { + [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; } -- (void)setExternalTemperature:(NSNumber *)externalTemperature { - if (externalTemperature != nil) { - [parameters setObject:externalTemperature forKey:NAMES_externalTemperature]; - } else { - [parameters removeObjectForKey:NAMES_externalTemperature]; - } +- (nullable NSNumber *)externalTemperature { + return [parameters sdl_objectForName:SDLNameExternalTemperature]; } -- (NSNumber *)externalTemperature { - return [parameters objectForKey:NAMES_externalTemperature]; +- (void)setVin:(nullable NSString *)vin { + [parameters sdl_setObject:vin forName:SDLNameVIN]; } -- (void)setVin:(NSString *)vin { - if (vin != nil) { - [parameters setObject:vin forKey:NAMES_vin]; - } else { - [parameters removeObjectForKey:NAMES_vin]; - } +- (nullable NSString *)vin { + return [parameters sdl_objectForName:SDLNameVIN]; } -- (NSString *)vin { - return [parameters objectForKey:NAMES_vin]; +- (void)setPrndl:(nullable SDLPRNDL)prndl { + [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; } -- (void)setPrndl:(SDLPRNDL *)prndl { - if (prndl != nil) { - [parameters setObject:prndl forKey:NAMES_prndl]; - } else { - [parameters removeObjectForKey:NAMES_prndl]; - } +- (nullable SDLPRNDL)prndl { + return [parameters sdl_objectForName:SDLNamePRNDL]; } -- (SDLPRNDL *)prndl { - NSObject *obj = [parameters objectForKey:NAMES_prndl]; - if (obj == nil || [obj isKindOfClass:SDLPRNDL.class]) { - return (SDLPRNDL *)obj; - } else { - return [SDLPRNDL valueOf:(NSString *)obj]; - } +- (void)setTirePressure:(nullable SDLTireStatus *)tirePressure { + [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; } -- (void)setTirePressure:(SDLTireStatus *)tirePressure { - if (tirePressure != nil) { - [parameters setObject:tirePressure forKey:NAMES_tirePressure]; - } else { - [parameters removeObjectForKey:NAMES_tirePressure]; - } +- (nullable SDLTireStatus *)tirePressure { + return [parameters sdl_objectForName:SDLNameTirePressure ofClass:SDLTireStatus.class]; } -- (SDLTireStatus *)tirePressure { - NSObject *obj = [parameters objectForKey:NAMES_tirePressure]; - if (obj == nil || [obj isKindOfClass:SDLTireStatus.class]) { - return (SDLTireStatus *)obj; - } else { - return [[SDLTireStatus alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setOdometer:(nullable NSNumber *)odometer { + [parameters sdl_setObject:odometer forName:SDLNameOdometer]; } -- (void)setOdometer:(NSNumber *)odometer { - if (odometer != nil) { - [parameters setObject:odometer forKey:NAMES_odometer]; - } else { - [parameters removeObjectForKey:NAMES_odometer]; - } +- (nullable NSNumber *)odometer { + return [parameters sdl_objectForName:SDLNameOdometer]; } -- (NSNumber *)odometer { - return [parameters objectForKey:NAMES_odometer]; +- (void)setBeltStatus:(nullable SDLBeltStatus *)beltStatus { + [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; } -- (void)setBeltStatus:(SDLBeltStatus *)beltStatus { - if (beltStatus != nil) { - [parameters setObject:beltStatus forKey:NAMES_beltStatus]; - } else { - [parameters removeObjectForKey:NAMES_beltStatus]; - } +- (nullable SDLBeltStatus *)beltStatus { + return [parameters sdl_objectForName:SDLNameBeltStatus ofClass:SDLBeltStatus.class]; } -- (SDLBeltStatus *)beltStatus { - NSObject *obj = [parameters objectForKey:NAMES_beltStatus]; - if (obj == nil || [obj isKindOfClass:SDLBeltStatus.class]) { - return (SDLBeltStatus *)obj; - } else { - return [[SDLBeltStatus alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setBodyInformation:(nullable SDLBodyInformation *)bodyInformation { + [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; } -- (void)setBodyInformation:(SDLBodyInformation *)bodyInformation { - if (bodyInformation != nil) { - [parameters setObject:bodyInformation forKey:NAMES_bodyInformation]; - } else { - [parameters removeObjectForKey:NAMES_bodyInformation]; - } +- (nullable SDLBodyInformation *)bodyInformation { + return [parameters sdl_objectForName:SDLNameBodyInformation ofClass:SDLBodyInformation.class]; } -- (SDLBodyInformation *)bodyInformation { - NSObject *obj = [parameters objectForKey:NAMES_bodyInformation]; - if (obj == nil || [obj isKindOfClass:SDLBodyInformation.class]) { - return (SDLBodyInformation *)obj; - } else { - return [[SDLBodyInformation alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setDeviceStatus:(nullable SDLDeviceStatus *)deviceStatus { + [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; } -- (void)setDeviceStatus:(SDLDeviceStatus *)deviceStatus { - if (deviceStatus != nil) { - [parameters setObject:deviceStatus forKey:NAMES_deviceStatus]; - } else { - [parameters removeObjectForKey:NAMES_deviceStatus]; - } +- (nullable SDLDeviceStatus *)deviceStatus { + return [parameters sdl_objectForName:SDLNameDeviceStatus ofClass:SDLDeviceStatus.class]; } -- (SDLDeviceStatus *)deviceStatus { - NSObject *obj = [parameters objectForKey:NAMES_deviceStatus]; - if (obj == nil || [obj isKindOfClass:SDLDeviceStatus.class]) { - return (SDLDeviceStatus *)obj; - } else { - return [[SDLDeviceStatus alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setDriverBraking:(nullable SDLVehicleDataEventStatus)driverBraking { + [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; } -- (void)setDriverBraking:(SDLVehicleDataEventStatus *)driverBraking { - if (driverBraking != nil) { - [parameters setObject:driverBraking forKey:NAMES_driverBraking]; - } else { - [parameters removeObjectForKey:NAMES_driverBraking]; - } +- (nullable SDLVehicleDataEventStatus)driverBraking { + return [parameters sdl_objectForName:SDLNameDriverBraking]; } -- (SDLVehicleDataEventStatus *)driverBraking { - NSObject *obj = [parameters objectForKey:NAMES_driverBraking]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (void)setWiperStatus:(nullable SDLWiperStatus)wiperStatus { + [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; } -- (void)setWiperStatus:(SDLWiperStatus *)wiperStatus { - if (wiperStatus != nil) { - [parameters setObject:wiperStatus forKey:NAMES_wiperStatus]; - } else { - [parameters removeObjectForKey:NAMES_wiperStatus]; - } +- (nullable SDLWiperStatus)wiperStatus { + return [parameters sdl_objectForName:SDLNameWiperStatus]; } -- (SDLWiperStatus *)wiperStatus { - NSObject *obj = [parameters objectForKey:NAMES_wiperStatus]; - if (obj == nil || [obj isKindOfClass:SDLWiperStatus.class]) { - return (SDLWiperStatus *)obj; - } else { - return [SDLWiperStatus valueOf:(NSString *)obj]; - } +- (void)setHeadLampStatus:(nullable SDLHeadLampStatus *)headLampStatus { + [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; } -- (void)setHeadLampStatus:(SDLHeadLampStatus *)headLampStatus { - if (headLampStatus != nil) { - [parameters setObject:headLampStatus forKey:NAMES_headLampStatus]; - } else { - [parameters removeObjectForKey:NAMES_headLampStatus]; - } +- (nullable SDLHeadLampStatus *)headLampStatus { + return [parameters sdl_objectForName:SDLNameHeadLampStatus ofClass:SDLHeadLampStatus.class]; } -- (SDLHeadLampStatus *)headLampStatus { - NSObject *obj = [parameters objectForKey:NAMES_headLampStatus]; - if (obj == nil || [obj isKindOfClass:SDLHeadLampStatus.class]) { - return (SDLHeadLampStatus *)obj; - } else { - return [[SDLHeadLampStatus alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setEngineTorque:(nullable NSNumber *)engineTorque { + [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; } -- (void)setEngineTorque:(NSNumber *)engineTorque { - if (engineTorque != nil) { - [parameters setObject:engineTorque forKey:NAMES_engineTorque]; - } else { - [parameters removeObjectForKey:NAMES_engineTorque]; - } +- (nullable NSNumber *)engineTorque { + return [parameters sdl_objectForName:SDLNameEngineTorque]; } -- (NSNumber *)engineTorque { - return [parameters objectForKey:NAMES_engineTorque]; +- (void)setAccPedalPosition:(nullable NSNumber *)accPedalPosition { + [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; } -- (void)setAccPedalPosition:(NSNumber *)accPedalPosition { - if (accPedalPosition != nil) { - [parameters setObject:accPedalPosition forKey:NAMES_accPedalPosition]; - } else { - [parameters removeObjectForKey:NAMES_accPedalPosition]; - } +- (nullable NSNumber *)accPedalPosition { + return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition]; } -- (NSNumber *)accPedalPosition { - return [parameters objectForKey:NAMES_accPedalPosition]; -} - -- (void)setSteeringWheelAngle:(NSNumber *)steeringWheelAngle { - if (steeringWheelAngle != nil) { - [parameters setObject:steeringWheelAngle forKey:NAMES_steeringWheelAngle]; - } else { - [parameters removeObjectForKey:NAMES_steeringWheelAngle]; - } +- (void)setSteeringWheelAngle:(nullable NSNumber *)steeringWheelAngle { + [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; } -- (NSNumber *)steeringWheelAngle { - return [parameters objectForKey:NAMES_steeringWheelAngle]; +- (nullable NSNumber *)steeringWheelAngle { + return [parameters sdl_objectForName:SDLNameSteeringWheelAngle]; } -- (void)setECallInfo:(SDLECallInfo *)eCallInfo { - if (eCallInfo != nil) { - [parameters setObject:eCallInfo forKey:NAMES_eCallInfo]; - } else { - [parameters removeObjectForKey:NAMES_eCallInfo]; - } +- (void)setECallInfo:(nullable SDLECallInfo *)eCallInfo { + [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; } -- (SDLECallInfo *)eCallInfo { - NSObject *obj = [parameters objectForKey:NAMES_eCallInfo]; - if (obj == nil || [obj isKindOfClass:SDLECallInfo.class]) { - return (SDLECallInfo *)obj; - } else { - return [[SDLECallInfo alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLECallInfo *)eCallInfo { + return [parameters sdl_objectForName:SDLNameECallInfo ofClass:SDLECallInfo.class]; } -- (void)setAirbagStatus:(SDLAirbagStatus *)airbagStatus { - if (airbagStatus != nil) { - [parameters setObject:airbagStatus forKey:NAMES_airbagStatus]; - } else { - [parameters removeObjectForKey:NAMES_airbagStatus]; - } +- (void)setAirbagStatus:(nullable SDLAirbagStatus *)airbagStatus { + [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; } -- (SDLAirbagStatus *)airbagStatus { - NSObject *obj = [parameters objectForKey:NAMES_airbagStatus]; - if (obj == nil || [obj isKindOfClass:SDLAirbagStatus.class]) { - return (SDLAirbagStatus *)obj; - } else { - return [[SDLAirbagStatus alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLAirbagStatus *)airbagStatus { + return [parameters sdl_objectForName:SDLNameAirbagStatus ofClass:SDLAirbagStatus.class]; } -- (void)setEmergencyEvent:(SDLEmergencyEvent *)emergencyEvent { - if (emergencyEvent != nil) { - [parameters setObject:emergencyEvent forKey:NAMES_emergencyEvent]; - } else { - [parameters removeObjectForKey:NAMES_emergencyEvent]; - } +- (void)setEmergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent { + [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; } -- (SDLEmergencyEvent *)emergencyEvent { - NSObject *obj = [parameters objectForKey:NAMES_emergencyEvent]; - if (obj == nil || [obj isKindOfClass:SDLEmergencyEvent.class]) { - return (SDLEmergencyEvent *)obj; - } else { - return [[SDLEmergencyEvent alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLEmergencyEvent *)emergencyEvent { + return [parameters sdl_objectForName:SDLNameEmergencyEvent ofClass:SDLEmergencyEvent.class]; } -- (void)setClusterModeStatus:(SDLClusterModeStatus *)clusterModeStatus { - if (clusterModeStatus != nil) { - [parameters setObject:clusterModeStatus forKey:NAMES_clusterModeStatus]; - } else { - [parameters removeObjectForKey:NAMES_clusterModeStatus]; - } +- (void)setClusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus { + [parameters sdl_setObject:clusterModeStatus forName:SDLNameClusterModeStatus]; } -- (SDLClusterModeStatus *)clusterModeStatus { - NSObject *obj = [parameters objectForKey:NAMES_clusterModeStatus]; - if (obj == nil || [obj isKindOfClass:SDLClusterModeStatus.class]) { - return (SDLClusterModeStatus *)obj; - } else { - return [[SDLClusterModeStatus alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLClusterModeStatus *)clusterModeStatus { + return [parameters sdl_objectForName:SDLNameClusterModeStatus ofClass:SDLClusterModeStatus.class]; } -- (void)setMyKey:(SDLMyKey *)myKey { - if (myKey != nil) { - [parameters setObject:myKey forKey:NAMES_myKey]; - } else { - [parameters removeObjectForKey:NAMES_myKey]; - } +- (void)setMyKey:(nullable SDLMyKey *)myKey { + [parameters sdl_setObject:myKey forName:SDLNameMyKey]; } -- (SDLMyKey *)myKey { - NSObject *obj = [parameters objectForKey:NAMES_myKey]; - if (obj == nil || [obj isKindOfClass:SDLMyKey.class]) { - return (SDLMyKey *)obj; - } else { - return [[SDLMyKey alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLMyKey *)myKey { + return [parameters sdl_objectForName:SDLNameMyKey ofClass:SDLMyKey.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetWayPoints.h b/SmartDeviceLink/SDLGetWayPoints.h new file mode 100644 index 000000000..be84df565 --- /dev/null +++ b/SmartDeviceLink/SDLGetWayPoints.h @@ -0,0 +1,24 @@ +// SDLGetWaypoints.h +// + +#import "SDLRPCRequest.h" + +#import "SDLWayPointType.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLGetWayPoints : SDLRPCRequest + +- (instancetype)initWithType:(SDLWayPointType)type; + +/** + * To request for either the destination + * only or for all waypoints including destination + * + * Required + */ +@property (nullable, strong, nonatomic) SDLWayPointType waypointType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetWayPoints.m b/SmartDeviceLink/SDLGetWayPoints.m new file mode 100644 index 000000000..74eba337c --- /dev/null +++ b/SmartDeviceLink/SDLGetWayPoints.m @@ -0,0 +1,41 @@ +// SDLGetWaypoints.m +// + +#import "SDLGetWayPoints.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLGetWayPoints + +- (instancetype)init { + if (self = [super initWithName:SDLNameGetWayPoints]) { + } + return self; +} + + +- (instancetype)initWithType:(SDLWayPointType)type { + self = [self init]; + if (!self) { + return nil; + } + + self.waypointType = type; + + return self; +} + +- (void)setWaypointType:(nullable SDLWayPointType)waypointType { + [parameters sdl_setObject:waypointType forName:SDLNameWayPointType]; +} + +- (nullable SDLWayPointType)waypointType { + return [parameters sdl_objectForName:SDLNameWayPointType]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetWaypointsResponse.h b/SmartDeviceLink/SDLGetWayPointsResponse.h similarity index 52% rename from SmartDeviceLink/SDLGetWaypointsResponse.h rename to SmartDeviceLink/SDLGetWayPointsResponse.h index fe1489c7d..ab3882192 100644 --- a/SmartDeviceLink/SDLGetWaypointsResponse.h +++ b/SmartDeviceLink/SDLGetWayPointsResponse.h @@ -5,6 +5,8 @@ @class SDLLocationDetails; +NS_ASSUME_NONNULL_BEGIN + @interface SDLGetWayPointsResponse : SDLRPCResponse /** @@ -14,10 +16,8 @@ * * Optional, Array size 1 - 10 */ -@property (strong) NSArray *waypoints; +@property (nullable, strong, nonatomic) NSArray *waypoints; @end -__deprecated_msg("Use SDLGetWayPointsResponse instead") - @interface SDLGetWaypointsResponse : SDLGetWayPointsResponse - @end +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetWayPointsResponse.m b/SmartDeviceLink/SDLGetWayPointsResponse.m new file mode 100644 index 000000000..b2f5e6291 --- /dev/null +++ b/SmartDeviceLink/SDLGetWayPointsResponse.m @@ -0,0 +1,30 @@ +// SDLGetWaypointsResponse.m +// + +#import "SDLGetWayPointsResponse.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLLocationDetails.h" +#import "SDLNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLGetWayPointsResponse + +- (instancetype)init { + if (self = [super initWithName:SDLNameGetWayPoints]) { + } + return self; +} + +- (void)setWaypoints:(nullable NSArray *)waypoints { + [parameters sdl_setObject:waypoints forName:SDLNameWayPoints]; +} + +- (nullable NSArray *)waypoints { + return [parameters sdl_objectsForName:SDLNameWayPoints ofClass:SDLLocationDetails.class]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGetWaypoints.h b/SmartDeviceLink/SDLGetWaypoints.h deleted file mode 100644 index a596e45a6..000000000 --- a/SmartDeviceLink/SDLGetWaypoints.h +++ /dev/null @@ -1,25 +0,0 @@ -// SDLGetWaypoints.h -// - -#import "SDLRPCRequest.h" - -@class SDLWaypointType; - - -@interface SDLGetWayPoints : SDLRPCRequest - -- (instancetype)initWithType:(SDLWaypointType *)type; - -/** - * To request for either the destination - * only or for all waypoints including destination - * - * Required - */ -@property (strong, nonatomic) SDLWaypointType *waypointType; - -@end - -__deprecated_msg("Use SDLGetWayPoints instead") - @interface SDLGetWaypoints : SDLGetWayPoints - @end diff --git a/SmartDeviceLink/SDLGetWaypoints.m b/SmartDeviceLink/SDLGetWaypoints.m deleted file mode 100644 index 1e9e2dfd2..000000000 --- a/SmartDeviceLink/SDLGetWaypoints.m +++ /dev/null @@ -1,50 +0,0 @@ -// SDLGetWaypoints.m -// - -#import "SDLGetWaypoints.h" - -#import "SDLNames.h" -#import "SDLWaypointType.h" - -@implementation SDLGetWayPoints - -- (instancetype)init { - if (self = [super initWithName:NAMES_GetWaypoints]) { - } - return self; -} - - -- (instancetype)initWithType:(SDLWaypointType *)type { - self = [self init]; - if (!self) { - return nil; - } - - self.waypointType = type; - - return self; -} - -- (void)setWaypointType:(SDLWaypointType *)waypointType { - if (waypointType != nil) { - parameters[NAMES_waypointType] = waypointType; - } else { - [parameters removeObjectForKey:NAMES_waypointType]; - } -} - -- (SDLWaypointType *)waypointType { - NSObject *obj = parameters[NAMES_waypointType]; - if (obj == nil || [obj isKindOfClass:SDLWaypointType.class]) { - return (SDLWaypointType *)obj; - } else { - return [SDLWaypointType valueOf:(NSString *)obj]; - } -} - -@end - -@implementation SDLGetWaypoints - -@end diff --git a/SmartDeviceLink/SDLGetWaypointsResponse.m b/SmartDeviceLink/SDLGetWaypointsResponse.m deleted file mode 100644 index 2e5b6f984..000000000 --- a/SmartDeviceLink/SDLGetWaypointsResponse.m +++ /dev/null @@ -1,44 +0,0 @@ -// SDLGetWaypointsResponse.m -// - -#import "SDLGetWaypointsResponse.h" - -#import "SDLLocationDetails.h" -#import "SDLNames.h" - -@implementation SDLGetWayPointsResponse - -- (instancetype)init { - if (self = [super initWithName:NAMES_GetWaypoints]) { - } - return self; -} - -- (void)setWaypoints:(NSArray *)waypoints { - if (waypoints != nil) { - parameters[NAMES_waypoints] = waypoints; - } else { - [parameters removeObjectForKey:NAMES_waypoints]; - } -} - -- (NSArray *)waypoints { - NSMutableArray *array = [parameters objectForKey:NAMES_waypoints]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLLocationDetails.class]) { - return [array copy]; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLLocationDetails alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return [newList copy]; - } -} - -@end - -@implementation SDLGetWaypointsResponse - -@end diff --git a/SmartDeviceLink/SDLGlobalProperty.h b/SmartDeviceLink/SDLGlobalProperty.h index 91302fa6e..7f8bf98d9 100644 --- a/SmartDeviceLink/SDLGlobalProperty.h +++ b/SmartDeviceLink/SDLGlobalProperty.h @@ -9,42 +9,24 @@ * * @since SDL 1.0 */ -@interface SDLGlobalProperty : SDLEnum { -} - -/** - * Convert String to SDLGlobalProperty - * @param value The value of the string to get an object for - * @return SDLGlobalProperty - */ -+ (SDLGlobalProperty *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLGlobalProperty - * @return An array that store all possible SDLGlobalProperty - */ -+ (NSArray *)values; +typedef SDLEnum SDLGlobalProperty SDL_SWIFT_ENUM; /** * @abstract The help prompt to be spoken if the user needs assistance during a user-initiated interaction. - * @return A SDLGlobalProperty with value of *HELPPROMPT* */ -+ (SDLGlobalProperty *)HELPPROMPT; +extern SDLGlobalProperty const SDLGlobalPropertyHelpPrompt; /** * @abstract The prompt to be spoken if the user-initiated interaction times out waiting for the user's verbal input. - * @return A SDLGlobalProperty with value of *TIMEOUTPROMPT* */ -+ (SDLGlobalProperty *)TIMEOUTPROMPT; - -+ (SDLGlobalProperty *)VRHELPTITLE; +extern SDLGlobalProperty const SDLGlobalPropertyTimeoutPrompt; -+ (SDLGlobalProperty *)VRHELPITEMS; +extern SDLGlobalProperty const SDLGlobalPropertyVoiceRecognitionHelpTitle; -+ (SDLGlobalProperty *)MENUNAME; +extern SDLGlobalProperty const SDLGlobalPropertyVoiceRecognitionHelpItems; -+ (SDLGlobalProperty *)MENUICON; +extern SDLGlobalProperty const SDLGlobalPropertyMenuName; -+ (SDLGlobalProperty *)KEYBOARDPROPERTIES; +extern SDLGlobalProperty const SDLGlobalPropertyMenuIcon; -@end \ No newline at end of file +extern SDLGlobalProperty const SDLGlobalPropertyKeyboard; diff --git a/SmartDeviceLink/SDLGlobalProperty.m b/SmartDeviceLink/SDLGlobalProperty.m index 59aa87e7b..00537847b 100644 --- a/SmartDeviceLink/SDLGlobalProperty.m +++ b/SmartDeviceLink/SDLGlobalProperty.m @@ -4,89 +4,10 @@ #import "SDLGlobalProperty.h" -SDLGlobalProperty *SDLGlobalProperty_HELPPROMPT = nil; -SDLGlobalProperty *SDLGlobalProperty_TIMEOUTPROMPT = nil; -SDLGlobalProperty *SDLGlobalProperty_VRHELPTITLE = nil; -SDLGlobalProperty *SDLGlobalProperty_VRHELPITEMS = nil; -SDLGlobalProperty *SDLGlobalProperty_MENUNAME = nil; -SDLGlobalProperty *SDLGlobalProperty_MENUICON = nil; -SDLGlobalProperty *SDLGlobalProperty_KEYBOARDPROPERTIES = nil; - -NSArray *SDLGlobalProperty_values = nil; - -@implementation SDLGlobalProperty - -+ (SDLGlobalProperty *)valueOf:(NSString *)value { - for (SDLGlobalProperty *item in SDLGlobalProperty.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLGlobalProperty_values == nil) { - SDLGlobalProperty_values = @[ - SDLGlobalProperty.HELPPROMPT, - SDLGlobalProperty.TIMEOUTPROMPT, - SDLGlobalProperty.VRHELPTITLE, - SDLGlobalProperty.VRHELPITEMS, - SDLGlobalProperty.MENUNAME, - SDLGlobalProperty.MENUICON, - SDLGlobalProperty.KEYBOARDPROPERTIES, - ]; - } - return SDLGlobalProperty_values; -} - -+ (SDLGlobalProperty *)HELPPROMPT { - if (SDLGlobalProperty_HELPPROMPT == nil) { - SDLGlobalProperty_HELPPROMPT = [[SDLGlobalProperty alloc] initWithValue:@"HELPPROMPT"]; - } - return SDLGlobalProperty_HELPPROMPT; -} - -+ (SDLGlobalProperty *)TIMEOUTPROMPT { - if (SDLGlobalProperty_TIMEOUTPROMPT == nil) { - SDLGlobalProperty_TIMEOUTPROMPT = [[SDLGlobalProperty alloc] initWithValue:@"TIMEOUTPROMPT"]; - } - return SDLGlobalProperty_TIMEOUTPROMPT; -} - -+ (SDLGlobalProperty *)VRHELPTITLE { - if (SDLGlobalProperty_VRHELPTITLE == nil) { - SDLGlobalProperty_VRHELPTITLE = [[SDLGlobalProperty alloc] initWithValue:@"VRHELPTITLE"]; - } - return SDLGlobalProperty_VRHELPTITLE; -} - -+ (SDLGlobalProperty *)VRHELPITEMS { - if (SDLGlobalProperty_VRHELPITEMS == nil) { - SDLGlobalProperty_VRHELPITEMS = [[SDLGlobalProperty alloc] initWithValue:@"VRHELPITEMS"]; - } - return SDLGlobalProperty_VRHELPITEMS; -} - -+ (SDLGlobalProperty *)MENUNAME { - if (SDLGlobalProperty_MENUNAME == nil) { - SDLGlobalProperty_MENUNAME = [[SDLGlobalProperty alloc] initWithValue:@"MENUNAME"]; - } - return SDLGlobalProperty_MENUNAME; -} - -+ (SDLGlobalProperty *)MENUICON { - if (SDLGlobalProperty_MENUICON == nil) { - SDLGlobalProperty_MENUICON = [[SDLGlobalProperty alloc] initWithValue:@"MENUICON"]; - } - return SDLGlobalProperty_MENUICON; -} - -+ (SDLGlobalProperty *)KEYBOARDPROPERTIES { - if (SDLGlobalProperty_KEYBOARDPROPERTIES == nil) { - SDLGlobalProperty_KEYBOARDPROPERTIES = [[SDLGlobalProperty alloc] initWithValue:@"KEYBOARDPROPERTIES"]; - } - return SDLGlobalProperty_KEYBOARDPROPERTIES; -} - -@end +SDLGlobalProperty const SDLGlobalPropertyHelpPrompt = @"HELPPROMPT"; +SDLGlobalProperty const SDLGlobalPropertyTimeoutPrompt = @"TIMEOUTPROMPT"; +SDLGlobalProperty const SDLGlobalPropertyVoiceRecognitionHelpTitle = @"VRHELPTITLE"; +SDLGlobalProperty const SDLGlobalPropertyVoiceRecognitionHelpItems = @"VRHELPITEMS"; +SDLGlobalProperty const SDLGlobalPropertyMenuName = @"MENUNAME"; +SDLGlobalProperty const SDLGlobalPropertyMenuIcon = @"MENUICON"; +SDLGlobalProperty const SDLGlobalPropertyKeyboard = @"KEYBOARDPROPERTIES"; diff --git a/SmartDeviceLink/SDLGlobals.h b/SmartDeviceLink/SDLGlobals.h index f52f82574..5b9220398 100644 --- a/SmartDeviceLink/SDLGlobals.h +++ b/SmartDeviceLink/SDLGlobals.h @@ -10,6 +10,8 @@ #import "SDLProtocolHeader.h" +NS_ASSUME_NONNULL_BEGIN + #define SDL_SYSTEM_VERSION_LESS_THAN(version) ([[[UIDevice currentDevice] systemVersion] compare:version options:NSNumericSearch] == NSOrderedAscending) #define SDL_SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(version) ([[[UIDevice currentDevice] systemVersion] compare:version options:NSNumericSearch] != NSOrderedAscending) #define BLOCK_RETURN return @@ -26,9 +28,11 @@ extern NSUInteger const SDLV3MTUSize; @property (assign, nonatomic, readonly) NSInteger majorProtocolVersion; @property (strong, nonatomic) NSString *maxHeadUnitVersion; -+ (instancetype)globals; ++ (instancetype)sharedGlobals; - (void)setDynamicMTUSize:(NSUInteger)maxMTUSize forServiceType:(SDLServiceType)serviceType; - (NSUInteger)mtuSizeForServiceType:(SDLServiceType)serviceType; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLGlobals.m b/SmartDeviceLink/SDLGlobals.m index da2636a61..7d63d606c 100644 --- a/SmartDeviceLink/SDLGlobals.m +++ b/SmartDeviceLink/SDLGlobals.m @@ -8,6 +8,10 @@ #import "SDLGlobals.h" +#import "SDLLogMacros.h" + +NS_ASSUME_NONNULL_BEGIN + // VERSION DEPENDENT CODE NSString *const SDLMaxProxyProtocolVersion = @"5.0.0"; @@ -30,7 +34,7 @@ @interface SDLGlobals () @implementation SDLGlobals -+ (instancetype)globals { ++ (instancetype)sharedGlobals { static SDLGlobals *sharedGlobals = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ @@ -67,14 +71,15 @@ - (NSInteger)majorProtocolVersion { } - (void)setDynamicMTUSize:(NSUInteger)maxMTUSize forServiceType:(SDLServiceType)serviceType { + SDLLogV(@"Setting dynamic MTU size: %lu for service %u", (unsigned long)maxMTUSize, serviceType); self.dynamicMTUDict[@(serviceType)] = @(maxMTUSize); } - (NSUInteger)mtuSizeForServiceType:(SDLServiceType)serviceType { if (self.dynamicMTUDict[@(serviceType)] != nil) { return self.dynamicMTUDict[@(serviceType)].unsignedIntegerValue; - } else if (self.dynamicMTUDict[@(SDLServiceType_RPC)]) { - return self.dynamicMTUDict[@(SDLServiceType_RPC)].unsignedIntegerValue; + } else if (self.dynamicMTUDict[@(SDLServiceTypeRPC)]) { + return self.dynamicMTUDict[@(SDLServiceTypeRPC)].unsignedIntegerValue; } else { return [self sdl_defaultMaxMTUSize]; } @@ -113,3 +118,5 @@ - (NSUInteger)sdl_defaultMaxMTUSize { } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLH264Packetizer.h b/SmartDeviceLink/SDLH264Packetizer.h new file mode 100644 index 000000000..45c5e8d5c --- /dev/null +++ b/SmartDeviceLink/SDLH264Packetizer.h @@ -0,0 +1,33 @@ +// +// SDLH264Packetizer.h +// SmartDeviceLink-iOS +// +// Created by Sho Amano on 4/11/17. +// Copyright © 2017 Xevo Inc. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol SDLH264Packetizer + +/** + * Creates packets from given H.264 NAL units and presentation timestamp. + * + * @param nalUnits List of NAL units to create packets. + * @param presentationTimestamp Presentation timestamp associated to + * the NAL units, in seconds. + * + * @return List of NSData. Each NSData holds a packet. + * + * @warning This method cannot be called more than once with same pts value. + * All NAL units that belongs to a frame should be included in + * nalUnits array. + */ +- (nullable NSArray *)createPackets:(NSArray *)nalUnits + presentationTimestamp:(double)presentationTimestamp; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLH264VideoEncoder.h b/SmartDeviceLink/SDLH264VideoEncoder.h new file mode 100644 index 000000000..cbeeb4f71 --- /dev/null +++ b/SmartDeviceLink/SDLH264VideoEncoder.h @@ -0,0 +1,76 @@ +// +// SDLH264VideoEncoder +// SmartDeviceLink-iOS +// +// Created by Muller, Alexander (A.) on 12/5/16. +// Copyright © 2016 smartdevicelink. All rights reserved. +// + +#import +#import + +#import "SDLMacros.h" +#import "SDLVideoStreamingProtocol.h" +#import "SDLVideoEncoderDelegate.h" + +@protocol SDLH264Packetizer; + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, SDLVideoEncoderError) { + SDLVideoEncoderErrorConfigurationCompressionSessionCreationFailure = 0, + SDLVideoEncoderErrorConfigurationAllocationFailure = 1, + SDLVideoEncoderErrorConfigurationCompressionSessionSetPropertyFailure = 2, + SDLVideoEncoderErrorProtocolUnknown = 3 +}; + +extern NSString *const SDLErrorDomainVideoEncoder; + + +@interface SDLH264VideoEncoder : NSObject + +@property (nonatomic, weak, nullable) id delegate; + +/** + * The settings used in a VTCompressionSessionRef encoder. These will be verified when the video stream is started. Acceptable properties for this are located in VTCompressionProperties. + * + */ +@property (strong, nonatomic, readonly) NSDictionary *videoEncoderSettings; + +@property (strong, nonatomic) id packetizer; + +/** + * Provides default video encoder settings used. + */ +#if SDL_SUPPORTS_CLASS_PROPERTIES +@property (class, strong, nonatomic, readonly) NSDictionary *defaultVideoEncoderSettings; +#else ++ (NSDictionary*)defaultVideoEncoderSettings; +#endif + +/** + * The pixel buffer pool reference returned back from an active VTCompressionSessionRef encoder. + * + * @warning This will only return a valid pixel buffer pool after the encoder has been initialized (when the video session has started). + * @discussion Clients may call this once and retain the resulting pool, this call is cheap enough that it's OK to call it once per frame. + */ +@property (assign, nonatomic, readonly) CVPixelBufferPoolRef CV_NULLABLE pixelBufferPool; + +- (instancetype)init NS_UNAVAILABLE; + +- (instancetype)initWithProtocol:(SDLVideoStreamingProtocol)protocol dimensions:(CGSize)dimensions properties:(NSDictionary *)properties delegate:(id __nullable)delegate error:(NSError **)error NS_DESIGNATED_INITIALIZER; + +- (void)stop; + +- (BOOL)encodeFrame:(CVImageBufferRef)imageBuffer; + +- (BOOL)encodeFrame:(CVImageBufferRef)imageBuffer presentationTimestamp:(CMTime)presentationTimestamp; + +/** + * Creates a new pixel buffer using the pixelBufferPool property. + */ +- (CVPixelBufferRef CV_NULLABLE)newPixelBuffer; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLH264VideoEncoder.m b/SmartDeviceLink/SDLH264VideoEncoder.m new file mode 100644 index 000000000..7929c3b11 --- /dev/null +++ b/SmartDeviceLink/SDLH264VideoEncoder.m @@ -0,0 +1,314 @@ +// +// SDLH264VideoEncoder +// SmartDeviceLink-iOS +// +// Created by Muller, Alexander (A.) on 12/5/16. +// Copyright © 2016 smartdevicelink. All rights reserved. +// + +#import "SDLH264VideoEncoder.h" + +#import "SDLLogMacros.h" +#import "SDLRAWH264Packetizer.h" +#import "SDLRTPH264Packetizer.h" + + +NS_ASSUME_NONNULL_BEGIN + +NSString *const SDLErrorDomainVideoEncoder = @"com.sdl.videoEncoder"; +static NSDictionary* _defaultVideoEncoderSettings; + + +@interface SDLH264VideoEncoder () + +@property (assign, nonatomic, nullable) VTCompressionSessionRef compressionSession; +@property (assign, nonatomic, nullable) CFDictionaryRef sdl_pixelBufferOptions; +@property (assign, nonatomic) NSUInteger currentFrameNumber; +@property (assign, nonatomic) double timestampOffset; + +@end + + +@implementation SDLH264VideoEncoder + ++ (void)initialize { + if (self != [SDLH264VideoEncoder class]) { + return; + } + + _defaultVideoEncoderSettings = @{ + (__bridge NSString *)kVTCompressionPropertyKey_ProfileLevel: (__bridge NSString *)kVTProfileLevel_H264_Baseline_AutoLevel, + (__bridge NSString *)kVTCompressionPropertyKey_RealTime: @YES, + (__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate: @30, + }; +} + +- (instancetype)initWithProtocol:(SDLVideoStreamingProtocol)protocol dimensions:(CGSize)dimensions properties:(NSDictionary *)properties delegate:(id __nullable)delegate error:(NSError **)error { + self = [super init]; + if (!self) { + return nil; + } + + _compressionSession = NULL; + _currentFrameNumber = 0; + _videoEncoderSettings = properties; + + _delegate = delegate; + + OSStatus status; + + // Create a compression session + status = VTCompressionSessionCreate(NULL, dimensions.width, dimensions.height, kCMVideoCodecType_H264, NULL, self.sdl_pixelBufferOptions, NULL, &sdl_videoEncoderOutputCallback, (__bridge void *)self, &_compressionSession); + + if (status != noErr) { + if (!*error) { + *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorConfigurationCompressionSessionCreationFailure userInfo:@{ @"OSStatus": @(status) }]; + SDLLogE(@"Error attempting to create video compression session: %@", *error); + } + + return nil; + } + + CFRelease(_sdl_pixelBufferOptions); + _sdl_pixelBufferOptions = nil; + + // Validate that the video encoder properties are valid. + CFDictionaryRef supportedProperties; + status = VTSessionCopySupportedPropertyDictionary(self.compressionSession, &supportedProperties); + if (status != noErr) { + if (!*error) { + *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorConfigurationCompressionSessionSetPropertyFailure userInfo:@{ @"OSStatus": @(status) }]; + } + + return nil; + } + + NSArray* videoEncoderKeys = self.videoEncoderSettings.allKeys; + for (NSString *key in videoEncoderKeys) { + if (CFDictionaryContainsKey(supportedProperties, (__bridge CFStringRef)key) == false) { + if (!*error) { + NSString *description = [NSString stringWithFormat:@"\"%@\" is not a supported key.", key]; + *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorConfigurationCompressionSessionSetPropertyFailure userInfo:@{NSLocalizedDescriptionKey: description}]; + } + CFRelease(supportedProperties); + return nil; + } + } + CFRelease(supportedProperties); + + // Populate the video encoder settings from provided dictionary. + for (NSString *key in videoEncoderKeys) { + id value = self.videoEncoderSettings[key]; + + status = VTSessionSetProperty(self.compressionSession, (__bridge CFStringRef)key, (__bridge CFTypeRef)value); + if (status != noErr) { + if (!*error) { + *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorConfigurationCompressionSessionSetPropertyFailure userInfo:@{ @"OSStatus": @(status) }]; + } + return nil; + } + } + + if ([protocol isEqualToEnum:SDLVideoStreamingProtocolRAW]) { + _packetizer = [[SDLRAWH264Packetizer alloc] init]; + } else if ([protocol isEqualToEnum:SDLVideoStreamingProtocolRTP]) { + _packetizer = [[SDLRTPH264Packetizer alloc] init]; + } else { + if (!*error) { + *error = [NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorProtocolUnknown userInfo:@{ @"encoder": protocol}]; + } + return nil; + } + + _timestampOffset = 0.0; + + return self; +} + +- (void)stop { + if (self.compressionSession != NULL) { + VTCompressionSessionInvalidate(self.compressionSession); + CFRelease(self.compressionSession); + self.compressionSession = NULL; + } +} + +- (BOOL)encodeFrame:(CVImageBufferRef)imageBuffer { + return [self encodeFrame:imageBuffer presentationTimestamp:kCMTimeInvalid]; +} + +- (BOOL)encodeFrame:(CVImageBufferRef)imageBuffer presentationTimestamp:(CMTime)presentationTimestamp { + if (!CMTIME_IS_VALID(presentationTimestamp)) { + int32_t timeRate = 30; + if (self.videoEncoderSettings[(__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate] != nil) { + timeRate = ((NSNumber *)self.videoEncoderSettings[(__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate]).intValue; + } + + presentationTimestamp = CMTimeMake(self.currentFrameNumber, timeRate); + } + self.currentFrameNumber++; + + OSStatus status = VTCompressionSessionEncodeFrame(_compressionSession, imageBuffer, presentationTimestamp, kCMTimeInvalid, NULL, (__bridge void *)self, NULL); + + return (status == noErr); +} + +- (CVPixelBufferRef CV_NULLABLE)newPixelBuffer { + if (self.pixelBufferPool == NULL) { + return NULL; + } + + CVPixelBufferRef pixelBuffer; + CVPixelBufferPoolCreatePixelBuffer(kCFAllocatorDefault, + self.pixelBufferPool, + &pixelBuffer); + + return pixelBuffer; +} + +#pragma mark - Public +#pragma mark Getters ++ (NSDictionary *)defaultVideoEncoderSettings { + return _defaultVideoEncoderSettings; +} + +- (CVPixelBufferPoolRef CV_NULLABLE)pixelBufferPool { + return VTCompressionSessionGetPixelBufferPool(self.compressionSession); +} + +#pragma mark - Private +#pragma mark Callback +void sdl_videoEncoderOutputCallback(void * CM_NULLABLE outputCallbackRefCon, void * CM_NULLABLE sourceFrameRefCon, OSStatus status, VTEncodeInfoFlags infoFlags, CM_NULLABLE CMSampleBufferRef sampleBuffer) { + // If there was an error in the encoding, drop the frame + if (status != noErr) { + SDLLogW(@"Error encoding video frame: %d", (int)status); + return; + } + + if (outputCallbackRefCon == NULL || sourceFrameRefCon == NULL || sampleBuffer == NULL) { + return; + } + + SDLH264VideoEncoder *encoder = (__bridge SDLH264VideoEncoder *)sourceFrameRefCon; + NSArray *nalUnits = [encoder.class sdl_extractNalUnitsFromSampleBuffer:sampleBuffer]; + + const CMTime presentationTimestampInCMTime = CMSampleBufferGetPresentationTimeStamp(sampleBuffer); + double presentationTimestamp = 0.0; + if (CMTIME_IS_VALID(presentationTimestampInCMTime)) { + presentationTimestamp = CMTimeGetSeconds(presentationTimestampInCMTime); + } + if (encoder.timestampOffset == 0.0) { + // remember this first timestamp as the offset + encoder.timestampOffset = presentationTimestamp; + } + + NSArray *packets = [encoder.packetizer createPackets:nalUnits + presentationTimestamp:(presentationTimestamp - encoder.timestampOffset)]; + + if ([encoder.delegate respondsToSelector:@selector(videoEncoder:hasEncodedFrame:)]) { + for (NSData *packet in packets) { + [encoder.delegate videoEncoder:encoder hasEncodedFrame:packet]; + } + } +} + +#pragma mark Getters +- (CFDictionaryRef _Nullable)sdl_pixelBufferOptions { + if (_sdl_pixelBufferOptions == nil) { + CFMutableDictionaryRef pixelBufferOptions = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); + + OSType pixelFormatType = kCVPixelFormatType_32BGRA; + + CFNumberRef pixelFormatNumberRef = CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt32Type, &pixelFormatType); + + CFDictionarySetValue(pixelBufferOptions, kCVPixelBufferCGImageCompatibilityKey, kCFBooleanFalse); + CFDictionarySetValue(pixelBufferOptions, kCVPixelBufferCGBitmapContextCompatibilityKey, kCFBooleanFalse); + CFDictionarySetValue(pixelBufferOptions, kCVPixelBufferPixelFormatTypeKey, pixelFormatNumberRef); + + CFRelease(pixelFormatNumberRef); + + _sdl_pixelBufferOptions = pixelBufferOptions; + } + + return _sdl_pixelBufferOptions; +} + +#pragma mark Helpers ++ (NSArray *)sdl_extractNalUnitsFromSampleBuffer:(CMSampleBufferRef)sampleBuffer { + // Creating an elementaryStream: http://stackoverflow.com/questions/28396622/extracting-h264-from-cmblockbuffer + NSMutableArray *nalUnits = [NSMutableArray array]; + BOOL isIFrame = NO; + CFArrayRef attachmentsArray = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, 0); + + if (CFArrayGetCount(attachmentsArray)) { + CFBooleanRef notSync; + CFDictionaryRef dict = CFArrayGetValueAtIndex(attachmentsArray, 0); + BOOL keyExists = CFDictionaryGetValueIfPresent(dict, kCMSampleAttachmentKey_NotSync, (const void **)¬Sync); + + // Find out if the sample buffer contains an I-Frame (sync frame). If so we will write the SPS and PPS NAL units to the elementary stream. + isIFrame = !keyExists || !CFBooleanGetValue(notSync); + } + + // Write the SPS and PPS NAL units to the elementary stream before every I-Frame + if (isIFrame) { + CMFormatDescriptionRef description = CMSampleBufferGetFormatDescription(sampleBuffer); + + // Find out how many parameter sets there are + size_t numberOfParameterSets; + CMVideoFormatDescriptionGetH264ParameterSetAtIndex(description, + 0, + NULL, + NULL, + &numberOfParameterSets, + NULL); + + // Write each parameter set to the elementary stream + for (int i = 0; i < numberOfParameterSets; i++) { + const uint8_t *parameterSetPointer; + size_t parameterSetLength; + CMVideoFormatDescriptionGetH264ParameterSetAtIndex(description, + i, + ¶meterSetPointer, + ¶meterSetLength, + NULL, + NULL); + + // Output the parameter set + NSData *nalUnit = [NSData dataWithBytesNoCopy:(uint8_t *)parameterSetPointer length:parameterSetLength freeWhenDone:NO]; + [nalUnits addObject:nalUnit]; + } + } + + // Get a pointer to the raw AVCC NAL unit data in the sample buffer + size_t blockBufferLength = 0; + char *bufferDataPointer = NULL; + CMBlockBufferRef blockBufferRef = CMSampleBufferGetDataBuffer(sampleBuffer); + + CMBlockBufferGetDataPointer(blockBufferRef, 0, NULL, &blockBufferLength, &bufferDataPointer); + + // Loop through all the NAL units in the block buffer and write them to the elementary stream with start codes instead of AVCC length headers + size_t bufferOffset = 0; + static const int AVCCHeaderLength = 4; + while (bufferOffset < blockBufferLength - AVCCHeaderLength) { + // Read the NAL unit length + uint32_t NALUnitLength = 0; + memcpy(&NALUnitLength, bufferDataPointer + bufferOffset, AVCCHeaderLength); + + // Convert the length value from Big-endian to Little-endian + NALUnitLength = CFSwapInt32BigToHost(NALUnitLength); + + // Write the NAL unit without the AVCC length header to the elementary stream + NSData *nalUnit = [NSData dataWithBytesNoCopy:bufferDataPointer + bufferOffset + AVCCHeaderLength length:NALUnitLength freeWhenDone:NO]; + [nalUnits addObject:nalUnit]; + + // Move to the next NAL unit in the block buffer + bufferOffset += AVCCHeaderLength + NALUnitLength; + } + + + return nalUnits; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLHMICapabilities.h b/SmartDeviceLink/SDLHMICapabilities.h index 3b3c16ca3..43ee2b810 100644 --- a/SmartDeviceLink/SDLHMICapabilities.h +++ b/SmartDeviceLink/SDLHMICapabilities.h @@ -4,30 +4,31 @@ #import "SDLRPCStruct.h" -@interface SDLHMICapabilities : SDLRPCStruct +NS_ASSUME_NONNULL_BEGIN -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLHMICapabilities : SDLRPCStruct /** - Availability of build in Nav. True: Available, False: Not Available + Availability of built in Nav. True: Available, False: Not Available Boolean value. Optional. */ -@property (copy, nonatomic) NSNumber *navigation; +@property (nullable, copy, nonatomic) NSNumber *navigation; /** - Availability of build in phone. True: Available, False: Not Available + Availability of built in phone. True: Available, False: Not Available Boolean value. Optional. */ -@property (copy, nonatomic) NSNumber *phoneCall; +@property (nullable, copy, nonatomic) NSNumber *phoneCall; /** - Availability of build in video streaming. True: Available, False: Not Available + Availability of built in video streaming. True: Available, False: Not Available Boolean value. Optional. */ -@property (copy, nonatomic) NSNumber *videoStreaming; +@property (nullable, copy, nonatomic) NSNumber *videoStreaming; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLHMICapabilities.m b/SmartDeviceLink/SDLHMICapabilities.m index 375cfe1d1..01fd01949 100644 --- a/SmartDeviceLink/SDLHMICapabilities.m +++ b/SmartDeviceLink/SDLHMICapabilities.m @@ -4,63 +4,37 @@ #import "SDLHMICapabilities.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLHMICapabilities -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - self = [super initWithDictionary:dict]; - if (!self) { - return nil; - } - - return self; +- (void)setNavigation:(nullable NSNumber *)navigation { + [store sdl_setObject:navigation forName:SDLNameNavigation]; } -- (void)setNavigation:(NSNumber *)navigation { - if (navigation != nil) { - store[NAMES_navigation] = navigation; - } else { - [store removeObjectForKey:NAMES_navigation]; - } +- (nullable NSNumber *)navigation { + return [store sdl_objectForName:SDLNameNavigation]; } -- (NSNumber *)navigation { - return store[NAMES_navigation]; +- (void)setPhoneCall:(nullable NSNumber *)phoneCall { + [store sdl_setObject:phoneCall forName:SDLNamePhoneCall]; } -- (void)setPhoneCall:(NSNumber *)phoneCall { - if (phoneCall != nil) { - store[NAMES_phoneCall] = phoneCall; - } else { - [store removeObjectForKey:NAMES_phoneCall]; - } +- (nullable NSNumber *)phoneCall { + return [store sdl_objectForName:SDLNamePhoneCall]; } -- (NSNumber *)phoneCall { - return store[NAMES_phoneCall]; +- (void)setVideoStreaming:(nullable NSNumber *)videoStreaming { + [store sdl_setObject:videoStreaming forName:SDLNameVideoStreaming]; } -- (void)setVideoStreaming:(NSNumber *)videoStreaming { - if (videoStreaming != nil) { - store[NAMES_videoStreaming] = videoStreaming; - } else { - [store removeObjectForKey:NAMES_videoStreaming]; - } -} - -- (NSNumber *)videoStreaming { - return store[NAMES_videoStreaming]; +- (nullable NSNumber *)videoStreaming { + return [store sdl_objectForName:SDLNameVideoStreaming]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLHMILevel.h b/SmartDeviceLink/SDLHMILevel.h index 426217465..205b6151d 100644 --- a/SmartDeviceLink/SDLHMILevel.h +++ b/SmartDeviceLink/SDLHMILevel.h @@ -9,38 +9,17 @@ * * @since SDL 1.0 */ -@interface SDLHMILevel : SDLEnum { -} - -/** - * Return HMILevel status (FULL, LIMITED, BACKGROUND, NONE) - * - * @param value String value to retrieve the object for - * - * @return Current HMI level - */ -+ (SDLHMILevel *)valueOf:(NSString *)value; - -/** - * Store all possible SDLHMILevel values - * - * @return an array with all possible HMILevel values inside - */ -+ (NSArray *)values; +typedef SDLEnum SDLHMILevel SDL_SWIFT_ENUM; /** * 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 - * - * @return the HMILevel with value of *FULL* */ -+ (SDLHMILevel *)FULL; +extern SDLHMILevel const SDLHMILevelFull; /** * 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) - * - * @return the HMILevel with value of *LIMITED* */ -+ (SDLHMILevel *)LIMITED; +extern SDLHMILevel const SDLHMILevelLimited; /** * App cannot interact with user via TTS, VR, Display or Button Presses. App can perform the following operations: @@ -59,18 +38,12 @@ *

  • Operation : ResetGlobalProperties
  • *
  • Operation : SetGlobalProperties
  • * - * - * @return the HMILevel with value of *BACKGROUND* */ -+ (SDLHMILevel *)BACKGROUND; +extern SDLHMILevel const SDLHMILevelBackground; /** * Application has been discovered by SDL, but it cannot send any requests or receive any notifications * * @discussion An HMILevel of NONE can also mean that the user has exited the application by saying "exit appname" or selecting "exit" from the application's menu. When this happens, the application still has an active interface registration with SDL and all SDL resources the application has created (e.g. Choice Sets, subscriptions, etc.) still exist. But while the HMILevel is NONE, the application cannot send any messages to SYNC, except UnregisterAppInterface - * - * @return the HMILevel with value of *NONE* */ -+ (SDLHMILevel *)NONE; - -@end +extern SDLHMILevel const SDLHMILevelNone; diff --git a/SmartDeviceLink/SDLHMILevel.m b/SmartDeviceLink/SDLHMILevel.m index 88b0be5b6..dab5a8691 100644 --- a/SmartDeviceLink/SDLHMILevel.m +++ b/SmartDeviceLink/SDLHMILevel.m @@ -4,62 +4,7 @@ #import "SDLHMILevel.h" -SDLHMILevel *SDLHMILevel_FULL = nil; -SDLHMILevel *SDLHMILevel_LIMITED = nil; -SDLHMILevel *SDLHMILevel_BACKGROUND = nil; -SDLHMILevel *SDLHMILevel_NONE = nil; - -NSArray *SDLHMILevel_values = nil; - -@implementation SDLHMILevel - -+ (SDLHMILevel *)valueOf:(NSString *)value { - for (SDLHMILevel *item in SDLHMILevel.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLHMILevel_values == nil) { - SDLHMILevel_values = @[ - [SDLHMILevel FULL], - [SDLHMILevel LIMITED], - [SDLHMILevel BACKGROUND], - [SDLHMILevel NONE] - ]; - } - return SDLHMILevel_values; -} - -+ (SDLHMILevel *)FULL { - if (SDLHMILevel_FULL == nil) { - SDLHMILevel_FULL = [[SDLHMILevel alloc] initWithValue:@"FULL"]; - } - return SDLHMILevel_FULL; -} - -+ (SDLHMILevel *)LIMITED { - if (SDLHMILevel_LIMITED == nil) { - SDLHMILevel_LIMITED = [[SDLHMILevel alloc] initWithValue:@"LIMITED"]; - } - return SDLHMILevel_LIMITED; -} - -+ (SDLHMILevel *)BACKGROUND { - if (SDLHMILevel_BACKGROUND == nil) { - SDLHMILevel_BACKGROUND = [[SDLHMILevel alloc] initWithValue:@"BACKGROUND"]; - } - return SDLHMILevel_BACKGROUND; -} - -+ (SDLHMILevel *)NONE { - if (SDLHMILevel_NONE == nil) { - SDLHMILevel_NONE = [[SDLHMILevel alloc] initWithValue:@"NONE"]; - } - return SDLHMILevel_NONE; -} - -@end +SDLHMILevel const SDLHMILevelFull = @"FULL"; +SDLHMILevel const SDLHMILevelLimited = @"LIMITED"; +SDLHMILevel const SDLHMILevelBackground = @"BACKGROUND"; +SDLHMILevel const SDLHMILevelNone = @"NONE"; diff --git a/SmartDeviceLink/SDLHMIPermissions.h b/SmartDeviceLink/SDLHMIPermissions.h index 49a7025a7..ca6f855a1 100644 --- a/SmartDeviceLink/SDLHMIPermissions.h +++ b/SmartDeviceLink/SDLHMIPermissions.h @@ -4,24 +4,17 @@ #import "SDLRPCMessage.h" +#import "SDLHMILevel.h" + /** * Defining sets of HMI levels, which are permitted or prohibited for a given RPC. * * @since SDL 2.0 */ -@interface SDLHMIPermissions : SDLRPCStruct { -} -/** - * Constructs a newly allocated SDLHMIPermissions object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * Constructs a newly allocated SDLHMIPermissions object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLHMIPermissions : SDLRPCStruct /** * @abstract a set of all HMI levels that are permitted for this given RPC @@ -30,7 +23,7 @@ * * Required, Array of SDLHMILevel, Array size 0 - 100 */ -@property (strong) NSMutableArray *allowed; +@property (strong, nonatomic) NSArray *allowed; /** * @abstract a set of all HMI levels that are prohibited for this given RPC @@ -39,6 +32,8 @@ * * Required, Array of SDLHMILevel, Array size 0 - 100 */ -@property (strong) NSMutableArray *userDisallowed; +@property (strong, nonatomic) NSArray *userDisallowed; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLHMIPermissions.m b/SmartDeviceLink/SDLHMIPermissions.m index 5ba496efa..96d947aa5 100644 --- a/SmartDeviceLink/SDLHMIPermissions.m +++ b/SmartDeviceLink/SDLHMIPermissions.m @@ -4,67 +4,29 @@ #import "SDLHMIPermissions.h" -#import "SDLHMILevel.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -@implementation SDLHMIPermissions - -- (instancetype)init { - if (self = [super init]) { - } - return self; -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} +@implementation SDLHMIPermissions -- (void)setAllowed:(NSMutableArray *)allowed { - if (allowed != nil) { - [store setObject:allowed forKey:NAMES_allowed]; - } else { - [store removeObjectForKey:NAMES_allowed]; - } +- (void)setAllowed:(NSArray *)allowed { + [store sdl_setObject:allowed forName:SDLNameAllowed]; } -- (NSMutableArray *)allowed { - NSMutableArray *array = [store objectForKey:NAMES_allowed]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLHMILevel.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSString *enumString in array) { - [newList addObject:[SDLHMILevel valueOf:enumString]]; - } - return newList; - } +- (NSArray *)allowed { + return [store sdl_objectForName:SDLNameAllowed]; } -- (void)setUserDisallowed:(NSMutableArray *)userDisallowed { - if (userDisallowed != nil) { - [store setObject:userDisallowed forKey:NAMES_userDisallowed]; - } else { - [store removeObjectForKey:NAMES_userDisallowed]; - } +- (void)setUserDisallowed:(NSArray *)userDisallowed { + [store sdl_setObject:userDisallowed forName:SDLNameUserDisallowed]; } -- (NSMutableArray *)userDisallowed { - NSMutableArray *array = [store objectForKey:NAMES_userDisallowed]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLHMILevel.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSString *enumString in array) { - [newList addObject:[SDLHMILevel valueOf:enumString]]; - } - return newList; - } +- (NSArray *)userDisallowed { + return [store sdl_objectForName:SDLNameUserDisallowed]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLHMIZoneCapabilities.h b/SmartDeviceLink/SDLHMIZoneCapabilities.h index d63655bd8..98847857b 100644 --- a/SmartDeviceLink/SDLHMIZoneCapabilities.h +++ b/SmartDeviceLink/SDLHMIZoneCapabilities.h @@ -9,31 +9,14 @@ * * @since SDL 1.0 */ -@interface SDLHMIZoneCapabilities : SDLEnum { -} - -/** - * @abstract SDLHMIZoneCapabilities - * @param value The value of the string to get an object for - * @return SDLHMIZoneCapabilities - */ -+ (SDLHMIZoneCapabilities *)valueOf:(NSString *)value; - -/** - * @abstract store all possible SDLHMIZoneCapabilities values - * @return an array with all possible SDLHMIZoneCapabilities values inside - */ -+ (NSArray *)values; +typedef SDLEnum SDLHMIZoneCapabilities SDL_SWIFT_ENUM; /** * @abstract Indicates HMI available for front seat passengers. - * @return a SDLHMIZoneCapabilities with value of *FRONT* */ -+ (SDLHMIZoneCapabilities *)FRONT; +extern SDLHMIZoneCapabilities const SDLHMIZoneCapabilitiesFront; + /** * @abstract Indicates HMI available for rear seat passengers. - * @return a SDLHMIZoneCapabilities with value of *BACK* */ -+ (SDLHMIZoneCapabilities *)BACK; - -@end +extern SDLHMIZoneCapabilities const SDLHMIZoneCapabilitiesBack; diff --git a/SmartDeviceLink/SDLHMIZoneCapabilities.m b/SmartDeviceLink/SDLHMIZoneCapabilities.m index 56eacf671..9b9bed2ea 100644 --- a/SmartDeviceLink/SDLHMIZoneCapabilities.m +++ b/SmartDeviceLink/SDLHMIZoneCapabilities.m @@ -4,44 +4,5 @@ #import "SDLHMIZoneCapabilities.h" -SDLHMIZoneCapabilities *SDLHMIZoneCapabilities_FRONT = nil; -SDLHMIZoneCapabilities *SDLHMIZoneCapabilities_BACK = nil; - -NSArray *SDLHMIZoneCapabilities_values = nil; - -@implementation SDLHMIZoneCapabilities - -+ (SDLHMIZoneCapabilities *)valueOf:(NSString *)value { - for (SDLHMIZoneCapabilities *item in SDLHMIZoneCapabilities.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLHMIZoneCapabilities_values == nil) { - SDLHMIZoneCapabilities_values = @[ - SDLHMIZoneCapabilities.FRONT, - SDLHMIZoneCapabilities.BACK, - ]; - } - return SDLHMIZoneCapabilities_values; -} - -+ (SDLHMIZoneCapabilities *)FRONT { - if (SDLHMIZoneCapabilities_FRONT == nil) { - SDLHMIZoneCapabilities_FRONT = [[SDLHMIZoneCapabilities alloc] initWithValue:@"FRONT"]; - } - return SDLHMIZoneCapabilities_FRONT; -} - -+ (SDLHMIZoneCapabilities *)BACK { - if (SDLHMIZoneCapabilities_BACK == nil) { - SDLHMIZoneCapabilities_BACK = [[SDLHMIZoneCapabilities alloc] initWithValue:@"BACK"]; - } - return SDLHMIZoneCapabilities_BACK; -} - -@end +SDLHMIZoneCapabilities const SDLHMIZoneCapabilitiesFront = @"FRONT"; +SDLHMIZoneCapabilities const SDLHMIZoneCapabilitiesBack = @"BACK"; diff --git a/SmartDeviceLink/SDLHapticRect.h b/SmartDeviceLink/SDLHapticRect.h index 22b1b06fc..295ea55af 100644 --- a/SmartDeviceLink/SDLHapticRect.h +++ b/SmartDeviceLink/SDLHapticRect.h @@ -2,7 +2,7 @@ // SDLHapticRect.h // SmartDeviceLink-iOS // -// Created by Nicole on 8/2/17. +// Created by Nicole on 8/3/17. // Copyright © 2017 smartdevicelink. All rights reserved. // @@ -12,42 +12,23 @@ @class SDLRectangle; +NS_ASSUME_NONNULL_BEGIN + /** * Defines spatial for each user control object for video streaming application */ @interface SDLHapticRect : SDLRPCStruct -/** - * @abstract Constructs a newly allocated SDLHapticRect object - */ -- (instancetype)init; - -/** - * @abstract Constructs a newly allocated SDLHapticRect object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -/** - Create a SpatialStruct - - @param id The id of the rectangle - @param rect The SDLRectangle to use as the bounding rectangle - @return An new SDLHapticRect object - */ -- (instancetype)initWithId:(NSNumber *)id rect:(SDLRectangle *)rect; +- (instancetype)initWithId:(UInt32)id rect:(SDLRectangle *)rect; /** * A user control spatial identifier * Required, Integer, 0 - 2,000,000,000 */ -@property (strong, nonatomic) NSNumber *id; +@property (strong, nonatomic) NSNumber *id; -/** - The position of the haptic rectangle to be highlighted. The center of this rectangle will be "touched" when a press occurs. - - Required - */ @property (strong, nonatomic) SDLRectangle *rect; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLHapticRect.m b/SmartDeviceLink/SDLHapticRect.m index 00acb2d18..330756d4c 100644 --- a/SmartDeviceLink/SDLHapticRect.m +++ b/SmartDeviceLink/SDLHapticRect.m @@ -2,68 +2,47 @@ // SDLHapticRect.m // SmartDeviceLink-iOS // -// Created by Nicole on 8/2/17. +// Created by Nicole on 8/3/17. // Copyright © 2017 smartdevicelink. All rights reserved. // +#import "NSMutableDictionary+Store.h" #import "SDLHapticRect.h" - #import "SDLNames.h" #import "SDLRectangle.h" -@implementation SDLHapticRect +NS_ASSUME_NONNULL_BEGIN -- (instancetype)init { - if (self = [super init]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} +@implementation SDLHapticRect -- (instancetype)initWithId:(NSNumber *)id rect:(SDLRectangle *)rect { +- (instancetype)initWithId:(UInt32)id rect:(nonnull SDLRectangle *)rect { self = [self init]; if (!self) { return nil; } - self.id = id; + self.id = @(id); self.rect = rect; return self; } -- (void)setId:(NSNumber *)id { - if (id != nil) { - [store setObject:id forKey:NAMES_id]; - } else { - [store removeObjectForKey:NAMES_id]; - } +- (void)setId:(NSNumber *)id { + [store sdl_setObject:id forName:SDLNameId]; } -- (NSNumber *)id { - return [store objectForKey:NAMES_id]; +- (NSNumber *)id { + return [store sdl_objectForName:SDLNameId]; } - (void)setRect:(SDLRectangle *)rect { - if (rect != nil) { - [store setObject:rect forKey:NAMES_rect]; - } else { - [store removeObjectForKey:NAMES_rect]; - } + [store sdl_setObject:rect forName:SDLNameRect]; } - (SDLRectangle *)rect { - NSObject *obj = store[NAMES_rect]; - if (obj == nil || [obj isKindOfClass:SDLRectangle.class]) { - return (SDLRectangle *)obj; - } else { - return [[SDLRectangle alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } + return [store sdl_objectForName:SDLNameRect ofClass:SDLRectangle.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLHeadLampStatus.h b/SmartDeviceLink/SDLHeadLampStatus.h index 4cdfd992c..f695fdb2d 100644 --- a/SmartDeviceLink/SDLHeadLampStatus.h +++ b/SmartDeviceLink/SDLHeadLampStatus.h @@ -3,31 +3,28 @@ #import "SDLRPCMessage.h" -@class SDLAmbientLightStatus; +#import "SDLAmbientLightStatus.h" /** * Status of the head lamps */ -@interface SDLHeadLampStatus : SDLRPCStruct { -} -/** - * @abstract Constructs a new SDLHeadLampStatus object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLHeadLampStatus object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLHeadLampStatus : SDLRPCStruct + /** * @abstract A boolean value. Status of the low beam lamps. */ -@property (strong) NSNumber *lowBeamsOn; +@property (strong, nonatomic) NSNumber *lowBeamsOn; /** * @abstract A boolean value. Status of the high beam lamps. */ -@property (strong) NSNumber *highBeamsOn; -@property (strong) SDLAmbientLightStatus *ambientLightSensorStatus; +@property (strong, nonatomic) NSNumber *highBeamsOn; + +@property (nullable, strong, nonatomic) SDLAmbientLightStatus ambientLightSensorStatus; + @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLHeadLampStatus.m b/SmartDeviceLink/SDLHeadLampStatus.m index 44ed87b44..e26d3ab5d 100644 --- a/SmartDeviceLink/SDLHeadLampStatus.m +++ b/SmartDeviceLink/SDLHeadLampStatus.m @@ -3,63 +3,38 @@ #import "SDLHeadLampStatus.h" +#import "NSMutableDictionary+Store.h" #import "SDLAmbientLightStatus.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLHeadLampStatus -- (instancetype)init { - if (self = [super init]) { - } - return self; +- (void)setLowBeamsOn:(NSNumber *)lowBeamsOn { + [store sdl_setObject:lowBeamsOn forName:SDLNameLowBeamsOn]; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (NSNumber *)lowBeamsOn { + return [store sdl_objectForName:SDLNameLowBeamsOn]; } -- (void)setLowBeamsOn:(NSNumber *)lowBeamsOn { - if (lowBeamsOn != nil) { - [store setObject:lowBeamsOn forKey:NAMES_lowBeamsOn]; - } else { - [store removeObjectForKey:NAMES_lowBeamsOn]; - } +- (void)setHighBeamsOn:(NSNumber *)highBeamsOn { + [store sdl_setObject:highBeamsOn forName:SDLNameHighBeamsOn]; } -- (NSNumber *)lowBeamsOn { - return [store objectForKey:NAMES_lowBeamsOn]; +- (NSNumber *)highBeamsOn { + return [store sdl_objectForName:SDLNameHighBeamsOn]; } -- (void)setHighBeamsOn:(NSNumber *)highBeamsOn { - if (highBeamsOn != nil) { - [store setObject:highBeamsOn forKey:NAMES_highBeamsOn]; - } else { - [store removeObjectForKey:NAMES_highBeamsOn]; - } +- (void)setAmbientLightSensorStatus:(nullable SDLAmbientLightStatus)ambientLightSensorStatus { + [store sdl_setObject:ambientLightSensorStatus forName:SDLNameAmbientLightSensorStatus]; } -- (NSNumber *)highBeamsOn { - return [store objectForKey:NAMES_highBeamsOn]; -} - -- (void)setAmbientLightSensorStatus:(SDLAmbientLightStatus *)ambientLightSensorStatus { - if (ambientLightSensorStatus != nil) { - [store setObject:ambientLightSensorStatus forKey:NAMES_ambientLightSensorStatus]; - } else { - [store removeObjectForKey:NAMES_ambientLightSensorStatus]; - } -} - -- (SDLAmbientLightStatus *)ambientLightSensorStatus { - NSObject *obj = [store objectForKey:NAMES_ambientLightSensorStatus]; - if (obj == nil || [obj isKindOfClass:SDLAmbientLightStatus.class]) { - return (SDLAmbientLightStatus *)obj; - } else { - return [SDLAmbientLightStatus valueOf:(NSString *)obj]; - } +- (nullable SDLAmbientLightStatus)ambientLightSensorStatus { + return [store sdl_objectForName:SDLNameAmbientLightSensorStatus]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLHexUtility.h b/SmartDeviceLink/SDLHexUtility.h index 7b639a7af..95b564b57 100644 --- a/SmartDeviceLink/SDLHexUtility.h +++ b/SmartDeviceLink/SDLHexUtility.h @@ -5,9 +5,13 @@ #import +NS_ASSUME_NONNULL_BEGIN + @interface SDLHexUtility : NSObject + (NSString *)getHexString:(UInt8 *)bytes length:(NSUInteger)length; + (NSString *)getHexString:(NSData *)data; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLHexUtility.m b/SmartDeviceLink/SDLHexUtility.m index 0787d804a..b103322ed 100644 --- a/SmartDeviceLink/SDLHexUtility.m +++ b/SmartDeviceLink/SDLHexUtility.m @@ -7,6 +7,8 @@ @implementation SDLHexUtility +NS_ASSUME_NONNULL_BEGIN + // Using this function as a fail-safe, because we know this is successful. + (NSString *)getHexString:(UInt8 *)bytes length:(NSUInteger)length { NSMutableString *ret = [NSMutableString stringWithCapacity:(length * 2)]; @@ -58,3 +60,5 @@ + (NSString *)getHexString:(NSData *)data { @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLIAPSession.h b/SmartDeviceLink/SDLIAPSession.h index 751d10086..542d93786 100644 --- a/SmartDeviceLink/SDLIAPSession.h +++ b/SmartDeviceLink/SDLIAPSession.h @@ -8,15 +8,17 @@ @class SDLStreamDelegate; +NS_ASSUME_NONNULL_BEGIN + typedef void (^SessionCompletionHandler)(BOOL success); @interface SDLIAPSession : NSObject -@property (strong, atomic) EAAccessory *accessory; -@property (strong, atomic) NSString *protocol; -@property (strong, atomic) EASession *easession; -@property (weak) id delegate; -@property (strong, atomic) SDLStreamDelegate *streamDelegate; +@property (nullable, strong, nonatomic) EAAccessory *accessory; +@property (nullable, strong, nonatomic) NSString *protocol; +@property (nullable, strong, nonatomic) EASession *easession; +@property (nullable, weak, nonatomic) id delegate; +@property (nullable, strong, nonatomic) SDLStreamDelegate *streamDelegate; @property (assign, readonly, getter=isStopped) BOOL stopped; - (instancetype)initWithAccessory:(EAAccessory *)accessory @@ -26,3 +28,5 @@ typedef void (^SessionCompletionHandler)(BOOL success); - (void)stop; - (void)sendData:(NSData *)data; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLIAPSession.m b/SmartDeviceLink/SDLIAPSession.m index 9ae4c657f..86132320c 100644 --- a/SmartDeviceLink/SDLIAPSession.m +++ b/SmartDeviceLink/SDLIAPSession.m @@ -3,20 +3,22 @@ // #import "SDLIAPSession.h" -#import "SDLDebugTool.h" +#import "SDLLogMacros.h" #import "SDLMutableDataQueue.h" #import "SDLStreamDelegate.h" #import "SDLTimer.h" +NS_ASSUME_NONNULL_BEGIN + NSString *const IOStreamThreadName = @"com.smartdevicelink.iostream"; -NSTimeInterval const streamThreadWaitSecs = 1.0; +NSTimeInterval const StreamThreadWaitSecs = 1.0; @interface SDLIAPSession () -@property (assign) BOOL isInputStreamOpen; -@property (assign) BOOL isOutputStreamOpen; -@property (assign, nonatomic) BOOL isDataSession; -@property (nonatomic, strong) NSThread *ioStreamThread; +@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; @@ -28,19 +30,15 @@ @implementation SDLIAPSession #pragma mark - Lifecycle - (instancetype)initWithAccessory:(EAAccessory *)accessory forProtocol:(NSString *)protocol { - NSString *logMessage = [NSString stringWithFormat:@"SDLIAPSession initWithAccessory:%@ forProtocol:%@", accessory, protocol]; - [SDLDebugTool logInfo:logMessage]; + SDLLogD(@"SDLIAPSession initWithAccessory:%@ forProtocol:%@", accessory, protocol); self = [super init]; if (self) { - _delegate = nil; _isDataSession = [protocol isEqualToString:@"com.smartdevicelink.prot0"] ? NO : YES; _accessory = accessory; _protocol = protocol; _canceledSemaphore = dispatch_semaphore_create(0); _sendDataQueue = [[SDLMutableDataQueue alloc] init]; - _streamDelegate = nil; - _easession = nil; _isInputStreamOpen = NO; _isOutputStreamOpen = NO; } @@ -52,15 +50,13 @@ - (instancetype)initWithAccessory:(EAAccessory *)accessory forProtocol:(NSString - (BOOL)start { __weak typeof(self) weakSelf = self; - - NSString *logMessage = [NSString stringWithFormat:@"Opening EASession withAccessory:%@ forProtocol:%@", self.accessory.name, self.protocol]; - [SDLDebugTool logInfo:logMessage]; + SDLLogD(@"Opening EASession withAccessory:%@ forProtocol:%@", _accessory.name, _protocol); // 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])) { __strong typeof(self) strongSelf = weakSelf; - [SDLDebugTool logInfo:@"Created Session Object"]; + SDLLogD(@"Created Session Object"); strongSelf.streamDelegate.streamErrorHandler = [self streamErroredHandler]; strongSelf.streamDelegate.streamOpenHandler = [self streamOpenedHandler]; @@ -78,7 +74,7 @@ - (BOOL)start { return YES; } else { - [SDLDebugTool logInfo:@"Error: Could Not Create Session Object"]; + SDLLogE(@"Error: Could Not Create Session Object"); return NO; } } @@ -90,11 +86,11 @@ - (void)stop { if (self.isDataSession) { [self.ioStreamThread cancel]; - long lWait = dispatch_semaphore_wait(self.canceledSemaphore, dispatch_time(DISPATCH_TIME_NOW, streamThreadWaitSecs * NSEC_PER_SEC)); + long lWait = dispatch_semaphore_wait(self.canceledSemaphore, dispatch_time(DISPATCH_TIME_NOW, StreamThreadWaitSecs * NSEC_PER_SEC)); if (lWait == 0) { - [SDLDebugTool logInfo:@"Stream thread canceled"]; + SDLLogW(@"Stream thread cancelled"); } else { - [SDLDebugTool logInfo:@"Error: failed to cancel stream thread"]; + SDLLogE(@"Failed to cancel stream thread"); } self.ioStreamThread = nil; self.isDataSession = NO; @@ -141,8 +137,7 @@ - (void)sdl_dequeueAndWriteToOutputStream { } - (void)sdl_handleOutputStreamWriteError:(NSError *)error { - NSString *errString = [NSString stringWithFormat:@"Output stream error: %@", error]; - [SDLDebugTool logInfo:errString]; + SDLLogE(@"Output stream error: %@", error); // TODO: We should look at the domain and the code as a tuple and decide how to handle the error based on both values. For now, if the stream is closed, we will flush the send queue and leave it as-is otherwise so that temporary error conditions can be dealt with by retrying if (self.easession == nil || self.easession.outputStream == nil || @@ -165,7 +160,7 @@ - (void)sdl_accessoryEventLoop { [self startStream:self.easession.inputStream]; [self startStream:self.easession.outputStream]; - [SDLDebugTool logInfo:@"starting the event loop for accessory"]; + SDLLogD(@"Starting the accessory event loop"); do { if (self.sendDataQueue.count > 0 && !self.sendDataQueue.frontDequeued) { [self sdl_dequeueAndWriteToOutputStream]; @@ -174,7 +169,7 @@ - (void)sdl_accessoryEventLoop { [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.25f]]; } while (![NSThread currentThread].cancelled); - [SDLDebugTool logInfo:@"closing accessory session"]; + SDLLogD(@"Closing the accessory session for id: %tu, name: %@", self.easession.accessory.connectionID, self.easession.accessory.name); // Close I/O streams of the iAP session [self sdl_closeSession]; @@ -188,8 +183,7 @@ - (void)sdl_closeSession { return; } - NSString *closeSessionString = [NSString stringWithFormat:@"Close EASession: %tu", self.easession.accessory.connectionID]; - [SDLDebugTool logInfo:closeSessionString]; + SDLLogD(@"Close EASession for accessory id: %tu, name: %@", self.easession.accessory.connectionID, self.easession.accessory.name); [self stopStream:[self.easession inputStream]]; [self stopStream:[self.easession outputStream]]; @@ -226,11 +220,11 @@ - (void)stopStream:(NSStream *)stream { NSUInteger status2 = stream.streamStatus; if (status2 == NSStreamStatusClosed) { if (stream == [self.easession inputStream]) { - [SDLDebugTool logInfo:@"Input Stream Closed"]; - self.isInputStreamOpen = NO; + SDLLogD(@"Input Stream Closed"); + self.isInputStreamOpen = NO; } else if (stream == [self.easession outputStream]) { - [SDLDebugTool logInfo:@"Output Stream Closed"]; - self.isOutputStreamOpen = NO; + SDLLogD(@"Output Stream Closed"); + self.isOutputStreamOpen = NO; } } } @@ -245,10 +239,10 @@ - (SDLStreamOpenHandler)streamOpenedHandler { __strong typeof(weakSelf) strongSelf = weakSelf; if (stream == [strongSelf.easession outputStream]) { - [SDLDebugTool logInfo:@"Output Stream Opened"]; + SDLLogD(@"Output Stream Opened"); strongSelf.isOutputStreamOpen = YES; } else if (stream == [strongSelf.easession inputStream]) { - [SDLDebugTool logInfo:@"Input Stream Opened"]; + SDLLogD(@"Input Stream Opened"); strongSelf.isInputStreamOpen = YES; } @@ -265,7 +259,7 @@ - (SDLStreamErrorHandler)streamErroredHandler { return ^(NSStream *stream) { __strong typeof(weakSelf) strongSelf = weakSelf; - [SDLDebugTool logInfo:@"Stream Error"]; + SDLLogW(@"Stream Error: %@", stream); [strongSelf.delegate onSessionStreamsEnded:strongSelf]; }; } @@ -285,3 +279,5 @@ - (SDLStreamHasSpaceHandler)sdl_streamHasSpaceHandler { } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLIAPSessionDelegate.h b/SmartDeviceLink/SDLIAPSessionDelegate.h index 6ec7e189b..b391a38fc 100644 --- a/SmartDeviceLink/SDLIAPSessionDelegate.h +++ b/SmartDeviceLink/SDLIAPSessionDelegate.h @@ -5,9 +5,13 @@ #import @class SDLIAPSession; +NS_ASSUME_NONNULL_BEGIN + @protocol SDLIAPSessionDelegate - (void)onSessionInitializationCompleteForSession:(SDLIAPSession *)session; - (void)onSessionStreamsEnded:(SDLIAPSession *)session; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLIAPTransport.h b/SmartDeviceLink/SDLIAPTransport.h index ff082b9b3..94fd01bda 100644 --- a/SmartDeviceLink/SDLIAPTransport.h +++ b/SmartDeviceLink/SDLIAPTransport.h @@ -6,10 +6,13 @@ #import "SDLAbstractTransport.h" #import "SDLIAPSessionDelegate.h" +NS_ASSUME_NONNULL_BEGIN @interface SDLIAPTransport : SDLAbstractTransport -@property (strong, atomic) SDLIAPSession *controlSession; -@property (strong, atomic) SDLIAPSession *session; +@property (nullable, strong, nonatomic) SDLIAPSession *controlSession; +@property (nullable, strong, nonatomic) SDLIAPSession *session; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLIAPTransport.m b/SmartDeviceLink/SDLIAPTransport.m index 80396cd54..68b967e5d 100644 --- a/SmartDeviceLink/SDLIAPTransport.m +++ b/SmartDeviceLink/SDLIAPTransport.m @@ -7,35 +7,34 @@ #import "EAAccessory+SDLProtocols.h" #import "EAAccessoryManager+SDLProtocols.h" -#import "SDLDebugTool.h" #import "SDLGlobals.h" #import "SDLIAPSession.h" #import "SDLIAPTransport.h" -#import "SDLSiphonServer.h" +#import "SDLIAPTransport.h" +#import "SDLLogMacros.h" #import "SDLStreamDelegate.h" #import "SDLTimer.h" #import +NS_ASSUME_NONNULL_BEGIN -NSString *const legacyProtocolString = @"com.ford.sync.prot0"; -NSString *const controlProtocolString = @"com.smartdevicelink.prot0"; -NSString *const indexedProtocolStringPrefix = @"com.smartdevicelink.prot"; -NSString *const multiSessionProtocolString = @"com.smartdevicelink.multisession"; -NSString *const backgroundTaskName = @"com.sdl.transport.iap.backgroundTask"; - -int const createSessionRetries = 1; -int const protocolIndexTimeoutSeconds = 20; -int const streamOpenTimeoutSeconds = 2; +NSString *const LegacyProtocolString = @"com.ford.sync.prot0"; +NSString *const ControlProtocolString = @"com.smartdevicelink.prot0"; +NSString *const IndexedProtocolStringPrefix = @"com.smartdevicelink.prot"; +NSString *const MultiSessionProtocolString = @"com.smartdevicelink.multisession"; +NSString *const BackgroundTaskName = @"com.sdl.transport.iap.backgroundTask"; +int const CreateSessionRetries = 1; +int const ProtocolIndexTimeoutSeconds = 20; @interface SDLIAPTransport () { BOOL _alreadyDestructed; } -@property (assign) int retryCounter; -@property (strong) SDLTimer *protocolIndexTimer; +@property (assign, nonatomic) int retryCounter; +@property (assign, nonatomic) BOOL sessionSetupInProgress; @property (nonatomic, assign) UIBackgroundTaskIdentifier backgroundTaskId; -@property (nonatomic, assign) BOOL sessionSetupInProgress; +@property (nullable, strong, nonatomic) SDLTimer *protocolIndexTimer; @end @@ -43,6 +42,7 @@ @interface SDLIAPTransport () { @implementation SDLIAPTransport - (instancetype)init { + SDLLogV(@"SDLIAPTransport Init"); if (self = [super init]) { _alreadyDestructed = NO; _sessionSetupInProgress = NO; @@ -50,16 +50,18 @@ - (instancetype)init { _controlSession = nil; _retryCounter = 0; _protocolIndexTimer = nil; - + + // Get notifications if an accessory connects in future [self sdl_startEventListening]; - [SDLSiphonServer init]; + + // Wait for setup to complete before scanning for accessories } - - [SDLDebugTool logInfo:@"SDLIAPTransport Init"]; - + return self; } +#pragma mark - Background Task + /** * Starts a background task that allows the app to search for accessories and while the app is in the background. */ @@ -67,8 +69,10 @@ - (void)sdl_backgroundTaskStart { if (self.backgroundTaskId != UIBackgroundTaskInvalid) { return; } - - self.backgroundTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithName:backgroundTaskName expirationHandler:^{ + + SDLLogD(@"Starting background task"); + self.backgroundTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithName:BackgroundTaskName expirationHandler:^{ + SDLLogD(@"Background task expired"); [self sdl_backgroundTaskEnd]; }]; } @@ -80,7 +84,8 @@ - (void)sdl_backgroundTaskEnd { if (self.backgroundTaskId == UIBackgroundTaskInvalid) { return; } - + + SDLLogD(@"Ending background task"); [[UIApplication sharedApplication] endBackgroundTask:self.backgroundTaskId]; self.backgroundTaskId = UIBackgroundTaskInvalid; } @@ -92,14 +97,13 @@ - (void)sdl_backgroundTaskEnd { /** * Registers for system notifications about connected accessories and the app life cycle. */ - - (void)sdl_startEventListening { - [SDLDebugTool logInfo:@"SDLIAPTransport Listening For Events"]; + SDLLogV(@"SDLIAPTransport started listening for events"); [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_accessoryConnected:) name:EAAccessoryDidConnectNotification object:nil]; - + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_accessoryDisconnected:) name:EAAccessoryDidDisconnectNotification @@ -109,11 +113,12 @@ - (void)sdl_startEventListening { selector:@selector(sdl_applicationWillEnterForeground:) name:UIApplicationWillEnterForegroundNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_applicationDidEnterBackground:) name:UIApplicationDidEnterBackgroundNotification object:nil]; - + [[EAAccessoryManager sharedAccessoryManager] registerForLocalNotifications]; } @@ -121,10 +126,11 @@ - (void)sdl_startEventListening { * Unsubscribes to notifications. */ - (void)sdl_stopEventListening { - [SDLDebugTool logInfo:@"SDLIAPTransport Stopped Listening For Events"]; + SDLLogV(@"SDLIAPTransport stopped listening for events"); [[NSNotificationCenter defaultCenter] removeObserver:self]; } + #pragma mark EAAccessory Notifications /** @@ -134,15 +140,15 @@ - (void)sdl_stopEventListening { */ - (void)sdl_accessoryConnected:(NSNotification *)notification { EAAccessory *accessory = notification.userInfo[EAAccessoryKey]; + double retryDelay = self.retryDelay; - NSMutableString *logMessage = [NSMutableString stringWithFormat:@"Accessory Connected, Opening in %0.03fs", self.retryDelay]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; - + SDLLogD(@"Accessory Connected (%@), Opening in %0.03fs", notification.userInfo[EAAccessoryKey], retryDelay); + if ([[UIApplication sharedApplication] applicationState] != UIApplicationStateActive) { - [SDLDebugTool logInfo:@"Accessory connected while app is in background. Starting background task." withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogD(@"Accessory connected while app is in background. Starting background task."); [self sdl_backgroundTaskStart]; } - + self.retryCounter = 0; [self performSelector:@selector(sdl_connect:) withObject:accessory afterDelay:retryDelay]; } @@ -153,14 +159,12 @@ - (void)sdl_accessoryConnected:(NSNotification *)notification { * @param notification Contains information about the connected accessory */ - (void)sdl_accessoryDisconnected:(NSNotification *)notification { - [SDLDebugTool logInfo:@"Accessory Disconnected Event" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; - - // Only check for the data session, the control session is handled separately EAAccessory *accessory = [notification.userInfo objectForKey:EAAccessoryKey]; if (accessory.connectionID != self.session.accessory.connectionID) { - [SDLDebugTool logInfo:@"Accessory connection ID mismatch!!!" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogD(@"Accessory disconnected event (%@)", accessory); } if ([accessory.serialNumber isEqualToString:self.session.accessory.serialNumber]) { + SDLLogD(@"Connected accessory disconnected event"); self.retryCounter = 0; self.sessionSetupInProgress = NO; [self disconnect]; @@ -178,7 +182,7 @@ - (void)sdl_accessoryDisconnected:(NSNotification *)notification { * @param notification Notification */ - (void)sdl_applicationWillEnterForeground:(NSNotification *)notification { - [SDLDebugTool logInfo:@"App Foregrounded Event" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogV(@"App foregrounded, attempting connection"); [self sdl_backgroundTaskEnd]; self.retryCounter = 0; [self connect]; @@ -190,7 +194,7 @@ - (void)sdl_applicationWillEnterForeground:(NSNotification *)notification { * @param notification Notification */ - (void)sdl_applicationDidEnterBackground:(NSNotification *)notification { - [SDLDebugTool logInfo:@"App backgrounded, starting background task" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogV(@"App backgrounded, starting background task"); [self sdl_backgroundTaskStart]; } @@ -205,22 +209,26 @@ - (void)connect { * * @param accessory The accessory to attempt connection with or nil to scan for accessories. */ -- (void)sdl_connect:(EAAccessory *)accessory { +- (void)sdl_connect:(nullable EAAccessory *)accessory { if (!self.session && !self.sessionSetupInProgress) { + // We don't have a session are not attempting to set one up, attempt to connect + SDLLogV(@"Session not setup, starting setup"); self.sessionSetupInProgress = YES; [self sdl_establishSessionWithAccessory:accessory]; } else if (self.session) { - [SDLDebugTool logInfo:@"Session already established."]; + // Session already established + SDLLogV(@"Session already established"); } else { - [SDLDebugTool logInfo:@"Session setup already in progress."]; + // Session attempting to be established + SDLLogV(@"Session setup already in progress"); } } /** - * Cleans up after a disconnected accessory by closing any open input streams. + * Cleans up after a disconnected accessory by closing any open input streams. */ - (void)disconnect { - [SDLDebugTool logInfo:@"IAP Disconnecting" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + 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) { @@ -237,28 +245,71 @@ - (void)disconnect { #pragma mark - Creating Session Streams +/** + * Attempt to connect an accessory using the control or legacy protocols, then return whether or not we've generated an IAP session. + * + * @param accessory The accessory to attempt a connection with + * @return Whether or not we succesfully created a session. + */ - (BOOL)sdl_connectAccessory:(EAAccessory *)accessory { BOOL connecting = NO; - - if ([accessory supportsProtocol:multiSessionProtocolString] && SDL_SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"9")) { - [self sdl_createIAPDataSessionWithAccessory:accessory forProtocol:multiSessionProtocolString]; + if ([self.class sdl_supportsRequiredProtocolStrings] != nil) { + NSString *failedString = [self.class sdl_supportsRequiredProtocolStrings]; + SDLLogE(@"A required External Accessory protocol string is missing from the info.plist: %@", failedString); + NSAssert(NO, @"Some SDL protocol strings are not supported, check the README for all strings that must be included in your info.plist file. Missing string: %@", failedString); + return connecting; + } + + if ([accessory supportsProtocol:MultiSessionProtocolString] && SDL_SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"9")) { + [self sdl_createIAPDataSessionWithAccessory:accessory forProtocol:MultiSessionProtocolString]; connecting = YES; - } else if ([accessory supportsProtocol:controlProtocolString]) { + } else if ([accessory supportsProtocol:ControlProtocolString]) { [self sdl_createIAPControlSessionWithAccessory:accessory]; connecting = YES; - } else if ([accessory supportsProtocol:legacyProtocolString]) { - [self sdl_createIAPDataSessionWithAccessory:accessory forProtocol:legacyProtocolString]; + } else if ([accessory supportsProtocol:LegacyProtocolString]) { + [self sdl_createIAPDataSessionWithAccessory:accessory forProtocol:LegacyProtocolString]; connecting = YES; } - return connecting; } -- (void)sdl_establishSessionWithAccessory:(EAAccessory *)accessory { - [SDLDebugTool logInfo:@"Attempting To Connect"]; - if (self.retryCounter < createSessionRetries) { +/** + Check all required protocol strings in the info.plist dictionary. + + @return A missing protocol string or nil if all strings are supported. + */ ++ (nullable NSString *)sdl_supportsRequiredProtocolStrings { + NSArray *protocolStrings = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"UISupportedExternalAccessoryProtocols"]; + + if (![protocolStrings containsObject:MultiSessionProtocolString]) { + return MultiSessionProtocolString; + } + + if (![protocolStrings containsObject:LegacyProtocolString]) { + return LegacyProtocolString; + } + + for (int i = 0; i < 30; i++) { + NSString *indexedProtocolString = [NSString stringWithFormat:@"%@%i", IndexedProtocolStringPrefix, i]; + if (![protocolStrings containsObject:indexedProtocolString]) { + return indexedProtocolString; + } + } + + return nil; +} + +/** + * Attept 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"); + 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]) { @@ -266,89 +317,96 @@ - (void)sdl_establishSessionWithAccessory:(EAAccessory *)accessory { return; } + if ([self.class sdl_supportsRequiredProtocolStrings] != nil) { + NSString *failedString = [self.class sdl_supportsRequiredProtocolStrings]; + SDLLogE(@"A required External Accessory protocol string is missing from the info.plist: %@", failedString); + NSAssert(NO, @"Some SDL protocol strings are not supported, check the README for all strings that must be included in your info.plist file. Missing string: %@", failedString); + return; + } + // Determine if we can start a multi-app session or a legacy (single-app) session - if ((sdlAccessory = [EAAccessoryManager findAccessoryForProtocol:multiSessionProtocolString]) && SDL_SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"9")) { - [self sdl_createIAPDataSessionWithAccessory:sdlAccessory forProtocol:multiSessionProtocolString]; - } else if ((sdlAccessory = [EAAccessoryManager findAccessoryForProtocol:controlProtocolString])) { + if ((sdlAccessory = [EAAccessoryManager findAccessoryForProtocol:MultiSessionProtocolString]) && SDL_SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"9")) { + [self sdl_createIAPDataSessionWithAccessory:sdlAccessory forProtocol:MultiSessionProtocolString]; + } else if ((sdlAccessory = [EAAccessoryManager findAccessoryForProtocol:ControlProtocolString])) { [self sdl_createIAPControlSessionWithAccessory:sdlAccessory]; - } else if ((sdlAccessory = [EAAccessoryManager findAccessoryForProtocol:legacyProtocolString])) { - [self sdl_createIAPDataSessionWithAccessory:sdlAccessory forProtocol:legacyProtocolString]; + } else if ((sdlAccessory = [EAAccessoryManager findAccessoryForProtocol:LegacyProtocolString])) { + [self sdl_createIAPDataSessionWithAccessory:sdlAccessory forProtocol:LegacyProtocolString]; } else { // No compatible accessory - [SDLDebugTool logInfo:@"No accessory supporting a required sync protocol was found."]; + SDLLogV(@"No accessory supporting SDL was found, dismissing setup"); self.sessionSetupInProgress = NO; } - + } else { // We are beyond the number of retries allowed - [SDLDebugTool logInfo:@"Create session retries exhausted."]; + SDLLogW(@"Surpassed allowed retry attempts"); self.sessionSetupInProgress = NO; } } - (void)sdl_createIAPControlSessionWithAccessory:(EAAccessory *)accessory { - [SDLDebugTool logInfo:@"Starting MultiApp Session"]; - self.controlSession = [[SDLIAPSession alloc] initWithAccessory:accessory forProtocol:controlProtocolString]; - + SDLLogD(@"Starting IAP control session (%@)", accessory); + self.controlSession = [[SDLIAPSession alloc] initWithAccessory:accessory forProtocol:ControlProtocolString]; + if (self.controlSession) { self.controlSession.delegate = self; - + if (self.protocolIndexTimer == nil) { - self.protocolIndexTimer = [[SDLTimer alloc] initWithDuration:protocolIndexTimeoutSeconds repeat:NO]; + self.protocolIndexTimer = [[SDLTimer alloc] initWithDuration:ProtocolIndexTimeoutSeconds repeat:NO]; } else { [self.protocolIndexTimer cancel]; } - + __weak typeof(self) weakSelf = self; void (^elapsedBlock)(void) = ^{ __strong typeof(weakSelf) strongSelf = weakSelf; - - [SDLDebugTool logInfo:@"Protocol Index Timeout"]; + + SDLLogW(@"Control session timeout"); [strongSelf.controlSession stop]; strongSelf.controlSession.streamDelegate = nil; strongSelf.controlSession = nil; [strongSelf sdl_retryEstablishSession]; }; self.protocolIndexTimer.elapsedBlock = elapsedBlock; - + SDLStreamDelegate *controlStreamDelegate = [[SDLStreamDelegate alloc] init]; - self.controlSession.streamDelegate = controlStreamDelegate; controlStreamDelegate.streamHasBytesHandler = [self sdl_controlStreamHasBytesHandlerForAccessory:accessory]; controlStreamDelegate.streamEndHandler = [self sdl_controlStreamEndedHandler]; controlStreamDelegate.streamErrorHandler = [self sdl_controlStreamErroredHandler]; - + self.controlSession.streamDelegate = controlStreamDelegate; + if (![self.controlSession start]) { - [SDLDebugTool logInfo:@"Control Session Failed"]; + SDLLogW(@"Control session failed to setup (%@)", accessory); self.controlSession.streamDelegate = nil; self.controlSession = nil; [self sdl_retryEstablishSession]; } } else { - [SDLDebugTool logInfo:@"Failed MultiApp Control SDLIAPSession Initialization"]; + SDLLogW(@"Failed to setup control session (%@)", accessory); [self sdl_retryEstablishSession]; } } - (void)sdl_createIAPDataSessionWithAccessory:(EAAccessory *)accessory forProtocol:(NSString *)protocol { - [SDLDebugTool logInfo:@"Starting Data Session"]; + SDLLogD(@"Starting data session (%@:%@)", protocol, accessory); self.session = [[SDLIAPSession alloc] initWithAccessory:accessory forProtocol:protocol]; if (self.session) { self.session.delegate = self; - + SDLStreamDelegate *ioStreamDelegate = [[SDLStreamDelegate alloc] init]; self.session.streamDelegate = ioStreamDelegate; ioStreamDelegate.streamHasBytesHandler = [self sdl_dataStreamHasBytesHandler]; ioStreamDelegate.streamEndHandler = [self sdl_dataStreamEndedHandler]; ioStreamDelegate.streamErrorHandler = [self sdl_dataStreamErroredHandler]; - + if (![self.session start]) { - [SDLDebugTool logInfo:@"Data Session Failed"]; + SDLLogW(@"Data session failed to setup (%@)", accessory); self.session.streamDelegate = nil; self.session = nil; [self sdl_retryEstablishSession]; } } else { - [SDLDebugTool logInfo:@"Failed MultiApp Data SDLIAPSession Initialization"]; + SDLLogW(@"Failed to setup data session (%@)", accessory); [self sdl_retryEstablishSession]; } } @@ -361,7 +419,8 @@ - (void)sdl_retryEstablishSession { self.session.delegate = nil; self.session = nil; } - // No accessory to use this time, search connected accessories + + // Search connected accessories self.retryCounter = 0; [self sdl_connect:nil]; } @@ -369,15 +428,15 @@ - (void)sdl_retryEstablishSession { // This gets called after both I/O streams of the session have opened. - (void)onSessionInitializationCompleteForSession:(SDLIAPSession *)session { // Control Session Opened - if ([controlProtocolString isEqualToString:session.protocol]) { - [SDLDebugTool logInfo:@"Control Session Established"]; + if ([ControlProtocolString isEqualToString:session.protocol]) { + SDLLogD(@"Control Session Established"); [self.protocolIndexTimer start]; } - + // Data Session Opened - if (![controlProtocolString isEqualToString:session.protocol]) { + if (![ControlProtocolString isEqualToString:session.protocol]) { self.sessionSetupInProgress = NO; - [SDLDebugTool logInfo:@"Data Session Established"]; + SDLLogD(@"Data Session Established"); [self.delegate onTransportConnected]; } } @@ -387,8 +446,8 @@ - (void)onSessionInitializationCompleteForSession:(SDLIAPSession *)session { // Retry establishSession on Stream End events only if it was the control session and we haven't already connected on non-control protocol - (void)onSessionStreamsEnded:(SDLIAPSession *)session { - if (!self.session && [controlProtocolString isEqualToString:session.protocol]) { - [SDLDebugTool logInfo:@"onSessionStreamsEnded"]; + SDLLogV(@"Session streams ended (%@)", session.protocol); + if (!self.session && [ControlProtocolString isEqualToString:session.protocol]) { [session stop]; [self sdl_retryEstablishSession]; } @@ -401,7 +460,7 @@ - (void)sendData:(NSData *)data { if (self.session == nil || !self.session.accessory.connected) { return; } - + [self.session sendData:data]; } @@ -411,12 +470,11 @@ - (void)sendData:(NSData *)data { - (SDLStreamEndHandler)sdl_controlStreamEndedHandler { __weak typeof(self) weakSelf = self; - + return ^(NSStream *stream) { __strong typeof(weakSelf) strongSelf = weakSelf; - - [SDLDebugTool logInfo:@"Control Stream Event End"]; - + SDLLogD(@"Control stream ended"); + // End events come in pairs, only perform this once per set. if (strongSelf.controlSession != nil) { [strongSelf.protocolIndexTimer cancel]; @@ -430,46 +488,47 @@ - (SDLStreamEndHandler)sdl_controlStreamEndedHandler { - (SDLStreamHasBytesHandler)sdl_controlStreamHasBytesHandlerForAccessory:(EAAccessory *)accessory { __weak typeof(self) weakSelf = self; - + return ^(NSInputStream *istream) { __strong typeof(weakSelf) strongSelf = weakSelf; - - [SDLDebugTool logInfo:@"Control Stream Received Data"]; - + SDLLogV(@"Control stream received data"); + // Read in the stream a single byte at a time uint8_t buf[1]; NSUInteger len = [istream read:buf maxLength:1]; - if (len > 0) { - NSString *logMessage = [NSString stringWithFormat:@"Switching to protocol %@", [@(buf[0]) stringValue]]; - [SDLDebugTool logInfo:logMessage]; - - // Destroy the control session - [strongSelf.protocolIndexTimer cancel]; - dispatch_sync(dispatch_get_main_queue(), ^{ - [strongSelf.controlSession stop]; - strongSelf.controlSession.streamDelegate = nil; - strongSelf.controlSession = nil; + if (len <= 0) { + return; + } + + // If we have data from the stream + // Determine protocol string of the data session, then create that data session + NSString *indexedProtocolString = [NSString stringWithFormat:@"%@%@", IndexedProtocolStringPrefix, @(buf[0])]; + SDLLogD(@"Control Stream will switch to protocol %@", indexedProtocolString); + + // Destroy the control session + [strongSelf.protocolIndexTimer cancel]; + dispatch_sync(dispatch_get_main_queue(), ^{ + [strongSelf.controlSession stop]; + strongSelf.controlSession.streamDelegate = nil; + strongSelf.controlSession = nil; + }); + + if (accessory.isConnected) { + dispatch_async(dispatch_get_main_queue(), ^{ + self.retryCounter = 0; + [strongSelf sdl_createIAPDataSessionWithAccessory:accessory forProtocol:indexedProtocolString]; }); - - // Determine protocol string of the data session, then create that data session - NSString *indexedProtocolString = [NSString stringWithFormat:@"%@%@", indexedProtocolStringPrefix, @(buf[0])]; - if (accessory.isConnected) { - dispatch_async(dispatch_get_main_queue(), ^{ - self.retryCounter = 0; - [strongSelf sdl_createIAPDataSessionWithAccessory:accessory forProtocol:indexedProtocolString]; - }); - } } }; } - (SDLStreamErrorHandler)sdl_controlStreamErroredHandler { __weak typeof(self) weakSelf = self; - + return ^(NSStream *stream) { __strong typeof(weakSelf) strongSelf = weakSelf; - - [SDLDebugTool logInfo:@"Stream Error"]; + SDLLogE(@"Control stream error"); + [strongSelf.protocolIndexTimer cancel]; [strongSelf.controlSession stop]; strongSelf.controlSession.streamDelegate = nil; @@ -483,11 +542,10 @@ - (SDLStreamErrorHandler)sdl_controlStreamErroredHandler { - (SDLStreamEndHandler)sdl_dataStreamEndedHandler { __weak typeof(self) weakSelf = self; - + return ^(NSStream *stream) { __strong typeof(weakSelf) strongSelf = weakSelf; - - [SDLDebugTool logInfo:@"Data Stream Event End"]; + SDLLogD(@"Data stream ended"); if (strongSelf.session != nil) { // The handler will be called on the IO thread, but the session stop method must be called on the main thread and we need to wait for the session to stop before nil'ing it out. To do this, we use dispatch_sync() on the main thread. dispatch_sync(dispatch_get_main_queue(), ^{ @@ -496,23 +554,23 @@ - (SDLStreamEndHandler)sdl_dataStreamEndedHandler { strongSelf.session.streamDelegate = nil; strongSelf.session = nil; } - // We don't call sdl_retryEstablishSession here because the stream end event usually fires when the accessory is disconnected }; } - (SDLStreamHasBytesHandler)sdl_dataStreamHasBytesHandler { __weak typeof(self) weakSelf = self; - + return ^(NSInputStream *istream) { __strong typeof(weakSelf) strongSelf = weakSelf; - - uint8_t buf[[[SDLGlobals globals] mtuSizeForServiceType:SDLServiceType_RPC]]; + + uint8_t buf[[[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeRPC]]; while (istream.streamStatus == NSStreamStatusOpen && istream.hasBytesAvailable) { // It is necessary to check the stream status and whether there are bytes available because the dataStreamHasBytesHandler is executed on the IO thread and the accessory disconnect notification arrives on the main thread, causing data to be passed to the delegate while the main thread is tearing down the transport. - - NSInteger bytesRead = [istream read:buf maxLength:[[SDLGlobals globals] mtuSizeForServiceType:SDLServiceType_RPC]]; + + NSInteger bytesRead = [istream read:buf maxLength:[[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeRPC]]; NSData *dataIn = [NSData dataWithBytes:buf length:bytesRead]; + SDLLogBytes(dataIn, SDLLogBytesDirectionReceive); if (bytesRead > 0) { [strongSelf.delegate onDataReceived:dataIn]; @@ -525,58 +583,57 @@ - (SDLStreamHasBytesHandler)sdl_dataStreamHasBytesHandler { - (SDLStreamErrorHandler)sdl_dataStreamErroredHandler { __weak typeof(self) weakSelf = self; - + return ^(NSStream *stream) { __strong typeof(weakSelf) strongSelf = weakSelf; - - [SDLDebugTool logInfo:@"Data Stream Error"]; + SDLLogE(@"Data stream error"); dispatch_sync(dispatch_get_main_queue(), ^{ [strongSelf.session stop]; }); strongSelf.session.streamDelegate = nil; strongSelf.session = nil; - if (![legacyProtocolString isEqualToString:strongSelf.session.protocol]) { + if (![LegacyProtocolString isEqualToString:strongSelf.session.protocol]) { [strongSelf sdl_retryEstablishSession]; } }; } - (double)retryDelay { - const double min_value = 1.5; - const double max_value = 9.5; - double range_length = max_value - min_value; - - static double delay = 0; - + const double MinRetrySeconds = 1.5; + const double MaxRetrySeconds = 9.5; + double RetryRangeSeconds = MaxRetrySeconds - MinRetrySeconds; + + static double appDelaySeconds = 0; + // HAX: This pull the app name and hashes it in an attempt to provide a more even distribution of retry delays. The evidence that this does so is anecdotal. A more ideal solution would be to use a list of known, installed SDL apps on the phone to try and deterministically generate an even delay. - if (delay == 0) { + if (appDelaySeconds == 0) { NSString *appName = [[NSProcessInfo processInfo] processName]; if (appName == nil) { appName = @"noname"; } - + // Run the app name through an md5 hasher const char *ptr = [appName UTF8String]; unsigned char md5Buffer[CC_MD5_DIGEST_LENGTH]; CC_MD5(ptr, (unsigned int)strlen(ptr), md5Buffer); - + // Generate a string of the hex hash NSMutableString *output = [NSMutableString stringWithString:@"0x"]; for (int i = 0; i < 8; i++) { [output appendFormat:@"%02X", md5Buffer[i]]; } - + // Transform the string into a number between 0 and 1 unsigned long long firstHalf; NSScanner *pScanner = [NSScanner scannerWithString:output]; [pScanner scanHexLongLong:&firstHalf]; double hashBasedValueInRange0to1 = ((double)firstHalf) / 0xffffffffffffffff; - + // Transform the number into a number between min and max - delay = ((range_length * hashBasedValueInRange0to1) + min_value); + appDelaySeconds = ((RetryRangeSeconds * hashBasedValueInRange0to1) + MinRetrySeconds); } - - return delay; + + return appDelaySeconds; } @@ -592,13 +649,12 @@ - (void)sdl_destructObjects { } } -- (void)dispose { - [self sdl_destructObjects]; -} - - (void)dealloc { + [self disconnect]; [self sdl_destructObjects]; - [SDLDebugTool logInfo:@"SDLIAPTransport Dealloc" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogD(@"SDLIAPTransport dealloc"); } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLIgnitionStableStatus.h b/SmartDeviceLink/SDLIgnitionStableStatus.h index 96dcdfaa9..5a907af30 100644 --- a/SmartDeviceLink/SDLIgnitionStableStatus.h +++ b/SmartDeviceLink/SDLIgnitionStableStatus.h @@ -9,34 +9,16 @@ * * @since SDL 2.0 */ -@interface SDLIgnitionStableStatus : SDLEnum { -} - -/** - * @abstract return SDLIgnitionStableStatus - * @param value The value of the string to get an object for - * @return SDLIgnitionStableStatus - */ -+ (SDLIgnitionStableStatus *)valueOf:(NSString *)value; - -/** - * @abstract store all possible SDLIgnitionStableStatus values - * @return an array with all possible SDLIgnitionStableStatus values inside - */ -+ (NSArray *)values; +typedef SDLEnum SDLIgnitionStableStatus SDL_SWIFT_ENUM; /** * @abstract The current ignition switch status is considered not to be stable. - * @return the Ignition Stable Status with value of *IGNITION_SWITCH_NOT_STABLE* */ -+ (SDLIgnitionStableStatus *)IGNITION_SWITCH_NOT_STABLE; +extern SDLIgnitionStableStatus const SDLIgnitionStableStatusNotStable; /** * @abstract The current ignition switch status is considered to be stable. - * @return the Ignition Stable Status with value of *IGNITION_SWITCH_STABLE* */ -+ (SDLIgnitionStableStatus *)IGNITION_SWITCH_STABLE; - -+ (SDLIgnitionStableStatus *)MISSING_FROM_TRANSMITTER; +extern SDLIgnitionStableStatus const SDLIgnitionStableStatusStable; -@end +extern SDLIgnitionStableStatus const SDLIgnitionStableStatusMissingFromTransmitter; diff --git a/SmartDeviceLink/SDLIgnitionStableStatus.m b/SmartDeviceLink/SDLIgnitionStableStatus.m index 868723b32..8572adcb1 100644 --- a/SmartDeviceLink/SDLIgnitionStableStatus.m +++ b/SmartDeviceLink/SDLIgnitionStableStatus.m @@ -4,53 +4,6 @@ #import "SDLIgnitionStableStatus.h" -SDLIgnitionStableStatus *SDLIgnitionStableStatus_IGNITION_SWITCH_NOT_STABLE = nil; -SDLIgnitionStableStatus *SDLIgnitionStableStatus_IGNITION_SWITCH_STABLE = nil; -SDLIgnitionStableStatus *SDLIgnitionStableStatus_MISSING_FROM_TRANSMITTER = nil; - -NSArray *SDLIgnitionStableStatus_values = nil; - -@implementation SDLIgnitionStableStatus - -+ (SDLIgnitionStableStatus *)valueOf:(NSString *)value { - for (SDLIgnitionStableStatus *item in SDLIgnitionStableStatus.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLIgnitionStableStatus_values == nil) { - SDLIgnitionStableStatus_values = @[ - SDLIgnitionStableStatus.IGNITION_SWITCH_NOT_STABLE, - SDLIgnitionStableStatus.IGNITION_SWITCH_STABLE, - SDLIgnitionStableStatus.MISSING_FROM_TRANSMITTER, - ]; - } - return SDLIgnitionStableStatus_values; -} - -+ (SDLIgnitionStableStatus *)IGNITION_SWITCH_NOT_STABLE { - if (SDLIgnitionStableStatus_IGNITION_SWITCH_NOT_STABLE == nil) { - SDLIgnitionStableStatus_IGNITION_SWITCH_NOT_STABLE = [[SDLIgnitionStableStatus alloc] initWithValue:@"IGNITION_SWITCH_NOT_STABLE"]; - } - return SDLIgnitionStableStatus_IGNITION_SWITCH_NOT_STABLE; -} - -+ (SDLIgnitionStableStatus *)IGNITION_SWITCH_STABLE { - if (SDLIgnitionStableStatus_IGNITION_SWITCH_STABLE == nil) { - SDLIgnitionStableStatus_IGNITION_SWITCH_STABLE = [[SDLIgnitionStableStatus alloc] initWithValue:@"IGNITION_SWITCH_STABLE"]; - } - return SDLIgnitionStableStatus_IGNITION_SWITCH_STABLE; -} - -+ (SDLIgnitionStableStatus *)MISSING_FROM_TRANSMITTER { - if (SDLIgnitionStableStatus_MISSING_FROM_TRANSMITTER == nil) { - SDLIgnitionStableStatus_MISSING_FROM_TRANSMITTER = [[SDLIgnitionStableStatus alloc] initWithValue:@"MISSING_FROM_TRANSMITTER"]; - } - return SDLIgnitionStableStatus_MISSING_FROM_TRANSMITTER; -} - -@end +SDLIgnitionStableStatus const SDLIgnitionStableStatusNotStable = @"IGNITION_SWITCH_NOT_STABLE"; +SDLIgnitionStableStatus const SDLIgnitionStableStatusStable = @"IGNITION_SWITCH_STABLE"; +SDLIgnitionStableStatus const SDLIgnitionStableStatusMissingFromTransmitter = @"MISSING_FROM_TRANSMITTER"; diff --git a/SmartDeviceLink/SDLIgnitionStatus.h b/SmartDeviceLink/SDLIgnitionStatus.h index fadb3f5f4..5f2e95f6b 100644 --- a/SmartDeviceLink/SDLIgnitionStatus.h +++ b/SmartDeviceLink/SDLIgnitionStatus.h @@ -9,56 +9,34 @@ * * @since SDL 2.0 */ -@interface SDLIgnitionStatus : SDLEnum { -} - -/** - * @abstract return SDLIgnitionStatus - * @param value The value of the string to get an object for - * @return SDLIgnitionStatus object - */ -+ (SDLIgnitionStatus *)valueOf:(NSString *)value; - -/** - * @abstract store all possible SDLIgnitionStatus values - * @return an array with all possible SDLIgnitionStatus values inside - */ -+ (NSArray *)values; +typedef SDLEnum SDLIgnitionStatus SDL_SWIFT_ENUM; /** * @abstract Ignition status currently unknown - * @return Ignition Status with value of *UNKNOWN* */ -+ (SDLIgnitionStatus *)UNKNOWN; +extern SDLIgnitionStatus const SDLIgnitionStatusUnknown; /** * @abstract Ignition is off - * @return Ignition Status with value of *OFF* */ -+ (SDLIgnitionStatus *)OFF; +extern SDLIgnitionStatus const SDLIgnitionStatusOff; /** * @abstract Ignition is in mode accessory - * @return Ignition Status with value of *ACCESSORY* */ -+ (SDLIgnitionStatus *)ACCESSORY; +extern SDLIgnitionStatus const SDLIgnitionStatusAccessory; /** * @abstract Ignition is in mode run - * @return Ignition Status with value of *RUN* */ -+ (SDLIgnitionStatus *)RUN; +extern SDLIgnitionStatus const SDLIgnitionStatusRun; /** * @abstract Ignition is in mode start - * @return Ignition Status with value of *START* */ -+ (SDLIgnitionStatus *)START; +extern SDLIgnitionStatus const SDLIgnitionStatusStart; /** * @abstract Signal is invalid - * @return Ignition Status with value of *INVALID* */ -+ (SDLIgnitionStatus *)INVALID; - -@end +extern SDLIgnitionStatus const SDLIgnitionStatusInvalid; diff --git a/SmartDeviceLink/SDLIgnitionStatus.m b/SmartDeviceLink/SDLIgnitionStatus.m index ff069f0a0..b2ccf9881 100644 --- a/SmartDeviceLink/SDLIgnitionStatus.m +++ b/SmartDeviceLink/SDLIgnitionStatus.m @@ -4,80 +4,9 @@ #import "SDLIgnitionStatus.h" -SDLIgnitionStatus *SDLIgnitionStatus_UNKNOWN = nil; -SDLIgnitionStatus *SDLIgnitionStatus_OFF = nil; -SDLIgnitionStatus *SDLIgnitionStatus_ACCESSORY = nil; -SDLIgnitionStatus *SDLIgnitionStatus_RUN = nil; -SDLIgnitionStatus *SDLIgnitionStatus_START = nil; -SDLIgnitionStatus *SDLIgnitionStatus_INVALID = nil; - -NSArray *SDLIgnitionStatus_values = nil; - -@implementation SDLIgnitionStatus - -+ (SDLIgnitionStatus *)valueOf:(NSString *)value { - for (SDLIgnitionStatus *item in SDLIgnitionStatus.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLIgnitionStatus_values == nil) { - SDLIgnitionStatus_values = @[ - SDLIgnitionStatus.UNKNOWN, - SDLIgnitionStatus.OFF, - SDLIgnitionStatus.ACCESSORY, - SDLIgnitionStatus.RUN, - SDLIgnitionStatus.START, - SDLIgnitionStatus.INVALID, - ]; - } - return SDLIgnitionStatus_values; -} - -+ (SDLIgnitionStatus *)UNKNOWN { - if (SDLIgnitionStatus_UNKNOWN == nil) { - SDLIgnitionStatus_UNKNOWN = [[SDLIgnitionStatus alloc] initWithValue:@"UNKNOWN"]; - } - return SDLIgnitionStatus_UNKNOWN; -} - -+ (SDLIgnitionStatus *)OFF { - if (SDLIgnitionStatus_OFF == nil) { - SDLIgnitionStatus_OFF = [[SDLIgnitionStatus alloc] initWithValue:@"OFF"]; - } - return SDLIgnitionStatus_OFF; -} - -+ (SDLIgnitionStatus *)ACCESSORY { - if (SDLIgnitionStatus_ACCESSORY == nil) { - SDLIgnitionStatus_ACCESSORY = [[SDLIgnitionStatus alloc] initWithValue:@"ACCESSORY"]; - } - return SDLIgnitionStatus_ACCESSORY; -} - -+ (SDLIgnitionStatus *)RUN { - if (SDLIgnitionStatus_RUN == nil) { - SDLIgnitionStatus_RUN = [[SDLIgnitionStatus alloc] initWithValue:@"RUN"]; - } - return SDLIgnitionStatus_RUN; -} - -+ (SDLIgnitionStatus *)START { - if (SDLIgnitionStatus_START == nil) { - SDLIgnitionStatus_START = [[SDLIgnitionStatus alloc] initWithValue:@"START"]; - } - return SDLIgnitionStatus_START; -} - -+ (SDLIgnitionStatus *)INVALID { - if (SDLIgnitionStatus_INVALID == nil) { - SDLIgnitionStatus_INVALID = [[SDLIgnitionStatus alloc] initWithValue:@"INVALID"]; - } - return SDLIgnitionStatus_INVALID; -} - -@end +SDLIgnitionStatus const SDLIgnitionStatusUnknown = @"UNKNOWN"; +SDLIgnitionStatus const SDLIgnitionStatusOff = @"OFF"; +SDLIgnitionStatus const SDLIgnitionStatusAccessory = @"ACCESSORY"; +SDLIgnitionStatus const SDLIgnitionStatusRun = @"RUN"; +SDLIgnitionStatus const SDLIgnitionStatusStart = @"START"; +SDLIgnitionStatus const SDLIgnitionStatusInvalid = @"INVALID"; diff --git a/SmartDeviceLink/SDLImage.h b/SmartDeviceLink/SDLImage.h index 24c6dcdab..cb21b9545 100644 --- a/SmartDeviceLink/SDLImage.h +++ b/SmartDeviceLink/SDLImage.h @@ -3,42 +3,34 @@ #import "SDLRPCMessage.h" -@class SDLImageType; - +#import "SDLImageType.h" /** *Specifies, which image shall be used, e.g. in SDLAlerts or on SDLSoftbuttons provided the display supports it. * * @since SDL 2.0 */ -@interface SDLImage : SDLRPCStruct { -} -/** - * Constructs a newly allocated SDLImage object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * Constructs a newly allocated SDLImage object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLImage : SDLRPCStruct -- (instancetype)initWithName:(NSString *)name ofType:(SDLImageType *)imageType; +- (instancetype)initWithName:(NSString *)name ofType:(SDLImageType)imageType; /** * @abstract The static hex icon value or the binary image file name identifier (sent by SDLPutFile) * * Required, max length = 65535 */ -@property (strong) NSString *value; +@property (strong, nonatomic) NSString *value; /** * @abstract Describes, whether it is a static or dynamic image * * Required */ -@property (strong) SDLImageType *imageType; +@property (strong, nonatomic) SDLImageType imageType; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLImage.m b/SmartDeviceLink/SDLImage.m index 84721ec0e..ebd7e09d4 100644 --- a/SmartDeviceLink/SDLImage.m +++ b/SmartDeviceLink/SDLImage.m @@ -3,25 +3,14 @@ #import "SDLImage.h" -#import "SDLImageType.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLImage -- (instancetype)init { - if (self = [super init]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (instancetype)initWithName:(NSString *)name ofType:(SDLImageType *)imageType { +- (instancetype)initWithName:(NSString *)name ofType:(SDLImageType)imageType { self = [self init]; if (!self) { return nil; @@ -34,32 +23,21 @@ - (instancetype)initWithName:(NSString *)name ofType:(SDLImageType *)imageType { } - (void)setValue:(NSString *)value { - if (value != nil) { - [store setObject:value forKey:NAMES_value]; - } else { - [store removeObjectForKey:NAMES_value]; - } + [store sdl_setObject:value forName:SDLNameValue]; } - (NSString *)value { - return [store objectForKey:NAMES_value]; + return [store sdl_objectForName:SDLNameValue]; } -- (void)setImageType:(SDLImageType *)imageType { - if (imageType != nil) { - [store setObject:imageType forKey:NAMES_imageType]; - } else { - [store removeObjectForKey:NAMES_imageType]; - } +- (void)setImageType:(SDLImageType)imageType { + [store sdl_setObject:imageType forName:SDLNameImageType]; } -- (SDLImageType *)imageType { - NSObject *obj = [store objectForKey:NAMES_imageType]; - if (obj == nil || [obj isKindOfClass:SDLImageType.class]) { - return (SDLImageType *)obj; - } else { - return [SDLImageType valueOf:(NSString *)obj]; - } +- (SDLImageType)imageType { + return [store sdl_objectForName:SDLNameImageType]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLImageField.h b/SmartDeviceLink/SDLImageField.h index eb0942e79..f9ec61950 100644 --- a/SmartDeviceLink/SDLImageField.h +++ b/SmartDeviceLink/SDLImageField.h @@ -3,18 +3,19 @@ #import "SDLRPCMessage.h" -@class SDLImageFieldName; -@class SDLImageResolution; +#import "SDLFileType.h" +#import "SDLImageFieldName.h" +@class SDLImageResolution; -@interface SDLImageField : SDLRPCStruct { -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLImageField : SDLRPCStruct -@property (strong) SDLImageFieldName *name; -@property (strong) NSMutableArray *imageTypeSupported; -@property (strong) SDLImageResolution *imageResolution; +@property (strong, nonatomic) SDLImageFieldName name; +@property (strong, nonatomic) NSArray *imageTypeSupported; +@property (nullable, strong, nonatomic) SDLImageResolution *imageResolution; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLImageField.m b/SmartDeviceLink/SDLImageField.m index 18f90c113..d25b6e213 100644 --- a/SmartDeviceLink/SDLImageField.m +++ b/SmartDeviceLink/SDLImageField.m @@ -3,81 +3,39 @@ #import "SDLImageField.h" -#import "SDLFileType.h" +#import "NSMutableDictionary+Store.h" #import "SDLImageFieldName.h" #import "SDLImageResolution.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLImageField -- (instancetype)init { - if (self = [super init]) { - } - return self; +- (void)setName:(SDLImageFieldName)name { + [store sdl_setObject:name forName:SDLNameName]; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (SDLImageFieldName)name { + return [store sdl_objectForName:SDLNameName]; } -- (void)setName:(SDLImageFieldName *)name { - if (name != nil) { - [store setObject:name forKey:NAMES_name]; - } else { - [store removeObjectForKey:NAMES_name]; - } +- (void)setImageTypeSupported:(NSArray *)imageTypeSupported { + [store sdl_setObject:imageTypeSupported forName:SDLNameImageTypeSupported]; } -- (SDLImageFieldName *)name { - NSObject *obj = [store objectForKey:NAMES_name]; - if (obj == nil || [obj isKindOfClass:SDLImageFieldName.class]) { - return (SDLImageFieldName *)obj; - } else { - return [SDLImageFieldName valueOf:(NSString *)obj]; - } +- (NSArray *)imageTypeSupported { + return [store sdl_objectForName:SDLNameImageTypeSupported]; } -- (void)setImageTypeSupported:(NSMutableArray *)imageTypeSupported { - if (imageTypeSupported != nil) { - [store setObject:imageTypeSupported forKey:NAMES_imageTypeSupported]; - } else { - [store removeObjectForKey:NAMES_imageTypeSupported]; - } +- (void)setImageResolution:(nullable SDLImageResolution *)imageResolution { + [store sdl_setObject:imageResolution forName:SDLNameImageResolution]; } -- (NSMutableArray *)imageTypeSupported { - NSMutableArray *array = [store objectForKey:NAMES_imageTypeSupported]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLFileType.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSString *enumString in array) { - [newList addObject:[SDLFileType valueOf:enumString]]; - } - return newList; - } -} - -- (void)setImageResolution:(SDLImageResolution *)imageResolution { - if (imageResolution != nil) { - [store setObject:imageResolution forKey:NAMES_imageResolution]; - } else { - [store removeObjectForKey:NAMES_imageResolution]; - } -} - -- (SDLImageResolution *)imageResolution { - NSObject *obj = [store objectForKey:NAMES_imageResolution]; - if (obj == nil || [obj isKindOfClass:SDLImageResolution.class]) { - return (SDLImageResolution *)obj; - } else { - return [[SDLImageResolution alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLImageResolution *)imageResolution { + return [store sdl_objectForName:SDLNameImageResolution ofClass:SDLImageResolution.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLImageFieldName.h b/SmartDeviceLink/SDLImageFieldName.h index 5c63a5a71..96e42b3c4 100644 --- a/SmartDeviceLink/SDLImageFieldName.h +++ b/SmartDeviceLink/SDLImageFieldName.h @@ -10,73 +10,65 @@ * @since SmartDeviceLink 3.0 * */ -@interface SDLImageFieldName : SDLEnum { -} - -+ (SDLImageFieldName *)valueOf:(NSString *)value; -+ (NSArray *)values; +typedef SDLEnum SDLImageFieldName SDL_SWIFT_ENUM; /** The image field for SoftButton * */ -+ (SDLImageFieldName *)softButtonImage; +extern SDLImageFieldName const SDLImageFieldNameSoftButtonImage; /** The first image field for Choice. * */ -+ (SDLImageFieldName *)choiceImage; +extern SDLImageFieldName const SDLImageFieldNameChoiceImage; /** The scondary image field for Choice. * */ -+ (SDLImageFieldName *)choiceSecondaryImage; +extern SDLImageFieldName const SDLImageFieldNameChoiceSecondaryImage; /** The image field for vrHelpItem. * */ -+ (SDLImageFieldName *)vrHelpItem; +extern SDLImageFieldName const SDLImageFieldNameVoiceRecognitionHelpItem; /** The image field for Turn. * */ - -+ (SDLImageFieldName *)turnIcon; +extern SDLImageFieldName const SDLImageFieldNameTurnIcon; /** The image field for the menu icon in SetGlobalProperties. * */ -+ (SDLImageFieldName *)menuIcon; +extern SDLImageFieldName const SDLImageFieldNameMenuIcon; /** The image filed for AddCommand. * */ +extern SDLImageFieldName const SDLImageFieldNameCommandIcon; -+ (SDLImageFieldName *)cmdIcon; - -/** The iamage field for the app icon ( set by setAppIcon). +/** The image field for the app icon (set by setAppIcon). * */ -+ (SDLImageFieldName *)appIcon; +extern SDLImageFieldName const SDLImageFieldNameAppIcon; /** The image filed for Show. * */ -+ (SDLImageFieldName *)graphic; +extern SDLImageFieldName const SDLImageFieldNameGraphic; /** The primary image field for ShowConstant TBT. * */ -+ (SDLImageFieldName *)showConstantTBTIcon; +extern SDLImageFieldName const SDLImageFieldNameShowConstantTBTIcon; /** The secondary image field for ShowConstant TBT. * */ -+ (SDLImageFieldName *)showConstantTBTNextTurnIcon; +extern SDLImageFieldName const SDLImageFieldNameShowConstantTBTNextTurnIcon; /** * The optional image of a destination / location * @since SDL 4.0 */ -+ (SDLImageFieldName *)locationImage; - -@end +extern SDLImageFieldName const SDLImageFieldNameLocationImage; diff --git a/SmartDeviceLink/SDLImageFieldName.m b/SmartDeviceLink/SDLImageFieldName.m index 7baa57b45..74054d65a 100644 --- a/SmartDeviceLink/SDLImageFieldName.m +++ b/SmartDeviceLink/SDLImageFieldName.m @@ -4,134 +4,15 @@ #import "SDLImageFieldName.h" -SDLImageFieldName *SDLImageFieldName_softButtonImage = nil; -SDLImageFieldName *SDLImageFieldName_choiceImage = nil; -SDLImageFieldName *SDLImageFieldName_choiceSecondaryImage = nil; -SDLImageFieldName *SDLImageFieldName_vrHelpItem = nil; -SDLImageFieldName *SDLImageFieldName_turnIcon = nil; -SDLImageFieldName *SDLImageFieldName_menuIcon = nil; -SDLImageFieldName *SDLImageFieldName_cmdIcon = nil; -SDLImageFieldName *SDLImageFieldName_appIcon = nil; -SDLImageFieldName *SDLImageFieldName_graphic = nil; -SDLImageFieldName *SDLImageFieldName_showConstantTBTIcon = nil; -SDLImageFieldName *SDLImageFieldName_showConstantTBTNextTurnIcon = nil; -SDLImageFieldName *SDLImageFieldName_locationImage = nil; - -NSArray *SDLImageFieldName_values = nil; - -@implementation SDLImageFieldName - -+ (SDLImageFieldName *)valueOf:(NSString *)value { - for (SDLImageFieldName *item in SDLImageFieldName.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLImageFieldName_values == nil) { - SDLImageFieldName_values = @[ - SDLImageFieldName.softButtonImage, - SDLImageFieldName.choiceImage, - SDLImageFieldName.choiceSecondaryImage, - SDLImageFieldName.vrHelpItem, - SDLImageFieldName.turnIcon, - SDLImageFieldName.menuIcon, - SDLImageFieldName.cmdIcon, - SDLImageFieldName.appIcon, - SDLImageFieldName.graphic, - SDLImageFieldName.showConstantTBTIcon, - SDLImageFieldName.showConstantTBTNextTurnIcon, - SDLImageFieldName.locationImage, - ]; - } - return SDLImageFieldName_values; -} - -+ (SDLImageFieldName *)softButtonImage { - if (SDLImageFieldName_softButtonImage == nil) { - SDLImageFieldName_softButtonImage = [[SDLImageFieldName alloc] initWithValue:@"softButtonImage"]; - } - return SDLImageFieldName_softButtonImage; -} - -+ (SDLImageFieldName *)choiceImage { - if (SDLImageFieldName_choiceImage == nil) { - SDLImageFieldName_choiceImage = [[SDLImageFieldName alloc] initWithValue:@"choiceImage"]; - } - return SDLImageFieldName_choiceImage; -} - -+ (SDLImageFieldName *)choiceSecondaryImage { - if (SDLImageFieldName_choiceSecondaryImage == nil) { - SDLImageFieldName_choiceSecondaryImage = [[SDLImageFieldName alloc] initWithValue:@"choiceSecondaryImage"]; - } - return SDLImageFieldName_choiceSecondaryImage; -} - -+ (SDLImageFieldName *)vrHelpItem { - if (SDLImageFieldName_vrHelpItem == nil) { - SDLImageFieldName_vrHelpItem = [[SDLImageFieldName alloc] initWithValue:@"vrHelpItem"]; - } - return SDLImageFieldName_vrHelpItem; -} - -+ (SDLImageFieldName *)turnIcon { - if (SDLImageFieldName_turnIcon == nil) { - SDLImageFieldName_turnIcon = [[SDLImageFieldName alloc] initWithValue:@"turnIcon"]; - } - return SDLImageFieldName_turnIcon; -} - -+ (SDLImageFieldName *)menuIcon { - if (SDLImageFieldName_menuIcon == nil) { - SDLImageFieldName_menuIcon = [[SDLImageFieldName alloc] initWithValue:@"menuIcon"]; - } - return SDLImageFieldName_menuIcon; -} - -+ (SDLImageFieldName *)cmdIcon { - if (SDLImageFieldName_cmdIcon == nil) { - SDLImageFieldName_cmdIcon = [[SDLImageFieldName alloc] initWithValue:@"cmdIcon"]; - } - return SDLImageFieldName_cmdIcon; -} - -+ (SDLImageFieldName *)appIcon { - if (SDLImageFieldName_appIcon == nil) { - SDLImageFieldName_appIcon = [[SDLImageFieldName alloc] initWithValue:@"appIcon"]; - } - return SDLImageFieldName_appIcon; -} - -+ (SDLImageFieldName *)graphic { - if (SDLImageFieldName_graphic == nil) { - SDLImageFieldName_graphic = [[SDLImageFieldName alloc] initWithValue:@"graphic"]; - } - return SDLImageFieldName_graphic; -} - -+ (SDLImageFieldName *)showConstantTBTIcon { - if (SDLImageFieldName_showConstantTBTIcon == nil) { - SDLImageFieldName_showConstantTBTIcon = [[SDLImageFieldName alloc] initWithValue:@"showConstantTBTIcon"]; - } - return SDLImageFieldName_showConstantTBTIcon; -} - -+ (SDLImageFieldName *)showConstantTBTNextTurnIcon { - if (SDLImageFieldName_showConstantTBTNextTurnIcon == nil) { - SDLImageFieldName_showConstantTBTNextTurnIcon = [[SDLImageFieldName alloc] initWithValue:@"showConstantTBTNextTurnIcon"]; - } - return SDLImageFieldName_showConstantTBTNextTurnIcon; -} - -+ (SDLImageFieldName *)locationImage { - if (SDLImageFieldName_locationImage == nil) { - SDLImageFieldName_locationImage = [[SDLImageFieldName alloc] initWithValue:@"locationImage"]; - } - return SDLImageFieldName_locationImage; -} - -@end +SDLImageFieldName const SDLImageFieldNameSoftButtonImage = @"softButtonImage"; +SDLImageFieldName const SDLImageFieldNameChoiceImage = @"choiceImage"; +SDLImageFieldName const SDLImageFieldNameChoiceSecondaryImage = @"choiceSecondaryImage"; +SDLImageFieldName const SDLImageFieldNameVoiceRecognitionHelpItem = @"vrHelpItem"; +SDLImageFieldName const SDLImageFieldNameTurnIcon = @"turnIcon"; +SDLImageFieldName const SDLImageFieldNameMenuIcon = @"menuIcon"; +SDLImageFieldName const SDLImageFieldNameCommandIcon = @"cmdIcon"; +SDLImageFieldName const SDLImageFieldNameAppIcon = @"appIcon"; +SDLImageFieldName const SDLImageFieldNameGraphic = @"graphic"; +SDLImageFieldName const SDLImageFieldNameShowConstantTBTIcon = @"showConstantTBTIcon"; +SDLImageFieldName const SDLImageFieldNameShowConstantTBTNextTurnIcon = @"showConstantTBTNextTurnIcon"; +SDLImageFieldName const SDLImageFieldNameLocationImage = @"locationImage"; diff --git a/SmartDeviceLink/SDLImageResolution.h b/SmartDeviceLink/SDLImageResolution.h index bae946ab2..e6ec93ae9 100644 --- a/SmartDeviceLink/SDLImageResolution.h +++ b/SmartDeviceLink/SDLImageResolution.h @@ -4,13 +4,15 @@ #import "SDLRPCMessage.h" -@interface SDLImageResolution : SDLRPCStruct { -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLImageResolution : SDLRPCStruct -@property (strong) NSNumber *resolutionWidth; -@property (strong) NSNumber *resolutionHeight; +@property (strong, nonatomic) NSNumber *resolutionWidth; +@property (strong, nonatomic) NSNumber *resolutionHeight; + +- (instancetype)initWithWidth:(uint16_t)width height:(uint16_t)height; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLImageResolution.m b/SmartDeviceLink/SDLImageResolution.m index 7f10116de..f2f9c4566 100644 --- a/SmartDeviceLink/SDLImageResolution.m +++ b/SmartDeviceLink/SDLImageResolution.m @@ -4,44 +4,39 @@ #import "SDLImageResolution.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLImageResolution -- (instancetype)init { - if (self = [super init]) { - } - return self; -} +- (instancetype)initWithWidth:(uint16_t)width height:(uint16_t)height { + self = [self init]; + if (!self) { return nil; } + + self.resolutionWidth = @(width); + self.resolutionHeight = @(height); -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } return self; } -- (void)setResolutionWidth:(NSNumber *)resolutionWidth { - if (resolutionWidth != nil) { - [store setObject:resolutionWidth forKey:NAMES_resolutionWidth]; - } else { - [store removeObjectForKey:NAMES_resolutionWidth]; - } +- (void)setResolutionWidth:(NSNumber *)resolutionWidth { + [store sdl_setObject:resolutionWidth forName:SDLNameResolutionWidth]; } -- (NSNumber *)resolutionWidth { - return [store objectForKey:NAMES_resolutionWidth]; +- (NSNumber *)resolutionWidth { + return [store sdl_objectForName:SDLNameResolutionWidth]; } -- (void)setResolutionHeight:(NSNumber *)resolutionHeight { - if (resolutionHeight != nil) { - [store setObject:resolutionHeight forKey:NAMES_resolutionHeight]; - } else { - [store removeObjectForKey:NAMES_resolutionHeight]; - } +- (void)setResolutionHeight:(NSNumber *)resolutionHeight { + [store sdl_setObject:resolutionHeight forName:SDLNameResolutionHeight]; } -- (NSNumber *)resolutionHeight { - return [store objectForKey:NAMES_resolutionHeight]; +- (NSNumber *)resolutionHeight { + return [store sdl_objectForName:SDLNameResolutionHeight]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLImageType.h b/SmartDeviceLink/SDLImageType.h index 2b118a456..ccb05abae 100644 --- a/SmartDeviceLink/SDLImageType.h +++ b/SmartDeviceLink/SDLImageType.h @@ -9,39 +9,16 @@ * * @since SDL 2.0 */ -@interface SDLImageType : SDLEnum { -} - -/** - * @abstract return SDLImageType (STATIC / DYNAMIC) - * - * @param value The value of the string to get an object for - * - * @return An SDLImageType - */ -+ (SDLImageType *)valueOf:(NSString *)value; - -/** - * @abstract store all possible SDLImageType values - * - * @return An array with all possible SDLImageType values inside - */ -+ (NSArray *)values; +typedef SDLEnum SDLImageType SDL_SWIFT_ENUM; /** * @abstract Just the static hex icon value to be used - * - * @return The Image Type with value *STATIC* */ -+ (SDLImageType *)STATIC; +extern SDLImageType const SDLImageTypeStatic; /** * @abstract Binary image file to be used (identifier to be sent by SDLPutFile) * * @see SDLPutFile - * - * @return The Image Type with value *DYNAMIC* */ -+ (SDLImageType *)DYNAMIC; - -@end +extern SDLImageType const SDLImageTypeDynamic; diff --git a/SmartDeviceLink/SDLImageType.m b/SmartDeviceLink/SDLImageType.m index 878eb1773..ef0d39038 100644 --- a/SmartDeviceLink/SDLImageType.m +++ b/SmartDeviceLink/SDLImageType.m @@ -4,44 +4,5 @@ #import "SDLImageType.h" -SDLImageType *SDLImageType_STATIC = nil; -SDLImageType *SDLImageType_DYNAMIC = nil; - -NSArray *SDLImageType_values = nil; - -@implementation SDLImageType - -+ (SDLImageType *)valueOf:(NSString *)value { - for (SDLImageType *item in SDLImageType.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLImageType_values == nil) { - SDLImageType_values = @[ - SDLImageType.STATIC, - SDLImageType.DYNAMIC, - ]; - } - return SDLImageType_values; -} - -+ (SDLImageType *)STATIC { - if (SDLImageType_STATIC == nil) { - SDLImageType_STATIC = [[SDLImageType alloc] initWithValue:@"STATIC"]; - } - return SDLImageType_STATIC; -} - -+ (SDLImageType *)DYNAMIC { - if (SDLImageType_DYNAMIC == nil) { - SDLImageType_DYNAMIC = [[SDLImageType alloc] initWithValue:@"DYNAMIC"]; - } - return SDLImageType_DYNAMIC; -} - -@end +SDLImageType const SDLImageTypeStatic = @"STATIC"; +SDLImageType const SDLImageTypeDynamic = @"DYNAMIC"; diff --git a/SmartDeviceLink/SDLInteractionMode.h b/SmartDeviceLink/SDLInteractionMode.h index 442d4f8d7..ba53bc2e1 100644 --- a/SmartDeviceLink/SDLInteractionMode.h +++ b/SmartDeviceLink/SDLInteractionMode.h @@ -9,37 +9,19 @@ * * @since SDL 1.0 */ -@interface SDLInteractionMode : SDLEnum { -} - -/** - * @abstract SDLInteractionMode - * @param value The value of the string to get an object for - * @return SDLInteractionMode - */ -+ (SDLInteractionMode *)valueOf:(NSString *)value; - -/** - * @abstract store all possible SDLInteractionMode values - * @return an array with all possible SDLInteractionMode values inside - */ -+ (NSArray *)values; +typedef SDLEnum SDLInteractionMode SDL_SWIFT_ENUM; /** * @abstract Interaction Mode : Manual Only * @discussion This mode causes the interaction to occur only on the display, meaning the choices are presented and selected only via the display. Selections are viewed with the SEEKRIGHT, SEEKLEFT, TUNEUP, TUNEDOWN buttons. User's selection is indicated with the OK button - * - * @return Current Interaction Mode with value of *MANUAL_ONLY* */ -+ (SDLInteractionMode *)MANUAL_ONLY; +extern SDLInteractionMode const SDLInteractionModeManualOnly; /** * @abstract Interaction Mode : VR Only * @discussion This mode causes the interaction to occur only through TTS and VR. The user is prompted via TTS to select a choice by saying one of the choice's synonyms - * - * @return Current Interaction Mode with value of *VR_ONLY* */ -+ (SDLInteractionMode *)VR_ONLY; +extern SDLInteractionMode const SDLInteractionModeVoiceRecognitionOnly; /** * @abstract Interaction Mode : Manual & VR @@ -48,9 +30,5 @@ * If the user views selections as described in MANUAL_ONLY mode, the interaction becomes strictly, and irreversibly, a MANUAL_ONLY interaction (i.e. the VR session is cancelled, although the interaction itself is still in progress). If the user interacts with the VR session in any way (e.g. speaks a phrase, even if it is not a recognized choice), the interaction becomes strictly, and irreversibly, a VR_ONLY interaction (i.e. the MANUAL_ONLY mode forms of interaction will no longer be honored) * * The TriggerSource parameter of the *PerformInteraction* response will indicate which interaction mode the user finally chose to attempt the selection (even if the interaction did not end with a selection being made) - * - * @return Current Interaction Mode with value of *BOTH* */ -+ (SDLInteractionMode *)BOTH; - -@end +extern SDLInteractionMode const SDLInteractionModeBoth; diff --git a/SmartDeviceLink/SDLInteractionMode.m b/SmartDeviceLink/SDLInteractionMode.m index 07dc5f7b2..7bf24a388 100644 --- a/SmartDeviceLink/SDLInteractionMode.m +++ b/SmartDeviceLink/SDLInteractionMode.m @@ -4,53 +4,6 @@ #import "SDLInteractionMode.h" -SDLInteractionMode *SDLInteractionMode_MANUAL_ONLY = nil; -SDLInteractionMode *SDLInteractionMode_VR_ONLY = nil; -SDLInteractionMode *SDLInteractionMode_BOTH = nil; - -NSArray *SDLInteractionMode_values = nil; - -@implementation SDLInteractionMode - -+ (SDLInteractionMode *)valueOf:(NSString *)value { - for (SDLInteractionMode *item in SDLInteractionMode.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLInteractionMode_values == nil) { - SDLInteractionMode_values = @[ - SDLInteractionMode.MANUAL_ONLY, - SDLInteractionMode.VR_ONLY, - SDLInteractionMode.BOTH, - ]; - } - return SDLInteractionMode_values; -} - -+ (SDLInteractionMode *)MANUAL_ONLY { - if (SDLInteractionMode_MANUAL_ONLY == nil) { - SDLInteractionMode_MANUAL_ONLY = [[SDLInteractionMode alloc] initWithValue:@"MANUAL_ONLY"]; - } - return SDLInteractionMode_MANUAL_ONLY; -} - -+ (SDLInteractionMode *)VR_ONLY { - if (SDLInteractionMode_VR_ONLY == nil) { - SDLInteractionMode_VR_ONLY = [[SDLInteractionMode alloc] initWithValue:@"VR_ONLY"]; - } - return SDLInteractionMode_VR_ONLY; -} - -+ (SDLInteractionMode *)BOTH { - if (SDLInteractionMode_BOTH == nil) { - SDLInteractionMode_BOTH = [[SDLInteractionMode alloc] initWithValue:@"BOTH"]; - } - return SDLInteractionMode_BOTH; -} - -@end +SDLInteractionMode const SDLInteractionModeManualOnly = @"MANUAL_ONLY"; +SDLInteractionMode const SDLInteractionModeVoiceRecognitionOnly = @"VR_ONLY"; +SDLInteractionMode const SDLInteractionModeBoth = @"BOTH"; diff --git a/SmartDeviceLink/SDLJingle.h b/SmartDeviceLink/SDLJingle.h deleted file mode 100644 index 180ca85ef..000000000 --- a/SmartDeviceLink/SDLJingle.h +++ /dev/null @@ -1,16 +0,0 @@ -// SDLJingle.h -// - - -#import - -@interface SDLJingle : NSObject { -} - -+ (NSString *)NEGATIVE_JINGLE; -+ (NSString *)POSITIVE_JINGLE; -+ (NSString *)LISTEN_JINGLE; -+ (NSString *)INITIAL_JINGLE; -+ (NSString *)HELP_JINGLE; - -@end diff --git a/SmartDeviceLink/SDLJingle.m b/SmartDeviceLink/SDLJingle.m deleted file mode 100644 index 7484bfabf..000000000 --- a/SmartDeviceLink/SDLJingle.m +++ /dev/null @@ -1,25 +0,0 @@ -// SDLJingle.m -// - - -#import "SDLJingle.h" - -@implementation SDLJingle - -+ (NSString *)NEGATIVE_JINGLE { - return @"NEGATIVE_JINGLE"; -} -+ (NSString *)POSITIVE_JINGLE { - return @"POSITIVE_JINGLE"; -} -+ (NSString *)LISTEN_JINGLE { - return @"LISTEN_JINGLE"; -} -+ (NSString *)INITIAL_JINGLE { - return @"INITIAL_JINGLE"; -} -+ (NSString *)HELP_JINGLE { - return @"HELP_JINGLE"; -} - -@end diff --git a/SmartDeviceLink/SDLJsonDecoder.h b/SmartDeviceLink/SDLJsonDecoder.h deleted file mode 100644 index 4723989db..000000000 --- a/SmartDeviceLink/SDLJsonDecoder.h +++ /dev/null @@ -1,14 +0,0 @@ -// SDLJsonDecoder.h -// - -#import - -#import "SDLDecoder.h" - - -@interface SDLJsonDecoder : NSObject { -} - -+ (NSObject *)instance; - -@end diff --git a/SmartDeviceLink/SDLJsonDecoder.m b/SmartDeviceLink/SDLJsonDecoder.m deleted file mode 100644 index 0ff561df8..000000000 --- a/SmartDeviceLink/SDLJsonDecoder.m +++ /dev/null @@ -1,38 +0,0 @@ -// SDLJsonDecoder.m -// - -#import "SDLJsonDecoder.h" - -#import "SDLDebugTool.h" -#import "SDLNames.h" - - -@implementation SDLJsonDecoder - -static NSObject *jsonDecoderInstance; - -+ (NSObject *)instance { - if (jsonDecoderInstance == nil) { - jsonDecoderInstance = [[SDLJsonDecoder alloc] init]; - } - return jsonDecoderInstance; -} - -- (NSDictionary *)decode:(NSData *)data { - if (data.length == 0) { - [SDLDebugTool logInfo:@"Warning: Decoding JSON data, no JSON to decode" withType:SDLDebugType_Protocol]; - return nil; - } - - NSError *error = nil; - NSDictionary *jsonObject = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; - - if (error != nil) { - [SDLDebugTool logInfo:[NSString stringWithFormat:@"Error decoding JSON data: %@", error] withType:SDLDebugType_Protocol]; - return nil; - } - - return jsonObject; -} - -@end diff --git a/SmartDeviceLink/SDLJsonEncoder.h b/SmartDeviceLink/SDLJsonEncoder.h deleted file mode 100644 index 680fe5da6..000000000 --- a/SmartDeviceLink/SDLJsonEncoder.h +++ /dev/null @@ -1,14 +0,0 @@ -// SDLJsonEncoder.h -// - -#import - -#import "SDLEncoder.h" - - -@interface SDLJsonEncoder : NSObject { -} - -+ (NSObject *)instance; - -@end diff --git a/SmartDeviceLink/SDLJsonEncoder.m b/SmartDeviceLink/SDLJsonEncoder.m deleted file mode 100644 index dbb2374d9..000000000 --- a/SmartDeviceLink/SDLJsonEncoder.m +++ /dev/null @@ -1,38 +0,0 @@ -// SDLJsonEncoder.m -// - -#import "SDLJsonEncoder.h" - -#import "SDLDebugTool.h" -#import "SDLNames.h" - - -@implementation SDLJsonEncoder - -static NSObject *jsonEncoderInstance; - -+ (NSObject *)instance { - if (jsonEncoderInstance == nil) { - jsonEncoderInstance = [[SDLJsonEncoder alloc] init]; - } - return jsonEncoderInstance; -} - -- (NSData *)encodeDictionary:(NSDictionary *)dict { - if (dict == nil) { - [SDLDebugTool logInfo:@"Warning: Encoding dictionary to JSON, no dictionary passed" withType:SDLDebugType_Protocol]; - return nil; - } - - NSError *error = nil; - NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:kNilOptions error:&error]; - - if (error != nil) { - [SDLDebugTool logInfo:[NSString stringWithFormat:@"Error encoding JSON data: %@", error] withType:SDLDebugType_Protocol]; - return nil; - } - - return jsonData; -} - -@end diff --git a/SmartDeviceLink/SDLKeyboardEvent.h b/SmartDeviceLink/SDLKeyboardEvent.h index f0d90530e..fad15bcab 100644 --- a/SmartDeviceLink/SDLKeyboardEvent.h +++ b/SmartDeviceLink/SDLKeyboardEvent.h @@ -9,37 +9,29 @@ * @since SmartDeviceLink 3.0 * */ -@interface SDLKeyboardEvent : SDLEnum { -} - -+ (SDLKeyboardEvent *)valueOf:(NSString *)value; -+ (NSArray *)values; +typedef SDLEnum SDLKeyboardEvent SDL_SWIFT_ENUM; /** The use has pressed the keyboard key (applies to both SINGLE_KEYPRESS and RESEND_CURRENT_ENTRY modes). * */ -+ (SDLKeyboardEvent *)KEYPRESS; +extern SDLKeyboardEvent const SDLKeyboardEventKeypress; /** The User has finished entering text from the keyboard and submitted the entry. * */ - -+ (SDLKeyboardEvent *)ENTRY_SUBMITTED; +extern SDLKeyboardEvent const SDLKeyboardEventSubmitted; /** The User has pressed the HMI-defined "Cancel" button. * */ -+ (SDLKeyboardEvent *)ENTRY_CANCELLED; - +extern SDLKeyboardEvent const SDLKeyboardEventCancelled; /** The User has not finished entering text and the keyboard is aborted with the event of higher priority. * */ -+ (SDLKeyboardEvent *)ENTRY_ABORTED; +extern SDLKeyboardEvent const SDLKeyboardEventAborted; /** * @since SDL 4.0 */ -+ (SDLKeyboardEvent *)ENTRY_VOICE; - -@end +extern SDLKeyboardEvent const SDLKeyboardEventVoice; diff --git a/SmartDeviceLink/SDLKeyboardEvent.m b/SmartDeviceLink/SDLKeyboardEvent.m index 65a7d8e89..67f4e60f2 100644 --- a/SmartDeviceLink/SDLKeyboardEvent.m +++ b/SmartDeviceLink/SDLKeyboardEvent.m @@ -4,71 +4,8 @@ #import "SDLKeyboardEvent.h" -SDLKeyboardEvent *SDLKeyboardEvent_KEYPRESS = nil; -SDLKeyboardEvent *SDLKeyboardEvent_ENTRY_SUBMITTED = nil; -SDLKeyboardEvent *SDLKeyboardEvent_ENTRY_CANCELLED = nil; -SDLKeyboardEvent *SDLKeyboardEvent_ENTRY_ABORTED = nil; -SDLKeyboardEvent *SDLKeyboardEvent_ENTRY_VOICE = nil; - -NSArray *SDLKeyboardEvent_values = nil; - -@implementation SDLKeyboardEvent - -+ (SDLKeyboardEvent *)valueOf:(NSString *)value { - for (SDLKeyboardEvent *item in SDLKeyboardEvent.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLKeyboardEvent_values == nil) { - SDLKeyboardEvent_values = @[ - SDLKeyboardEvent.KEYPRESS, - SDLKeyboardEvent.ENTRY_SUBMITTED, - SDLKeyboardEvent.ENTRY_CANCELLED, - SDLKeyboardEvent.ENTRY_ABORTED, - SDLKeyboardEvent.ENTRY_VOICE, - ]; - } - return SDLKeyboardEvent_values; -} - -+ (SDLKeyboardEvent *)KEYPRESS { - if (SDLKeyboardEvent_KEYPRESS == nil) { - SDLKeyboardEvent_KEYPRESS = [[SDLKeyboardEvent alloc] initWithValue:@"KEYPRESS"]; - } - return SDLKeyboardEvent_KEYPRESS; -} - -+ (SDLKeyboardEvent *)ENTRY_SUBMITTED { - if (SDLKeyboardEvent_ENTRY_SUBMITTED == nil) { - SDLKeyboardEvent_ENTRY_SUBMITTED = [[SDLKeyboardEvent alloc] initWithValue:@"ENTRY_SUBMITTED"]; - } - return SDLKeyboardEvent_ENTRY_SUBMITTED; -} - -+ (SDLKeyboardEvent *)ENTRY_CANCELLED { - if (SDLKeyboardEvent_ENTRY_CANCELLED == nil) { - SDLKeyboardEvent_ENTRY_CANCELLED = [[SDLKeyboardEvent alloc] initWithValue:@"ENTRY_CANCELLED"]; - } - return SDLKeyboardEvent_ENTRY_CANCELLED; -} - -+ (SDLKeyboardEvent *)ENTRY_ABORTED { - if (SDLKeyboardEvent_ENTRY_ABORTED == nil) { - SDLKeyboardEvent_ENTRY_ABORTED = [[SDLKeyboardEvent alloc] initWithValue:@"ENTRY_ABORTED"]; - } - return SDLKeyboardEvent_ENTRY_ABORTED; -} - -+ (SDLKeyboardEvent *)ENTRY_VOICE { - if (SDLKeyboardEvent_ENTRY_VOICE == nil) { - SDLKeyboardEvent_ENTRY_VOICE = [[SDLKeyboardEvent alloc] initWithValue:@"ENTRY_VOICE"]; - } - return SDLKeyboardEvent_ENTRY_VOICE; -} - -@end +SDLKeyboardEvent const SDLKeyboardEventKeypress = @"KEYPRESS"; +SDLKeyboardEvent const SDLKeyboardEventSubmitted = @"ENTRY_SUBMITTED"; +SDLKeyboardEvent const SDLKeyboardEventCancelled = @"ENTRY_CANCELLED"; +SDLKeyboardEvent const SDLKeyboardEventAborted = @"ENTRY_ABORTED"; +SDLKeyboardEvent const SDLKeyboardEventVoice = @"ENTRY_VOICE"; diff --git a/SmartDeviceLink/SDLKeyboardLayout.h b/SmartDeviceLink/SDLKeyboardLayout.h index 042caf9d0..2f0fd6fe7 100644 --- a/SmartDeviceLink/SDLKeyboardLayout.h +++ b/SmartDeviceLink/SDLKeyboardLayout.h @@ -9,25 +9,19 @@ *Since SmartDeviceLink 3.0 * */ -@interface SDLKeyboardLayout : SDLEnum { -} +typedef SDLEnum SDLKeyboardLayout SDL_SWIFT_ENUM; -+ (SDLKeyboardLayout *)valueOf:(NSString *)value; -+ (NSArray *)values; /** QWERTY layout (the name comes from the first six keys
    appearing on the top left letter row of the keyboard and read from left to right) * */ -+ (SDLKeyboardLayout *)QWERTY; +extern SDLKeyboardLayout const SDLKeyboardLayoutQWERTY; /** QWERTZ layout (the name comes from the first six keys
    appearing on the top left letter row of the keyboard and read from left to right) * */ -+ (SDLKeyboardLayout *)QWERTZ; +extern SDLKeyboardLayout const SDLKeyboardLayoutQWERTZ; /** AZERTY layout (the name comes from the first six keys
    appearing on the top left letter row of the keyboard and read from left to right) * */ - -+ (SDLKeyboardLayout *)AZERTY; - -@end +extern SDLKeyboardLayout const SDLKeyboardLayoutAZERTY; diff --git a/SmartDeviceLink/SDLKeyboardLayout.m b/SmartDeviceLink/SDLKeyboardLayout.m index 700bd2622..7fa8e1958 100644 --- a/SmartDeviceLink/SDLKeyboardLayout.m +++ b/SmartDeviceLink/SDLKeyboardLayout.m @@ -4,53 +4,6 @@ #import "SDLKeyboardLayout.h" -SDLKeyboardLayout *SDLKeyboardLayout_QWERTY = nil; -SDLKeyboardLayout *SDLKeyboardLayout_QWERTZ = nil; -SDLKeyboardLayout *SDLKeyboardLayout_AZERTY = nil; - -NSArray *SDLKeyboardLayout_values = nil; - -@implementation SDLKeyboardLayout - -+ (SDLKeyboardLayout *)valueOf:(NSString *)value { - for (SDLKeyboardLayout *item in SDLKeyboardLayout.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLKeyboardLayout_values == nil) { - SDLKeyboardLayout_values = @[ - SDLKeyboardLayout.QWERTY, - SDLKeyboardLayout.QWERTZ, - SDLKeyboardLayout.AZERTY, - ]; - } - return SDLKeyboardLayout_values; -} - -+ (SDLKeyboardLayout *)QWERTY { - if (SDLKeyboardLayout_QWERTY == nil) { - SDLKeyboardLayout_QWERTY = [[SDLKeyboardLayout alloc] initWithValue:@"QWERTY"]; - } - return SDLKeyboardLayout_QWERTY; -} - -+ (SDLKeyboardLayout *)QWERTZ { - if (SDLKeyboardLayout_QWERTZ == nil) { - SDLKeyboardLayout_QWERTZ = [[SDLKeyboardLayout alloc] initWithValue:@"QWERTZ"]; - } - return SDLKeyboardLayout_QWERTZ; -} - -+ (SDLKeyboardLayout *)AZERTY { - if (SDLKeyboardLayout_AZERTY == nil) { - SDLKeyboardLayout_AZERTY = [[SDLKeyboardLayout alloc] initWithValue:@"AZERTY"]; - } - return SDLKeyboardLayout_AZERTY; -} - -@end +SDLKeyboardLayout const SDLKeyboardLayoutQWERTY = @"QWERTY"; +SDLKeyboardLayout const SDLKeyboardLayoutQWERTZ = @"QWERTZ"; +SDLKeyboardLayout const SDLKeyboardLayoutAZERTY = @"AZERTY"; diff --git a/SmartDeviceLink/SDLKeyboardProperties.h b/SmartDeviceLink/SDLKeyboardProperties.h index 25498b428..30927710f 100644 --- a/SmartDeviceLink/SDLKeyboardProperties.h +++ b/SmartDeviceLink/SDLKeyboardProperties.h @@ -3,24 +3,22 @@ #import "SDLRPCMessage.h" -@class SDLLanguage; -@class SDLKeyboardLayout; -@class SDLKeypressMode; +#import "SDLKeyboardLayout.h" +#import "SDLKeypressMode.h" +#import "SDLLanguage.h" +NS_ASSUME_NONNULL_BEGIN -@interface SDLKeyboardProperties : SDLRPCStruct { -} +@interface SDLKeyboardProperties : SDLRPCStruct -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +- (instancetype)initWithLanguage:(nullable SDLLanguage)language layout:(nullable SDLKeyboardLayout)layout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray *)limitedCharacterList autoCompleteText:(nullable NSString *)autoCompleteText; -// TODO: (Alex M.)[2016-12-1] Add missing generic -- (instancetype)initWithLanguage:(SDLLanguage *)language layout:(SDLKeyboardLayout *)layout keypressMode:(SDLKeypressMode *)keypressMode limitedCharacterList:(NSArray *)limitedCharacterList autoCompleteText:(NSString *)autoCompleteText; - -@property (strong) SDLLanguage *language; -@property (strong) SDLKeyboardLayout *keyboardLayout; -@property (strong) SDLKeypressMode *keypressMode; -@property (strong) NSMutableArray *limitedCharacterList; -@property (strong) NSString *autoCompleteText; +@property (nullable, strong, nonatomic) SDLLanguage language; +@property (nullable, strong, nonatomic) SDLKeyboardLayout keyboardLayout; +@property (nullable, strong, nonatomic) SDLKeypressMode keypressMode; +@property (nullable, strong, nonatomic) NSArray *limitedCharacterList; +@property (nullable, strong, nonatomic) NSString *autoCompleteText; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLKeyboardProperties.m b/SmartDeviceLink/SDLKeyboardProperties.m index d5c95bbc2..3c79612f8 100644 --- a/SmartDeviceLink/SDLKeyboardProperties.m +++ b/SmartDeviceLink/SDLKeyboardProperties.m @@ -3,27 +3,14 @@ #import "SDLKeyboardProperties.h" -#import "SDLKeyboardLayout.h" -#import "SDLKeypressMode.h" -#import "SDLLanguage.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLKeyboardProperties -- (instancetype)init { - if (self = [super init]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (instancetype)initWithLanguage:(SDLLanguage *)language layout:(SDLKeyboardLayout *)layout keypressMode:(SDLKeypressMode *)keypressMode limitedCharacterList:(NSArray *)limitedCharacterList autoCompleteText:(NSString *)autoCompleteText { +- (instancetype)initWithLanguage:(nullable SDLLanguage)language layout:(nullable SDLKeyboardLayout)layout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray *)limitedCharacterList autoCompleteText:(nullable NSString *)autoCompleteText { self = [self init]; if (!self) { return nil; @@ -38,79 +25,46 @@ - (instancetype)initWithLanguage:(SDLLanguage *)language layout:(SDLKeyboardLayo return self; } -- (void)setLanguage:(SDLLanguage *)language { - if (language != nil) { - [store setObject:language forKey:NAMES_language]; - } else { - [store removeObjectForKey:NAMES_language]; - } +- (void)setLanguage:(nullable SDLLanguage)language { + [store sdl_setObject:language forName:SDLNameLanguage]; } -- (SDLLanguage *)language { - NSObject *obj = [store objectForKey:NAMES_language]; - if (obj == nil || [obj isKindOfClass:SDLLanguage.class]) { - return (SDLLanguage *)obj; - } else { - return [SDLLanguage valueOf:(NSString *)obj]; - } +- (nullable SDLLanguage)language { + return [store sdl_objectForName:SDLNameLanguage]; } -- (void)setKeyboardLayout:(SDLKeyboardLayout *)keyboardLayout { - if (keyboardLayout != nil) { - [store setObject:keyboardLayout forKey:NAMES_keyboardLayout]; - } else { - [store removeObjectForKey:NAMES_keyboardLayout]; - } +- (void)setKeyboardLayout:(nullable SDLKeyboardLayout)keyboardLayout { + [store sdl_setObject:keyboardLayout forName:SDLNameKeyboardLayout]; } -- (SDLKeyboardLayout *)keyboardLayout { - NSObject *obj = [store objectForKey:NAMES_keyboardLayout]; - if (obj == nil || [obj isKindOfClass:SDLKeyboardLayout.class]) { - return (SDLKeyboardLayout *)obj; - } else { - return [SDLKeyboardLayout valueOf:(NSString *)obj]; - } +- (nullable SDLKeyboardLayout)keyboardLayout { + return [store sdl_objectForName:SDLNameKeyboardLayout]; } -- (void)setKeypressMode:(SDLKeypressMode *)keypressMode { - if (keypressMode != nil) { - [store setObject:keypressMode forKey:NAMES_keypressMode]; - } else { - [store removeObjectForKey:NAMES_keypressMode]; - } +- (void)setKeypressMode:(nullable SDLKeypressMode)keypressMode { + [store sdl_setObject:keypressMode forName:SDLNameKeypressMode]; } -- (SDLKeypressMode *)keypressMode { - NSObject *obj = [store objectForKey:NAMES_keypressMode]; - if (obj == nil || [obj isKindOfClass:SDLKeypressMode.class]) { - return (SDLKeypressMode *)obj; - } else { - return [SDLKeypressMode valueOf:(NSString *)obj]; - } +- (nullable SDLKeypressMode)keypressMode { + return [store sdl_objectForName:SDLNameKeypressMode]; } -- (void)setLimitedCharacterList:(NSMutableArray *)limitedCharacterList { - if (limitedCharacterList != nil) { - [store setObject:limitedCharacterList forKey:NAMES_limitedCharacterList]; - } else { - [store removeObjectForKey:NAMES_limitedCharacterList]; - } +- (void)setLimitedCharacterList:(nullable NSArray *)limitedCharacterList { + [store sdl_setObject:limitedCharacterList forName:SDLNameLimitedCharacterList]; } -- (NSMutableArray *)limitedCharacterList { - return [store objectForKey:NAMES_limitedCharacterList]; +- (nullable NSArray *)limitedCharacterList { + return [store sdl_objectForName:SDLNameLimitedCharacterList]; } -- (void)setAutoCompleteText:(NSString *)autoCompleteText { - if (autoCompleteText != nil) { - [store setObject:autoCompleteText forKey:NAMES_autoCompleteText]; - } else { - [store removeObjectForKey:NAMES_autoCompleteText]; - } +- (void)setAutoCompleteText:(nullable NSString *)autoCompleteText { + [store sdl_setObject:autoCompleteText forName:SDLNameAutoCompleteText]; } -- (NSString *)autoCompleteText { - return [store objectForKey:NAMES_autoCompleteText]; +- (nullable NSString *)autoCompleteText { + return [store sdl_objectForName:SDLNameAutoCompleteText]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLKeypressMode.h b/SmartDeviceLink/SDLKeypressMode.h index 1b4ad0fe1..668f75f21 100644 --- a/SmartDeviceLink/SDLKeypressMode.h +++ b/SmartDeviceLink/SDLKeypressMode.h @@ -11,25 +11,19 @@ * @since SmartDeviceLink 3.0 * */ -@interface SDLKeypressMode : SDLEnum { -} - -+ (SDLKeypressMode *)valueOf:(NSString *)value; -+ (NSArray *)values; +typedef SDLEnum SDLKeypressMode SDL_SWIFT_ENUM; /** SINGLE_KEYPRESS:
    Each and every User`s keypress must be reported (new notification for every newly entered single symbol). * */ -+ (SDLKeypressMode *)SINGLE_KEYPRESS; +extern SDLKeypressMode const SDLKeypressModeSingleKeypress; /** QUEUE_KEYPRESSES:
    The whole entry is reported only after the User submits it (by ‘Search’ button click displayed on touchscreen keyboard) * */ -+ (SDLKeypressMode *)QUEUE_KEYPRESSES; +extern SDLKeypressMode const SDLKeypressModeQueueKeypresses; /** RESEND_CURRENT_ENTRY:
    The whole entry must be reported each and every time the User makes a new keypress
    (new notification with all previously entered symbols and a newly entered one appended). * */ -+ (SDLKeypressMode *)RESEND_CURRENT_ENTRY; - -@end +extern SDLKeypressMode const SDLKeypressModeResendCurrentEntry; diff --git a/SmartDeviceLink/SDLKeypressMode.m b/SmartDeviceLink/SDLKeypressMode.m index 9fa0034e7..f4ba33df7 100644 --- a/SmartDeviceLink/SDLKeypressMode.m +++ b/SmartDeviceLink/SDLKeypressMode.m @@ -4,53 +4,6 @@ #import "SDLKeypressMode.h" -SDLKeypressMode *SDLKeypressMode_SINGLE_KEYPRESS = nil; -SDLKeypressMode *SDLKeypressMode_QUEUE_KEYPRESSES = nil; -SDLKeypressMode *SDLKeypressMode_RESEND_CURRENT_ENTRY = nil; - -NSArray *SDLKeypressMode_values = nil; - -@implementation SDLKeypressMode - -+ (SDLKeypressMode *)valueOf:(NSString *)value { - for (SDLKeypressMode *item in SDLKeypressMode.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLKeypressMode_values == nil) { - SDLKeypressMode_values = @[ - SDLKeypressMode.SINGLE_KEYPRESS, - SDLKeypressMode.QUEUE_KEYPRESSES, - SDLKeypressMode.RESEND_CURRENT_ENTRY, - ]; - } - return SDLKeypressMode_values; -} - -+ (SDLKeypressMode *)SINGLE_KEYPRESS { - if (SDLKeypressMode_SINGLE_KEYPRESS == nil) { - SDLKeypressMode_SINGLE_KEYPRESS = [[SDLKeypressMode alloc] initWithValue:@"SINGLE_KEYPRESS"]; - } - return SDLKeypressMode_SINGLE_KEYPRESS; -} - -+ (SDLKeypressMode *)QUEUE_KEYPRESSES { - if (SDLKeypressMode_QUEUE_KEYPRESSES == nil) { - SDLKeypressMode_QUEUE_KEYPRESSES = [[SDLKeypressMode alloc] initWithValue:@"QUEUE_KEYPRESSES"]; - } - return SDLKeypressMode_QUEUE_KEYPRESSES; -} - -+ (SDLKeypressMode *)RESEND_CURRENT_ENTRY { - if (SDLKeypressMode_RESEND_CURRENT_ENTRY == nil) { - SDLKeypressMode_RESEND_CURRENT_ENTRY = [[SDLKeypressMode alloc] initWithValue:@"RESEND_CURRENT_ENTRY"]; - } - return SDLKeypressMode_RESEND_CURRENT_ENTRY; -} - -@end +SDLKeypressMode const SDLKeypressModeSingleKeypress = @"SINGLE_KEYPRESS"; +SDLKeypressMode const SDLKeypressModeQueueKeypresses = @"QUEUE_KEYPRESSES"; +SDLKeypressMode const SDLKeypressModeResendCurrentEntry = @"RESEND_CURRENT_ENTRY"; diff --git a/SmartDeviceLink/SDLLanguage.h b/SmartDeviceLink/SDLLanguage.h index f1eef4909..80049bd9d 100644 --- a/SmartDeviceLink/SDLLanguage.h +++ b/SmartDeviceLink/SDLLanguage.h @@ -9,216 +9,199 @@ * * @since SDL 1.0 */ -@interface SDLLanguage : SDLEnum { -} +typedef SDLEnum SDLLanguage SDL_SWIFT_ENUM; -/** - * @abstract Get a Langusge according to a String - * - * @param value The value of the string to get an object for - * - * @return The Language - */ -+ (SDLLanguage *)valueOf:(NSString *)value; - -/** - * @abstract store all possible Language values - * - * @return an array with all possible Language values inside - */ -+ (NSArray *)values; /*! @abstract English_SA */ -+ (SDLLanguage *)EN_SA; +extern SDLLanguage const SDLLanguageEnSa; /*! @abstract Hebrew_IL */ -+ (SDLLanguage *)HE_IL; +extern SDLLanguage const SDLLanguageHeIl; /*! - @abstract Romanian_RO + @abstract Romainian_RO */ -+ (SDLLanguage *)RO_RO; +extern SDLLanguage const SDLLanguageRoRo; /*! @abstract Ukrainian_UA */ -+ (SDLLanguage *)UK_UA; +extern SDLLanguage const SDLLanguageUkUa; /*! @abstract Indonesian_ID */ -+ (SDLLanguage *)ID_ID; +extern SDLLanguage const SDLLanguageIdId; /*! @abstract Vietnamese_VN */ -+ (SDLLanguage *)VI_VN; +extern SDLLanguage const SDLLanguageViVn; /*! @abstract Malay_MY */ -+ (SDLLanguage *)MS_MY; +extern SDLLanguage const SDLLanguageMsMy; /*! @abstract Hindi_IN */ -+ (SDLLanguage *)HI_IN; +extern SDLLanguage const SDLLanguageHiIn; /*! - @abstract Dutch_BE + @abstract Dutch(Flemish)_BE */ -+ (SDLLanguage *)NL_BE; +extern SDLLanguage const SDLLanguageNlBe; /*! @abstract Greek_GR */ -+ (SDLLanguage *)EL_GR; +extern SDLLanguage const SDLLanguageElGr; /*! @abstract Hungarian_HU */ -+ (SDLLanguage *)HU_HU; +extern SDLLanguage const SDLLanguageHuHu; /*! @abstract Finnish_FI */ -+ (SDLLanguage *)FI_FI; +extern SDLLanguage const SDLLanguageFiFi; /*! @abstract Slovak_SK */ -+ (SDLLanguage *)SK_SK; +extern SDLLanguage const SDLLanguageSkSk; /*! @abstract English_US */ -+ (SDLLanguage *)EN_US; +extern SDLLanguage const SDLLanguageEnUs; /*! - @abstract English_IN + @abstract English - India */ -+ (SDLLanguage *)EN_IN; +extern SDLLanguage const SDLLanguageEnIn; /*! - @abstract Thai_TH + @abstract Thai - Thailand */ -+ (SDLLanguage *)TH_TH; +extern SDLLanguage const SDLLanguageThTh; + /** @abstract Spanish - Mexico */ -+ (SDLLanguage *)ES_MX; +extern SDLLanguage const SDLLanguageEsMx; /** * @abstract French - Canada */ -+ (SDLLanguage *)FR_CA; +extern SDLLanguage const SDLLanguageFrCa; /** * @abstract German - Germany */ -+ (SDLLanguage *)DE_DE; +extern SDLLanguage const SDLLanguageDeDe; /** * @abstract Spanish - Spain */ -+ (SDLLanguage *)ES_ES; +extern SDLLanguage const SDLLanguageEsEs; /** @abstract English - Great Britain */ -+ (SDLLanguage *)EN_GB; +extern SDLLanguage const SDLLanguageEnGb; /** * @abstract Russian - Russia */ -+ (SDLLanguage *)RU_RU; +extern SDLLanguage const SDLLanguageRuRu; /** * @abstract Turkish - Turkey */ -+ (SDLLanguage *)TR_TR; +extern SDLLanguage const SDLLanguageTrTr; /** * @abstract Polish - Poland */ -+ (SDLLanguage *)PL_PL; +extern SDLLanguage const SDLLanguagePlPl; /** * @abstract French - France */ -+ (SDLLanguage *)FR_FR; +extern SDLLanguage const SDLLanguageFrFr; /** * @abstract Italian - Italy */ -+ (SDLLanguage *)IT_IT; +extern SDLLanguage const SDLLanguageItIt; /** * @abstract Swedish - Sweden */ -+ (SDLLanguage *)SV_SE; +extern SDLLanguage const SDLLanguageSvSe; /** * @abstract Portuguese - Portugal */ -+ (SDLLanguage *)PT_PT; +extern SDLLanguage const SDLLanguagePtPt; /** * @abstract Dutch (Standard) - Netherlands */ -+ (SDLLanguage *)NL_NL; +extern SDLLanguage const SDLLanguageNlNl; /** * @abstract English - Australia */ -+ (SDLLanguage *)EN_AU; +extern SDLLanguage const SDLLanguageEnAu; /** * @abstract Mandarin - China */ -+ (SDLLanguage *)ZH_CN; +extern SDLLanguage const SDLLanguageZhCn; /** * @abstract Mandarin - Taiwan */ -+ (SDLLanguage *)ZH_TW; +extern SDLLanguage const SDLLanguageZhTw; /** * @abstract Japanese - Japan */ -+ (SDLLanguage *)JA_JP; +extern SDLLanguage const SDLLanguageJaJp; /** * @abstract Arabic - Saudi Arabia */ -+ (SDLLanguage *)AR_SA; +extern SDLLanguage const SDLLanguageArSa; /** * @abstract Korean - South Korea */ -+ (SDLLanguage *)KO_KR; +extern SDLLanguage const SDLLanguageKoKr; /** * @abstract Portuguese - Brazil */ -+ (SDLLanguage *)PT_BR; +extern SDLLanguage const SDLLanguagePtBr; /** * @abstract Czech - Czech Republic */ -+ (SDLLanguage *)CS_CZ; +extern SDLLanguage const SDLLanguageCsCz; /** * @abstract Danish - Denmark */ -+ (SDLLanguage *)DA_DK; +extern SDLLanguage const SDLLanguageDaDk; /** * @abstract Norwegian - Norway */ -+ (SDLLanguage *)NO_NO; - -@end +extern SDLLanguage const SDLLanguageNoNo; diff --git a/SmartDeviceLink/SDLLanguage.m b/SmartDeviceLink/SDLLanguage.m index 3fb564513..5995ed4a9 100644 --- a/SmartDeviceLink/SDLLanguage.m +++ b/SmartDeviceLink/SDLLanguage.m @@ -4,376 +4,42 @@ #import "SDLLanguage.h" -SDLLanguage *SDLLanguage_EN_SA = nil; -SDLLanguage *SDLLanguage_HE_IL = nil; -SDLLanguage *SDLLanguage_RO_RO = nil; -SDLLanguage *SDLLanguage_UK_UA = nil; -SDLLanguage *SDLLanguage_ID_ID = nil; -SDLLanguage *SDLLanguage_VI_VN = nil; -SDLLanguage *SDLLanguage_MS_MY = nil; -SDLLanguage *SDLLanguage_HI_IN = nil; -SDLLanguage *SDLLanguage_NL_BE = nil; -SDLLanguage *SDLLanguage_EL_GR = nil; -SDLLanguage *SDLLanguage_HU_HU = nil; -SDLLanguage *SDLLanguage_FI_FI = nil; -SDLLanguage *SDLLanguage_SK_SK = nil; -SDLLanguage *SDLLanguage_EN_US = nil; -SDLLanguage *SDLLanguage_EN_IN = nil; -SDLLanguage *SDLLanguage_TH_TH = nil; -SDLLanguage *SDLLanguage_ES_MX = nil; -SDLLanguage *SDLLanguage_FR_CA = nil; -SDLLanguage *SDLLanguage_DE_DE = nil; -SDLLanguage *SDLLanguage_ES_ES = nil; -SDLLanguage *SDLLanguage_EN_GB = nil; -SDLLanguage *SDLLanguage_RU_RU = nil; -SDLLanguage *SDLLanguage_TR_TR = nil; -SDLLanguage *SDLLanguage_PL_PL = nil; -SDLLanguage *SDLLanguage_FR_FR = nil; -SDLLanguage *SDLLanguage_IT_IT = nil; -SDLLanguage *SDLLanguage_SV_SE = nil; -SDLLanguage *SDLLanguage_PT_PT = nil; -SDLLanguage *SDLLanguage_NL_NL = nil; -SDLLanguage *SDLLanguage_EN_AU = nil; -SDLLanguage *SDLLanguage_ZH_CN = nil; -SDLLanguage *SDLLanguage_ZH_TW = nil; -SDLLanguage *SDLLanguage_JA_JP = nil; -SDLLanguage *SDLLanguage_AR_SA = nil; -SDLLanguage *SDLLanguage_KO_KR = nil; -SDLLanguage *SDLLanguage_PT_BR = nil; -SDLLanguage *SDLLanguage_CS_CZ = nil; -SDLLanguage *SDLLanguage_DA_DK = nil; -SDLLanguage *SDLLanguage_NO_NO = nil; - -NSArray *SDLLanguage_values = nil; - -@implementation SDLLanguage - -+ (SDLLanguage *)valueOf:(NSString *)value { - for (SDLLanguage *item in SDLLanguage.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLLanguage_values == nil) { - SDLLanguage_values = @[ - SDLLanguage.EN_SA, - SDLLanguage.HE_IL, - SDLLanguage.RO_RO, - SDLLanguage.UK_UA, - SDLLanguage.ID_ID, - SDLLanguage.VI_VN, - SDLLanguage.MS_MY, - SDLLanguage.HI_IN, - SDLLanguage.NL_BE, - SDLLanguage.EL_GR, - SDLLanguage.HU_HU, - SDLLanguage.FI_FI, - SDLLanguage.SK_SK, - SDLLanguage.EN_US, - SDLLanguage.EN_IN, - SDLLanguage.TH_TH, - SDLLanguage.ES_MX, - SDLLanguage.FR_CA, - SDLLanguage.DE_DE, - SDLLanguage.ES_ES, - SDLLanguage.EN_GB, - SDLLanguage.RU_RU, - SDLLanguage.TR_TR, - SDLLanguage.PL_PL, - SDLLanguage.FR_FR, - SDLLanguage.IT_IT, - SDLLanguage.SV_SE, - SDLLanguage.PT_PT, - SDLLanguage.NL_NL, - SDLLanguage.EN_AU, - SDLLanguage.ZH_CN, - SDLLanguage.ZH_TW, - SDLLanguage.JA_JP, - SDLLanguage.AR_SA, - SDLLanguage.KO_KR, - SDLLanguage.PT_BR, - SDLLanguage.CS_CZ, - SDLLanguage.DA_DK, - SDLLanguage.NO_NO, - ]; - } - return SDLLanguage_values; -} -+ (SDLLanguage *)EN_SA { - if (SDLLanguage_EN_SA == nil) { - SDLLanguage_EN_SA = [[SDLLanguage alloc] initWithValue:@"EN-SA"]; - } - return SDLLanguage_EN_SA; -} - -+ (SDLLanguage *)HE_IL { - if (SDLLanguage_HE_IL == nil) { - SDLLanguage_HE_IL = [[SDLLanguage alloc] initWithValue:@"HE-IL"]; - } - return SDLLanguage_HE_IL; -} - -+ (SDLLanguage *)RO_RO { - if (SDLLanguage_RO_RO == nil) { - SDLLanguage_RO_RO = [[SDLLanguage alloc] initWithValue:@"RO-RO"]; - } - return SDLLanguage_RO_RO; -} - -+ (SDLLanguage *)UK_UA { - if (SDLLanguage_UK_UA == nil) { - SDLLanguage_UK_UA = [[SDLLanguage alloc] initWithValue:@"UK-UA"]; - } - return SDLLanguage_UK_UA; -} - -+ (SDLLanguage *)ID_ID { - if (SDLLanguage_ID_ID == nil) { - SDLLanguage_ID_ID = [[SDLLanguage alloc] initWithValue:@"ID-ID"]; - } - return SDLLanguage_ID_ID; -} - -+ (SDLLanguage *)VI_VN { - if (SDLLanguage_VI_VN == nil) { - SDLLanguage_VI_VN = [[SDLLanguage alloc] initWithValue:@"VI-VN"]; - } - return SDLLanguage_VI_VN; -} - -+ (SDLLanguage *)MS_MY { - if (SDLLanguage_MS_MY == nil) { - SDLLanguage_MS_MY = [[SDLLanguage alloc] initWithValue:@"MS-MY"]; - } - return SDLLanguage_MS_MY; -} - -+ (SDLLanguage *)HI_IN { - if (SDLLanguage_HI_IN == nil) { - SDLLanguage_HI_IN = [[SDLLanguage alloc] initWithValue:@"HI-IN"]; - } - return SDLLanguage_HI_IN; -} - -+ (SDLLanguage *)NL_BE { - if (SDLLanguage_NL_BE == nil) { - SDLLanguage_NL_BE = [[SDLLanguage alloc] initWithValue:@"NL-BE"]; - } - return SDLLanguage_NL_BE; -} - -+ (SDLLanguage *)EL_GR { - if (SDLLanguage_EL_GR == nil) { - SDLLanguage_EL_GR = [[SDLLanguage alloc] initWithValue:@"EL-GR"]; - } - return SDLLanguage_EL_GR; -} - -+ (SDLLanguage *)HU_HU { - if (SDLLanguage_HU_HU == nil) { - SDLLanguage_HU_HU = [[SDLLanguage alloc] initWithValue:@"HU-HU"]; - } - return SDLLanguage_HU_HU; -} - -+ (SDLLanguage *)FI_FI { - if (SDLLanguage_FI_FI == nil) { - SDLLanguage_FI_FI = [[SDLLanguage alloc] initWithValue:@"FI-FI"]; - } - return SDLLanguage_FI_FI; -} - -+ (SDLLanguage *)SK_SK { - if (SDLLanguage_SK_SK == nil) { - SDLLanguage_SK_SK = [[SDLLanguage alloc] initWithValue:@"SK-SK"]; - } - return SDLLanguage_SK_SK; -} - -+ (SDLLanguage *)EN_US { - if (SDLLanguage_EN_US == nil) { - SDLLanguage_EN_US = [[SDLLanguage alloc] initWithValue:@"EN-US"]; - } - return SDLLanguage_EN_US; -} - -+ (SDLLanguage *)EN_IN { - if (SDLLanguage_EN_IN == nil) { - SDLLanguage_EN_IN = [[SDLLanguage alloc] initWithValue:@"EN-IN"]; - } - return SDLLanguage_EN_IN; -} - -+ (SDLLanguage *)TH_TH { - if (SDLLanguage_TH_TH == nil) { - SDLLanguage_TH_TH = [[SDLLanguage alloc] initWithValue:@"TH-TH"]; - } - return SDLLanguage_TH_TH; -} - -+ (SDLLanguage *)ES_MX { - if (SDLLanguage_ES_MX == nil) { - SDLLanguage_ES_MX = [[SDLLanguage alloc] initWithValue:@"ES-MX"]; - } - return SDLLanguage_ES_MX; -} - -+ (SDLLanguage *)FR_CA { - if (SDLLanguage_FR_CA == nil) { - SDLLanguage_FR_CA = [[SDLLanguage alloc] initWithValue:@"FR-CA"]; - } - return SDLLanguage_FR_CA; -} - -+ (SDLLanguage *)DE_DE { - if (SDLLanguage_DE_DE == nil) { - SDLLanguage_DE_DE = [[SDLLanguage alloc] initWithValue:@"DE-DE"]; - } - return SDLLanguage_DE_DE; -} - -+ (SDLLanguage *)ES_ES { - if (SDLLanguage_ES_ES == nil) { - SDLLanguage_ES_ES = [[SDLLanguage alloc] initWithValue:@"ES-ES"]; - } - return SDLLanguage_ES_ES; -} - -+ (SDLLanguage *)EN_GB { - if (SDLLanguage_EN_GB == nil) { - SDLLanguage_EN_GB = [[SDLLanguage alloc] initWithValue:@"EN-GB"]; - } - return SDLLanguage_EN_GB; -} - -+ (SDLLanguage *)RU_RU { - if (SDLLanguage_RU_RU == nil) { - SDLLanguage_RU_RU = [[SDLLanguage alloc] initWithValue:@"RU-RU"]; - } - return SDLLanguage_RU_RU; -} - -+ (SDLLanguage *)TR_TR { - if (SDLLanguage_TR_TR == nil) { - SDLLanguage_TR_TR = [[SDLLanguage alloc] initWithValue:@"TR-TR"]; - } - return SDLLanguage_TR_TR; -} - -+ (SDLLanguage *)PL_PL { - if (SDLLanguage_PL_PL == nil) { - SDLLanguage_PL_PL = [[SDLLanguage alloc] initWithValue:@"PL-PL"]; - } - return SDLLanguage_PL_PL; -} - -+ (SDLLanguage *)FR_FR { - if (SDLLanguage_FR_FR == nil) { - SDLLanguage_FR_FR = [[SDLLanguage alloc] initWithValue:@"FR-FR"]; - } - return SDLLanguage_FR_FR; -} - -+ (SDLLanguage *)IT_IT { - if (SDLLanguage_IT_IT == nil) { - SDLLanguage_IT_IT = [[SDLLanguage alloc] initWithValue:@"IT-IT"]; - } - return SDLLanguage_IT_IT; -} - -+ (SDLLanguage *)SV_SE { - if (SDLLanguage_SV_SE == nil) { - SDLLanguage_SV_SE = [[SDLLanguage alloc] initWithValue:@"SV-SE"]; - } - return SDLLanguage_SV_SE; -} - -+ (SDLLanguage *)PT_PT { - if (SDLLanguage_PT_PT == nil) { - SDLLanguage_PT_PT = [[SDLLanguage alloc] initWithValue:@"PT-PT"]; - } - return SDLLanguage_PT_PT; -} - -+ (SDLLanguage *)NL_NL { - if (SDLLanguage_NL_NL == nil) { - SDLLanguage_NL_NL = [[SDLLanguage alloc] initWithValue:@"NL-NL"]; - } - return SDLLanguage_NL_NL; -} - -+ (SDLLanguage *)EN_AU { - if (SDLLanguage_EN_AU == nil) { - SDLLanguage_EN_AU = [[SDLLanguage alloc] initWithValue:@"EN-AU"]; - } - return SDLLanguage_EN_AU; -} - -+ (SDLLanguage *)ZH_CN { - if (SDLLanguage_ZH_CN == nil) { - SDLLanguage_ZH_CN = [[SDLLanguage alloc] initWithValue:@"ZH-CN"]; - } - return SDLLanguage_ZH_CN; -} - -+ (SDLLanguage *)ZH_TW { - if (SDLLanguage_ZH_TW == nil) { - SDLLanguage_ZH_TW = [[SDLLanguage alloc] initWithValue:@"ZH-TW"]; - } - return SDLLanguage_ZH_TW; -} - -+ (SDLLanguage *)JA_JP { - if (SDLLanguage_JA_JP == nil) { - SDLLanguage_JA_JP = [[SDLLanguage alloc] initWithValue:@"JA-JP"]; - } - return SDLLanguage_JA_JP; -} - -+ (SDLLanguage *)AR_SA { - if (SDLLanguage_AR_SA == nil) { - SDLLanguage_AR_SA = [[SDLLanguage alloc] initWithValue:@"AR-SA"]; - } - return SDLLanguage_AR_SA; -} - -+ (SDLLanguage *)KO_KR { - if (SDLLanguage_KO_KR == nil) { - SDLLanguage_KO_KR = [[SDLLanguage alloc] initWithValue:@"KO-KR"]; - } - return SDLLanguage_KO_KR; -} - -+ (SDLLanguage *)PT_BR { - if (SDLLanguage_PT_BR == nil) { - SDLLanguage_PT_BR = [[SDLLanguage alloc] initWithValue:@"PT-BR"]; - } - return SDLLanguage_PT_BR; -} - -+ (SDLLanguage *)CS_CZ { - if (SDLLanguage_CS_CZ == nil) { - SDLLanguage_CS_CZ = [[SDLLanguage alloc] initWithValue:@"CS-CZ"]; - } - return SDLLanguage_CS_CZ; -} - -+ (SDLLanguage *)DA_DK { - if (SDLLanguage_DA_DK == nil) { - SDLLanguage_DA_DK = [[SDLLanguage alloc] initWithValue:@"DA-DK"]; - } - return SDLLanguage_DA_DK; -} - -+ (SDLLanguage *)NO_NO { - if (SDLLanguage_NO_NO == nil) { - SDLLanguage_NO_NO = [[SDLLanguage alloc] initWithValue:@"NO-NO"]; - } - return SDLLanguage_NO_NO; -} - -@end +SDLLanguage const SDLLanguageEnSa = @"EN-SA"; +SDLLanguage const SDLLanguageHeIl = @"HE-IL"; +SDLLanguage const SDLLanguageRoRo = @"RO-RO"; +SDLLanguage const SDLLanguageUkUa = @"UK-UA"; +SDLLanguage const SDLLanguageIdId = @"ID-ID"; +SDLLanguage const SDLLanguageViVn = @"VI-VN"; +SDLLanguage const SDLLanguageMsMy = @"MS-MY"; +SDLLanguage const SDLLanguageHiIn = @"HI-IN"; +SDLLanguage const SDLLanguageNlBe = @"NL-BE"; +SDLLanguage const SDLLanguageElGr = @"EL-GR"; +SDLLanguage const SDLLanguageHuHu = @"HU-HU"; +SDLLanguage const SDLLanguageFiFi = @"FI-FI"; +SDLLanguage const SDLLanguageSkSk = @"SK-SK"; +SDLLanguage const SDLLanguageEnUs = @"EN-US"; +SDLLanguage const SDLLanguageEnIn = @"EN-IN"; +SDLLanguage const SDLLanguageThTh = @"TH-TH"; +SDLLanguage const SDLLanguageEsMx = @"ES-MX"; +SDLLanguage const SDLLanguageFrCa = @"FR-CA"; +SDLLanguage const SDLLanguageDeDe = @"DE-DE"; +SDLLanguage const SDLLanguageEsEs = @"ES-ES"; +SDLLanguage const SDLLanguageEnGb = @"EN-GB"; +SDLLanguage const SDLLanguageRuRu = @"RU-RU"; +SDLLanguage const SDLLanguageTrTr = @"TR-TR"; +SDLLanguage const SDLLanguagePlPl = @"PL-PL"; +SDLLanguage const SDLLanguageFrFr = @"FR-FR"; +SDLLanguage const SDLLanguageItIt = @"IT-IT"; +SDLLanguage const SDLLanguageSvSe = @"SV-SE"; +SDLLanguage const SDLLanguagePtPt = @"PT-PT"; +SDLLanguage const SDLLanguageNlNl = @"NL-NL"; +SDLLanguage const SDLLanguageEnAu = @"EN-AU"; +SDLLanguage const SDLLanguageZhCn = @"ZH-CN"; +SDLLanguage const SDLLanguageZhTw = @"ZH-TW"; +SDLLanguage const SDLLanguageJaJp = @"JA-JP"; +SDLLanguage const SDLLanguageArSa = @"AR-SA"; +SDLLanguage const SDLLanguageKoKr = @"KO-KR"; +SDLLanguage const SDLLanguagePtBr = @"PT-BR"; +SDLLanguage const SDLLanguageCsCz = @"CS-CZ"; +SDLLanguage const SDLLanguageDaDk = @"DA-DK"; +SDLLanguage const SDLLanguageNoNo = @"NO-NO"; diff --git a/SmartDeviceLink/SDLLayoutMode.h b/SmartDeviceLink/SDLLayoutMode.h index 9e0377f40..4e6389c9f 100644 --- a/SmartDeviceLink/SDLLayoutMode.h +++ b/SmartDeviceLink/SDLLayoutMode.h @@ -9,35 +9,29 @@ * * @since SDL 3.0 */ -@interface SDLLayoutMode : SDLEnum { -} +typedef SDLEnum SDLLayoutMode SDL_SWIFT_ENUM; -+ (SDLLayoutMode *)valueOf:(NSString *)value; -+ (NSArray *)values; - -/** +/** * This mode causes the interaction to display the previous set of choices as icons. */ -+ (SDLLayoutMode *)ICON_ONLY; +extern SDLLayoutMode const SDLLayoutModeIconOnly; /** * This mode causes the interaction to display the previous set of choices as icons along with a search field in the HMI. */ -+ (SDLLayoutMode *)ICON_WITH_SEARCH; +extern SDLLayoutMode const SDLLayoutModeIconWithSearch; /** * This mode causes the interaction to display the previous set of choices as a list. */ -+ (SDLLayoutMode *)LIST_ONLY; +extern SDLLayoutMode const SDLLayoutModeListOnly; /** * This mode causes the interaction to display the previous set of choices as a list along with a search field in the HMI. */ -+ (SDLLayoutMode *)LIST_WITH_SEARCH; +extern SDLLayoutMode const SDLLayoutModeListWithSearch; /** * This mode causes the interaction to immediately display a keyboard entry through the HMI. */ -+ (SDLLayoutMode *)KEYBOARD; - -@end +extern SDLLayoutMode const SDLLayoutModeKeyboard; diff --git a/SmartDeviceLink/SDLLayoutMode.m b/SmartDeviceLink/SDLLayoutMode.m index 343f06a0f..766b5ccfb 100644 --- a/SmartDeviceLink/SDLLayoutMode.m +++ b/SmartDeviceLink/SDLLayoutMode.m @@ -4,71 +4,8 @@ #import "SDLLayoutMode.h" -SDLLayoutMode *SDLLayoutMode_ICON_ONLY = nil; -SDLLayoutMode *SDLLayoutMode_ICON_WITH_SEARCH = nil; -SDLLayoutMode *SDLLayoutMode_LIST_ONLY = nil; -SDLLayoutMode *SDLLayoutMode_LIST_WITH_SEARCH = nil; -SDLLayoutMode *SDLLayoutMode_KEYBOARD = nil; - -NSArray *SDLLayoutMode_values = nil; - -@implementation SDLLayoutMode - -+ (SDLLayoutMode *)valueOf:(NSString *)value { - for (SDLLayoutMode *item in SDLLayoutMode.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLLayoutMode_values == nil) { - SDLLayoutMode_values = @[ - SDLLayoutMode.ICON_ONLY, - SDLLayoutMode.ICON_WITH_SEARCH, - SDLLayoutMode.LIST_ONLY, - SDLLayoutMode.LIST_WITH_SEARCH, - SDLLayoutMode.KEYBOARD, - ]; - } - return SDLLayoutMode_values; -} - -+ (SDLLayoutMode *)ICON_ONLY { - if (SDLLayoutMode_ICON_ONLY == nil) { - SDLLayoutMode_ICON_ONLY = [[SDLLayoutMode alloc] initWithValue:@"ICON_ONLY"]; - } - return SDLLayoutMode_ICON_ONLY; -} - -+ (SDLLayoutMode *)ICON_WITH_SEARCH { - if (SDLLayoutMode_ICON_WITH_SEARCH == nil) { - SDLLayoutMode_ICON_WITH_SEARCH = [[SDLLayoutMode alloc] initWithValue:@"ICON_WITH_SEARCH"]; - } - return SDLLayoutMode_ICON_WITH_SEARCH; -} - -+ (SDLLayoutMode *)LIST_ONLY { - if (SDLLayoutMode_LIST_ONLY == nil) { - SDLLayoutMode_LIST_ONLY = [[SDLLayoutMode alloc] initWithValue:@"LIST_ONLY"]; - } - return SDLLayoutMode_LIST_ONLY; -} - -+ (SDLLayoutMode *)LIST_WITH_SEARCH { - if (SDLLayoutMode_LIST_WITH_SEARCH == nil) { - SDLLayoutMode_LIST_WITH_SEARCH = [[SDLLayoutMode alloc] initWithValue:@"LIST_WITH_SEARCH"]; - } - return SDLLayoutMode_LIST_WITH_SEARCH; -} - -+ (SDLLayoutMode *)KEYBOARD { - if (SDLLayoutMode_KEYBOARD == nil) { - SDLLayoutMode_KEYBOARD = [[SDLLayoutMode alloc] initWithValue:@"KEYBOARD"]; - } - return SDLLayoutMode_KEYBOARD; -} - -@end +SDLLayoutMode const SDLLayoutModeIconOnly = @"ICON_ONLY"; +SDLLayoutMode const SDLLayoutModeIconWithSearch = @"ICON_WITH_SEARCH"; +SDLLayoutMode const SDLLayoutModeListOnly = @"LIST_ONLY"; +SDLLayoutMode const SDLLayoutModeListWithSearch = @"LIST_WITH_SEARCH"; +SDLLayoutMode const SDLLayoutModeKeyboard = @"KEYBOARD"; diff --git a/SmartDeviceLink/SDLLifecycleConfiguration.h b/SmartDeviceLink/SDLLifecycleConfiguration.h index 84a6d9efb..57c0470ac 100644 --- a/SmartDeviceLink/SDLLifecycleConfiguration.h +++ b/SmartDeviceLink/SDLLifecycleConfiguration.h @@ -6,23 +6,14 @@ // Copyright © 2015 smartdevicelink. All rights reserved. // -#import +#import + +#import "SDLAppHMIType.h" +#import "SDLLanguage.h" -@class SDLAppHMIType; @class SDLFile; -@class SDLLanguage; @class SDLTTSChunk; -@protocol SDLSecurityType; - - -typedef NS_OPTIONS(NSUInteger, SDLLogOutput) { - SDLLogOutputNone = 0, - SDLLogOutputConsole = 1 << 0, - SDLLogOutputFile = 1 << 1, - SDLLogOutputSiphon = 1 << 2 -}; - NS_ASSUME_NONNULL_BEGIN @@ -41,7 +32,7 @@ NS_ASSUME_NONNULL_BEGIN * * @return The lifecycle configuration */ -+ (SDLLifecycleConfiguration *)defaultConfigurationWithAppName:(NSString *)appName appId:(NSString *)appId; ++ (SDLLifecycleConfiguration *)defaultConfigurationWithAppName:(NSString *)appName appId:(NSString *)appId NS_SWIFT_NAME(init(appName:appId:)); /** * A debug configuration that runs using TCP. Additional functionality should be customized on the properties. @@ -53,7 +44,7 @@ NS_ASSUME_NONNULL_BEGIN * * @return The lifecycle configuration */ -+ (SDLLifecycleConfiguration *)debugConfigurationWithAppName:(NSString *)appName appId:(NSString *)appId ipAddress:(NSString *)ipAddress port:(UInt16)port; ++ (SDLLifecycleConfiguration *)debugConfigurationWithAppName:(NSString *)appName appId:(NSString *)appId ipAddress:(NSString *)ipAddress port:(UInt16)port NS_SWIFT_NAME(init(appName:appId:ipAddress:port:)); /** * Whether or not debug mode is enabled @@ -93,17 +84,17 @@ NS_ASSUME_NONNULL_BEGIN /** * The application type */ -@property (strong, nonatomic, null_resettable) SDLAppHMIType *appType; +@property (strong, nonatomic, null_resettable) SDLAppHMIType appType; /** * The default language to use */ -@property (strong, nonatomic) SDLLanguage *language; +@property (strong, nonatomic) SDLLanguage language; /** * An array of all the supported languages */ -@property (strong, nonatomic) NSArray *languagesSupported; +@property (strong, nonatomic) NSArray *languagesSupported; /** * The application icon to be used on an app launching screen @@ -125,16 +116,6 @@ NS_ASSUME_NONNULL_BEGIN */ @property (copy, nonatomic, nullable) NSArray *voiceRecognitionCommandNames; -/** - * Set security managers which could be used. This is primarily used with video streaming applications to authenticate and perhaps encrypt traffic data. - */ -@property (copy, nonatomic, nullable) NSArray> *securityManagers; - -/** - * Which logging capabilities are currently enabled. The default is Console logging only. - */ -@property (assign, nonatomic) SDLLogOutput logFlags; - @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLifecycleConfiguration.m b/SmartDeviceLink/SDLLifecycleConfiguration.m index efc9014b2..c5b9e7071 100644 --- a/SmartDeviceLink/SDLLifecycleConfiguration.m +++ b/SmartDeviceLink/SDLLifecycleConfiguration.m @@ -8,9 +8,7 @@ #import "SDLLifecycleConfiguration.h" -#import "SDLAppHMIType.h" #import "SDLFile.h" -#import "SDLLanguage.h" static NSString *const DefaultTCPIPAddress = @"192.168.0.1"; static UInt16 const DefaultTCPIPPort = 12345; @@ -44,14 +42,13 @@ - (instancetype)initDefaultConfigurationWithAppName:(NSString *)appName appId:(N _appName = appName; _appId = appId; - _appType = [SDLAppHMIType DEFAULT]; - _language = [SDLLanguage EN_US]; + _appType = SDLAppHMITypeDefault; + _language = SDLLanguageEnUs; _languagesSupported = @[_language]; _appIcon = nil; _shortAppName = nil; _ttsName = nil; _voiceRecognitionCommandNames = nil; - _logFlags = SDLLogOutputNone; return self; } @@ -66,15 +63,13 @@ + (SDLLifecycleConfiguration *)debugConfigurationWithAppName:(NSString *)appName config.tcpDebugIPAddress = ipAddress; config.tcpDebugPort = port; - config.logFlags = SDLLogOutputConsole; - return config; } #pragma mark Computed Properties - (BOOL)isMedia { - if ([self.appType isEqualToEnum:[SDLAppHMIType MEDIA]]) { + if ([self.appType isEqualToEnum:SDLAppHMITypeMedia]) { return YES; } @@ -89,9 +84,9 @@ - (void)setTcpDebugIPAddress:(nullable NSString *)tcpDebugIPAddress { } } -- (void)setAppType:(nullable SDLAppHMIType *)appType { +- (void)setAppType:(nullable SDLAppHMIType)appType { if (appType == nil) { - _appType = [SDLAppHMIType DEFAULT]; + _appType = SDLAppHMITypeDefault; return; } diff --git a/SmartDeviceLink/SDLLifecycleManager.h b/SmartDeviceLink/SDLLifecycleManager.h index f09d18aaf..18450f218 100644 --- a/SmartDeviceLink/SDLLifecycleManager.h +++ b/SmartDeviceLink/SDLLifecycleManager.h @@ -9,11 +9,13 @@ #import "SDLNotificationConstants.h" #import +#import "SDLAudioStreamingState.h" +#import "SDLHMILevel.h" +#import "SDLLanguage.h" +#import "SDLSystemContext.h" @class SDLConfiguration; @class SDLFileManager; -@class SDLHMILevel; -@class SDLLanguage; @class SDLLifecycleConfiguration; @class SDLLockScreenConfiguration; @class SDLLockScreenManager; @@ -58,7 +60,7 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); @property (strong, nonatomic) SDLFileManager *fileManager; @property (strong, nonatomic) SDLPermissionManager *permissionManager; -@property (strong, nonatomic, readonly, nullable) SDLStreamingMediaManager *streamManager; +@property (strong, nonatomic, nullable) SDLStreamingMediaManager *streamManager; @property (strong, nonatomic) SDLLockScreenManager *lockScreenManager; @property (strong, nonatomic, readonly) SDLNotificationDispatcher *notificationDispatcher; @@ -73,7 +75,9 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); @property (assign, nonatomic) UInt16 lastCorrelationId; @property (copy, nonatomic, readonly) SDLLifecycleState *lifecycleState; -@property (copy, nonatomic, nullable) SDLHMILevel *hmiLevel; +@property (copy, nonatomic, nullable) SDLHMILevel hmiLevel; +@property (copy, nonatomic, nullable) SDLAudioStreamingState audioStreamingState; +@property (copy, nonatomic, nullable) SDLSystemContext systemContext; @property (strong, nonatomic, nullable) SDLRegisterAppInterfaceResponse *registerResponse; diff --git a/SmartDeviceLink/SDLLifecycleManager.m b/SmartDeviceLink/SDLLifecycleManager.m index ae65fd0f6..6025e72ab 100644 --- a/SmartDeviceLink/SDLLifecycleManager.m +++ b/SmartDeviceLink/SDLLifecycleManager.m @@ -11,18 +11,21 @@ #import "SDLLifecycleManager.h" #import "NSMapTable+Subscripting.h" +#import "SDLAbstractProtocol.h" #import "SDLConfiguration.h" #import "SDLConnectionManagerType.h" -#import "SDLDebugTool.h" +#import "SDLLogMacros.h" #import "SDLDisplayCapabilities.h" #import "SDLError.h" #import "SDLFile.h" #import "SDLFileManager.h" -#import "SDLHMILevel.h" #import "SDLLifecycleConfiguration.h" #import "SDLLockScreenConfiguration.h" #import "SDLLockScreenManager.h" #import "SDLLockScreenPresenter.h" +#import "SDLLogConfiguration.h" +#import "SDLLogFileModuleMap.h" +#import "SDLLogManager.h" #import "SDLManagerDelegate.h" #import "SDLNotificationDispatcher.h" #import "SDLOnAppInterfaceUnregistered.h" @@ -38,6 +41,8 @@ #import "SDLResult.h" #import "SDLSetAppIcon.h" #import "SDLStateMachine.h" +#import "SDLStreamingMediaConfiguration.h" +#import "SDLStreamingMediaManager.h" #import "SDLUnregisterAppInterface.h" @@ -75,7 +80,7 @@ @implementation SDLLifecycleManager #pragma mark Lifecycle - (instancetype)init { - return [self initWithConfiguration:[SDLConfiguration configurationWithLifecycle:[SDLLifecycleConfiguration defaultConfigurationWithAppName:@"SDL APP" appId:@"001"] lockScreen:[SDLLockScreenConfiguration disabledConfiguration]] delegate:nil]; + return [self initWithConfiguration:[SDLConfiguration configurationWithLifecycle:[SDLLifecycleConfiguration defaultConfigurationWithAppName:@"SDL APP" appId:@"001"] lockScreen:[SDLLockScreenConfiguration disabledConfiguration] logging:[SDLLogConfiguration defaultConfiguration]] delegate:nil]; } - (instancetype)initWithConfiguration:(SDLConfiguration *)configuration delegate:(nullable id)delegate { @@ -84,12 +89,14 @@ - (instancetype)initWithConfiguration:(SDLConfiguration *)configuration delegate return nil; } + SDLLogV(@"Initializing Lifecycle Manager"); + // Dependencies - _configuration = configuration; + _configuration = [configuration copy]; _delegate = delegate; // Logging - [self.class sdl_updateLoggingWithFlags:self.configuration.lifecycleConfig.logFlags]; + [SDLLogManager setConfiguration:_configuration.loggingConfig]; // Private properties _lifecycleStateMachine = [[SDLStateMachine alloc] initWithTarget:self initialState:SDLLifecycleStateStopped states:[self.class sdl_stateTransitionDictionary]]; @@ -102,6 +109,13 @@ - (instancetype)initWithConfiguration:(SDLConfiguration *)configuration delegate _fileManager = [[SDLFileManager alloc] initWithConnectionManager:self]; _permissionManager = [[SDLPermissionManager alloc] init]; _lockScreenManager = [[SDLLockScreenManager alloc] initWithConfiguration:_configuration.lockScreenConfig notificationDispatcher:_notificationDispatcher presenter:[[SDLLockScreenPresenter alloc] init]]; + + if ([configuration.lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeNavigation] + || [configuration.lifecycleConfig.appType isEqualToEnum:SDLAppHMITypeProjection]) { + _streamManager = [[SDLStreamingMediaManager alloc] initWithConnectionManager:self configuration:configuration.streamingMediaConfig]; + } else { + SDLLogV(@"Skipping StreamingMediaManager setup due to app type"); + } // Notifications [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(transportDidConnect) name:SDLTransportDidConnect object:_notificationDispatcher]; @@ -114,16 +128,18 @@ - (instancetype)initWithConfiguration:(SDLConfiguration *)configuration delegate - (void)startWithReadyHandler:(SDLManagerReadyBlock)readyHandler { if (![self.lifecycleStateMachine isCurrentState:SDLLifecycleStateStopped]) { - [SDLDebugTool logFormat:@"Warning: SDL has already been started, this attempt will be ignored."]; + SDLLogW(@"Warning: SDL has already been started, this attempt will be ignored"); return; } + SDLLogD(@"Starting lifecycle manager"); self.readyHandler = [readyHandler copy]; [self.lifecycleStateMachine transitionToState:SDLLifecycleStateStarted]; } - (void)stop { + SDLLogD(@"Lifecycle manager stopped"); if ([self.lifecycleStateMachine isCurrentState:SDLLifecycleStateReady]) { [self.lifecycleStateMachine transitionToState:SDLLifecycleStateUnregistering]; } else { @@ -134,10 +150,6 @@ - (void)stop { #pragma mark Getters -- (nullable SDLStreamingMediaManager *)streamManager { - return self.proxy.streamingMediaManager; -} - - (SDLState *)lifecycleState { return self.lifecycleStateMachine.currentState; } @@ -170,6 +182,10 @@ - (void)didEnterStateStarted { self.proxy = [SDLProxyFactory buildSDLProxyWithListener:self.notificationDispatcher]; } #pragma clang diagnostic pop + + if (self.streamManager != nil) { + [self.streamManager startWithProtocol:self.proxy.protocol]; + } } - (void)didEnterStateStopped { @@ -181,16 +197,20 @@ - (void)didEnterStateReconnecting { } - (void)sdl_stopManager:(BOOL)shouldRestart { + SDLLogV(@"Stopping manager, %@", (shouldRestart ? @"will restart" : @"will not restart")); + [self.fileManager stop]; [self.permissionManager stop]; [self.lockScreenManager stop]; + [self.streamManager stop]; [self.responseDispatcher clear]; self.registerResponse = nil; self.lastCorrelationId = 0; self.hmiLevel = nil; - - [self sdl_disposeProxy]; // call this method instead of stopProxy to avoid double-dispatching + self.audioStreamingState = nil; + self.systemContext = nil; + self.proxy = nil; // Due to a race condition internally with EAStream, we cannot immediately attempt to restart the proxy, as we will randomly crash. // Apple Bug ID #30059457 @@ -206,8 +226,9 @@ - (void)sdl_stopManager:(BOOL)shouldRestart { - (void)didEnterStateConnected { // If we have security managers, add them to the proxy - if (self.configuration.lifecycleConfig.securityManagers != nil) { - [self.proxy addSecurityManagers:self.configuration.lifecycleConfig.securityManagers forAppId:self.configuration.lifecycleConfig.appId]; + if (self.configuration.streamingMediaConfig.securityManagers != nil) { + SDLLogD(@"Adding security managers"); + [self.proxy addSecurityManagers:self.configuration.streamingMediaConfig.securityManagers forAppId:self.configuration.lifecycleConfig.appId]; } // Build a register app interface request with the configuration data @@ -219,7 +240,7 @@ - (void)didEnterStateConnected { withResponseHandler:^(__kindof SDLRPCRequest *_Nullable request, __kindof SDLRPCResponse *_Nullable response, NSError *_Nullable error) { // 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]) { - [SDLDebugTool logFormat:@"Failed to register the app. Error: %@, Response: %@", error, response]; + SDLLogE(@"Failed to register the app. Error: %@, Response: %@", error, response); weakSelf.readyHandler(NO, error); [weakSelf.lifecycleStateMachine transitionToState:SDLLifecycleStateStopped]; return; @@ -239,13 +260,13 @@ - (void)didEnterStateSettingUpManagers { // Make sure there's at least one group_enter until we have synchronously run through all the startup calls dispatch_group_enter(managerGroup); - + SDLLogD(@"Setting up assistant managers"); [self.lockScreenManager start]; dispatch_group_enter(managerGroup); [self.fileManager startWithCompletionHandler:^(BOOL success, NSError *_Nullable error) { if (!success) { - [SDLDebugTool logFormat:@"File manager was unable to start; error: %@", error]; + SDLLogW(@"File manager was unable to start; error: %@", error); } dispatch_group_leave(managerGroup); @@ -254,7 +275,7 @@ - (void)didEnterStateSettingUpManagers { dispatch_group_enter(managerGroup); [self.permissionManager startWithCompletionHandler:^(BOOL success, NSError *_Nullable error) { if (!success) { - [SDLDebugTool logFormat:@"Permission manager was unable to start; error: %@", error]; + SDLLogW(@"Permission manager was unable to start; error: %@", error); } dispatch_group_leave(managerGroup); @@ -271,10 +292,9 @@ - (void)didEnterStateSettingUpManagers { - (void)didEnterStateSettingUpAppIcon { // We only want to send the app icon when the file manager is complete, and when that's done, wait for hmi status to be ready - [self sdl_sendAppIcon:self.configuration.lifecycleConfig.appIcon - withCompletion:^{ - [self.lifecycleStateMachine transitionToState:SDLLifecycleStateSettingUpHMI]; - }]; + [self sdl_sendAppIcon:self.configuration.lifecycleConfig.appIcon withCompletion:^{ + [self.lifecycleStateMachine transitionToState:SDLLifecycleStateSettingUpHMI]; + }]; } - (void)didEnterStateSettingUpHMI { @@ -283,18 +303,19 @@ - (void)didEnterStateSettingUpHMI { // If nil, return and wait until we get a notification return; } + // We are sure to have a HMIStatus, set state to ready [self.lifecycleStateMachine transitionToState:SDLLifecycleStateReady]; } - (void)didEnterStateReady { - SDLResult *registerResult = self.registerResponse.resultCode; + SDLResult registerResult = self.registerResponse.resultCode; NSString *registerInfo = self.registerResponse.info; NSError *startError = nil; // If the resultCode isn't success, we got a warning. Errors were handled in `didEnterStateConnected`. - if (![registerResult isEqualToEnum:[SDLResult SUCCESS]]) { - startError = [NSError sdl_lifecycle_startedWithBadResult:registerResult info:registerInfo]; + if (![registerResult isEqualToEnum:SDLResultSuccess]) { + startError = [NSError sdl_lifecycle_startedWithWarning:registerResult info:registerInfo]; } // If we got to this point, we succeeded, send the error if there was a warning. @@ -302,7 +323,7 @@ - (void)didEnterStateReady { [self.notificationDispatcher postNotificationName:SDLDidBecomeReady infoObject:nil]; // Send the hmi level going from NONE to whatever we're at now (could still be NONE) - [self.delegate hmiLevel:[SDLHMILevel NONE] didChangeToLevel:self.hmiLevel]; + [self.delegate hmiLevel:SDLHMILevelNone didChangeToLevel:self.hmiLevel]; } - (void)didEnterStateUnregistering { @@ -312,7 +333,7 @@ - (void)didEnterStateUnregistering { [self sdl_sendRequest:unregisterRequest withResponseHandler:^(__kindof SDLRPCRequest *_Nullable request, __kindof SDLRPCResponse *_Nullable response, NSError *_Nullable error) { if (error != nil || ![response.success boolValue]) { - [SDLDebugTool logFormat:@"SDL Error unregistering, we are going to hard disconnect: %@, response: %@", error, response]; + SDLLogE(@"SDL Error unregistering, we are going to hard disconnect: %@, response: %@", error, response); } [weakSelf.lifecycleStateMachine transitionToState:SDLLifecycleStateStopped]; @@ -329,32 +350,31 @@ - (void)sdl_sendAppIcon:(nullable SDLFile *)appIcon withCompletion:(void (^)(voi return; } - [self.fileManager uploadFile:appIcon - completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError *_Nullable error) { - // These errors could be recoverable (particularly "cannot overwrite"), so we'll still attempt to set the app icon - if (error != nil) { - if (error.code == SDLFileManagerErrorCannotOverwrite) { - [SDLDebugTool logInfo:@"Failed to upload app icon: A file with this name already exists on the system"]; - } else { - [SDLDebugTool logFormat:@"Unexpected error uploading app icon: %@", error]; - return; - } - } - - // Once we've tried to put the file on the remote system, try to set the app icon - SDLSetAppIcon *setAppIcon = [[SDLSetAppIcon alloc] init]; - setAppIcon.syncFileName = appIcon.name; - - [self sdl_sendRequest:setAppIcon - withResponseHandler:^(__kindof SDLRPCRequest *_Nullable request, __kindof SDLRPCResponse *_Nullable response, NSError *_Nullable error) { - if (error != nil) { - [SDLDebugTool logFormat:@"Error setting app icon: ", error]; - } - - // We've succeeded or failed - completion(); - }]; - }]; + [self.fileManager uploadFile:appIcon completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError *_Nullable error) { + // These errors could be recoverable (particularly "cannot overwrite"), so we'll still attempt to set the app icon + if (error != nil) { + if (error.code == SDLFileManagerErrorCannotOverwrite) { + SDLLogW(@"Failed to upload app icon: A file with this name already exists on the system"); + } else { + SDLLogW(@"Unexpected error uploading app icon: %@", error); + return; + } + } + + // Once we've tried to put the file on the remote system, try to set the app icon + SDLSetAppIcon *setAppIcon = [[SDLSetAppIcon alloc] init]; + setAppIcon.syncFileName = appIcon.name; + + [self sdl_sendRequest:setAppIcon + withResponseHandler:^(__kindof SDLRPCRequest *_Nullable request, __kindof SDLRPCResponse *_Nullable response, NSError *_Nullable error) { + if (error != nil) { + SDLLogW(@"Error setting up app icon: %@", error); + } + + // We've succeeded or failed + completion(); + }]; + }]; } @@ -366,7 +386,7 @@ - (void)sendRequest:(SDLRPCRequest *)request { - (void)sendRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { if (![self.lifecycleStateMachine isCurrentState:SDLLifecycleStateReady]) { - [SDLDebugTool logInfo:@"Manager not ready, message not sent"]; + SDLLogW(@"Manager not ready, message not sent (%@)", request); if (handler) { handler(request, nil, [NSError sdl_lifecycle_notReadyError]); } @@ -384,13 +404,14 @@ - (void)sendManagerRequest:(__kindof SDLRPCRequest *)request withResponseHandler - (void)sdl_sendRequest:(SDLRPCRequest *)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); // If, for some reason, the request is nil we should error out. if (!request) { + NSError *error = [NSError sdl_lifecycle_rpcErrorWithDescription:@"Nil Request Sent" andReason:@"A nil RPC request was passed and cannot be sent."]; + SDLLogW(@"%@", error); if (handler) { - handler(nil, nil, [NSError sdl_lifecycle_rpcErrorWithDescription:@"Nil Request Sent" andReason:@"A nil RPC request was passed and cannot be sent."]); + handler(nil, nil, error); } return; } @@ -405,14 +426,7 @@ - (void)sdl_sendRequest:(SDLRPCRequest *)request withResponseHandler:(nullable S #pragma mark Helper Methods - -- (void)sdl_disposeProxy { - [SDLDebugTool logInfo:@"Stop Proxy"]; - [self.proxy dispose]; - self.proxy = nil; -} - -- (NSNumber *)sdl_getNextCorrelationId { +- (NSNumber *)sdl_getNextCorrelationId { if (self.lastCorrelationId == UINT16_MAX) { self.lastCorrelationId = 0; } @@ -429,40 +443,17 @@ + (BOOL)sdl_checkNotification:(NSNotification *)notification containsKindOfClass return YES; } - + (void)sdl_updateLoggingWithFlags : (SDLLogOutput)logFlags { - if (logFlags == SDLLogOutputNone) { - [SDLDebugTool disable]; - return; - } - - if ((logFlags & SDLLogOutputConsole) == SDLLogOutputConsole) { - [SDLDebugTool enable]; - } - - if ((logFlags & SDLLogOutputFile) == SDLLogOutputFile) { - [SDLDebugTool enableDebugToLogFile]; - } else { - [SDLDebugTool disableDebugToLogFile]; - } - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - if ((logFlags & SDLLogOutputSiphon) == SDLLogOutputSiphon) { - [SDLProxy enableSiphonDebug]; - } else { - [SDLProxy disableSiphonDebug]; - } -#pragma clang diagnostic pop -} - #pragma mark SDL notification observers - (void)transportDidConnect { + SDLLogD(@"Transport connected"); [self.lifecycleStateMachine transitionToState:SDLLifecycleStateConnected]; } - (void)transportDidDisconnect { + SDLLogD(@"Transport Disconnected"); + if (self.lifecycleState == SDLLifecycleStateUnregistering || self.lifecycleState == SDLLifecycleStateStopped) { [self.lifecycleStateMachine transitionToState:SDLLifecycleStateStopped]; } else { @@ -471,15 +462,23 @@ - (void)transportDidDisconnect { } - (void)hmiStatusDidChange:(SDLRPCNotificationNotification *)notification { - if (![self.class sdl_checkNotification:notification containsKindOfClass:[SDLOnHMIStatus class]]) { + if (![notification isNotificationMemberOfClass:[SDLOnHMIStatus class]]) { return; } SDLOnHMIStatus *hmiStatusNotification = notification.notification; - SDLHMILevel *oldHMILevel = self.hmiLevel; + SDLHMILevel oldHMILevel = self.hmiLevel; self.hmiLevel = hmiStatusNotification.hmiLevel; + + SDLAudioStreamingState oldStreamingState = self.audioStreamingState; + self.audioStreamingState = hmiStatusNotification.audioStreamingState; + + SDLSystemContext oldSystemContext = self.systemContext; + self.systemContext = hmiStatusNotification.systemContext; + + SDLLogD(@"HMI level changed from %@ to %@", oldHMILevel, self.hmiLevel); - if ([self.lifecycleStateMachine isCurrentState:SDLLifecycleStateSettingUpHMI]) { + if ([self.lifecycleStateMachine isCurrentState:SDLLifecycleStateSettingUpHMI]) { [self.lifecycleStateMachine transitionToState:SDLLifecycleStateReady]; } @@ -490,15 +489,25 @@ - (void)hmiStatusDidChange:(SDLRPCNotificationNotification *)notification { if (![oldHMILevel isEqualToEnum:self.hmiLevel]) { [self.delegate hmiLevel:oldHMILevel didChangeToLevel:self.hmiLevel]; } + + if (![oldStreamingState isEqualToEnum:self.audioStreamingState] + && [self.delegate respondsToSelector:@selector(audioStreamingState:didChangeToState:)]) { + [self.delegate audioStreamingState:oldStreamingState didChangeToState:self.audioStreamingState]; + } + + if (![oldSystemContext isEqualToEnum:self.systemContext] + && [self.delegate respondsToSelector:@selector(systemContext:didChangeToContext:)]) { + [self.delegate systemContext:oldSystemContext didChangeToContext:self.systemContext]; + } } - (void)remoteHardwareDidUnregister:(SDLRPCNotificationNotification *)notification { - if (![self.class sdl_checkNotification:notification containsKindOfClass:[SDLOnAppInterfaceUnregistered class]]) { + if (![notification isNotificationMemberOfClass:[SDLOnAppInterfaceUnregistered class]]) { return; } SDLOnAppInterfaceUnregistered *appUnregisteredNotification = notification.notification; - [SDLDebugTool logFormat:@"Remote Device forced unregistration for reason: %@", appUnregisteredNotification.reason]; + SDLLogW(@"Remote Device forced unregistration for reason: %@", appUnregisteredNotification.reason); if ([self.lifecycleStateMachine isCurrentState:SDLLifecycleStateUnregistering]) { [self.lifecycleStateMachine transitionToState:SDLLifecycleStateStopped]; diff --git a/SmartDeviceLink/SDLListFiles.h b/SmartDeviceLink/SDLListFiles.h index 8a58d8639..28bf706b8 100644 --- a/SmartDeviceLink/SDLListFiles.h +++ b/SmartDeviceLink/SDLListFiles.h @@ -11,17 +11,11 @@ * * Since SmartDeviceLink 2.0 */ -@interface SDLListFiles : SDLRPCRequest { -} -/** - * Constructs a new SDLListFiles object - */ -- (instancetype)init; -/** - * Constructs a new SDLListFiles object indicated by the dictionary parameter - *

    - * - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLListFiles : SDLRPCRequest + @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLListFiles.m b/SmartDeviceLink/SDLListFiles.m index a1110df1b..9efc8f6cb 100644 --- a/SmartDeviceLink/SDLListFiles.m +++ b/SmartDeviceLink/SDLListFiles.m @@ -4,20 +4,19 @@ #import "SDLListFiles.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLListFiles - (instancetype)init { - if (self = [super initWithName:NAMES_ListFiles]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameListFiles]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLListFilesResponse.h b/SmartDeviceLink/SDLListFilesResponse.h index fd309770c..4acb007ec 100644 --- a/SmartDeviceLink/SDLListFilesResponse.h +++ b/SmartDeviceLink/SDLListFilesResponse.h @@ -9,13 +9,14 @@ * * Since SmartDeviceLink 2.0 */ -@interface SDLListFilesResponse : SDLRPCResponse { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN -@property (strong) NSMutableArray *filenames; -@property (strong) NSNumber *spaceAvailable; +@interface SDLListFilesResponse : SDLRPCResponse + +@property (nullable, strong, nonatomic) NSArray *filenames; +@property (strong, nonatomic) NSNumber *spaceAvailable; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLListFilesResponse.m b/SmartDeviceLink/SDLListFilesResponse.m index 2d58371d8..f78d83acb 100644 --- a/SmartDeviceLink/SDLListFilesResponse.m +++ b/SmartDeviceLink/SDLListFilesResponse.m @@ -4,44 +4,35 @@ #import "SDLListFilesResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLListFilesResponse - (instancetype)init { - if (self = [super initWithName:NAMES_ListFiles]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameListFiles]) { } return self; } -- (void)setFilenames:(NSMutableArray *)filenames { - if (filenames != nil) { - [parameters setObject:filenames forKey:NAMES_filenames]; - } else { - [parameters removeObjectForKey:NAMES_filenames]; - } +- (void)setFilenames:(nullable NSArray *)filenames { + [parameters sdl_setObject:filenames forName:SDLNameFilenames]; } -- (NSMutableArray *)filenames { - return [parameters objectForKey:NAMES_filenames]; +- (nullable NSArray *)filenames { + return [parameters sdl_objectForName:SDLNameFilenames]; } -- (void)setSpaceAvailable:(NSNumber *)spaceAvailable { - if (spaceAvailable != nil) { - [parameters setObject:spaceAvailable forKey:NAMES_spaceAvailable]; - } else { - [parameters removeObjectForKey:NAMES_spaceAvailable]; - } +- (void)setSpaceAvailable:(NSNumber *)spaceAvailable { + [parameters sdl_setObject:spaceAvailable forName:SDLNameSpaceAvailable]; } -- (NSNumber *)spaceAvailable { - return [parameters objectForKey:NAMES_spaceAvailable]; +- (NSNumber *)spaceAvailable { + return [parameters sdl_objectForName:SDLNameSpaceAvailable]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLocationCoordinate.h b/SmartDeviceLink/SDLLocationCoordinate.h index dd2850f97..0fef535c2 100644 --- a/SmartDeviceLink/SDLLocationCoordinate.h +++ b/SmartDeviceLink/SDLLocationCoordinate.h @@ -3,6 +3,8 @@ #import "SDLRPCStruct.h" +NS_ASSUME_NONNULL_BEGIN + @interface SDLLocationCoordinate : SDLRPCStruct /** @@ -20,3 +22,5 @@ @property (copy, nonatomic) NSNumber *longitudeDegrees; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLocationCoordinate.m b/SmartDeviceLink/SDLLocationCoordinate.m index 86a726078..79b3d4d56 100644 --- a/SmartDeviceLink/SDLLocationCoordinate.m +++ b/SmartDeviceLink/SDLLocationCoordinate.m @@ -2,32 +2,30 @@ // #import "SDLLocationCoordinate.h" + +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLLocationCoordinate - (void)setLongitudeDegrees:(NSNumber *)longitudeDegrees { - if (longitudeDegrees != nil) { - store[NAMES_longitudeDegrees] = longitudeDegrees; - } else { - [store removeObjectForKey:NAMES_longitudeDegrees]; - } + [store sdl_setObject:longitudeDegrees forName:SDLNameLongitudeDegrees]; } - (NSNumber *)longitudeDegrees { - return store[NAMES_longitudeDegrees]; + return [store sdl_objectForName:SDLNameLongitudeDegrees]; } - (void)setLatitudeDegrees:(NSNumber *)latitudeDegrees { - if (latitudeDegrees != nil) { - store[NAMES_latitudeDegrees] = latitudeDegrees; - } else { - [store removeObjectForKey:NAMES_latitudeDegrees]; - } + [store sdl_setObject:latitudeDegrees forName:SDLNameLatitudeDegrees]; } - (NSNumber *)latitudeDegrees { - return store[NAMES_latitudeDegrees]; + return [store sdl_objectForName:SDLNameLatitudeDegrees]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLocationDetails.h b/SmartDeviceLink/SDLLocationDetails.h index 349a58265..3bce4d58c 100644 --- a/SmartDeviceLink/SDLLocationDetails.h +++ b/SmartDeviceLink/SDLLocationDetails.h @@ -7,6 +7,8 @@ @class SDLImage; @class SDLOasisAddress; +NS_ASSUME_NONNULL_BEGIN + @interface SDLLocationDetails : SDLRPCStruct /** @@ -16,35 +18,35 @@ * * Optional */ -@property (strong, nonatomic) SDLLocationCoordinate *coordinate; +@property (nullable, strong, nonatomic) SDLLocationCoordinate *coordinate; /** * @abstract Name of location. * * Optional, Max length 500 chars */ -@property (copy, nonatomic) NSString *locationName; +@property (nullable, copy, nonatomic) NSString *locationName; /** * @abstract Location address for display purposes only. * * Optional, Array of Strings, Array length 0 - 4, Max String length 500 */ -@property (copy, nonatomic) NSArray *addressLines; +@property (nullable, copy, nonatomic) NSArray *addressLines; /** * @abstract Description intended location / establishment. * * Optional, Max length 500 chars */ -@property (copy, nonatomic) NSString *locationDescription; +@property (nullable, copy, nonatomic) NSString *locationDescription; /** * @abstract Phone number of location / establishment. * * Optional, Max length 500 chars */ -@property (copy, nonatomic) NSString *phoneNumber; +@property (nullable, copy, nonatomic) NSString *phoneNumber; /** * @abstract Image / icon of intended location. @@ -53,7 +55,7 @@ * * Optional */ -@property (strong, nonatomic) SDLImage *locationImage; +@property (nullable, strong, nonatomic) SDLImage *locationImage; /** * @abstract Address to be used by navigation engines for search. @@ -62,7 +64,9 @@ * * Optional */ -@property (strong) SDLOasisAddress *searchAddress; +@property (nullable, strong, nonatomic) SDLOasisAddress *searchAddress; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLocationDetails.m b/SmartDeviceLink/SDLLocationDetails.m index fbdea7d4e..ccf73cda4 100644 --- a/SmartDeviceLink/SDLLocationDetails.m +++ b/SmartDeviceLink/SDLLocationDetails.m @@ -3,110 +3,72 @@ #import "SDLLocationDetails.h" +#import "NSMutableDictionary+Store.h" #import "SDLImage.h" #import "SDLLocationCoordinate.h" #import "SDLNames.h" #import "SDLOasisAddress.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLLocationDetails -- (void)setCoordinate:(SDLLocationCoordinate *)coordinate { - if (coordinate != nil) { - store[NAMES_locationCoordinate] = coordinate; - } else { - [store removeObjectForKey:NAMES_locationCoordinate]; - } +- (void)setCoordinate:(nullable SDLLocationCoordinate *)coordinate { + [store sdl_setObject:coordinate forName:SDLNameLocationCoordinate]; } -- (SDLLocationCoordinate *)coordinate { - NSObject *obj = [store objectForKey:NAMES_locationCoordinate]; - if (obj == nil || [obj isKindOfClass:SDLLocationCoordinate.class]) { - return (SDLLocationCoordinate *)obj; - } else { - return [[SDLLocationCoordinate alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLLocationCoordinate *)coordinate { + return [store sdl_objectForName:SDLNameLocationCoordinate ofClass:SDLLocationCoordinate.class]; } -- (void)setLocationName:(NSString *)locationName { - if (locationName != nil) { - store[NAMES_locationName] = locationName; - } else { - [store removeObjectForKey:NAMES_locationName]; - } +- (void)setLocationName:(nullable NSString *)locationName { + [store sdl_setObject:locationName forName:SDLNameLocationName]; } -- (NSString *)locationName { - return store[NAMES_locationName]; +- (nullable NSString *)locationName { + return [store sdl_objectForName:SDLNameLocationName]; } -- (void)setAddressLines:(NSArray *)addressLines { - if (addressLines != nil) { - store[NAMES_addressLines] = addressLines; - } else { - [store removeObjectForKey:NAMES_addressLines]; - } +- (void)setAddressLines:(nullable NSArray *)addressLines { + [store sdl_setObject:addressLines forName:SDLNameAddressLines]; } -- (NSArray *)addressLines { - return store[NAMES_addressLines]; +- (nullable NSArray *)addressLines { + return [store sdl_objectForName:SDLNameAddressLines]; } -- (void)setLocationDescription:(NSString *)locationDescription { - if (locationDescription != nil) { - store[NAMES_locationDescription] = locationDescription; - } else { - [store removeObjectForKey:NAMES_locationDescription]; - } +- (void)setLocationDescription:(nullable NSString *)locationDescription { + [store sdl_setObject:locationDescription forName:SDLNameLocationDescription]; } -- (NSString *)locationDescription { - return store[NAMES_locationDescription]; +- (nullable NSString *)locationDescription { + return [store sdl_objectForName:SDLNameLocationDescription]; } -- (void)setPhoneNumber:(NSString *)phoneNumber { - if (phoneNumber != nil) { - store[NAMES_phoneNumber] = phoneNumber; - } else { - [store removeObjectForKey:NAMES_phoneNumber]; - } +- (void)setPhoneNumber:(nullable NSString *)phoneNumber { + [store sdl_setObject:phoneNumber forName:SDLNamePhoneNumber]; } -- (NSString *)phoneNumber { - return store[NAMES_phoneNumber]; +- (nullable NSString *)phoneNumber { + return [store sdl_objectForName:SDLNamePhoneNumber]; } -- (void)setLocationImage:(SDLImage *)locationImage { - if (locationImage != nil) { - store[NAMES_locationImage] = locationImage; - } else { - [store removeObjectForKey:NAMES_locationImage]; - } +- (void)setLocationImage:(nullable SDLImage *)locationImage { + [store sdl_setObject:locationImage forName:SDLNameLocationImage]; } -- (SDLImage *)locationImage { - NSObject *obj = [store objectForKey:NAMES_locationImage]; - if (obj == nil || [obj isKindOfClass:SDLImage.class]) { - return (SDLImage *)obj; - } else { - return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLImage *)locationImage { + return [store sdl_objectForName:SDLNameLocationImage ofClass:SDLImage.class]; } -- (void)setSearchAddress:(SDLOasisAddress *)searchAddress { - if (searchAddress != nil) { - store[NAMES_searchAddress] = searchAddress; - } else { - [store removeObjectForKey:NAMES_searchAddress]; - } +- (void)setSearchAddress:(nullable SDLOasisAddress *)searchAddress { + [store sdl_setObject:searchAddress forName:SDLNameSearchAddress]; } -- (SDLOasisAddress *)searchAddress { - NSObject *obj = [store objectForKey:NAMES_searchAddress]; - if (obj == nil || [obj isKindOfClass:SDLOasisAddress.class]) { - return (SDLOasisAddress *)obj; - } else { - return [[SDLOasisAddress alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLOasisAddress *)searchAddress { + return [store sdl_objectForName:SDLNameSearchAddress ofClass:SDLOasisAddress.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLockScreenManager.m b/SmartDeviceLink/SDLLockScreenManager.m index 15f949f43..7278ad2b1 100644 --- a/SmartDeviceLink/SDLLockScreenManager.m +++ b/SmartDeviceLink/SDLLockScreenManager.m @@ -9,7 +9,7 @@ #import "SDLLockScreenManager.h" #import "NSBundle+SDLBundle.h" -#import "SDLDebugTool.h" +#import "SDLLogMacros.h" #import "SDLLockScreenConfiguration.h" #import "SDLLockScreenStatus.h" #import "SDLLockScreenViewController.h" @@ -66,7 +66,7 @@ - (void)start { @try { viewController = [[UIStoryboard storyboardWithName:@"SDLLockScreen" bundle:[NSBundle sdlBundle]] instantiateInitialViewController]; } @catch (NSException *exception) { - [SDLDebugTool logInfo:@"SDL Error: Attempted to instantiate the default SDL Lock Screen and could not find the storyboard. Be sure the 'SmartDeviceLink' bundle is within your main bundle. We're just going to return without instantiating the lock screen."]; + SDLLogE(@"Attempted to instantiate the default SDL Lock Screen and could not find the storyboard. Be sure the 'SmartDeviceLink' bundle is within your main bundle. We're just going to return without instantiating the lock screen"); return; } @@ -93,8 +93,7 @@ - (nullable UIViewController *)lockScreenViewController { #pragma mark - Notification Selectors - (void)sdl_lockScreenStatusDidChange:(SDLRPCNotificationNotification *)notification { - NSAssert([notification.notification isKindOfClass:[SDLOnLockScreenStatus class]], @"A notification was sent with an unanticipated object"); - if (![notification.notification isKindOfClass:[SDLOnLockScreenStatus class]]) { + if (![notification isNotificationMemberOfClass:[SDLOnLockScreenStatus class]]) { return; } @@ -129,17 +128,17 @@ - (void)sdl_checkLockScreen { } // Present the VC depending on the lock screen status - if ([self.lastLockNotification.lockScreenStatus isEqualToEnum:[SDLLockScreenStatus REQUIRED]]) { + if ([self.lastLockNotification.lockScreenStatus isEqualToEnum:SDLLockScreenStatusRequired]) { if (!self.presenter.presented && self.canPresent) { [self.presenter present]; } - } else if ([self.lastLockNotification.lockScreenStatus isEqualToEnum:[SDLLockScreenStatus OPTIONAL]]) { + } else if ([self.lastLockNotification.lockScreenStatus isEqualToEnum:SDLLockScreenStatusOptional]) { if (self.config.showInOptionalState && !self.presenter.presented && self.canPresent) { [self.presenter present]; } else if (self.presenter.presented) { [self.presenter dismiss]; } - } else if ([self.lastLockNotification.lockScreenStatus isEqualToEnum:[SDLLockScreenStatus OFF]]) { + } else if ([self.lastLockNotification.lockScreenStatus isEqualToEnum:SDLLockScreenStatusOff]) { if (self.presenter.presented) { [self.presenter dismiss]; } diff --git a/SmartDeviceLink/SDLLockScreenStatus.h b/SmartDeviceLink/SDLLockScreenStatus.h index 044aa7e3e..9c3a676d2 100644 --- a/SmartDeviceLink/SDLLockScreenStatus.h +++ b/SmartDeviceLink/SDLLockScreenStatus.h @@ -6,19 +6,19 @@ #import "SDLEnum.h" -@interface SDLLockScreenStatus : SDLEnum -+ (SDLLockScreenStatus *)valueOf:(NSString *)value; -+ (NSMutableArray *)values; +typedef SDLEnum SDLLockScreenStatus SDL_SWIFT_ENUM; + /** * LockScreen is Not Required */ -+ (SDLLockScreenStatus *)OFF; +extern SDLLockScreenStatus const SDLLockScreenStatusOff; + /** * LockScreen is Optional */ -+ (SDLLockScreenStatus *)OPTIONAL; +extern SDLLockScreenStatus const SDLLockScreenStatusOptional; + /** * LockScreen is Not Required */ -+ (SDLLockScreenStatus *)REQUIRED; -@end +extern SDLLockScreenStatus const SDLLockScreenStatusRequired; diff --git a/SmartDeviceLink/SDLLockScreenStatus.m b/SmartDeviceLink/SDLLockScreenStatus.m index 8ef8a7d43..4b721ad8f 100644 --- a/SmartDeviceLink/SDLLockScreenStatus.m +++ b/SmartDeviceLink/SDLLockScreenStatus.m @@ -5,55 +5,6 @@ #import "SDLLockScreenStatus.h" -@implementation SDLLockScreenStatus - -SDLLockScreenStatus *SDLLockScreenStatus_OFF = nil; -SDLLockScreenStatus *SDLLockScreenStatus_OPTIONAL = nil; -SDLLockScreenStatus *SDLLockScreenStatus_REQUIRED = nil; - -NSArray *SDLLockScreenStatus_values = nil; - - -+ (SDLLockScreenStatus *)valueOf:(NSString *)value { - for (SDLLockScreenStatus *item in SDLLockScreenStatus.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLLockScreenStatus_values == nil) { - SDLLockScreenStatus_values = @[ - SDLLockScreenStatus.OFF, - SDLLockScreenStatus.OPTIONAL, - SDLLockScreenStatus.REQUIRED, - ]; - } - return SDLLockScreenStatus_values; -} - -+ (SDLLockScreenStatus *)OFF { - if (SDLLockScreenStatus_OFF == nil) { - SDLLockScreenStatus_OFF = [[SDLLockScreenStatus alloc] initWithValue:@"OFF"]; - } - return SDLLockScreenStatus_OFF; -} - -+ (SDLLockScreenStatus *)OPTIONAL { - if (SDLLockScreenStatus_OPTIONAL == nil) { - SDLLockScreenStatus_OPTIONAL = [[SDLLockScreenStatus alloc] initWithValue:@"OPTIONAL"]; - } - return SDLLockScreenStatus_OPTIONAL; -} - -+ (SDLLockScreenStatus *)REQUIRED { - if (SDLLockScreenStatus_REQUIRED == nil) { - SDLLockScreenStatus_REQUIRED = [[SDLLockScreenStatus alloc] initWithValue:@"REQUIRED"]; - } - return SDLLockScreenStatus_REQUIRED; -} - - -@end +SDLLockScreenStatus const SDLLockScreenStatusOff = @"OFF"; +SDLLockScreenStatus const SDLLockScreenStatusOptional = @"OPTIONAL"; +SDLLockScreenStatus const SDLLockScreenStatusRequired = @"REQUIRED"; diff --git a/SmartDeviceLink/SDLLockScreenStatusManager.h b/SmartDeviceLink/SDLLockScreenStatusManager.h index 0467b2171..2a37b9d83 100644 --- a/SmartDeviceLink/SDLLockScreenStatusManager.h +++ b/SmartDeviceLink/SDLLockScreenStatusManager.h @@ -5,17 +5,21 @@ #import -@class SDLHMILevel; -@class SDLLockScreenStatus; +#import "SDLHMILevel.h" +#import "SDLLockScreenStatus.h" + @class SDLOnLockScreenStatus; +NS_ASSUME_NONNULL_BEGIN @interface SDLLockScreenStatusManager : NSObject @property (assign, nonatomic) BOOL userSelected; @property (assign, nonatomic) BOOL driverDistracted; -@property (strong, nonatomic) SDLHMILevel *hmiLevel; -@property (strong, nonatomic, readonly) SDLLockScreenStatus *lockScreenStatus; +@property (nullable, strong, nonatomic) SDLHMILevel hmiLevel; +@property (strong, nonatomic, readonly) SDLLockScreenStatus lockScreenStatus; @property (strong, nonatomic, readonly) SDLOnLockScreenStatus *lockScreenStatusNotification; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLockScreenStatusManager.m b/SmartDeviceLink/SDLLockScreenStatusManager.m index 956da2dcf..82724eb6f 100644 --- a/SmartDeviceLink/SDLLockScreenStatusManager.m +++ b/SmartDeviceLink/SDLLockScreenStatusManager.m @@ -5,10 +5,10 @@ #import "SDLLockScreenStatusManager.h" -#import "SDLHMILevel.h" #import "SDLLockScreenStatus.h" #import "SDLOnLockScreenStatus.h" +NS_ASSUME_NONNULL_BEGIN @interface SDLLockScreenStatusManager () @@ -40,14 +40,14 @@ - (void)setDriverDistracted:(BOOL)driverDistracted { _haveDriverDistractionStatus = YES; } -- (void)setHmiLevel:(SDLHMILevel *)hmiLevel { +- (void)setHmiLevel:(nullable SDLHMILevel)hmiLevel { if (_hmiLevel != hmiLevel) { _hmiLevel = hmiLevel; } - if ([hmiLevel isEqualToEnum:[SDLHMILevel FULL]] || [hmiLevel isEqualToEnum:[SDLHMILevel LIMITED]]) { + if ([hmiLevel isEqualToEnum:SDLHMILevelFull] || [hmiLevel isEqualToEnum:SDLHMILevelLimited]) { self.userSelected = YES; - } else if ([hmiLevel isEqualToEnum:[SDLHMILevel NONE]]) { + } else if ([hmiLevel isEqualToEnum:SDLHMILevelNone]) { self.userSelected = NO; } } @@ -65,38 +65,39 @@ - (SDLOnLockScreenStatus *)lockScreenStatusNotification { return notification; } -- (SDLLockScreenStatus *)lockScreenStatus { - if (self.hmiLevel == nil || [self.hmiLevel isEqualToEnum:[SDLHMILevel NONE]]) { +- (SDLLockScreenStatus)lockScreenStatus { + if (self.hmiLevel == nil || [self.hmiLevel isEqualToEnum:SDLHMILevelNone]) { // App is not active on the car - return [SDLLockScreenStatus OFF]; - } else if ([self.hmiLevel isEqualToEnum:[SDLHMILevel BACKGROUND]]) { + return SDLLockScreenStatusOff; + } else if ([self.hmiLevel isEqualToEnum:SDLHMILevelBackground]) { // App is in the background on the car if (self.userSelected) { // It was user selected if (self.haveDriverDistractionStatus && !self.driverDistracted) { // We have the distraction status, and the driver is not distracted - return [SDLLockScreenStatus OPTIONAL]; + return SDLLockScreenStatusOptional; } else { // We don't have the distraction status, and/or the driver is distracted - return [SDLLockScreenStatus REQUIRED]; + return SDLLockScreenStatusRequired; } } else { - // It wasn't user selected - return [SDLLockScreenStatus OFF]; + return SDLLockScreenStatusOff; } - } else if ([self.hmiLevel isEqualToEnum:[SDLHMILevel FULL]] || [self.hmiLevel isEqualToEnum:[SDLHMILevel LIMITED]]) { + } else if ([self.hmiLevel isEqualToEnum:SDLHMILevelFull] || [self.hmiLevel isEqualToEnum:SDLHMILevelLimited]) { // App is in the foreground on the car in some manner if (self.haveDriverDistractionStatus && !self.driverDistracted) { // We have the distraction status, and the driver is not distracted - return [SDLLockScreenStatus OPTIONAL]; + return SDLLockScreenStatusOptional; } else { // We don't have the distraction status, and/or the driver is distracted - return [SDLLockScreenStatus REQUIRED]; + return SDLLockScreenStatusRequired; } } else { // This shouldn't be possible. - return [SDLLockScreenStatus OFF]; + return SDLLockScreenStatusOff; } } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLockScreenViewController.m b/SmartDeviceLink/SDLLockScreenViewController.m index 88bd4ff74..c69b059bb 100644 --- a/SmartDeviceLink/SDLLockScreenViewController.m +++ b/SmartDeviceLink/SDLLockScreenViewController.m @@ -40,7 +40,7 @@ - (BOOL)shouldAutorotate { } - (UIStatusBarStyle)preferredStatusBarStyle { - BOOL useWhiteIcon = [self.class shouldUseWhiteForegroundForBackgroundColor:self.backgroundColor]; + BOOL useWhiteIcon = [self.class sdl_shouldUseWhiteForegroundForBackgroundColor:self.backgroundColor]; return useWhiteIcon ? UIStatusBarStyleLightContent : UIStatusBarStyleDefault; } @@ -71,15 +71,18 @@ - (void)setBackgroundColor:(UIColor *_Nullable)backgroundColor { #pragma mark - Layout - (void)sdl_layoutViews { - BOOL useWhiteIcon = [self.class shouldUseWhiteForegroundForBackgroundColor:self.backgroundColor]; + UIColor *iconColor = [self.class sdl_accentColorBasedOnColor:self.backgroundColor]; - UIImage *sdlLogo = [self.class sdl_logoImageWithColor:useWhiteIcon]; - self.sdlIconImageView.image = sdlLogo; + self.sdlIconImageView.image = [self.class sdl_imageWithName:@"sdl_logo_black"]; + self.sdlIconImageView.tintColor = iconColor; - self.arrowUpImageView.image = [self.class sdl_arrowUpImageWithColor:useWhiteIcon]; - self.arrowDownImageView.image = [self.class sdl_arrowDownImageWithColor:useWhiteIcon]; - - self.lockedLabel.textColor = useWhiteIcon ? [UIColor whiteColor] : [UIColor blackColor]; + self.arrowUpImageView.image = [self.class sdl_imageWithName:@"lock_arrow_up_black"]; + self.arrowUpImageView.tintColor = iconColor; + + self.arrowDownImageView.image = [self.class sdl_imageWithName:@"lock_arrow_down_black"]; + self.arrowDownImageView.tintColor = iconColor; + + self.lockedLabel.textColor = iconColor; if (self.vehicleIcon != nil && self.appIcon != nil) { [self sdl_setVehicleAndAppIconsLayout]; @@ -106,7 +109,8 @@ - (void)sdl_setVehicleAndAppIconsLayout { self.primaryVehicleIconImageView.image = self.vehicleIcon; self.backupImageView.image = nil; - + self.backupImageView.tintColor = nil; + self.arrowUpImageView.alpha = 1.0; self.arrowDownImageView.alpha = 1.0; @@ -118,7 +122,8 @@ - (void)sdl_setAppIconOnlyLayout { self.primaryVehicleIconImageView.image = nil; self.backupImageView.image = self.appIcon; - + self.backupImageView.tintColor = nil; + self.arrowUpImageView.alpha = 0.0; self.arrowDownImageView.alpha = 0.0; @@ -130,7 +135,8 @@ - (void)sdl_setVehicleIconOnlyLayout { self.primaryVehicleIconImageView.image = nil; self.backupImageView.image = self.vehicleIcon; - + self.backupImageView.tintColor = nil; + self.arrowUpImageView.alpha = 0.0; self.arrowDownImageView.alpha = 0.0; @@ -142,6 +148,7 @@ - (void)sdl_setNoIconsLayout { self.primaryVehicleIconImageView.image = nil; self.backupImageView.image = self.sdlIconImageView.image; + self.backupImageView.tintColor = [self.class sdl_accentColorBasedOnColor:self.backgroundColor]; self.arrowUpImageView.alpha = 0.0; self.arrowDownImageView.alpha = 0.0; @@ -152,34 +159,16 @@ - (void)sdl_setNoIconsLayout { #pragma mark - Private Image -// TODO: (Joel F.)[2016-08-22] When moved to iOS 7+, use `imageWithRenderingMode:` -+ (UIImage *)sdl_logoImageWithColor:(BOOL)white { - return [self sdl_imageWithName:[NSString stringWithFormat:@"sdl_logo_%@", white ? @"white" : @"black"]]; -} - -+ (UIImage *)sdl_arrowUpImageWithColor:(BOOL)white { - return [self sdl_imageWithName:[NSString stringWithFormat:@"lock_arrow_up_%@", white ? @"white" : @"black"]]; -} - -+ (UIImage *)sdl_arrowDownImageWithColor:(BOOL)white { - return [self sdl_imageWithName:[NSString stringWithFormat:@"lock_arrow_down_%@", white ? @"white" : @"black"]]; ++ (UIColor *)sdl_accentColorBasedOnColor:(UIColor *)backgroundColor { + return [self sdl_shouldUseWhiteForegroundForBackgroundColor:backgroundColor] ? [UIColor whiteColor] : [UIColor blackColor]; } + (UIImage *)sdl_imageWithName:(NSString *)name { - if (SDL_SYSTEM_VERSION_LESS_THAN(@"8.0")) { - NSString *bundlePath = [[NSBundle sdlBundle] bundlePath]; - NSInteger deviceScale = [[UIScreen mainScreen] scale]; - // We assume we are only dealing with PNGs. - NSString *fileName = [NSString stringWithFormat:@"%@%li.png", name, (long)deviceScale]; - NSString *fullPath = [NSString stringWithFormat:@"%@/%@", bundlePath, fileName]; - NSData *imageData = [NSData dataWithContentsOfFile:fullPath]; - return [UIImage imageWithData:imageData]; - } else { - return [UIImage imageNamed:name inBundle:[NSBundle sdlBundle] compatibleWithTraitCollection:nil]; - } + UIImage* image = [UIImage imageNamed:name inBundle:[NSBundle sdlBundle] compatibleWithTraitCollection:nil]; + return [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; } -+ (BOOL)shouldUseWhiteForegroundForBackgroundColor:(UIColor *)backgroundColor { ++ (BOOL)sdl_shouldUseWhiteForegroundForBackgroundColor:(UIColor *)backgroundColor { CGFloat red, green, blue; [backgroundColor getRed:&red green:&green blue:&blue alpha:nil]; diff --git a/SmartDeviceLink/SDLLogConfiguration.h b/SmartDeviceLink/SDLLogConfiguration.h new file mode 100644 index 000000000..c7f49adf0 --- /dev/null +++ b/SmartDeviceLink/SDLLogConfiguration.h @@ -0,0 +1,75 @@ +// +// SDLLogConfiguration.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 2/27/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLLogConstants.h" +#import "SDLLogFilter.h" +#import "SDLLogTarget.h" + +@class SDLLogFileModule; + + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLLogConfiguration : NSObject + +/** + Any custom logging modules used by the developer's code. Defaults to none. + */ +@property (copy, nonatomic) NSSet *modules; + +/** + Where the logs will attempt to output. Defaults to Console. + */ +@property (copy, nonatomic) NSSet> *targets; + +/** + What log filters will run over this session. Defaults to none. + */ +@property (copy, nonatomic) NSSet *filters; + +/** + How detailed of logs will be output. Defaults to Default. + */ +@property (assign, nonatomic) SDLLogFormatType formatType; + +/** + Whether or not logs will be run on a separate queue, asynchronously, allowing the following code to run before the log completes. Or if it will occur synchronously, which will prevent logs from being missed, but will slow down surrounding code. Defaults to YES. + */ +@property (assign, nonatomic, getter=isAsynchronous) BOOL asynchronous; + +/** + Whether or not error logs will be dispatched to loggers asynchronously. Defaults to NO. + */ +@property (assign, nonatomic, getter=areErrorsAsynchronous) BOOL errorsAsynchronous; + +/** + Any modules that do not have an explicitly specified level will by default use the global log level. Defaults to Error. + Do not specify Default for this parameter. + */ +@property (assign, nonatomic) SDLLogLevel globalLogLevel; + + +/** + A default logger for production. This sets the format type to Default, the log level to Error, and only enables the ASL logger. + + @return A default configuration that may be customized. + */ ++ (instancetype)defaultConfiguration; + +/** + A debug logger for use in development. This sets the format type to Detailed, the log level to Debug, and enables the Console and ASL loggers. + + @return A debug configuration that may be customized. + */ ++ (instancetype)debugConfiguration; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLogConfiguration.m b/SmartDeviceLink/SDLLogConfiguration.m new file mode 100644 index 000000000..3ef5526df --- /dev/null +++ b/SmartDeviceLink/SDLLogConfiguration.m @@ -0,0 +1,90 @@ +// +// SDLLogConfiguration.m +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 2/27/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLLogConfiguration.h" + +#import "SDLLogFileModule.h" +#import "SDLLogFileModuleMap.h" +#import "SDLLogTargetAppleSystemLog.h" +#import "SDLLogTargetOSLog.h" + + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLLogConfiguration + +- (instancetype)init { + self = [super init]; + if (!self) { return nil; } + + _modules = [NSSet set]; + _targets = [NSSet set]; + _filters = [NSSet set]; + _formatType = SDLLogFormatTypeDefault; + _asynchronous = YES; + _errorsAsynchronous = NO; + _globalLogLevel = SDLLogLevelError; + + return self; +} + +- (instancetype)initWithDefaultConfiguration { + self = [self init]; + if (!self) { + return nil; + } + + NSOperatingSystemVersion osVersion = [NSProcessInfo processInfo].operatingSystemVersion; + + if (osVersion.majorVersion >= 10) { + _targets = [NSSet setWithArray:@[[SDLLogTargetOSLog logger]]]; + } else { + _targets = [NSSet setWithArray:@[[SDLLogTargetAppleSystemLog logger]]]; + } + + _modules = [SDLLogFileModuleMap sdlModuleMap]; + + return self; +} + ++ (instancetype)defaultConfiguration { + return [[self.class alloc] initWithDefaultConfiguration]; +} + +- (instancetype)initWithDebugConfiguration { + self = [self initWithDefaultConfiguration]; + if (!self) { return nil; } + + _formatType = SDLLogFormatTypeDetailed; + _globalLogLevel = SDLLogLevelDebug; + + return self; +} + ++ (instancetype)debugConfiguration { + return [[self.class alloc] initWithDebugConfiguration]; +} + +#pragma mark - NSCopying + +- (id)copyWithZone:(nullable NSZone *)zone { + SDLLogConfiguration *newConfig = [[self.class allocWithZone:zone] init]; + newConfig.modules = self.modules; + newConfig.targets = self.targets; + newConfig.filters = self.filters; + newConfig.formatType = self.formatType; + newConfig.asynchronous = self.asynchronous; + newConfig.errorsAsynchronous = self.errorsAsynchronous; + newConfig.globalLogLevel = self.globalLogLevel; + + return newConfig; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLogConstants.h b/SmartDeviceLink/SDLLogConstants.h new file mode 100644 index 000000000..f0d9751bc --- /dev/null +++ b/SmartDeviceLink/SDLLogConstants.h @@ -0,0 +1,75 @@ +// +// SDLLogConstants.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 2/27/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +@class SDLLogModel; + +NS_ASSUME_NONNULL_BEGIN + +/** + A block that takes in a log model and returns whether or not the log passes the filter and should therefore be logged. + + @param log The log model describing the log. + @return Whether or not the log should be logged. + */ +typedef BOOL (^SDLLogFilterBlock)(SDLLogModel *log); + +typedef NS_ENUM(NSUInteger, SDLLogBytesDirection) { + SDLLogBytesDirectionTransmit, + SDLLogBytesDirectionReceive +}; + +/** + Flags used for SDLLogLevel to provide correct enum values. This is purely for internal use. + + - SDLLogFlagVerbose: Verbose level logging + - SDLLogFlagDebug: Debug level logging + - SDLLogFlagWarning: Warning level logging + - SDLLogFlagError: Error level logging. + */ +typedef NS_OPTIONS(NSUInteger, SDLLogFlag) { + SDLLogFlagError = 1 << 0, + SDLLogFlagWarning = 1 << 1, + SDLLogFlagDebug = 1 << 2, + SDLLogFlagVerbose = 1 << 3, +}; + +/** + An enum describing a level of logging. + + - SDLLogLevelDefault: This is used to describe that a "specific" logging will instead use the global log level, for example, a module may use the global log level instead of its own by specifying this level. + - SDLLogLevelOff: This is used to describe a level that involves absolutely no logs being output. + - SDLLogLevelError: Only error level logs will be output. + - SDLLogLevelWarning: Both error and warning level logs will be output. + - SDLLogLevelDebug: Error, warning, and debug level logs will be output. This level will never be output in RELEASE environments. + - SDLLogLevelVerbose: All level logs will be output. This level will never be output in RELEASE environments. + */ +typedef NS_ENUM(NSInteger, SDLLogLevel) { + SDLLogLevelDefault = -1, + SDLLogLevelOff = 0, + SDLLogLevelError = SDLLogFlagError, + SDLLogLevelWarning = (SDLLogFlagError | SDLLogFlagWarning), + SDLLogLevelDebug = (SDLLogFlagWarning | SDLLogFlagDebug), + SDLLogLevelVerbose = (SDLLogFlagDebug | SDLLogFlagVerbose) +}; + +/** + The output format of logs; how they will appear when printed out into a string. + + - SDLLogFormatTypeSimple: A bare-bones log format: `09:52:07:324 🔹 (SDL)Protocol – a random test i guess` + - SDLLogFormatTypeDefault: A middle detail default log format: `09:52:07:324 🔹 (SDL)Protocol:SDLV2ProtocolHeader:25 – Some log message` + - SDLLogFormatTypeDetailed: A very detailed log format: `09:52:07:324 🔹 DEBUG com.apple.main-thread:(SDL)Protocol:[SDLV2ProtocolHeader parse:]:74 – Some log message` + */ +typedef NS_ENUM(NSUInteger, SDLLogFormatType) { + SDLLogFormatTypeSimple, + SDLLogFormatTypeDefault, + SDLLogFormatTypeDetailed, +}; + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLogFileModule.h b/SmartDeviceLink/SDLLogFileModule.h new file mode 100644 index 000000000..6bd568eb4 --- /dev/null +++ b/SmartDeviceLink/SDLLogFileModule.h @@ -0,0 +1,80 @@ +// +// SDLLogFileModule.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 2/27/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLLogConstants.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLLogFileModule : NSObject + +/** + The name of the this module, e.g. "Transport" + */ +@property (copy, nonatomic, readonly) NSString *name; + +/** + All of the files contained within this module. When a log is logged, the `__FILE__` (in Obj-C) or `#file` (in Swift) is automatically captured and checked to see if any module has a file in this set that matches. If it does, it will be logged using the module's log level and the module's name will be printed in the formatted log. + */ +@property (copy, nonatomic, readonly) NSSet *files; + +/** + The custom level of the log. This is `SDLLogLevelDefault` (whatever the current global log level is) by default. + */ +@property (assign, nonatomic) SDLLogLevel logLevel; + + +/** + This method is unavailable and may not be used. + + @return Always returns nil + */ +- (instancetype)init NS_UNAVAILABLE; + +/** + Returns an initialized `SDLLogFileModule` that contains a custom name, set of files, and associated log level. + + @param name The name of this module. This will be used when printing a formatted log for a file within this module e.g. "Transport". + @param files The files this module covers. This should correspond to a `__FILE__` or `#file` call for use when comparing a log to this module. Any log originating in a file contained in this set will then use this module's log level and print the module name. + @param level The custom logging level logs originating in files contained in this log module will use. For example, if the global level is `SDLLogLevelError` and this module is configured to `SDLLogLevelVerbose`, all logs originating from files within this module will be logged, not merely error logs. + @return An initialized `SDLLogFileModule` + */ +- (instancetype)initWithName:(NSString *)name files:(NSSet *)files level:(SDLLogLevel)level NS_DESIGNATED_INITIALIZER; + +/** + Returns an initialized `SDLLogFileModule` that contains a custom name and set of files. The logging level is the same as the current global logging file by using `SDLLogLevelDefault`. + + @param name The name of this module. This will be used when printing a formatted log for a file within this module e.g. "Transport". + @param files The files this module covers. This should correspond to a `__FILE__` or `#file` call for use when comparing a log to this module. Any log originating in a file contained in this set will then use this module's log level and print the module name. + @return An initialized `SDLLogFileModule` + */ +- (instancetype)initWithName:(NSString *)name files:(NSSet *)files; + +/** + Returns an initialized `SDLLogFileModule` that contains a custom name and set of files. The logging level is the same as the current global logging file by using `SDLLogLevelDefault`. + + @param name The name of this module. This will be used when printing a formatted log for a file within this module e.g. "Transport". + @param files The files this module covers. This should correspond to a `__FILE__` or `#file` call for use when comparing a log to this module. Any log originating in a file contained in this set will then use this module's log level and print the module name. + @return An initialized `SDLLogFileModule` + */ ++ (instancetype)moduleWithName:(NSString *)name files:(NSSet *)files; + + +/** + Returns whether or not this module contains a given file. + + @param fileName The file name to check + @return A BOOL, YES if this module contains the given file. + */ +- (BOOL)containsFile:(NSString *)fileName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLogFileModule.m b/SmartDeviceLink/SDLLogFileModule.m new file mode 100644 index 000000000..34718bd17 --- /dev/null +++ b/SmartDeviceLink/SDLLogFileModule.m @@ -0,0 +1,69 @@ +// +// SDLLogFileModule.m +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 2/27/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLLogFileModule.h" + + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLLogFileModule + +- (instancetype)init { + NSAssert(NO, @"%s not allowed", __PRETTY_FUNCTION__); + return nil; +} + +- (instancetype)initWithName:(NSString *)name files:(NSSet *)files level:(SDLLogLevel)level { + self = [super init]; + if (!self) { return nil; } + + _name = name; + _files = files; + _logLevel = level; + + return self; +} + +- (instancetype)initWithName:(NSString *)name files:(NSSet *)files { + return [self initWithName:name files:files level:SDLLogLevelDefault]; +} + ++ (instancetype)moduleWithName:(NSString *)name files:(NSSet *)files { + return [[self alloc] initWithName:name files:files]; +} + +- (BOOL)containsFile:(NSString *)fileName { + return [self.files containsObject:fileName]; +} + + +#pragma mark - NSObject + +- (NSUInteger)hash { + return self.name.hash; +} + +- (BOOL)isEqual:(id)object { + if (self == object) { + return YES; + } + + if (![object isKindOfClass:self.class]) { + return NO; + } + + return [self isEqualToModule:(SDLLogFileModule *)object]; +} + +- (BOOL)isEqualToModule:(SDLLogFileModule *)module { + return [self.name isEqualToString:module.name]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLogFileModuleMap.h b/SmartDeviceLink/SDLLogFileModuleMap.h new file mode 100644 index 000000000..e079cd7e9 --- /dev/null +++ b/SmartDeviceLink/SDLLogFileModuleMap.h @@ -0,0 +1,17 @@ +// +// SDLLogFileModuleMap.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 3/2/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +@class SDLLogFileModule; + +@interface SDLLogFileModuleMap : NSObject + ++ (NSSet *)sdlModuleMap; + +@end diff --git a/SmartDeviceLink/SDLLogFileModuleMap.m b/SmartDeviceLink/SDLLogFileModuleMap.m new file mode 100644 index 000000000..d3cc0c29e --- /dev/null +++ b/SmartDeviceLink/SDLLogFileModuleMap.m @@ -0,0 +1,73 @@ +// +// SDLLogFileModuleMap.m +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 3/2/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLLogFileModuleMap.h" + +#import "SDLLogFileModule.h" + +@implementation SDLLogFileModuleMap + ++ (NSSet *)sdlModuleMap { + return [NSSet setWithArray:@[[self sdl_transportModule], + [self sdl_proxyModule], + [self sdl_protocolModule], + [self sdl_rpcModule], + [self sdl_dispatcherModule], + [self sdl_fileManagerModule], + [self sdl_lifecycleManagerModule], + [self sdl_lockscreenManagerModule], + [self sdl_streamingMediaManagerModule]]]; +} + ++ (SDLLogFileModule *)sdl_transportModule { + return [SDLLogFileModule moduleWithName:@"Transport" files:[NSSet setWithArray:@[@"SDLIAPSession", @"SDLIAPTransport", @"SDLStreamDelegate", @"SDLTCPTransport"]]]; +} + ++ (SDLLogFileModule *)sdl_proxyModule { + return [SDLLogFileModule moduleWithName:@"Proxy" files:[NSSet setWithArray:@[@"SDLProxy", @"SDLPolicyDataParser"]]]; +} + ++ (SDLLogFileModule *)sdl_protocolModule { + return [SDLLogFileModule moduleWithName:@"Protocol" files:[NSSet setWithArray:@[@"SDLProtocol", @"SDLProtocolMessageAssembler", @"SDLProtocolMessageDisassembler", @"SDLProtocolReceivedMessageRouter", @"SDLV1ProtocolMessage", @"SDLV2ProtocolMessage", @"SDLV1ProtocolHeader", @"SDLV2ProtocolHeader"]]]; +} + ++ (SDLLogFileModule *)sdl_rpcModule { + return [SDLLogFileModule moduleWithName:@"RPC" files:[NSSet setWithArray:@[@"SDLRPCPayload"]]]; +} + ++ (SDLLogFileModule *)sdl_dispatcherModule { + return [SDLLogFileModule moduleWithName:@"Dispatcher" files:[NSSet setWithArray:@[@"SDLNotificationDispatcher", @"SDLResponseDispatcher"]]]; +} + + +#pragma mark Managers + ++ (SDLLogFileModule *)sdl_fileManagerModule { + return [SDLLogFileModule moduleWithName:@"File" files:[NSSet setWithArray:@[@"SDLFileManager", @"SDLFile", @"SDLArtwork", @"SDLListFilesOperation", @"SDLUploadFileOperation", @"SDLDeleteFileOperation"]]]; +} + ++ (SDLLogFileModule *)sdl_lifecycleManagerModule { + return [SDLLogFileModule moduleWithName:@"Lifecycle" files:[NSSet setWithArray:@[@"SDLLifecycleManager", @"SDLManager"]]]; +} + ++ (SDLLogFileModule *)sdl_lockscreenManagerModule { + return [SDLLogFileModule moduleWithName:@"Lockscreen" files:[NSSet setWithArray:@[@"SDLLockScreenManager", @"SDLLockScreenViewController"]]]; +} + ++ (SDLLogFileModule *)sdl_streamingMediaManagerModule { + return [SDLLogFileModule moduleWithName:@"Streaming" files:[NSSet setWithArray:@[@"SDLH264VideoEncoder", @"SDLRAWH264Packetizer", @"SDLRTPH264Packetizer", @"SDLStreamingMediaManager", @"SDLStreamingMediaLifecycleManager", @"SDLTouchManager"]]]; +} + + +#pragma mark Utilities + ++ (SDLLogFileModule *)sdl_utilitiesModule { + return [SDLLogFileModule moduleWithName:@"Utilities" files:[NSSet setWithArray:@[@"SDLStateMachine"]]]; +} + +@end diff --git a/SmartDeviceLink/SDLLogFilter.h b/SmartDeviceLink/SDLLogFilter.h new file mode 100644 index 000000000..da067f1c7 --- /dev/null +++ b/SmartDeviceLink/SDLLogFilter.h @@ -0,0 +1,101 @@ +// +// SDLLogFilter.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 2/27/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLLogConstants.h" + +@class SDLLogFileModule; +@class SDLLogModel; + + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLLogFilter : NSObject + +@property (strong, nonatomic, readonly) SDLLogFilterBlock filter; + +- (instancetype)init NS_UNAVAILABLE; + +/** + Create a new filter with a custom filter block. The filter block will take a log model and return a BOOL of pass / fail. + + @param filter The custom filter to be used + @return An instance of SDLLogFilter + */ +- (instancetype)initWithCustomFilter:(SDLLogFilterBlock)filter NS_DESIGNATED_INITIALIZER; + +/** + Returns a filter that only allows logs not containing the passed string within their message. + + @param string The string, which, if present in the message of the log, will prevent the log from being logged. + @param caseSensitive Whether or not `string` should be checked as case sensitive against the log's message. + @return A filter that may be passed into the `logConfiguration`. + */ ++ (SDLLogFilter *)filterByDisallowingString:(NSString *)string caseSensitive:(BOOL)caseSensitive; + +/** + Returns a filter that only allows logs containing the passed string within their message. + + @param string The string, which, if present in the message of the log, will allow the log to be logged. + @param caseSensitive Whether or not `string` should be checked as case sensitive against the log's message. + @return A filter that may be passed into the `logConfiguration`. + */ ++ (SDLLogFilter *)filterByAllowingString:(NSString *)string caseSensitive:(BOOL)caseSensitive; + +/** + Returns a filter that only allows logs not passing the passed regex against their message. + + @param regex The regex, which, if it matches the message of the log, will prevent the log from being logged. + @return A filter that may be passed into the `logConfiguration`. + */ ++ (SDLLogFilter *)filterByDisallowingRegex:(NSRegularExpression *)regex; + +/** + Returns a filter that only allows logs passing the passed regex against their message. + + @param regex The regex, which, if it matches the message of the log, will allow the log to be logged. + @return A filter that may be passed into the `logConfiguration`. + */ ++ (SDLLogFilter *)filterByAllowingRegex:(NSRegularExpression *)regex; + +/** + Returns a filter that only allows logs not within the specified file modules to be logged. + + @param modules A set of module names. If any match, they will not be logged. + @return A filter that may be passed into the `logConfiguration`. + */ ++ (SDLLogFilter *)filterByDisallowingModules:(NSSet *)modules; + +/** + Returns a filter that only allows logs of the specified file modules to be logged. + + @param modules A set of module names. If any match, they will not be logged. + @return A filter that may be passed into the `logConfiguration`. + */ ++ (SDLLogFilter *)filterByAllowingModules:(NSSet *)modules; + +/** + Returns a filter that only allows logs not within the specified files to be logged. + + @param fileNames If a log matches any of the passed files, the log will not be logged. + @return A filter that may be passed into the `logConfiguration`. + */ ++ (SDLLogFilter *)filterByDisallowingFileNames:(NSSet *)fileNames; + +/** + Returns a filter that only allows logs within the specified files to be logged. + + @param fileNames If a log matches any of the passed files, the log will be logged. + @return A filter that may be passed into the `logConfiguration`. + */ ++ (SDLLogFilter *)filterByAllowingFileNames:(NSSet *)fileNames; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLogFilter.m b/SmartDeviceLink/SDLLogFilter.m new file mode 100644 index 000000000..c97656c37 --- /dev/null +++ b/SmartDeviceLink/SDLLogFilter.m @@ -0,0 +1,134 @@ +// +// SDLLogFilter.m +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 2/27/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLLogFilter.h" + +#import "SDLLogFileModule.h" +#import "SDLLogModel.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface NSString (FilterUtilities) + +- (BOOL)sdl_containsString:(NSString *)string caseSensitive:(BOOL)caseSensitive; + +@end + +@implementation NSString (FilterUtilities) + +- (BOOL)sdl_containsString:(NSString *)string caseSensitive:(BOOL)caseSensitive { + NSStringCompareOptions compareOptions = caseSensitive ? 0 : NSCaseInsensitiveSearch; + return ([self rangeOfString:string options:compareOptions].location != NSNotFound); +} + +@end + +@interface SDLLogFilter () + +@property (strong, nonatomic, readwrite) SDLLogFilterBlock filter; + +@end + +@implementation SDLLogFilter + +- (instancetype)initWithCustomFilter:(SDLLogFilterBlock)filter { + self = [super init]; + if (!self) { return nil; } + + _filter = filter; + + return self; +} + +#pragma mark - Filter by string + ++ (SDLLogFilter *)filterByDisallowingString:(NSString *)string caseSensitive:(BOOL)caseSensitive { + // Return YES if it *does not* contain the string + return [[self alloc] initWithCustomFilter:^BOOL(SDLLogModel *log) { + return ![log.message sdl_containsString:string caseSensitive:caseSensitive]; + }]; +} + ++ (SDLLogFilter *)filterByAllowingString:(NSString *)string caseSensitive:(BOOL)caseSensitive { + // Return YES if it *does* contain the string + return [[self alloc] initWithCustomFilter:^BOOL(SDLLogModel *log) { + return [log.message sdl_containsString:string caseSensitive:caseSensitive]; + }]; +} + + +#pragma mark - Filter by regex + ++ (SDLLogFilter *)filterByDisallowingRegex:(NSRegularExpression *)regex { + // Return YES if it *does not* pass the regex + return [[self alloc] initWithCustomFilter:^BOOL(SDLLogModel *log) { + return ([regex numberOfMatchesInString:log.message options:0 range:NSMakeRange(0, log.message.length)] == 0); + }]; +} + ++ (SDLLogFilter *)filterByAllowingRegex:(NSRegularExpression *)regex { + // Return YES if it *does* pass the regex + return [[self alloc] initWithCustomFilter:^BOOL(SDLLogModel *log) { + return ([regex numberOfMatchesInString:log.message options:0 range:NSMakeRange(0, log.message.length)] != 0); + }]; +} + + +#pragma mark - Filter by module + ++ (SDLLogFilter *)filterByDisallowingModules:(NSSet *)modules { + // Return YES if the log is *not* in the set of modules + return [[self alloc] initWithCustomFilter:[self sdl_filterCheckingModules:modules allowed:NO]]; +} + ++ (SDLLogFilter *)filterByAllowingModules:(NSSet *)modules { + // Return YES if the log *is* in the set of modules + return [[self alloc] initWithCustomFilter:[self sdl_filterCheckingModules:modules allowed:YES]]; +} + ++ (SDLLogFilterBlock)sdl_filterCheckingModules:(NSSet *)modules allowed:(BOOL)allowed { + return ^BOOL(SDLLogModel *log) { + for (NSString *module in modules) { + if ([module isEqualToString:log.moduleName]) { + return allowed; + } + } + + return !allowed; + }; +} + + +#pragma mark - Filter by file name + ++ (SDLLogFilter *)filterByDisallowingFileNames:(NSSet *)fileNames { + // Return YES if the log is *not* in the set of file names + return [[self alloc] initWithCustomFilter:[self sdl_filterCheckingFileNames:fileNames allowed:NO]]; +} + ++ (SDLLogFilter *)filterByAllowingFileNames:(NSSet *)fileNames { + // Return YES if the log *is* in the set of file names + return [[self alloc] initWithCustomFilter:[self sdl_filterCheckingFileNames:fileNames allowed:YES]]; +} + ++ (SDLLogFilterBlock)sdl_filterCheckingFileNames:(NSSet *)fileNames allowed:(BOOL)allowed { + return ^BOOL(SDLLogModel *log) { + for (NSString *fileName in fileNames) { + if ([fileName isEqualToString:log.fileName]) { + return allowed; + } + } + + return !allowed; + }; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLogMacros.h b/SmartDeviceLink/SDLLogMacros.h new file mode 100644 index 000000000..f51386e10 --- /dev/null +++ b/SmartDeviceLink/SDLLogMacros.h @@ -0,0 +1,40 @@ +// +// SDLLogMacros.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 3/2/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLLogManager.h" + +#pragma mark - Macros + +#pragma mark - General Macros +#define SDLLOG_FILE [[[NSString stringWithCString:__FILE__ encoding:NSUTF8StringEncoding] lastPathComponent] stringByDeletingPathExtension] +#define SDLLOG_FUNC [NSString stringWithCString:__PRETTY_FUNCTION__ encoding:NSUTF8StringEncoding] +#define SDLLOG_QUEUE [NSString stringWithUTF8String:dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL)] + +#pragma mark Debug Logs + +#if DEBUG + +#define SDLLogBytes(bytes, transmissionDirection) [SDLLogManager logBytes:bytes direction:transmissionDirection timestamp:[NSDate date] file:SDLLOG_FILE functionName:SDLLOG_FUNC line:__LINE__ queue:SDLLOG_QUEUE] +#define SDLLogV(msg, ...) [SDLLogManager logWithLevel:SDLLogLevelVerbose timestamp:[NSDate date] file:SDLLOG_FILE functionName:SDLLOG_FUNC line:__LINE__ queue:SDLLOG_QUEUE formatMessage:msg, ##__VA_ARGS__] +#define SDLLogD(msg, ...) [SDLLogManager logWithLevel:SDLLogLevelDebug timestamp:[NSDate date] file:SDLLOG_FILE functionName:SDLLOG_FUNC line:__LINE__ queue:SDLLOG_QUEUE formatMessage:msg, ##__VA_ARGS__] + +#else + +#define SDLLogBytes(bytes, transmissionDirection) +#define SDLLogV(msg, ...) +#define SDLLogD(msg, ...) + +#endif + + +#pragma mark Release Logs + +#define SDLLogW(msg, ...) [SDLLogManager logWithLevel:SDLLogLevelWarning timestamp:[NSDate date] file:SDLLOG_FILE functionName:SDLLOG_FUNC line:__LINE__ queue:SDLLOG_QUEUE formatMessage:msg, ##__VA_ARGS__] +#define SDLLogE(msg, ...) [SDLLogManager logWithLevel:SDLLogLevelError timestamp:[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 new file mode 100644 index 000000000..1fe113615 --- /dev/null +++ b/SmartDeviceLink/SDLLogManager.h @@ -0,0 +1,175 @@ +// +// SDLLogManager.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 2/27/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLLogConstants.h" +#import "SDLLogTarget.h" + +@class SDLLogConfiguration; +@class SDLLogFileModule; +@class SDLLogFilter; + + +NS_ASSUME_NONNULL_BEGIN + +/** + This is the central manager of logging. A developer should not have to interact with this class, it is exclusively used internally. + */ +@interface SDLLogManager : NSObject + +@property (copy, nonatomic, readonly) NSSet *modules; +@property (copy, nonatomic, readonly) NSSet> *targets; +@property (copy, nonatomic, readonly) NSSet *filters; + +/// Any modules that do not have an explicitly specified level will by default use this log level +@property (assign, nonatomic, readonly) SDLLogLevel globalLogLevel; +@property (assign, nonatomic, readonly) SDLLogFormatType formatType; + +@property (assign, nonatomic, readonly, getter=isAsynchronous) BOOL asynchronous; +@property (assign, nonatomic, readonly, getter=areErrorsAsynchronous) BOOL errorsAsynchronous; + +@property (class, strong, nonatomic, readonly) NSDateFormatter *dateFormatter; +@property (class, assign, nonatomic, readonly) dispatch_queue_t logQueue; + ++ (SDLLogManager *)sharedManager; + +// These are automatically sent to the sharedManager +#pragma mark - Singleton Methods + +/** + 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. + + @param configuration The configuration to be used. + */ ++ (void)setConfiguration:(SDLLogConfiguration *)configuration; + +/** + 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. + + @param configuration The configuration to be used. + */ +- (void)setConfiguration:(SDLLogConfiguration *)configuration; + +/** + 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 `SDLLogD`. + + @param level The level of the 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 with a format + */ ++ (void)logWithLevel:(SDLLogLevel)level + timestamp:(NSDate *)timestamp + file:(NSString *)file + functionName:(NSString *)functionName + line:(NSInteger)line + queue:(NSString *)queueLabel + formatMessage:(NSString *)message, ... NS_FORMAT_FUNCTION(7, 8); + +/** + 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 `SDLLogD`. + + @param level The level of the 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 with a format + */ +- (void)logWithLevel:(SDLLogLevel)level + timestamp:(NSDate *)timestamp + file:(NSString *)file + functionName:(NSString *)functionName + line:(NSInteger)line + queue:(NSString *)queueLabel + formatMessage:(NSString *)message, ... NS_FORMAT_FUNCTION(7, 8); + +/** + 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 `SDLLogD`. + + @param level The level of the 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)logWithLevel:(SDLLogLevel)level + timestamp:(NSDate *)timestamp + file:(NSString *)file + functionName:(NSString *)functionName + line:(NSInteger)line + queue:(NSString *)queueLabel + message:(NSString *)message; + +/** + 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 `SDLLogD`. + + @param level The level of the 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)logWithLevel:(SDLLogLevel)level + timestamp:(NSDate *)timestamp + file:(NSString *)file + functionName:(NSString *)functionName + line:(NSInteger)line + queue:(NSString *)queueLabel + message:(NSString *)message; + +/** + Log to this sharedManager's active log targets. This is used internally to log. + + @param data The data to be logged + @param direction Whether its transmit or receive data + @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 + */ ++ (void)logBytes:(NSData *)data + direction:(SDLLogBytesDirection)direction + timestamp:(NSDate *)timestamp + file:(NSString *)file + functionName:(NSString *)functionName + line:(NSInteger)line + queue:(NSString *)queueLabel; + +/** + Log to this manager's active log targets. This is used internally to log. + + @param data The data to be logged + @param direction Whether its transmit or receive data + @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 + */ +- (void)logBytes:(NSData *)data + direction:(SDLLogBytesDirection)direction + timestamp:(NSDate *)timestamp + file:(NSString *)file + functionName:(NSString *)functionName + line:(NSInteger)line + queue:(NSString *)queueLabel; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLogManager.m b/SmartDeviceLink/SDLLogManager.m new file mode 100644 index 000000000..ab781dc13 --- /dev/null +++ b/SmartDeviceLink/SDLLogManager.m @@ -0,0 +1,329 @@ +// +// SDLLogManager.m +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 2/27/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLLogManager.h" + +#import "SDLHexUtility.h" +#import "SDLLogConfiguration.h" +#import "SDLLogFileModule.h" +#import "SDLLogModel.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLLogManager () + +@property (copy, nonatomic, readwrite) NSSet *modules; +@property (copy, nonatomic, readwrite) NSSet> *targets; +@property (copy, nonatomic, readwrite) NSSet *filters; + +@property (assign, nonatomic, readwrite) SDLLogLevel globalLogLevel; +@property (assign, nonatomic, readwrite) SDLLogFormatType formatType; + +@property (assign, nonatomic, readwrite, getter=isAsynchronous) BOOL asynchronous; +@property (assign, nonatomic, readwrite, getter=areErrorsAsynchronous) BOOL errorsAsynchronous; + +@end + +@implementation SDLLogManager + +static NSDateFormatter *_dateFormatter = nil; +static dispatch_queue_t _logQueue = NULL; + ++ (SDLLogManager *)sharedManager { + static SDLLogManager *sharedManager = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + sharedManager = [[SDLLogManager alloc] init]; + }); + + return sharedManager; +} + +- (instancetype)init { + self = [super init]; + if (!self) { + return nil; + } + + _modules = [NSSet set]; + _targets = [NSSet set]; + _filters = [NSSet set]; + + _asynchronous = YES; + _errorsAsynchronous = NO; + _globalLogLevel = SDLLogLevelError; + _formatType = SDLLogFormatTypeDefault; + + return self; +} + + +#pragma mark - Configuration + ++ (void)setConfiguration:(SDLLogConfiguration *)configuration { + [[self sharedManager] setConfiguration:configuration]; +} + +- (void)setConfiguration:(SDLLogConfiguration *)configuration { + self.modules = configuration.modules; + self.filters = configuration.filters; + self.formatType = configuration.formatType; + self.asynchronous = configuration.isAsynchronous; + self.errorsAsynchronous = configuration.areErrorsAsynchronous; + self.globalLogLevel = configuration.globalLogLevel; + + // Start the loggers + NSMutableSet> *startedLoggers = [NSMutableSet set]; + for (id target in configuration.targets) { + // If the logger fails setup, discard it, otherwise, keep it + if ([target setupLogger]) { + [startedLoggers addObject:target]; + } else { + // Because we haven't set up loggers yet, this is necessary + NSLog(@"(SDL) Warning: Log target failed setup: %@", NSStringFromClass(target.class)); + } + } + self.targets = [startedLoggers copy]; +} + + +#pragma mark - Performing Logging + ++ (void)logBytes:(NSData *)data direction:(SDLLogBytesDirection)direction timestamp:(NSDate *)timestamp file:(NSString *)file functionName:(NSString *)functionName line:(NSInteger)line queue:(NSString *)queueLabel { + [[self sharedManager] logBytes:data direction:direction timestamp:timestamp file:file functionName:functionName line:line queue:queueLabel]; +} + ++ (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]; +} + ++ (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); + NSString *format = [[NSString alloc] initWithFormat:message arguments:args]; + va_end(args); + + [[self sharedManager] logWithLevel:level timestamp:timestamp file:file functionName:functionName line:line queue:queueLabel message:format]; +} + +- (void)logBytes:(NSData *)data direction:(SDLLogBytesDirection)direction timestamp:(NSDate *)timestamp file:(NSString *)file functionName:(NSString *)functionName line:(NSInteger)line queue:(NSString *)queueLabel { + // This only works on Verbose logging + if ([self sdl_logLevelForFile:file] < SDLLogLevelVerbose) { return; } + + NSString *message = [NSString stringWithFormat:@"%@(%lu bytes): %@", [self sdl_logStringForDirection:direction], (unsigned long)data.length, [SDLHexUtility getHexString:data]]; + [self logWithLevel:SDLLogLevelVerbose timestamp:timestamp file:file functionName:functionName line:line queue:queueLabel message:message]; +} + +- (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); + NSString *format = [[NSString alloc] initWithFormat:message arguments:args]; + va_end(args); + + [self logWithLevel:level timestamp:timestamp file:file functionName:functionName line:line queue:queueLabel message:format]; +} + +- (void)logWithLevel:(SDLLogLevel)level timestamp:(NSDate *)timestamp file:(NSString *)file functionName:(NSString *)functionName line:(NSInteger)line queue:(NSString *)queueLabel message:(NSString *)message { + NSString *moduleName = [self sdl_moduleForFile:file] ? [self sdl_moduleForFile:file].name : @""; + + SDLLogModel *log = [[SDLLogModel alloc] initWithMessage:message + timestamp:timestamp + level:level + fileName:file + moduleName:moduleName + functionName:functionName + line:line + queueLabel:queueLabel]; + [self sdl_queueLog:log]; +} + +- (void)sdl_queueLog:(SDLLogModel *)log { + if (log.level == SDLLogLevelError) { + if (self.areErrorsAsynchronous) { + [self sdl_asyncLog:log]; + } else { + [self sdl_syncLog:log]; + } + } else { + if (self.isAsynchronous) { + [self sdl_asyncLog:log]; + } else { + [self sdl_syncLog:log]; + } + } +} + +- (void)sdl_asyncLog:(SDLLogModel *)log { + dispatch_async(self.class.logQueue, ^{ + [self sdl_log:log]; + }); +} + +- (void)sdl_syncLog:(SDLLogModel *)log { + dispatch_sync(self.class.logQueue, ^{ + [self sdl_log:log]; + }); +} + +- (void)sdl_log:(SDLLogModel *)log { + if ([self sdl_logLevelForFile:log.fileName] < log.level) { return; } + + for (SDLLogFilter *filter in self.filters) { + if (!filter.filter(log)) { return; } + } + + NSString *formattedLog = nil; + switch (self.formatType) { + case SDLLogFormatTypeSimple: + formattedLog = [self sdl_simpleFormatLog:log]; + break; + case SDLLogFormatTypeDefault: + formattedLog = [self sdl_defaultFormatLog:log]; + break; + case SDLLogFormatTypeDetailed: + formattedLog = [self sdl_detailedFormatLog:log]; + break; + } + + for (id target in self.targets) { + [target logWithLog:log formattedLog:formattedLog]; + } +} + + +#pragma mark - Log formatting + +- (NSString *)sdl_simpleFormatLog:(SDLLogModel *)log { + return [self sdl_formatLog:log showDate:YES showLogLevelCharacter:YES showLogLevelName:NO showQueueName:NO showModuleName:YES showFileName:NO showFunctionName:NO showLine:NO]; +} + +- (NSString *)sdl_defaultFormatLog:(SDLLogModel *)log { + return [self sdl_formatLog:log showDate:YES showLogLevelCharacter:YES showLogLevelName:NO showQueueName:NO showModuleName:YES showFileName:YES showFunctionName:NO showLine:YES]; +} + +- (NSString *)sdl_detailedFormatLog:(SDLLogModel *)log { + return [self sdl_formatLog:log showDate:YES showLogLevelCharacter:YES showLogLevelName:YES showQueueName:YES showModuleName:YES showFileName:YES showFunctionName:YES showLine:YES]; +} + +- (NSString *)sdl_formatLog:(SDLLogModel *)log showDate:(BOOL)date showLogLevelCharacter:(BOOL)logChar showLogLevelName:(BOOL)logName showQueueName:(BOOL)queueName showModuleName:(BOOL)moduleName showFileName:(BOOL)fileName showFunctionName:(BOOL)functionName showLine:(BOOL)line { + NSMutableString *logString = [NSMutableString string]; + + if (date) { + [logString appendFormat:@"%@ ", [self.class.dateFormatter stringFromDate:log.timestamp]]; + } + if (logChar) { + [logString appendFormat:@"%@ ", [self sdl_logCharacterForLevel:log.level]]; + } + if (logName) { + [logString appendFormat:@"%@ ", [self sdl_logNameForLevel:log.level]]; + } + if (queueName) { + [logString appendFormat:@"%@ ", log.queueLabel]; + } + if (moduleName) { + [logString appendFormat:@"(SDL)%@", log.moduleName]; + } + if (fileName) { + [logString appendFormat:@":%@", log.fileName]; + } + if (functionName) { + [logString appendFormat:@":%@", log.functionName]; + } + if (line) { + [logString appendFormat:@":%ld ", (long)log.line]; + } + [logString appendFormat:@"- %@\n", log.message]; + + return [logString copy]; +} + +- (NSString *)sdl_logCharacterForLevel:(SDLLogLevel)logLevel { + switch (logLevel) { + case SDLLogLevelVerbose: return @"⚪"; + case SDLLogLevelDebug: return @"🔵"; + case SDLLogLevelWarning: return @"🔶"; + case SDLLogLevelError: return @"❌"; + default: + NSAssert(NO, @"The OFF and DEFAULT log levels are not valid to log with."); + return @""; + } +} + +- (NSString *)sdl_logNameForLevel:(SDLLogLevel)logLevel { + switch (logLevel) { + case SDLLogLevelVerbose: return @"VERBOSE"; + case SDLLogLevelDebug: return @"DEBUG"; + case SDLLogLevelWarning: return @"WARNING"; + case SDLLogLevelError: return @"ERROR"; + default: + NSAssert(NO, @"The OFF and DEFAULT log levels are not valid to log with."); + return @"UNKNOWN"; + } +} + +- (NSString *)sdl_logStringForDirection:(SDLLogBytesDirection)direction { + switch (direction) { + case SDLLogBytesDirectionReceive: + return @"RX"; + case SDLLogBytesDirectionTransmit: + return @"TX"; + } +} + + +#pragma mark - Modules + +- (SDLLogLevel)sdl_logLevelForFile:(NSString *)fileName { + SDLLogFileModule *module = [self sdl_moduleForFile:fileName]; + if (!module) { + return self.globalLogLevel; + } + + if ([module containsFile:fileName]) { + if (module.logLevel == SDLLogLevelDefault) { + return self.globalLogLevel; + } + } + + return module.logLevel; +} + +- (nullable SDLLogFileModule *)sdl_moduleForFile:(NSString *)fileName { + for (SDLLogFileModule *module in self.modules) { + if ([module containsFile:fileName]) { return module; } + } + + return nil; +} + + +#pragma mark - Class property getters + ++ (NSDateFormatter *)dateFormatter { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + _dateFormatter = [[NSDateFormatter alloc] init]; + _dateFormatter.dateFormat = @"HH:mm:ss:SSS"; + }); + + return _dateFormatter; +} + ++ (dispatch_queue_t)logQueue { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + _logQueue = dispatch_queue_create("com.sdl.log", DISPATCH_QUEUE_SERIAL); + }); + + return _logQueue; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLogModel.h b/SmartDeviceLink/SDLLogModel.h new file mode 100644 index 000000000..ead7766f6 --- /dev/null +++ b/SmartDeviceLink/SDLLogModel.h @@ -0,0 +1,82 @@ +// +// SDLLogModel.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 2/27/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLLogConstants.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLLogModel : NSObject + +/** + The log message written by the developer. This is the resolved format message if one was used. + */ +@property (copy, nonatomic, readonly) NSString *message; + +/** + The raw timestamp collected by the logging framework when the log triggered. + */ +@property (copy, nonatomic, readonly) NSDate *timestamp; + +/** + The log level of this individual log. If it's a debug log, and triggered because the global level is verbose, this will be debug. + */ +@property (assign, nonatomic, readonly) SDLLogLevel level; + +/** + The label of the dispatch_queue, for example "com.apple.main-queue". + */ +@property (copy, nonatomic, readonly) NSString *queueLabel; + +/** + A module name if one exists for the file name, or `""` if one does not. + */ +@property (copy, nonatomic, null_resettable, readonly) NSString *moduleName; + +/** + The file name from which the log was triggered. + */ +@property (copy, nonatomic, readonly) NSString *fileName; + +/** + The function name from which the log was triggered. + */ +@property (copy, nonatomic, readonly) NSString *functionName; + +/** + The line number of the file from which the log was triggered. + */ +@property (assign, nonatomic, readonly) NSInteger line; + +/** + Returns a fully initialized log message. + + @param message The log message written by the developer. This is the resolved format message if one was used. + @param timestamp The raw timestamp collected by the logging framework when the log triggered. + @param level The log level of this individual log. If it's a debug log, and triggered because the global level is verbose, this will be debug. + @param fileName The file name from which the log was triggered. + @param moduleName A module name if one exists for the file name, or `""` if one does not. + @param functionName The function name from which the log was triggered. + @param line The line number of the file from which the log was triggered. + @param queueLabel The label of the dispatch_queue, for example "com.apple.main-queue". + @return a fully initialized log message. + */ +- (instancetype)initWithMessage:(NSString *)message + timestamp:(NSDate *)timestamp + level:(SDLLogLevel)level + fileName:(NSString *)fileName + moduleName:(nullable NSString *)moduleName + functionName:(NSString *)functionName + line:(NSInteger)line + queueLabel:(NSString *)queueLabel; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLogModel.m b/SmartDeviceLink/SDLLogModel.m new file mode 100644 index 000000000..6e9aeccb7 --- /dev/null +++ b/SmartDeviceLink/SDLLogModel.m @@ -0,0 +1,72 @@ +// +// SDLLogModel.m +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 2/27/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLLogModel.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLLogModel + +- (instancetype)initWithMessage:(NSString *)message + timestamp:(NSDate *)timestamp + level:(SDLLogLevel)level + fileName:(NSString *)fileName + moduleName:(nullable NSString *)moduleName + functionName:(NSString *)functionName + line:(NSInteger)line + queueLabel:(NSString *)queueLabel { + self = [super init]; + if (!self) { return nil; } + + _message = message; + _timestamp = timestamp; + _level = level; + _fileName = fileName; + _moduleName = moduleName ? moduleName : @""; + _functionName = functionName; + _line = line; + _queueLabel = queueLabel; + + return self; +} + + +#pragma mark - Setters / Getters + +- (void)setModuleName:(nullable NSString *)moduleName { + _moduleName = moduleName ? moduleName : @""; +} + + +#pragma mark - NSCopying + +- (id)copyWithZone:(nullable NSZone *)zone { + return [[self copyWithZone:zone] initWithMessage:_message timestamp:_timestamp level:_level fileName:_fileName moduleName:_moduleName functionName:_functionName line:_line queueLabel:_queueLabel]; +} + + +#pragma mark - Description + +- (NSString *)description { + return [NSString stringWithFormat:@"SDLLogModel (%@): timestamp: %@, file name: %@, module: %@, function: %@, line: %ld, queue: %@, message: %@", [self sdl_stringForLogLevel:self.level], self.timestamp, self.fileName, self.moduleName, self.functionName, (long)self.line, self.queueLabel, self.message]; +} + +- (NSString *)sdl_stringForLogLevel:(SDLLogLevel)level { + switch (level) { + case SDLLogLevelOff: return @"Off"; + case SDLLogLevelVerbose: return @"Verbose"; + case SDLLogLevelDebug: return @"Debug"; + case SDLLogLevelWarning: return @"Warning"; + case SDLLogLevelError: return @"Error"; + case SDLLogLevelDefault: return @"Default"; + } +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLogTarget.h b/SmartDeviceLink/SDLLogTarget.h new file mode 100644 index 000000000..0751dcb16 --- /dev/null +++ b/SmartDeviceLink/SDLLogTarget.h @@ -0,0 +1,43 @@ +// +// SDLLogTarget.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 2/27/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +@class SDLLogModel; + + +NS_ASSUME_NONNULL_BEGIN + +@protocol SDLLogTarget + +/** + A simple convenience initializer to create the object. This *should not* start up the logger. + + @return An instance of the logger. + */ ++ (id)logger; + +/** + A call to setup the logger in whatever manner it needs to do so. + + @return Whether or not the logger set up correctly. + */ +- (BOOL)setupLogger; + +/** + Log a particular log using the model and the formatted log message to the target. + + @param log The log model, if you can log additional data, such as the log level, use this + @param stringLog The formatted message + */ +- (void)logWithLog:(SDLLogModel *)log formattedLog:(NSString *)stringLog; +- (void)teardownLogger; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLogTargetAppleSystemLog.h b/SmartDeviceLink/SDLLogTargetAppleSystemLog.h new file mode 100644 index 000000000..39923a124 --- /dev/null +++ b/SmartDeviceLink/SDLLogTargetAppleSystemLog.h @@ -0,0 +1,23 @@ +// +// SDLLogTargetASL.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 2/28/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLLogTarget.h" + + +NS_ASSUME_NONNULL_BEGIN + +/** + The Apple System Log target is an iOS 2.0+ compatible log target that logs to both the Console and to the System Log. + */ +@interface SDLLogTargetAppleSystemLog : NSObject + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLogTargetAppleSystemLog.m b/SmartDeviceLink/SDLLogTargetAppleSystemLog.m new file mode 100644 index 000000000..c9cb3112b --- /dev/null +++ b/SmartDeviceLink/SDLLogTargetAppleSystemLog.m @@ -0,0 +1,77 @@ +// +// SDLLogTargetASL.m +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 2/28/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLLogTargetAppleSystemLog.h" + +#import + +#import "SDLLogModel.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLLogTargetAppleSystemLog () + +@end + + +@implementation SDLLogTargetAppleSystemLog + ++ (id)logger { + return [[self alloc] init]; +} + +- (BOOL)setupLogger { + return YES; +} + +- (void)logWithLog:(SDLLogModel *)log formattedLog:(NSString *)stringLog { + const char *charLog = [stringLog UTF8String]; + + int aslLevel = [self sdl_aslLevelForSDLLogLevel:log.level]; + int result = asl_log_message(aslLevel, "%s", charLog); + + if (result != 0) { + // Something failed + } +} + +- (void)teardownLogger { + +} + + +#pragma mark - Utilities + +- (int)sdl_aslLevelForSDLLogLevel:(SDLLogLevel)level { + switch (level) { + case SDLLogLevelVerbose: return ASL_LEVEL_NOTICE; + case SDLLogLevelDebug: return ASL_LEVEL_NOTICE; + case SDLLogLevelWarning: return ASL_LEVEL_ERR; + case SDLLogLevelError: return ASL_LEVEL_CRIT; + default: + NSAssert(NO, @"The OFF and DEFAULT log levels are not valid to log with."); + return ASL_LEVEL_DEBUG; + } +} + + +#pragma mark - NSObject + +- (NSUInteger)hash { + return NSStringFromClass(self.class).hash; +} + +// For the target classes, we're going to assume that if they're the same class, they're the same. The reason for this is so that NSSet, for instance, will only allow one of each target type in a set. +- (BOOL)isEqual:(id)object { + return [object isMemberOfClass:self.class]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLogTargetFile.h b/SmartDeviceLink/SDLLogTargetFile.h new file mode 100644 index 000000000..dbf34c121 --- /dev/null +++ b/SmartDeviceLink/SDLLogTargetFile.h @@ -0,0 +1,23 @@ +// +// SDLLogTargetFile.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 2/28/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLLogTarget.h" + + +NS_ASSUME_NONNULL_BEGIN + +/** + 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. + */ +@interface SDLLogTargetFile : NSObject + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLogTargetFile.m b/SmartDeviceLink/SDLLogTargetFile.m new file mode 100644 index 000000000..e4e0b74f7 --- /dev/null +++ b/SmartDeviceLink/SDLLogTargetFile.m @@ -0,0 +1,145 @@ +// +// SDLLogTargetFile.m +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 2/28/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLLogTargetFile.h" + +#import "SDLLogModel.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLLogTargetFile () + +@property (assign, nonatomic) NSUInteger maxFiles; +@property (strong, nonatomic, nullable) NSFileHandle *logFileHandle; + +@end + + +@implementation SDLLogTargetFile + +- (instancetype)init { + self = [super init]; + if (!self) { return nil; } + + _maxFiles = 3; + + return self; +} + ++ (id)logger { + return [[self alloc] init]; +} + +- (BOOL)setupLogger { + self.logFileHandle = [self sdl_createFile]; + if (self.logFileHandle == nil) { + return NO; + } + + [self.logFileHandle seekToEndOfFile]; + + return YES; +} + +- (void)logWithLog:(SDLLogModel *)log formattedLog:(NSString *)stringLog { + [self.logFileHandle writeData:[stringLog dataUsingEncoding:NSUTF8StringEncoding]]; +} + +- (void)teardownLogger { + [self.logFileHandle synchronizeFile]; + [self.logFileHandle closeFile]; +} + +- (void)dealloc { + [_logFileHandle synchronizeFile]; + [_logFileHandle closeFile]; +} + + +#pragma mark - File handling + ++ (NSString *)sdl_logDirectory { + NSString *documentsDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject; + + return [documentsDirectory stringByAppendingPathComponent:@"/smartdevicelink/log/"]; +} + + +#pragma mark File creation + +- (NSFileHandle *)sdl_createFile { + NSString *newFilePath = [[self.class sdl_logDirectory] stringByAppendingPathComponent:[self.class sdl_newFileName]]; + + NSFileManager *fileManager = [NSFileManager defaultManager]; + if (![fileManager fileExistsAtPath:[self.class sdl_logDirectory]]) { + [fileManager createDirectoryAtPath:[self.class sdl_logDirectory] withIntermediateDirectories:YES attributes:nil error:nil]; + } + + if ([fileManager fileExistsAtPath:newFilePath]) { + [fileManager removeItemAtPath:newFilePath error:nil]; + } + + [fileManager createFileAtPath:newFilePath contents:nil attributes:nil]; + [self.class sdl_cleanupLogFilesWithMaxFiles:self.maxFiles]; + + return [NSFileHandle fileHandleForWritingAtPath:newFilePath]; +} + ++ (NSString *)sdl_newFileName { + // Grab the name of the app if available, or just use 'smartdevicelink' if it's not + NSString *appName = [NSBundle mainBundle].infoDictionary[@"CFBundleDisplayName"]; + if (appName == nil) { + appName = @"smartdevicelink"; + } + + NSDateFormatter *fileDateFormatter = [[NSDateFormatter alloc] init]; + fileDateFormatter.dateFormat = @"yyyy-MM-dd-HH:mm:ss"; + + return [NSString stringWithFormat:@"%@-%@.log", [fileDateFormatter stringFromDate:[NSDate date]], appName]; +} + + +#pragma mark File cleanup + ++ (void)sdl_cleanupLogFilesWithMaxFiles:(NSUInteger)maxFiles { + NSArray *sortedLogFilePaths = [self sdl_sortedLogFilePaths]; + + // If we have more files now than the max, remove the oldest ones + NSInteger filesToRemove = sortedLogFilePaths.count - maxFiles; + for (int i = 0; i < filesToRemove; i++) { + NSString *path = [[self sdl_logDirectory] stringByAppendingPathComponent:sortedLogFilePaths[i]]; + [[NSFileManager defaultManager] removeItemAtPath:path error:nil]; + } +} + +/** + Return the sorted file paths in order from oldest to newest (based on the file names). + + @return An array of file paths from oldest to newest + */ ++ (NSArray *)sdl_sortedLogFilePaths { + NSArray *logFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:[self sdl_logDirectory] error:nil]; + return [logFiles sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]; +} + + +#pragma mark - NSObject + +- (NSUInteger)hash { + return NSStringFromClass(self.class).hash; +} + +// For the target classes, we're going to assume that if they're the same class, they're the same. The reason for this is so that NSSet, for instance, will only allow one of each target type in a set. +- (BOOL)isEqual:(id)object { + return [object isMemberOfClass:self.class]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLogTargetOSLog.h b/SmartDeviceLink/SDLLogTargetOSLog.h new file mode 100644 index 000000000..20861e39a --- /dev/null +++ b/SmartDeviceLink/SDLLogTargetOSLog.h @@ -0,0 +1,25 @@ +// +// SDLLogTargetOSLog.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 2/28/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLLogTarget.h" + + +NS_ASSUME_NONNULL_BEGIN + +/** + OS_LOG is an iOS 10+ only logging system that logs to the Console and the Apple system console. This is an improved replacement for Apple SysLog (SDLLogTargetAppleSystemLog). + + https://developer.apple.com/reference/os/logging + */ +@interface SDLLogTargetOSLog : NSObject + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLogTargetOSLog.m b/SmartDeviceLink/SDLLogTargetOSLog.m new file mode 100644 index 000000000..425582577 --- /dev/null +++ b/SmartDeviceLink/SDLLogTargetOSLog.m @@ -0,0 +1,86 @@ +// +// SDLLogTargetOSLog.m +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 2/28/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLLogTargetOSLog.h" + +#import + +#import "SDLLogModel.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLLogTargetOSLog () + +@property (strong, nonatomic) NSMutableDictionary *clients; + +@end + + +@implementation SDLLogTargetOSLog + +- (instancetype)init { + self = [super init]; + if (!self) { return nil; } + + _clients = [NSMutableDictionary dictionary]; + + return self; +} + ++ (id)logger { + return [[self alloc] init]; +} + +- (BOOL)setupLogger { + // If the iPhone OS is less than 10.0, os_log is not available. + NSOperatingSystemVersion osVersion = [NSProcessInfo processInfo].operatingSystemVersion; + + return osVersion.majorVersion >= 10; +} + +- (void)logWithLog:(SDLLogModel *)log formattedLog:(NSString *)stringLog { + NSString *moduleName = log.moduleName ? log.moduleName : @""; + if (self.clients[moduleName] == nil) { + self.clients[moduleName] = os_log_create("com.sdl.log", moduleName.UTF8String); + } + + os_log_with_type(self.clients[moduleName], [self oslogLevelForSDLLogLevel:log.level], "%{public}@", log.message); +} + +- (void)teardownLogger { + self.clients = [NSMutableDictionary dictionary]; +} + +- (os_log_type_t)oslogLevelForSDLLogLevel:(SDLLogLevel)level { + switch (level) { + case SDLLogLevelVerbose: return OS_LOG_TYPE_DEBUG; + case SDLLogLevelDebug: return OS_LOG_TYPE_INFO; + case SDLLogLevelWarning: return OS_LOG_TYPE_ERROR; + case SDLLogLevelError: return OS_LOG_TYPE_FAULT; + default: + NSAssert(NO, @"The OFF and DEFAULT log levels are not valid to log with."); + return OS_LOG_TYPE_DEFAULT; + } +} + + +#pragma mark - NSObject + +- (NSUInteger)hash { + return NSStringFromClass(self.class).hash; +} + +// For the target classes, we're going to assume that if they're the same class, they're the same. The reason for this is so that NSSet, for instance, will only allow one of each target type in a set. +- (BOOL)isEqual:(id)object { + return [object isMemberOfClass:self.class]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLMacros.h b/SmartDeviceLink/SDLMacros.h new file mode 100644 index 000000000..1ab0bb6d0 --- /dev/null +++ b/SmartDeviceLink/SDLMacros.h @@ -0,0 +1,29 @@ +// +// SDLMacros.h +// SmartDeviceLink-iOS +// +// Created by Muller, Alexander (A.) on 10/17/16. +// Copyright © 2016 smartdevicelink. All rights reserved. +// + +#ifndef SDLMacros_h +#define SDLMacros_h + +// Resolves issue of pre-xcode 8 versions due to NS_STRING_ENUM unavailability. +#ifndef SDL_SWIFT_ENUM + #if __has_attribute(swift_wrapper) + #define SDL_SWIFT_ENUM NS_STRING_ENUM + #else + #define SDL_SWIFT_ENUM + #endif +#endif + +#ifndef SDL_SUPPORTS_CLASS_PROPERTIES + #if defined(SWIFT_CLASS_EXTRA) + #define SDL_SUPPORTS_CLASS_PROPERTIES FOUNDATION_SWIFT_SDK_EPOCH_AT_LEAST(8) + #else + #define SDL_SUPPORTS_CLASS_PROPERTIES NO + #endif +#endif + +#endif /* SDLMacros_h */ diff --git a/SmartDeviceLink/SDLMaintenanceModeStatus.h b/SmartDeviceLink/SDLMaintenanceModeStatus.h index cd399e20c..fd286f822 100644 --- a/SmartDeviceLink/SDLMaintenanceModeStatus.h +++ b/SmartDeviceLink/SDLMaintenanceModeStatus.h @@ -7,44 +7,24 @@ /** * The SDLMaintenanceModeStatus class. */ -@interface SDLMaintenanceModeStatus : SDLEnum { -} - -/** - * @abstract Maintenance Mode Status - * @param value The value of the string to get an object for - * @return SDLMaintenanceModeStatus - */ -+ (SDLMaintenanceModeStatus *)valueOf:(NSString *)value; - -/** - * @abstract declare an array that store all possible Maintenance Mode Status inside - * @return the array - */ -+ (NSArray *)values; +typedef SDLEnum SDLMaintenanceModeStatus SDL_SWIFT_ENUM; /** * @abstract Maintenance Mode Status : Normal - * @return the object with value of *NORMAL* */ -+ (SDLMaintenanceModeStatus *)NORMAL; +extern SDLMaintenanceModeStatus const SDLMaintenanceModeStatusNormal; /** * @abstract Maintenance Mode Status : Near - * @return the object with value of *NEAR* */ -+ (SDLMaintenanceModeStatus *)NEAR; +extern SDLMaintenanceModeStatus const SDLMaintenanceModeStatusNear; /** * @abstract Maintenance Mode Status : Active - * @return the object with value of *ACTIVE* */ -+ (SDLMaintenanceModeStatus *)ACTIVE; +extern SDLMaintenanceModeStatus const SDLMaintenanceModeStatusActive; /** * @abstract Maintenance Mode Status : Feature not present - * @return the object with value of *FEATURE_NOT_PRESENT* */ -+ (SDLMaintenanceModeStatus *)FEATURE_NOT_PRESENT; - -@end +extern SDLMaintenanceModeStatus const SDLMaintenanceModeStatusFeatureNotPresent; diff --git a/SmartDeviceLink/SDLMaintenanceModeStatus.m b/SmartDeviceLink/SDLMaintenanceModeStatus.m index d6e7f8ddd..7477954e0 100644 --- a/SmartDeviceLink/SDLMaintenanceModeStatus.m +++ b/SmartDeviceLink/SDLMaintenanceModeStatus.m @@ -4,62 +4,7 @@ #import "SDLMaintenanceModeStatus.h" -SDLMaintenanceModeStatus *SDLMaintenanceModeStatus_NORMAL = nil; -SDLMaintenanceModeStatus *SDLMaintenanceModeStatus_NEAR = nil; -SDLMaintenanceModeStatus *SDLMaintenanceModeStatus_ACTIVE = nil; -SDLMaintenanceModeStatus *SDLMaintenanceModeStatus_FEATURE_NOT_PRESENT = nil; - -NSArray *SDLMaintenanceModeStatus_values = nil; - -@implementation SDLMaintenanceModeStatus - -+ (SDLMaintenanceModeStatus *)valueOf:(NSString *)value { - for (SDLMaintenanceModeStatus *item in SDLMaintenanceModeStatus.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLMaintenanceModeStatus_values == nil) { - SDLMaintenanceModeStatus_values = @[ - SDLMaintenanceModeStatus.NORMAL, - SDLMaintenanceModeStatus.NEAR, - SDLMaintenanceModeStatus.ACTIVE, - SDLMaintenanceModeStatus.FEATURE_NOT_PRESENT, - ]; - } - return SDLMaintenanceModeStatus_values; -} - -+ (SDLMaintenanceModeStatus *)NORMAL { - if (SDLMaintenanceModeStatus_NORMAL == nil) { - SDLMaintenanceModeStatus_NORMAL = [[SDLMaintenanceModeStatus alloc] initWithValue:@"NORMAL"]; - } - return SDLMaintenanceModeStatus_NORMAL; -} - -+ (SDLMaintenanceModeStatus *)NEAR { - if (SDLMaintenanceModeStatus_NEAR == nil) { - SDLMaintenanceModeStatus_NEAR = [[SDLMaintenanceModeStatus alloc] initWithValue:@"NEAR"]; - } - return SDLMaintenanceModeStatus_NEAR; -} - -+ (SDLMaintenanceModeStatus *)ACTIVE { - if (SDLMaintenanceModeStatus_ACTIVE == nil) { - SDLMaintenanceModeStatus_ACTIVE = [[SDLMaintenanceModeStatus alloc] initWithValue:@"ACTIVE"]; - } - return SDLMaintenanceModeStatus_ACTIVE; -} - -+ (SDLMaintenanceModeStatus *)FEATURE_NOT_PRESENT { - if (SDLMaintenanceModeStatus_FEATURE_NOT_PRESENT == nil) { - SDLMaintenanceModeStatus_FEATURE_NOT_PRESENT = [[SDLMaintenanceModeStatus alloc] initWithValue:@"FEATURE_NOT_PRESENT"]; - } - return SDLMaintenanceModeStatus_FEATURE_NOT_PRESENT; -} - -@end +SDLMaintenanceModeStatus const SDLMaintenanceModeStatusNormal = @"NORMAL"; +SDLMaintenanceModeStatus const SDLMaintenanceModeStatusNear = @"NEAR"; +SDLMaintenanceModeStatus const SDLMaintenanceModeStatusActive = @"ACTIVE"; +SDLMaintenanceModeStatus const SDLMaintenanceModeStatusFeatureNotPresent = @"FEATURE_NOT_PRESENT"; diff --git a/SmartDeviceLink/SDLManager.h b/SmartDeviceLink/SDLManager.h index 8aa96d9f2..1e3438b16 100644 --- a/SmartDeviceLink/SDLManager.h +++ b/SmartDeviceLink/SDLManager.h @@ -2,10 +2,13 @@ #import "SDLNotificationConstants.h" +#import "SDLAudioStreamingState.h" +#import "SDLHMILevel.h" +#import "SDLLanguage.h" +#import "SDLSystemContext.h" + @class SDLConfiguration; @class SDLFileManager; -@class SDLHMILevel; -@class SDLLanguage; @class SDLLifecycleConfiguration; @class SDLLockScreenConfiguration; @class SDLPermissionManager; @@ -35,7 +38,17 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); /** * The current HMI level of the running app. */ -@property (copy, nonatomic, readonly) SDLHMILevel *hmiLevel; +@property (copy, nonatomic, readonly) SDLHMILevel hmiLevel; + +/** + * The current audio streaming state of the running app. + */ +@property (copy, nonatomic, readonly) SDLAudioStreamingState audioStreamingState; + +/** + * The current system context of the running app. + */ +@property (copy, nonatomic, readonly) SDLSystemContext systemContext; /** * The file manager to be used by the running app. @@ -89,7 +102,7 @@ typedef void (^SDLManagerReadyBlock)(BOOL success, NSError *_Nullable error); * * @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; +- (void)startWithReadyHandler:(SDLManagerReadyBlock)readyHandler NS_SWIFT_NAME(start(readyHandler:)); /** * Stop the manager, it will disconnect if needed and no longer look for a connection. You probably don't need to call this method ever. @@ -114,7 +127,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:(SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler NS_SWIFT_NAME(send(request:responseHandler:)); @end diff --git a/SmartDeviceLink/SDLManager.m b/SmartDeviceLink/SDLManager.m index c83511db6..41c5612ac 100644 --- a/SmartDeviceLink/SDLManager.m +++ b/SmartDeviceLink/SDLManager.m @@ -35,7 +35,7 @@ @implementation SDLManager #pragma mark Lifecycle - (instancetype)init { - return [self initWithConfiguration:[SDLConfiguration configurationWithLifecycle:[SDLLifecycleConfiguration defaultConfigurationWithAppName:@"SDL APP" appId:@"001"] lockScreen:[SDLLockScreenConfiguration enabledConfiguration]] delegate:nil]; + return [self initWithConfiguration:[SDLConfiguration configurationWithLifecycle:[SDLLifecycleConfiguration defaultConfigurationWithAppName:@"SDL APP" appId:@"001"] lockScreen:[SDLLockScreenConfiguration enabledConfiguration] logging:[SDLLogConfiguration defaultConfiguration]] delegate:nil]; } - (instancetype)initWithConfiguration:(SDLConfiguration *)configuration delegate:(nullable id)delegate { @@ -64,7 +64,7 @@ - (SDLConfiguration *)configuration { return self.lifecycleManager.configuration; } -- (SDLHMILevel *)hmiLevel { +- (SDLHMILevel)hmiLevel { return self.lifecycleManager.hmiLevel; } diff --git a/SmartDeviceLink/SDLManagerDelegate.h b/SmartDeviceLink/SDLManagerDelegate.h index 349f22508..a3762b4e1 100644 --- a/SmartDeviceLink/SDLManagerDelegate.h +++ b/SmartDeviceLink/SDLManagerDelegate.h @@ -8,7 +8,9 @@ #import -@class SDLHMILevel; +#import "SDLAudioStreamingState.h" +#import "SDLHMILevel.h" +#import "SDLSystemContext.h" NS_ASSUME_NONNULL_BEGIN @@ -26,9 +28,26 @@ NS_ASSUME_NONNULL_BEGIN * @param oldLevel The previous level which has now been left. * @param newLevel The current level. */ -- (void)hmiLevel:(SDLHMILevel *)oldLevel didChangeToLevel:(SDLHMILevel *)newLevel; +- (void)hmiLevel:(SDLHMILevel)oldLevel didChangeToLevel:(SDLHMILevel)newLevel; + +@optional +/** + * 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. + * + * @param oldState The previous state which has now been left. + * @param newState The current state. + */ +- (void)audioStreamingState:(nullable SDLAudioStreamingState)oldState didChangeToState:(SDLAudioStreamingState)newState; + +/** + * 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. + * + * @param oldContext The previous context which has now been left. + * @param newContext The current context. + */ +- (void)systemContext:(nullable SDLSystemContext)oldContext didChangeToContext:(SDLSystemContext)newContext; @end -NS_ASSUME_NONNULL_END \ No newline at end of file +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLMediaClockFormat.h b/SmartDeviceLink/SDLMediaClockFormat.h index 12c8b8e16..91b033347 100644 --- a/SmartDeviceLink/SDLMediaClockFormat.h +++ b/SmartDeviceLink/SDLMediaClockFormat.h @@ -14,24 +14,7 @@ * * @since SDL 1.0 */ -@interface SDLMediaClockFormat : SDLEnum { -} - -/** - * @abstract Media Clock Format - * - * @param value The value of the string to get an object for - * - * @return SDLMediaClockFormat - */ -+ (SDLMediaClockFormat *)valueOf:(NSString *)value; - -/** - * @abstract declare an array that store all possible Media clock formats inside - * - * @return the array - */ -+ (NSArray *)values; +typedef SDLEnum SDLMediaClockFormat SDL_SWIFT_ENUM; /** * @abstract Media clock format: Clock1 @@ -42,10 +25,8 @@ *

  • maxMinutes = 59
  • *
  • maxSeconds = 59
  • * - * - * @return The SDLMediaClockFormat object with value *CLOCK1* */ -+ (SDLMediaClockFormat *)CLOCK1; +extern SDLMediaClockFormat const SDLMediaClockFormatClock1; /** * @abstract Media clock format: Clock2 @@ -56,10 +37,8 @@ *
  • maxMinutes = 59
  • *
  • maxSeconds = 59
  • * - * - * @return The SDLMediaClockFormat object with value *CLOCK2* */ -+ (SDLMediaClockFormat *)CLOCK2; +extern SDLMediaClockFormat const SDLMediaClockFormatClock2; /** * @abstract Media clock format: Clock3 @@ -72,9 +51,8 @@ * * * @since SDL 2.0 - * @return The SDLMediaClockFormat object with value *CLOCK3* */ -+ (SDLMediaClockFormat *)CLOCK3; +extern SDLMediaClockFormat const SDLMediaClockFormatClock3; /** * @abstract Media clock format: ClockText1 @@ -89,10 +67,8 @@ *
  • :|sp : colon or space
  • *
  • used for Type II headunit
  • * - * - * @return The SDLMediaClockFormat object with value *CLOCKTEXT1* */ -+ (SDLMediaClockFormat *)CLOCKTEXT1; +extern SDLMediaClockFormat const SDLMediaClockFormatClockText1; /** * @abstract Media clock format: ClockText2 @@ -109,10 +85,8 @@ * * difference between CLOCKTEXT1 and CLOCKTEXT2 is the supported character * set - * - * @return The SDLMediaClockFormat object with value *CLOCKTEXT2* */ -+ (SDLMediaClockFormat *)CLOCKTEXT2; +extern SDLMediaClockFormat const SDLMediaClockFormatClockText2; /** * @abstract Media clock format: ClockText3 @@ -129,10 +103,8 @@ * * difference between CLOCKTEXT1 and CLOCKTEXT2 is the supported character * set - * - * @return The SDLMediaClockFormat object with value *CLOCKTEXT3* */ -+ (SDLMediaClockFormat *)CLOCKTEXT3; +extern SDLMediaClockFormat const SDLMediaClockFormatClockText3; /** * @abstract Media clock format: ClockText4 @@ -147,8 +119,5 @@ * * * @since SDL 2.0 - * @return The SDLMediaClockFormat object with value *CLOCKTEXT4* */ -+ (SDLMediaClockFormat *)CLOCKTEXT4; - -@end +extern SDLMediaClockFormat const SDLMediaClockFormatClockText4; diff --git a/SmartDeviceLink/SDLMediaClockFormat.m b/SmartDeviceLink/SDLMediaClockFormat.m index 20ddb8005..f71894814 100644 --- a/SmartDeviceLink/SDLMediaClockFormat.m +++ b/SmartDeviceLink/SDLMediaClockFormat.m @@ -4,89 +4,10 @@ #import "SDLMediaClockFormat.h" -SDLMediaClockFormat *SDLMediaClockFormat_CLOCK1 = nil; -SDLMediaClockFormat *SDLMediaClockFormat_CLOCK2 = nil; -SDLMediaClockFormat *SDLMediaClockFormat_CLOCK3 = nil; -SDLMediaClockFormat *SDLMediaClockFormat_CLOCKTEXT1 = nil; -SDLMediaClockFormat *SDLMediaClockFormat_CLOCKTEXT2 = nil; -SDLMediaClockFormat *SDLMediaClockFormat_CLOCKTEXT3 = nil; -SDLMediaClockFormat *SDLMediaClockFormat_CLOCKTEXT4 = nil; - -NSArray *SDLMediaClockFormat_values = nil; - -@implementation SDLMediaClockFormat - -+ (SDLMediaClockFormat *)valueOf:(NSString *)value { - for (SDLMediaClockFormat *item in SDLMediaClockFormat.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLMediaClockFormat_values == nil) { - SDLMediaClockFormat_values = @[ - SDLMediaClockFormat.CLOCK1, - SDLMediaClockFormat.CLOCK2, - SDLMediaClockFormat.CLOCK3, - SDLMediaClockFormat.CLOCKTEXT1, - SDLMediaClockFormat.CLOCKTEXT2, - SDLMediaClockFormat.CLOCKTEXT3, - SDLMediaClockFormat.CLOCKTEXT4, - ]; - } - return SDLMediaClockFormat_values; -} - -+ (SDLMediaClockFormat *)CLOCK1 { - if (SDLMediaClockFormat_CLOCK1 == nil) { - SDLMediaClockFormat_CLOCK1 = [[SDLMediaClockFormat alloc] initWithValue:@"CLOCK1"]; - } - return SDLMediaClockFormat_CLOCK1; -} - -+ (SDLMediaClockFormat *)CLOCK2 { - if (SDLMediaClockFormat_CLOCK2 == nil) { - SDLMediaClockFormat_CLOCK2 = [[SDLMediaClockFormat alloc] initWithValue:@"CLOCK2"]; - } - return SDLMediaClockFormat_CLOCK2; -} - -+ (SDLMediaClockFormat *)CLOCK3 { - if (SDLMediaClockFormat_CLOCK3 == nil) { - SDLMediaClockFormat_CLOCK3 = [[SDLMediaClockFormat alloc] initWithValue:@"CLOCK3"]; - } - return SDLMediaClockFormat_CLOCK3; -} - -+ (SDLMediaClockFormat *)CLOCKTEXT1 { - if (SDLMediaClockFormat_CLOCKTEXT1 == nil) { - SDLMediaClockFormat_CLOCKTEXT1 = [[SDLMediaClockFormat alloc] initWithValue:@"CLOCKTEXT1"]; - } - return SDLMediaClockFormat_CLOCKTEXT1; -} - -+ (SDLMediaClockFormat *)CLOCKTEXT2 { - if (SDLMediaClockFormat_CLOCKTEXT2 == nil) { - SDLMediaClockFormat_CLOCKTEXT2 = [[SDLMediaClockFormat alloc] initWithValue:@"CLOCKTEXT2"]; - } - return SDLMediaClockFormat_CLOCKTEXT2; -} - -+ (SDLMediaClockFormat *)CLOCKTEXT3 { - if (SDLMediaClockFormat_CLOCKTEXT3 == nil) { - SDLMediaClockFormat_CLOCKTEXT3 = [[SDLMediaClockFormat alloc] initWithValue:@"CLOCKTEXT3"]; - } - return SDLMediaClockFormat_CLOCKTEXT3; -} - -+ (SDLMediaClockFormat *)CLOCKTEXT4 { - if (SDLMediaClockFormat_CLOCKTEXT4 == nil) { - SDLMediaClockFormat_CLOCKTEXT4 = [[SDLMediaClockFormat alloc] initWithValue:@"CLOCKTEXT4"]; - } - return SDLMediaClockFormat_CLOCKTEXT4; -} - -@end +SDLMediaClockFormat const SDLMediaClockFormatClock1 = @"CLOCK1"; +SDLMediaClockFormat const SDLMediaClockFormatClock2 = @"CLOCK2"; +SDLMediaClockFormat const SDLMediaClockFormatClock3 = @"CLOCK3"; +SDLMediaClockFormat const SDLMediaClockFormatClockText1 = @"CLOCKTEXT1"; +SDLMediaClockFormat const SDLMediaClockFormatClockText2 = @"CLOCKTEXT2"; +SDLMediaClockFormat const SDLMediaClockFormatClockText3 = @"CLOCKTEXT3"; +SDLMediaClockFormat const SDLMediaClockFormatClockText4 = @"CLOCKTEXT4"; diff --git a/SmartDeviceLink/SDLMenuParams.h b/SmartDeviceLink/SDLMenuParams.h index 6d2bd4d70..c5b0c81ff 100644 --- a/SmartDeviceLink/SDLMenuParams.h +++ b/SmartDeviceLink/SDLMenuParams.h @@ -9,19 +9,10 @@ * * @since SDL 1.0 */ -@interface SDLMenuParams : SDLRPCStruct { -} -/** - * Constructs a newly allocated SDLMenuParams object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * Constructs a newly allocated SDLMenuParams object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLMenuParams : SDLRPCStruct - (instancetype)initWithMenuName:(NSString *)menuName; @@ -33,7 +24,7 @@ * * Optional, Integer, 0 - 2,000,000,000 */ -@property (strong) NSNumber *parentID; +@property (nullable, strong, nonatomic) NSNumber *parentID; /** * @abstract The position within the items of the parent Command Menu @@ -47,13 +38,15 @@ * * Optional, Integer, 0 - 1000 */ -@property (strong) NSNumber *position; +@property (nullable, strong, nonatomic) NSNumber *position; /** * @abstract the menu name which appears in menu, representing this command * * Required, max length 500 characters */ -@property (strong) NSString *menuName; +@property (strong, nonatomic) NSString *menuName; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLMenuParams.m b/SmartDeviceLink/SDLMenuParams.m index 8292f52d0..f921ef321 100644 --- a/SmartDeviceLink/SDLMenuParams.m +++ b/SmartDeviceLink/SDLMenuParams.m @@ -4,21 +4,12 @@ #import "SDLMenuParams.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -@implementation SDLMenuParams +NS_ASSUME_NONNULL_BEGIN -- (instancetype)init { - if (self = [super init]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} +@implementation SDLMenuParams - (instancetype)initWithMenuName:(NSString *)menuName parentId:(UInt32)parentId position:(UInt16)position { self = [self initWithMenuName:menuName]; @@ -43,40 +34,30 @@ - (instancetype)initWithMenuName:(NSString *)menuName { return self; } -- (void)setParentID:(NSNumber *)parentID { - if (parentID != nil) { - [store setObject:parentID forKey:NAMES_parentID]; - } else { - [store removeObjectForKey:NAMES_parentID]; - } +- (void)setParentID:(nullable NSNumber *)parentID { + [store sdl_setObject:parentID forName:SDLNameParentId]; } -- (NSNumber *)parentID { - return [store objectForKey:NAMES_parentID]; +- (nullable NSNumber *)parentID { + return [store sdl_objectForName:SDLNameParentId]; } -- (void)setPosition:(NSNumber *)position { - if (position != nil) { - [store setObject:position forKey:NAMES_position]; - } else { - [store removeObjectForKey:NAMES_position]; - } +- (void)setPosition:(nullable NSNumber *)position { + [store sdl_setObject:position forName:SDLNamePosition]; } -- (NSNumber *)position { - return [store objectForKey:NAMES_position]; +- (nullable NSNumber *)position { + return [store sdl_objectForName:SDLNamePosition]; } - (void)setMenuName:(NSString *)menuName { - if (menuName != nil) { - [store setObject:menuName forKey:NAMES_menuName]; - } else { - [store removeObjectForKey:NAMES_menuName]; - } + [store sdl_setObject:menuName forName:SDLNameMenuName]; } - (NSString *)menuName { - return [store objectForKey:NAMES_menuName]; + return [store sdl_objectForName:SDLNameMenuName]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLMetadataTags.h b/SmartDeviceLink/SDLMetadataTags.h index dfa3c2812..a1820c56e 100644 --- a/SmartDeviceLink/SDLMetadataTags.h +++ b/SmartDeviceLink/SDLMetadataTags.h @@ -2,35 +2,23 @@ // SDLMetadataTags.h // SmartDeviceLink-iOS // -// Created by Brett McIsaac on 8/1/17. +// Created by Brett McIsaac on 8/3/17. // Copyright © 2017 smartdevicelink. All rights reserved. // #import "SDLRPCMessage.h" +#import "SDLMetadataType.h" -@class SDLMetadataType; +NS_ASSUME_NONNULL_BEGIN -@interface SDLMetadataTags : SDLRPCStruct { -} +@interface SDLMetadataTags : SDLRPCStruct /** - * @abstract Constructs a newly allocated SDLMetadataTags object + * @abstract Constructs a newly allocated SDLMetadataType object with NSArrays */ -- (instancetype)init; +- (instancetype)initWithTextFieldTypes:(nullable NSArray *)mainField1 mainField2:(nullable NSArray *)mainField2; -/** - * @abstract Constructs a newly allocated SDLMetadataTags object indicated by the dictionary parameter - * - * @param dict The dictionary to use to construct the object - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -/** - * @abstract Constructs a newly allocated SDLMetadataTags object with NSArrays - */ -- (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2; - -- (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2 mainField3:(NSArray *)mainField3 mainField4:(NSArray *)mainField4; +- (instancetype)initWithTextFieldTypes:(nullable NSArray *)mainField1 mainField2:(nullable NSArray *)mainField2 mainField3:(nullable NSArray *)mainField3 mainField4:(nullable NSArray *)mainField4; /** * @abstract The type of data contained in the "mainField1" text field, Optional. @@ -39,7 +27,7 @@ * * maxsize= 5 */ -@property (strong, nonatomic) NSMutableArray *mainField1; +@property (nullable, strong, nonatomic) NSArray *mainField1; /** * @abstract The type of data contained in the "mainField2" text field, Optional. @@ -48,7 +36,7 @@ * * maxsize= 5 */ -@property (strong, nonatomic) NSMutableArray *mainField2; +@property (nullable, strong, nonatomic) NSArray *mainField2; /** * @abstract The type of data contained in the "mainField3" text field, Optional. @@ -57,7 +45,7 @@ * * maxsize= 5 */ -@property (strong, nonatomic) NSMutableArray *mainField3; +@property (nullable, strong, nonatomic) NSArray *mainField3; /** * @abstract The type of data contained in the "mainField4" text field, Optional. @@ -66,6 +54,8 @@ * * maxsize= 5 */ -@property (strong, nonatomic) NSMutableArray *mainField4; +@property (nullable, strong, nonatomic) NSArray *mainField4; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLMetadataTags.m b/SmartDeviceLink/SDLMetadataTags.m index 745e43a39..656f8871c 100644 --- a/SmartDeviceLink/SDLMetadataTags.m +++ b/SmartDeviceLink/SDLMetadataTags.m @@ -1,145 +1,78 @@ // -// SDLMetadataTags.m +// SDLMetadataStruct.m // SmartDeviceLink-iOS // -// Created by Brett McIsaac on 8/1/17. +// Created by Brett McIsaac on 8/3/17. // Copyright © 2017 smartdevicelink. All rights reserved. // #import "SDLMetadataTags.h" -#import "SDLMetadataType.h" -#import "SDLNames.h" -@implementation SDLMetadataTags +#import "NSMutableDictionary+Store.h" +#import "SDLNames.h" -- (instancetype)init { - if (self = [super init]) { - } - return self; -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} +@implementation SDLMetadataTags -- (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2 { +- (instancetype)initWithTextFieldTypes:(nullable NSArray *)mainField1 mainField2:(nullable NSArray *)mainField2 { self = [self init]; if (!self) { return self; } - self.mainField1 = [mainField1 mutableCopy]; - self.mainField2 = [mainField2 mutableCopy]; + self.mainField1 = mainField1; + self.mainField2 = mainField2; return self; } -- (instancetype)initWithTextFieldTypes:(NSArray *)mainField1 mainField2:(NSArray *)mainField2 mainField3:(NSArray *)mainField3 mainField4:(NSArray *)mainField4 { +- (instancetype)initWithTextFieldTypes:(nullable NSArray *)mainField1 mainField2:(nullable NSArray *)mainField2 mainField3:(nullable NSArray *)mainField3 mainField4:(nullable NSArray *)mainField4 { self = [self init]; if (!self) { return self; } - self.mainField1 = [mainField1 mutableCopy]; - self.mainField2 = [mainField2 mutableCopy]; - self.mainField3 = [mainField3 mutableCopy]; - self.mainField4 = [mainField4 mutableCopy]; + self.mainField1 = mainField1; + self.mainField2 = mainField2; + self.mainField3 = mainField3; + self.mainField4 = mainField4; return self; } -- (void)setMainField1:(NSMutableArray *)mainField1 { - if (mainField1 != nil) { - [store setObject:mainField1 forKey:NAMES_mainField1]; - } else { - [store removeObjectForKey:NAMES_mainField1]; - } +- (void)setMainField1:(nullable NSArray *)mainField1 { + [store sdl_setObject:mainField1 forName:SDLNameMainField1]; } -- (NSMutableArray *)mainField1 { - NSMutableArray *array = [store objectForKey:NAMES_mainField1]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLMetadataType.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (SDLMetadataType *type in array) { - [newList addObject:type]; - } - return newList; - } +- (nullable NSArray *)mainField1 { + return [store sdl_objectForName:SDLNameMainField1]; } -- (void)setMainField2:(NSMutableArray *)mainField2 { - if (mainField2 != nil) { - [store setObject:mainField2 forKey:NAMES_mainField2]; - } else { - [store removeObjectForKey:NAMES_mainField2]; - } +- (void)setMainField2:(nullable NSArray *)mainField2 { + [store sdl_setObject:mainField2 forName:SDLNameMainField2]; } -- (NSMutableArray *)mainField2 { - NSMutableArray *array = [store objectForKey:NAMES_mainField2]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLMetadataType.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (SDLMetadataType *type in array) { - [newList addObject:type]; - } - return newList; - } +- (nullable NSArray *)mainField2 { + return [store sdl_objectForName:SDLNameMainField2]; } -- (void)setMainField3:(NSMutableArray *)mainField3 { - if (mainField3 != nil) { - [store setObject:mainField3 forKey:NAMES_mainField3]; - } else { - [store removeObjectForKey:NAMES_mainField3]; - } +- (void)setMainField3:(nullable NSArray *)mainField3 { + [store sdl_setObject:mainField3 forName:SDLNameMainField3]; } -- (NSMutableArray *)mainField3 { - NSMutableArray *array = [store objectForKey:NAMES_mainField3]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLMetadataType.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (SDLMetadataType *type in array) { - [newList addObject:type]; - } - return newList; - } +- (nullable NSArray *)mainField3 { + return [store sdl_objectForName:SDLNameMainField3]; } -- (void)setMainField4:(NSMutableArray *)mainField4 { - if (mainField4 != nil) { - [store setObject:mainField4 forKey:NAMES_mainField4]; - } else { - [store removeObjectForKey:NAMES_mainField4]; - } +- (void)setMainField4:(nullable NSArray *)mainField4 { + [store sdl_setObject:mainField4 forName:SDLNameMainField4]; } -- (NSMutableArray *)mainField4 { - NSMutableArray *array = [store objectForKey:NAMES_mainField4]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLMetadataType.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (SDLMetadataType *type in array) { - [newList addObject:type]; - } - return newList; - } +- (nullable NSArray *)mainField4 { + return [store sdl_objectForName:SDLNameMainField4]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLMetadataType.h b/SmartDeviceLink/SDLMetadataType.h index 96e65552a..c5a309412 100644 --- a/SmartDeviceLink/SDLMetadataType.h +++ b/SmartDeviceLink/SDLMetadataType.h @@ -1,119 +1,75 @@ // -// SDLTextFieldType.h +// SDLMetadataType.h // SmartDeviceLink-iOS // -// Created by Brett McIsaac on 8/1/17. +// Created by Brett McIsaac on 8/2/17. // Copyright © 2017 smartdevicelink. All rights reserved. // #import "SDLEnum.h" /** - * The list of possible metadata for text fields - * - * @since SDL 4.7.0 + * Text Field Types */ -@interface SDLMetadataType : SDLEnum { -} +typedef SDLEnum SDLMetadataType SDL_SWIFT_ENUM; /** - * Convert String to SDLTextAlignment - * - * @param value The value of the string to get an object for - * - * @return SDLTextAlignment + * @abstract SDLMetadataType: *mediaTitle* */ -+ (SDLMetadataType *)valueOf:(NSString *)value; +extern SDLMetadataType const SDLMetadataTypeMediaTitle; /** - * @abstract Store the enumeration of all possible SDLTextFieldType - * - * @return an array that store all possible SDLTextFieldType + * @abstract SDLMetadataType: *mediaArtist* */ -+ (NSArray *)values; +extern SDLMetadataType const SDLMetadataTypeMediaArtist; /** - * @abstract The data in this field contains the title of the currently playing audio track. - * - * @return A SDLTextFieldType object with value of *MEDIA_TITLE* + * @abstract SDLMetadataType: *mediaAlbum* */ -+ (SDLMetadataType *)MEDIA_TITLE; +extern SDLMetadataType const SDLMetadataTypeMediaAlbum; /** - * @abstract The data in this field contains the artist or creator of the currently playing audio track. - * - * @return A SDLTextFieldType object with value of *MEDIA_ARTIST* + * @abstract SDLMetadataType: *mediaYear* */ -+ (SDLMetadataType *)MEDIA_ARTIST; +extern SDLMetadataType const SDLMetadataTypeMediaYear; /** - * @abstract The data in this field contains the album title of the currently playing audio track. - * - * @return A SDLTextFieldType object with value of *MEDIA_ALBUM* + * @abstract SDLMetadataType: *mediaGenre* */ -+ (SDLMetadataType *)MEDIA_ALBUM; +extern SDLMetadataType const SDLMetadataTypeMediaGenre; /** - * @abstract The data in this field contains the creation year of the currently playing audio track. - * - * @return A SDLTextFieldType object with value of *MEDIA_YEAR* + * @abstract SDLMetadataType: *mediaStation* */ -+ (SDLMetadataType *)MEDIA_YEAR; +extern SDLMetadataType const SDLMetadataTypeMediaStation; /** - * @abstract The data in this field contains the genre of the currently playing audio track. - * - * @return A SDLTextFieldType object with value of *MEDIA_GENRE* + * @abstract SDLMetadataType: *rating* */ -+ (SDLMetadataType *)MEDIA_GENRE; +extern SDLMetadataType const SDLMetadataTypeRating; /** - * @abstract The data in this field contains the name of the current source for the media. - * - * @return A SDLTextFieldType object with value of *MEDIA_STATION* + * @abstract SDLMetadataType: *currentTemperature* */ -+ (SDLMetadataType *)MEDIA_STATION; +extern SDLMetadataType const SDLMetadataTypeCurrentTemperature; /** - * @abstract The data in this field is a rating. - * - * @return A SDLTextFieldType object with value of *RATING* + * @abstract SDLMetadataType: *maximumTemperature* */ -+ (SDLMetadataType *)RATING; +extern SDLMetadataType const SDLMetadataTypeMaximumTemperature; /** - * @abstract The data in this field is the current temperature. - * - * @return A SDLTextFieldType object with value of *CURRENT_TEMPERATURE* + * @abstract SDLMetadataType: *minimumTemperature* */ -+ (SDLMetadataType *)CURRENT_TEMPERATURE; +extern SDLMetadataType const SDLMetadataTypeMinimumTemperature; /** - * @abstract The data in this field is the maximum temperature for the day. - * - * @return A SDLTextFieldType object with value of *MAXIMUM_TEMPERATURE* + * @abstract SDLMetadataType: *weatherTerm* */ -+ (SDLMetadataType *)MAXIMUM_TEMPERATURE; +extern SDLMetadataType const SDLMetadataTypeWeatherTerm; /** - * @abstract The data in this field is the minimum temperature for the day. - * - * @return A SDLTextFieldType object with value of *MINIMUM_TEMPERATURE* + * @abstract SDLMetadataType: *humidity* */ -+ (SDLMetadataType *)MINIMUM_TEMPERATURE; +extern SDLMetadataType const SDLMetadataTypeHumidity; -/** - * @abstract The data in this field describes the current weather (ex. cloudy, clear, etc.). - * - * @return A SDLTextFieldType object with value of *WEATHER_TERM* - */ -+ (SDLMetadataType *)WEATHER_TERM; - -/** - * @abstract The data in this field describes the current humidity value. - * - * @return A SDLTextFieldType object with value of *HUMIDITY* - */ -+ (SDLMetadataType *)HUMIDITY; - -@end diff --git a/SmartDeviceLink/SDLMetadataType.m b/SmartDeviceLink/SDLMetadataType.m index 3b727aba9..22e846ccc 100644 --- a/SmartDeviceLink/SDLMetadataType.m +++ b/SmartDeviceLink/SDLMetadataType.m @@ -1,140 +1,22 @@ // -// SDLMetadataType.m +// SDLTextFieldType.m // SmartDeviceLink-iOS // -// Created by Brett McIsaac on 8/1/17. +// Created by Brett McIsaac on 8/2/17. // Copyright © 2017 smartdevicelink. All rights reserved. // #import "SDLMetadataType.h" -SDLMetadataType *SDLMetadataType_MEDIA_TITLE = nil; -SDLMetadataType *SDLMetadataType_MEDIA_ARTIST = nil; -SDLMetadataType *SDLMetadataType_MEDIA_ALBUM = nil; -SDLMetadataType *SDLMetadataType_MEDIA_YEAR = nil; -SDLMetadataType *SDLMetadataType_MEDIA_GENRE = nil; -SDLMetadataType *SDLMetadataType_MEDIA_STATION = nil; -SDLMetadataType *SDLMetadataType_RATING = nil; -SDLMetadataType *SDLMetadataType_CURRENT_TEMPERATURE = nil; -SDLMetadataType *SDLMetadataType_MAXIMUM_TEMPERATURE = nil; -SDLMetadataType *SDLMetadataType_MINIMUM_TEMPERATURE = nil; -SDLMetadataType *SDLMetadataType_WEATHER_TERM = nil; -SDLMetadataType *SDLMetadataType_HUMIDITY = nil; - -NSArray *SDLMetadataType_values = nil; - -@implementation SDLMetadataType - -+ (SDLMetadataType *)valueOf:(NSString *)value { - for (SDLMetadataType *item in SDLMetadataType.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLMetadataType_values == nil) { - SDLMetadataType_values = @[ - SDLMetadataType.MEDIA_TITLE, - SDLMetadataType.MEDIA_ARTIST, - SDLMetadataType.MEDIA_ALBUM, - SDLMetadataType.MEDIA_YEAR, - SDLMetadataType.MEDIA_GENRE, - SDLMetadataType.MEDIA_STATION, - SDLMetadataType.RATING, - SDLMetadataType.CURRENT_TEMPERATURE, - SDLMetadataType.MAXIMUM_TEMPERATURE, - SDLMetadataType.MINIMUM_TEMPERATURE, - SDLMetadataType.WEATHER_TERM, - SDLMetadataType.HUMIDITY]; - } - return SDLMetadataType_values; -} - -+ (SDLMetadataType *)MEDIA_TITLE { - if (SDLMetadataType_MEDIA_TITLE== nil) { - SDLMetadataType_MEDIA_TITLE = [[SDLMetadataType alloc] initWithValue:@"mediaTitle"]; - } - return SDLMetadataType_MEDIA_TITLE; -} - -+ (SDLMetadataType *)MEDIA_ARTIST { - if (SDLMetadataType_MEDIA_ARTIST== nil) { - SDLMetadataType_MEDIA_ARTIST = [[SDLMetadataType alloc] initWithValue:@"mediaArtist"]; - } - return SDLMetadataType_MEDIA_ARTIST; -} - -+ (SDLMetadataType *)MEDIA_ALBUM { - if (SDLMetadataType_MEDIA_ALBUM== nil) { - SDLMetadataType_MEDIA_ALBUM = [[SDLMetadataType alloc] initWithValue:@"mediaAlbum"]; - } - return SDLMetadataType_MEDIA_ALBUM; -} - -+ (SDLMetadataType *)MEDIA_YEAR { - if (SDLMetadataType_MEDIA_YEAR == nil) { - SDLMetadataType_MEDIA_YEAR = [[SDLMetadataType alloc] initWithValue:@"mediaYear"]; - } - return SDLMetadataType_MEDIA_YEAR; -} - -+ (SDLMetadataType *)MEDIA_GENRE { - if (SDLMetadataType_MEDIA_GENRE == nil) { - SDLMetadataType_MEDIA_GENRE = [[SDLMetadataType alloc] initWithValue:@"mediaGenre"]; - } - return SDLMetadataType_MEDIA_GENRE; -} - -+ (SDLMetadataType *)MEDIA_STATION { - if (SDLMetadataType_MEDIA_STATION == nil) { - SDLMetadataType_MEDIA_STATION = [[SDLMetadataType alloc] initWithValue:@"mediaStation"]; - } - return SDLMetadataType_MEDIA_STATION; -} - -+ (SDLMetadataType *)RATING { - if (SDLMetadataType_RATING == nil) { - SDLMetadataType_RATING = [[SDLMetadataType alloc] initWithValue:@"rating"]; - } - return SDLMetadataType_RATING; -} - -+ (SDLMetadataType *)CURRENT_TEMPERATURE { - if (SDLMetadataType_CURRENT_TEMPERATURE == nil) { - SDLMetadataType_CURRENT_TEMPERATURE = [[SDLMetadataType alloc] initWithValue:@"currentTemperature"]; - } - return SDLMetadataType_CURRENT_TEMPERATURE; -} - -+ (SDLMetadataType *)MAXIMUM_TEMPERATURE { - if (SDLMetadataType_MAXIMUM_TEMPERATURE == nil) { - SDLMetadataType_MAXIMUM_TEMPERATURE = [[SDLMetadataType alloc] initWithValue:@"maximumTemperature"]; - } - return SDLMetadataType_MAXIMUM_TEMPERATURE; -} - -+ (SDLMetadataType *)MINIMUM_TEMPERATURE { - if (SDLMetadataType_MINIMUM_TEMPERATURE == nil) { - SDLMetadataType_MINIMUM_TEMPERATURE = [[SDLMetadataType alloc] initWithValue:@"minimumTemperature"]; - } - return SDLMetadataType_MINIMUM_TEMPERATURE; -} - -+ (SDLMetadataType *)WEATHER_TERM { - if (SDLMetadataType_WEATHER_TERM == nil) { - SDLMetadataType_WEATHER_TERM = [[SDLMetadataType alloc] initWithValue:@"weatherTerm"]; - } - return SDLMetadataType_WEATHER_TERM; -} - -+ (SDLMetadataType *)HUMIDITY { - if (SDLMetadataType_HUMIDITY == nil) { - SDLMetadataType_HUMIDITY = [[SDLMetadataType alloc] initWithValue:@"humidity"]; - } - return SDLMetadataType_HUMIDITY; -} - -@end +SDLMetadataType const SDLMetadataTypeMediaTitle = @"mediaTitle"; +SDLMetadataType const SDLMetadataTypeMediaArtist = @"mediaArtist"; +SDLMetadataType const SDLMetadataTypeMediaAlbum = @"mediaAlbum"; +SDLMetadataType const SDLMetadataTypeMediaYear = @"mediaYear"; +SDLMetadataType const SDLMetadataTypeMediaGenre = @"mediaGenre"; +SDLMetadataType const SDLMetadataTypeMediaStation = @"mediaStation"; +SDLMetadataType const SDLMetadataTypeRating = @"rating"; +SDLMetadataType const SDLMetadataTypeCurrentTemperature = @"currentTemperature"; +SDLMetadataType const SDLMetadataTypeMaximumTemperature = @"maximumTemperature"; +SDLMetadataType const SDLMetadataTypeMinimumTemperature = @"minimumTemperature"; +SDLMetadataType const SDLMetadataTypeWeatherTerm = @"weatherTerm"; +SDLMetadataType const SDLMetadataTypeHumidity = @"humidity"; diff --git a/SmartDeviceLink/SDLModuleData.h b/SmartDeviceLink/SDLModuleData.h new file mode 100644 index 000000000..b777a780c --- /dev/null +++ b/SmartDeviceLink/SDLModuleData.h @@ -0,0 +1,31 @@ +// +// SDLModuleData.h +// + +#import "SDLRPCMessage.h" +#import "SDLModuleType.h" + +@class SDLRadioControlData; +@class SDLClimateControlData; + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLModuleData : SDLRPCStruct + +- (instancetype)initWithRadioControlData:(SDLRadioControlData *)radioControlData; +- (instancetype)initWithClimateControlData:(SDLClimateControlData *)climateControlData; + +/** + * The moduleType indicates which type of data should be changed + * and identifies which data object exists in this struct. + * For example, if the moduleType is CLIMATE then a "climateControlData" should exist + */ +@property (strong, nonatomic) SDLModuleType moduleType; + +@property (nullable, strong, nonatomic) SDLRadioControlData *radioControlData; + +@property (nullable, strong, nonatomic) SDLClimateControlData *climateControlData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLModuleData.m b/SmartDeviceLink/SDLModuleData.m new file mode 100644 index 000000000..3d3789639 --- /dev/null +++ b/SmartDeviceLink/SDLModuleData.m @@ -0,0 +1,65 @@ +// +// SDLModuleData.m +// + +#import "SDLModuleData.h" +#import "SDLNames.h" +#import "SDLClimateControlData.h" +#import "SDLRadioControlData.h" +#import "NSMutableDictionary+Store.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLModuleData + +- (instancetype)initWithRadioControlData:(SDLRadioControlData *)radioControlData { + self = [self init]; + if(!self){ + return nil; + } + + self.moduleType = SDLModuleTypeRadio; + self.radioControlData = radioControlData; + + return self; +} + +- (instancetype)initWithClimateControlData:(SDLClimateControlData *)climateControlData { + self = [self init]; + if(!self){ + return nil; + } + + self.moduleType = SDLModuleTypeClimate; + self.climateControlData = climateControlData; + + return self; +} + +- (void)setModuleType:(SDLModuleType)moduleType { + [store sdl_setObject:moduleType forName:SDLNameModuleType]; +} + +- (SDLModuleType)moduleType { + return [store sdl_objectForName:SDLNameModuleType]; +} + +- (void)setRadioControlData:(nullable SDLRadioControlData *)radioControlData { + [store sdl_setObject:radioControlData forName:SDLNameRadioControlData]; +} + +- (nullable SDLRadioControlData *)radioControlData { + return [store sdl_objectForName:SDLNameRadioControlData ofClass:SDLRadioControlData.class]; +} + +- (void)setClimateControlData:(nullable SDLClimateControlData *)climateControlData { + [store sdl_setObject:climateControlData forName:SDLNameClimateControlData]; +} + +- (nullable SDLClimateControlData *)climateControlData { + return [store sdl_objectForName:SDLNameClimateControlData ofClass:SDLClimateControlData.class]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLModuleType.h b/SmartDeviceLink/SDLModuleType.h new file mode 100644 index 000000000..4d52f08fd --- /dev/null +++ b/SmartDeviceLink/SDLModuleType.h @@ -0,0 +1,17 @@ +// +// SDLModuleType.h +// + +#import "SDLEnum.h" + +typedef SDLEnum SDLModuleType SDL_SWIFT_ENUM; + +/** + * @abstract A SDLModuleType with the value of *CLIMATE* + */ +extern SDLModuleType const SDLModuleTypeClimate; + +/** + * @abstract A SDLModuleType with the value of *RADIO* + */ +extern SDLModuleType const SDLModuleTypeRadio; diff --git a/SmartDeviceLink/SDLModuleType.m b/SmartDeviceLink/SDLModuleType.m new file mode 100644 index 000000000..30744e0c2 --- /dev/null +++ b/SmartDeviceLink/SDLModuleType.m @@ -0,0 +1,8 @@ +// +// SDLModuleType.m +// + +#import "SDLModuleType.h" + +SDLModuleType const SDLModuleTypeClimate = @"CLIMATE"; +SDLModuleType const SDLModuleTypeRadio = @"RADIO"; diff --git a/SmartDeviceLink/SDLMyKey.h b/SmartDeviceLink/SDLMyKey.h index ff039e582..aa395f923 100644 --- a/SmartDeviceLink/SDLMyKey.h +++ b/SmartDeviceLink/SDLMyKey.h @@ -2,16 +2,14 @@ // #import "SDLRPCMessage.h" +#import "SDLVehicleDataStatus.h" -@class SDLVehicleDataStatus; +NS_ASSUME_NONNULL_BEGIN +@interface SDLMyKey : SDLRPCStruct -@interface SDLMyKey : SDLRPCStruct { -} - -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -@property (strong) SDLVehicleDataStatus *e911Override; +@property (strong, nonatomic) SDLVehicleDataStatus e911Override; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLMyKey.m b/SmartDeviceLink/SDLMyKey.m index ec4e5ef95..fc7f730f7 100644 --- a/SmartDeviceLink/SDLMyKey.m +++ b/SmartDeviceLink/SDLMyKey.m @@ -3,39 +3,22 @@ #import "SDLMyKey.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" #import "SDLVehicleDataStatus.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLMyKey -- (instancetype)init { - if (self = [super init]) { - } - return self; +- (void)setE911Override:(SDLVehicleDataStatus)e911Override { + [store sdl_setObject:e911Override forName:SDLNameE911Override]; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (void)setE911Override:(SDLVehicleDataStatus *)e911Override { - if (e911Override != nil) { - [store setObject:e911Override forKey:NAMES_e911Override]; - } else { - [store removeObjectForKey:NAMES_e911Override]; - } -} - -- (SDLVehicleDataStatus *)e911Override { - NSObject *obj = [store objectForKey:NAMES_e911Override]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataStatus.class]) { - return (SDLVehicleDataStatus *)obj; - } else { - return [SDLVehicleDataStatus valueOf:(NSString *)obj]; - } +- (SDLVehicleDataStatus)e911Override { + return [store sdl_objectForName:SDLNameE911Override]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLNames.h b/SmartDeviceLink/SDLNames.h index 484bcfa3e..a1790afa0 100644 --- a/SmartDeviceLink/SDLNames.h +++ b/SmartDeviceLink/SDLNames.h @@ -1,462 +1,537 @@ // SDLNames.h // +#import +#import "SDLMacros.h" -#define NAMES_accPedalPosition @"accPedalPosition" -#define NAMES_actual @"actual" -#define NAMES_AddCommand @"AddCommand" -#define NAMES_address @"address" -#define NAMES_addressLines @"addressLines" -#define NAMES_AddSubMenu @"AddSubMenu" -#define NAMES_administrativeArea @"administrativeArea" -#define NAMES_airbagStatus @"airbagStatus" -#define NAMES_Alert @"Alert" -#define NAMES_AlertManeuver @"AlertManeuver" -#define NAMES_alertText1 @"alertText1" -#define NAMES_alertText2 @"alertText2" -#define NAMES_alertText3 @"alertText3" -#define NAMES_alignment @"alignment" -#define NAMES_allowed @"allowed" -#define NAMES_altitude @"altitude" -#define NAMES_ambientLightSensorStatus @"ambientLightSensorStatus" -#define NAMES_ambientLightStatus @"ambientLightStatus" -#define NAMES_appBundleID @"appBundleID" -#define NAMES_appHMIType @"appHMIType" -#define NAMES_appID @"appID" -#define NAMES_appInfo @"appInfo" -#define NAMES_appName @"appName" -#define NAMES_appDisplayName @"appDisplayName" -#define NAMES_appVersion @"appVersion" -#define NAMES_audioPassThruCapabilities @"audioPassThruCapabilities" -#define NAMES_audioPassThruDisplayText1 @"audioPassThruDisplayText1" -#define NAMES_audioPassThruDisplayText2 @"audioPassThruDisplayText2" -#define NAMES_audioStreamingState @"audioStreamingState" -#define NAMES_audioType @"audioType" -#define NAMES_autoCompleteText @"autoCompleteText" -#define NAMES_auxECallNotificationStatus @"auxECallNotificationStatus" -#define NAMES_battLevelStatus @"battLevelStatus" -#define NAMES_beltStatus @"beltStatus" -#define NAMES_bitsPerSample @"bitsPerSample" -#define NAMES_bodyInformation @"bodyInformation" -#define NAMES_btIconOn @"btIconOn" -#define NAMES_bulkData @"bulkData" -#define NAMES_buttonCapabilities @"buttonCapabilities" -#define NAMES_buttonEventMode @"buttonEventMode" -#define NAMES_buttonName @"buttonName" -#define NAMES_buttonPressMode @"buttonPressMode" -#define NAMES_c @"c" -#define NAMES_callActive @"callActive" -#define NAMES_carModeStatus @"carModeStatus" -#define NAMES_carrier @"carrier" -#define NAMES_ChangeRegistration @"ChangeRegistration" -#define NAMES_characterSet @"characterSet" -#define NAMES_choiceID @"choiceID" -#define NAMES_choiceSet @"choiceSet" -#define NAMES_clusterModes @"clusterModes" -#define NAMES_clusterModeStatus @"clusterModeStatus" -#define NAMES_cmdIcon @"cmdIcon" -#define NAMES_cmdID @"cmdID" -#define NAMES_compassDirection @"compassDirection" -#define NAMES_correlationID @"correlationID" -#define NAMES_CreateInteractionChoiceSet @"CreateInteractionChoiceSet" -#define NAMES_countryCode @"countryCode" -#define NAMES_countryName @"countryName" -#define NAMES_customButtonID @"customButtonID" -#define NAMES_customPresets @"customPresets" -#define NAMES_data @"data" -#define NAMES_dataResult @"dataResult" -#define NAMES_dataType @"dataType" -#define NAMES_day @"day" -#define NAMES_DeleteCommand @"DeleteCommand" -#define NAMES_DeleteFile @"DeleteFile" -#define NAMES_DeleteInteractionChoiceSet @"DeleteInteractionChoiceSet" -#define NAMES_DeleteSubMenu @"DeleteSubMenu" -#define NAMES_deliveryMode @"deliveryMode" -#define NAMES_deviceInfo @"deviceInfo" -#define NAMES_deviceStatus @"deviceStatus" -#define NAMES_DiagnosticMessage @"DiagnosticMessage" -#define NAMES_dialNumberEnabled @"dialNumberEnabled" -#define NAMES_didLocation @"didLocation" -#define NAMES_didResult @"didResult" -#define NAMES_dimension @"dimension" -#define NAMES_displayCapabilities @"displayCapabilities" -#define NAMES_displayLayout @"displayLayout" -#define NAMES_displayType @"displayType" -#define NAMES_distanceToEmpty @"distanceToEmpty" -#define NAMES_distanceToManeuver @"distanceToManeuver" -#define NAMES_distanceToManeuverScale @"distanceToManeuverScale" -#define NAMES_doublePressAvailable @"doublePressAvailable" -#define NAMES_driverAirbagDeployed @"driverAirbagDeployed" -#define NAMES_driverBeltDeployed @"driverBeltDeployed" -#define NAMES_driverBraking @"driverBraking" -#define NAMES_driverBuckleBelted @"driverBuckleBelted" -#define NAMES_driverCurtainAirbagDeployed @"driverCurtainAirbagDeployed" -#define NAMES_driverDoorAjar @"driverDoorAjar" -#define NAMES_driverKneeAirbagDeployed @"driverKneeAirbagDeployed" -#define NAMES_driverSideAirbagDeployed @"driverSideAirbagDeployed" -#define NAMES_dtc @"dtc" -#define NAMES_dtcMask @"dtcMask" -#define NAMES_duration @"duration" -#define NAMES_e911Override @"e911Override" -#define NAMES_eCallConfirmationStatus @"eCallConfirmationStatus" -#define NAMES_eCallEventActive @"eCallEventActive" -#define NAMES_eCallInfo @"eCallInfo" -#define NAMES_eCallNotificationStatus @"eCallNotificationStatus" -#define NAMES_ecuHeader @"ecuHeader" -#define NAMES_ecuName @"ecuName" -#define NAMES_emergencyEvent @"emergencyEvent" -#define NAMES_emergencyEventType @"emergencyEventType" -#define NAMES_EncodedSyncPData @"EncodedSyncPData" -#define NAMES_EndAudioPassThru @"EndAudioPassThru" -#define NAMES_endTime @"endTime" -#define NAMES_engineTorque @"engineTorque" -#define NAMES_eta @"eta" -#define NAMES_event @"event" -#define NAMES_externalTemperature @"externalTemperature" -#define NAMES_fileName @"fileName" -#define NAMES_filenames @"filenames" -#define NAMES_fileType @"fileType" -#define NAMES_firmwareRev @"firmwareRev" -#define NAMES_fuelCutoffStatus @"fuelCutoffStatus" -#define NAMES_fuelLevel @"fuelLevel" -#define NAMES_fuelLevel_State @"fuelLevel_State" -#define NAMES_fuelMaintenanceMode @"fuelMaintenanceMode" -#define NAMES_GenericResponse @"GenericResponse" -#define NAMES_GetDTCs @"GetDTCs" -#define NAMES_GetSystemCapability @"GetSystemCapability" -#define NAMES_GetVehicleData @"GetVehicleData" -#define NAMES_GetWaypoints @"GetWayPoints" -#define NAMES_getWayPointsEnabled @"getWayPointsEnabled" -#define NAMES_gps @"gps" -#define NAMES_graphic @"graphic" -#define NAMES_graphicSupported @"graphicSupported" -#define NAMES_hapticRectData @"hapticRectData" -#define NAMES_hapticSpatialDataSupported @"hapticSpatialDataSupported" -#define NAMES_hardware @"hardware" -#define NAMES_hashID @"hashID" -#define NAMES_height @"height" -#define NAMES_hdop @"hdop" -#define NAMES_heading @"heading" -#define NAMES_headLampStatus @"headLampStatus" -#define NAMES_helpPrompt @"helpPrompt" -#define NAMES_highBeamsOn @"highBeamsOn" -#define NAMES_hmiDisplayLanguage @"hmiDisplayLanguage" -#define NAMES_hmiDisplayLanguageDesired @"hmiDisplayLanguageDesired" -#define NAMES_hmiLevel @"hmiLevel" -#define NAMES_hmiPermissions @"hmiPermissions" -#define NAMES_hmiCapabilities @"hmiCapabilities" -#define NAMES_hmiZoneCapabilities @"hmiZoneCapabilities" -#define NAMES_hour @"hour" -#define NAMES_hours @"hours" -#define NAMES_id @"id" -#define NAMES_ignitionStableStatus @"ignitionStableStatus" -#define NAMES_ignitionStatus @"ignitionStatus" -#define NAMES_image @"image" -#define NAMES_imageFields @"imageFields" -#define NAMES_imageResolution @"imageResolution" -#define NAMES_imageSupported @"imageSupported" -#define NAMES_imageType @"imageType" -#define NAMES_imageTypeSupported @"imageTypeSupported" -#define NAMES_info @"info" -#define NAMES_initialPrompt @"initialPrompt" -#define NAMES_initialText @"initialText" -#define NAMES_innerLeftRear @"innerLeftRear" -#define NAMES_innerRightRear @"innerRightRear" -#define NAMES_instantFuelConsumption @"instantFuelConsumption" -#define NAMES_interactionChoiceSetID @"interactionChoiceSetID" -#define NAMES_interactionChoiceSetIDList @"interactionChoiceSetIDList" -#define NAMES_interactionLayout @"interactionLayout" -#define NAMES_interactionMode @"interactionMode" -#define NAMES_isHighlighted @"isHighlighted" -#define NAMES_isMediaApplication @"isMediaApplication" -#define NAMES_keyboardLayout @"keyboardLayout" -#define NAMES_keyboardProperties @"keyboardProperties" -#define NAMES_keypressMode @"keypressMode" -#define NAMES_language @"language" -#define NAMES_languageDesired @"languageDesired" -#define NAMES_latitudeDegrees @"latitudeDegrees" -#define NAMES_leftFront @"leftFront" -#define NAMES_leftRear @"leftRear" -#define NAMES_leftRearInflatableBelted @"leftRearInflatableBelted" -#define NAMES_leftRow2BuckleBelted @"leftRow2BuckleBelted" -#define NAMES_leftRow3BuckleBelted @"leftRow3BuckleBelted" -#define NAMES_length @"length" -#define NAMES_limitedCharacterList @"limitedCharacterList" -#define NAMES_ListFiles @"ListFiles" -#define NAMES_locality @"locality" -#define NAMES_locationCoordinate @"coordinate" -#define NAMES_locationDescription @"locationDescription" -#define NAMES_locationImage @"locationImage" -#define NAMES_locationName @"locationName" -#define NAMES_longitudeDegrees @"longitudeDegrees" -#define NAMES_longPress @"longPress" -#define NAMES_longPressAvailable @"longPressAvailable" -#define NAMES_lowBeamsOn @"lowBeamsOn" -#define NAMES_mainField1 @"mainField1" -#define NAMES_mainField2 @"mainField2" -#define NAMES_mainField3 @"mainField3" -#define NAMES_mainField4 @"mainField4" -#define NAMES_majorVersion @"majorVersion" -#define NAMES_make @"make" -#define NAMES_maneuverComplete @"maneuverComplete" -#define NAMES_manualTextEntry @"manualTextEntry" -#define NAMES_maxBitrate @"maxBitrate" -#define NAMES_maxDuration @"maxDuration" -#define NAMES_maximumChangeVelocity @"maximumChangeVelocity" -#define NAMES_maxNumberRFCOMMPorts @"maxNumberRFCOMMPorts" -#define NAMES_mediaClock @"mediaClock" -#define NAMES_mediaClockFormats @"mediaClockFormats" -#define NAMES_mediaTrack @"mediaTrack" -#define NAMES_menuIcon @"menuIcon" -#define NAMES_menuID @"menuID" -#define NAMES_menuName @"menuName" -#define NAMES_menuParams @"menuParams" -#define NAMES_menuTitle @"menuTitle" -#define NAMES_messageData @"messageData" -#define NAMES_messageDataResult @"messageDataResult" -#define NAMES_messageLength @"messageLength" -#define NAMES_metadataTags @"metadataTags" -#define NAMES_middleRow1BeltDeployed @"middleRow1BeltDeployed" -#define NAMES_middleRow1BuckleBelted @"middleRow1BuckleBelted" -#define NAMES_middleRow2BuckleBelted @"middleRow2BuckleBelted" -#define NAMES_middleRow3BuckleBelted @"middleRow3BuckleBelted" -#define NAMES_millisecond @"millisecond" -#define NAMES_minorVersion @"minorVersion" -#define NAMES_minute @"minute" -#define NAMES_minutes @"minutes" -#define NAMES_model @"model" -#define NAMES_modelYear @"modelYear" -#define NAMES_monoAudioOutputMuted @"monoAudioOutputMuted" -#define NAMES_month @"month" -#define NAMES_multipleEvents @"multipleEvents" -#define NAMES_multiTouchAvailable @"multiTouchAvailable" -#define NAMES_muteAudio @"muteAudio" -#define NAMES_myKey @"myKey" -#define NAMES_name @"name" -#define NAMES_navigation @"navigation" -#define NAMES_navigationCapability @"navigationCapability" -#define NAMES_navigationText @"navigationText" -#define NAMES_navigationText1 @"navigationText1" -#define NAMES_navigationText2 @"navigationText2" -#define NAMES_nextTurnIcon @"nextTurnIcon" -#define NAMES_ngnMediaScreenAppName @"ngnMediaScreenAppName" -#define NAMES_notification @"notification" -#define NAMES_number @"number" -#define NAMES_numCustomPresetsAvailable @"numCustomPresetsAvailable" -#define NAMES_numTicks @"numTicks" -#define NAMES_odometer @"odometer" -#define NAMES_offset @"offset" -#define NAMES_OnAppInterfaceUnregistered @"OnAppInterfaceUnregistered" -#define NAMES_OnAudioPassThru @"OnAudioPassThru" -#define NAMES_OnButtonEvent @"OnButtonEvent" -#define NAMES_OnButtonPress @"OnButtonPress" -#define NAMES_OnCommand @"OnCommand" -#define NAMES_OnDriverDistraction @"OnDriverDistraction" -#define NAMES_OnEncodedSyncPData @"OnEncodedSyncPData" -#define NAMES_OnHashChange @"OnHashChange" -#define NAMES_OnHMIStatus @"OnHMIStatus" -#define NAMES_OnKeyboardInput @"OnKeyboardInput" -#define NAMES_OnLanguageChange @"OnLanguageChange" -#define NAMES_OnPermissionsChange @"OnPermissionsChange" -#define NAMES_onScreenPresetsAvailable @"onScreenPresetsAvailable" -#define NAMES_OnSyncPData @"OnSyncPData" -#define NAMES_OnSystemRequest @"OnSystemRequest" -#define NAMES_OnTBTClientState @"OnTBTClientState" -#define NAMES_OnTouchEvent @"OnTouchEvent" -#define NAMES_OnVehicleData @"OnVehicleData" -#define NAMES_OnWaypointChange @"OnWayPointChange" -#define NAMES_operation_name @"name" -#define NAMES_os @"os" -#define NAMES_osVersion @"osVersion" -#define NAMES_parameterPermissions @"parameterPermissions" -#define NAMES_parameters @"parameters" -#define NAMES_parentID @"parentID" -#define NAMES_parkBrakeActive @"parkBrakeActive" -#define NAMES_passengerAirbagDeployed @"passengerAirbagDeployed" -#define NAMES_passengerBeltDeployed @"passengerBeltDeployed" -#define NAMES_passengerBuckleBelted @"passengerBuckleBelted" -#define NAMES_passengerChildDetected @"passengerChildDetected" -#define NAMES_passengerCurtainAirbagDeployed @"passengerCurtainAirbagDeployed" -#define NAMES_passengerDoorAjar @"passengerDoorAjar" -#define NAMES_passengerKneeAirbagDeployed @"passengerKneeAirbagDeployed" -#define NAMES_passengerSideAirbagDeployed @"passengerSideAirbagDeployed" -#define NAMES_patchVersion @"patchVersion" -#define NAMES_pdop @"pdop" -#define NAMES_PerformAudioPassThru @"PerformAudioPassThru" -#define NAMES_PerformInteraction @"PerformInteraction" -#define NAMES_permissionItem @"permissionItem" -#define NAMES_persistentFile @"persistentFile" -#define NAMES_phoneCall @"phoneCall" -#define NAMES_phoneCapability @"phoneCapability" -#define NAMES_phoneNumber @"phoneNumber" -#define NAMES_phoneRoaming @"phoneRoaming" -#define NAMES_playTone @"playTone" -#define NAMES_position @"position" -#define NAMES_postalCode @"postalCode" -#define NAMES_powerModeActive @"powerModeActive" -#define NAMES_powerModeQualificationStatus @"powerModeQualificationStatus" -#define NAMES_powerModeStatus @"powerModeStatus" -#define NAMES_preferredResolution @"preferredResolution" -#define NAMES_prerecordedSpeech @"prerecordedSpeech" -#define NAMES_presetBankCapabilities @"presetBankCapabilities" -#define NAMES_pressAvailable @"pressAvailable" -#define NAMES_pressure @"pressure" -#define NAMES_pressureTelltale @"pressureTelltale" -#define NAMES_primaryAudioSource @"primaryAudioSource" -#define NAMES_prndl @"prndl" -#define NAMES_progressIndicator @"progressIndicator" -#define NAMES_properties @"properties" -#define NAMES_PutFile @"PutFile" -#define NAMES_ReadDID @"ReadDID" -#define NAMES_rearLeftDoorAjar @"rearLeftDoorAjar" -#define NAMES_rearRightDoorAjar @"rearRightDoorAjar" -#define NAMES_reason @"reason" -#define NAMES_rect @"rect" -#define NAMES_RegisterAppInterface @"RegisterAppInterface" -#define NAMES_request @"request" -#define NAMES_requestType @"requestType" -#define NAMES_reserved @"reserved" -#define NAMES_ResetGlobalProperties @"ResetGlobalProperties" -#define NAMES_resolution @"resolution" -#define NAMES_resolutionHeight @"resolutionHeight" -#define NAMES_resolutionWidth @"resolutionWidth" -#define NAMES_response @"response" -#define NAMES_result @"result" -#define NAMES_resultCode @"resultCode" -#define NAMES_rightFront @"rightFront" -#define NAMES_rightRear @"rightRear" -#define NAMES_rightRearInflatableBelted @"rightRearInflatableBelted" -#define NAMES_rightRow2BuckleBelted @"rightRow2BuckleBelted" -#define NAMES_rightRow3BuckleBelted @"rightRow3BuckleBelted" -#define NAMES_rolloverEvent @"rolloverEvent" -#define NAMES_rows @"rows" -#define NAMES_rpcName @"rpcName" -#define NAMES_rpm @"rpm" -#define NAMES_samplingRate @"samplingRate" -#define NAMES_satellites @"satellites" -#define NAMES_screenParams @"screenParams" -#define NAMES_ScrollableMessage @"ScrollableMessage" -#define NAMES_scrollableMessageBody @"scrollableMessageBody" -#define NAMES_sdlVersion @"sdlVersion" -#define NAMES_searchAddress @"searchAddress" -#define NAMES_secondaryGraphic @"secondaryGraphic" -#define NAMES_secondaryImage @"secondaryImage" -#define NAMES_secondaryText @"secondaryText" -#define NAMES_second @"second" -#define NAMES_seconds @"seconds" -#define NAMES_SendHapticData @"SendHapticData" -#define NAMES_SendHapticDataResponse @"SendHapticDataResponse" -#define NAMES_SendLocation @"SendLocation" -#define NAMES_sendLocationEnabled @"sendLocationEnabled" -#define NAMES_SetAppIcon @"SetAppIcon" -#define NAMES_SetDisplayLayout @"SetDisplayLayout" -#define NAMES_SetGlobalProperties @"SetGlobalProperties" -#define NAMES_SetMediaClockTimer @"SetMediaClockTimer" -#define NAMES_shortPress @"shortPress" -#define NAMES_shortPressAvailable @"shortPressAvailable" -#define NAMES_Show @"Show" -#define NAMES_ShowConstantTBT @"ShowConstantTBT" -#define NAMES_signalLevelStatus @"signalLevelStatus" -#define NAMES_Slider @"Slider" -#define NAMES_sliderFooter @"sliderFooter" -#define NAMES_sliderHeader @"sliderHeader" -#define NAMES_sliderPosition @"sliderPosition" -#define NAMES_softButtonCapabilities @"softButtonCapabilities" -#define NAMES_softButtonID @"softButtonID" -#define NAMES_softButtons @"softButtons" -#define NAMES_spaceAvailable @"spaceAvailable" -#define NAMES_Speak @"Speak" -#define NAMES_speechCapabilities @"speechCapabilities" -#define NAMES_speed @"speed" -#define NAMES_startTime @"startTime" -#define NAMES_state @"state" -#define NAMES_stateOfCharge @"stateOfCharge" -#define NAMES_status @"status" -#define NAMES_statusBar @"statusBar" -#define NAMES_steeringWheelAngle @"steeringWheelAngle" -#define NAMES_stereoAudioOutputMuted @"stereoAudioOutputMuted" -#define NAMES_subAdministrativeArea @"subAdministrativeArea" -#define NAMES_subLocality @"subLocality" -#define NAMES_Subscribe @"Subscribe" -#define NAMES_SubscribeButton @"SubscribeButton" -#define NAMES_SubscribeVehicleData @"SubscribeVehicleData" -#define NAMES_SubscribeWaypoints @"SubscribeWayPoints" -#define NAMES_subThoroughfare @"subThoroughfare" -#define NAMES_success @"success" -#define NAMES_supportedDiagModes @"supportedDiagModes" -#define NAMES_supportedFormats @"supportedFormats" -#define NAMES_syncFileName @"syncFileName" -#define NAMES_syncMsgVersion @"syncMsgVersion" -#define NAMES_SyncPData @"SyncPData" -#define NAMES_systemAction @"systemAction" -#define NAMES_systemCapability @"systemCapability" -#define NAMES_systemCapabilityType @"systemCapabilityType" -#define NAMES_systemContext @"systemContext" -#define NAMES_systemFile @"systemFile" -#define NAMES_SystemRequest @"SystemRequest" -#define NAMES_systemSoftwareVersion @"systemSoftwareVersion" -#define NAMES_DialNumber @"DialNumber" -#define NAMES_targetID @"targetID" -#define NAMES_templatesAvailable @"templatesAvailable" -#define NAMES_tertiaryText @"tertiaryText" -#define NAMES_text @"text" -#define NAMES_textFields @"textFields" -#define NAMES_textMsgAvailable @"textMsgAvailable" -#define NAMES_thoroughfare @"thoroughfare" -#define NAMES_timeout @"timeout" -#define NAMES_Timeout @"Timeout" -#define NAMES_timeoutPrompt @"timeoutPrompt" -#define NAMES_timeStamp @"timeStamp" -#define NAMES_timeToDestination @"timeToDestination" -#define NAMES_timezoneHourOffset @"tz_hour" -#define NAMES_timezoneMinuteOffset @"tz_minute" -#define NAMES_tirePressure @"tirePressure" -#define NAMES_totalDistance @"totalDistance" -#define NAMES_touchEventAvailable @"touchEventAvailable" -#define NAMES_triggerSource @"triggerSource" -#define NAMES_trim @"trim" -#define NAMES_tryAgainTime @"tryAgainTime" -#define NAMES_ts @"ts" -#define NAMES_ttsChunks @"ttsChunks" -#define NAMES_ttsName @"ttsName" -#define NAMES_turnIcon @"turnIcon" -#define NAMES_turnList @"turnList" -#define NAMES_type @"type" -#define NAMES_UnregisterAppInterface @"UnregisterAppInterface" -#define NAMES_Unsubscribe @"Unsubscribe" -#define NAMES_UnsubscribeButton @"UnsubscribeButton" -#define NAMES_UnsubscribeVehicleData @"UnsubscribeVehicleData" -#define NAMES_UnsubscribeWaypoints @"UnsubscribeWayPoints" -#define NAMES_updateMode @"updateMode" -#define NAMES_UpdateTurnList @"UpdateTurnList" -#define NAMES_upDownAvailable @"upDownAvailable" -#define NAMES_url @"url" -#define NAMES_URL @"URL" -#define NAMES_userDisallowed @"userDisallowed" -#define NAMES_utcDay @"utcDay" -#define NAMES_utcHours @"utcHours" -#define NAMES_utcMinutes @"utcMinutes" -#define NAMES_utcMonth @"utcMonth" -#define NAMES_utcSeconds @"utcSeconds" -#define NAMES_utcYear @"utcYear" -#define NAMES_value @"value" -#define NAMES_vdop @"vdop" -#define NAMES_vehicleType @"vehicleType" -#define NAMES_videoCodec @"codec" -#define NAMES_videoProtocol @"protocol" -#define NAMES_videoStreaming @"videoStreaming" -#define NAMES_videoStreamingCapability @"videoStreamingCapability" -#define NAMES_vin @"vin" -#define NAMES_voiceRecOn @"voiceRecOn" -#define NAMES_vrCapabilities @"vrCapabilities" -#define NAMES_vrCommands @"vrCommands" -#define NAMES_vrHelp @"vrHelp" -#define NAMES_vrHelpTitle @"vrHelpTitle" -#define NAMES_vrSynonyms @"vrSynonyms" -#define NAMES_waypoints @"wayPoints" -#define NAMES_waypointType @"wayPointType" -#define NAMES_width @"width" -#define NAMES_wiperStatus @"wiperStatus" -#define NAMES_x @"x" -#define NAMES_y @"y" -#define NAMES_year @"year" +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 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 SDLNameAllowed; +extern SDLName const SDLNameAltitude; +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 SDLNameAudioPassThruCapabilities; +extern SDLName const SDLNameAudioPassThruDisplayText1; +extern SDLName const SDLNameAudioPassThruDisplayText2; +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 SDLNameBand; +extern SDLName const SDLNameBatteryLevelStatus; +extern SDLName const SDLNameBeltStatus; +extern SDLName const SDLNameBitsPerSample; +extern SDLName const SDLNameBodyInformation; +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 SDLNameCoordinate; +extern SDLName const SDLNameCallActive; +extern SDLName const SDLNameCarModeStatus; +extern SDLName const SDLNameCarrier; +extern SDLName const SDLNameChangeRegistration; +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 SDLNameCreateInteractionChoiceSet; +extern SDLName const SDLNameClockText; +extern SDLName const SDLNameCurrentTemperature; +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 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 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 SDLNameDisplayLayout; +extern SDLName const SDLNameDisplayType; +extern SDLName const SDLNameDistanceToEmpty; +extern SDLName const SDLNameDistanceToManeuver; +extern SDLName const SDLNameDistanceToManeuverScale; +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 SDLNameEmergencyEvent; +extern SDLName const SDLNameEmergencyEventType; +extern SDLName const SDLNameEncodedSyncPData; +extern SDLName const SDLNameEndAudioPassThru; +extern SDLName const SDLNameEndTime; +extern SDLName const SDLNameEngineTorque; +extern SDLName const SDLNameETA; +extern SDLName const SDLNameEvent; +extern SDLName const SDLNameExternalTemperature; +extern SDLName const SDLNameFanSpeed; +extern SDLName const SDLNameFanSpeedAvailable; +extern SDLName const SDLNameFilename; +extern SDLName const SDLNameFilenames; +extern SDLName const SDLNameFileType; +extern SDLName const SDLNameFirmwareRevision; +extern SDLName const SDLNameFrequencyInteger; +extern SDLName const SDLNameFrequencyFraction; +extern SDLName const SDLNameFuelCutoffStatus; +extern SDLName const SDLNameFuelLevel; +extern SDLName const SDLNameFuelLevelState; +extern SDLName const SDLNameFuelMaintenanceMode; +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 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 SDLNameHeading; +extern SDLName const SDLNameHeadLampStatus; +extern SDLName const SDLNameHeight; +extern SDLName const SDLNameHelpPrompt; +extern SDLName const SDLNameHighBeamsOn; +extern SDLName const SDLNameHMIDisplayLanguage; +extern SDLName const SDLNameHMIDisplayLanguageDesired; +extern SDLName const SDLNameHMILevel; +extern SDLName const SDLNameHMIPermissions; +extern SDLName const SDLNameHMICapabilities; +extern SDLName const SDLNameHMIZoneCapabilities; +extern SDLName const SDLNameHour; +extern SDLName const SDLNameHours; +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 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 SDLNameKeyboardLayout; +extern SDLName const SDLNameKeyboardProperties; +extern SDLName const SDLNameKeypressMode; +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 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 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 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 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 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 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 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 SDLNameRegion; +extern SDLName const SDLNameRegisterAppInterface; +extern SDLName const SDLNameRemoteControlCapability; +extern SDLName const SDLNameRequest; +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 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 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 SDLNameSpaceAvailable; +extern SDLName const SDLNameSpeak; +extern SDLName const SDLNameSpeechCapabilities; +extern SDLName const SDLNameSpeed; +extern SDLName const SDLNameStartTime; +extern SDLName const SDLNameState; +extern SDLName const SDLNameStateAvailable; +extern SDLName const SDLNameStateOfCharge; +extern SDLName const SDLNameStatus; +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 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 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 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 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 SDLNameVideoCodec; +extern SDLName const SDLNameVideoProtocol; +extern SDLName const SDLNameVideoStreaming; +extern SDLName const SDLNameVideoStreamingCapability; +extern SDLName const SDLNameVentilationMode; +extern SDLName const SDLNameVentilationModeAvailable; +extern SDLName const SDLNameVIN; +extern SDLName const SDLNameVoiceRecognitionOn; +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 new file mode 100644 index 000000000..c2fec2b75 --- /dev/null +++ b/SmartDeviceLink/SDLNames.m @@ -0,0 +1,532 @@ +// 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 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 SDLNameAltitude = @"altitude"; +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 SDLNameAudioPassThruCapabilities = @"audioPassThruCapabilities"; +SDLName const SDLNameAudioPassThruDisplayText1 = @"audioPassThruDisplayText1"; +SDLName const SDLNameAudioPassThruDisplayText2 = @"audioPassThruDisplayText2"; +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 SDLNameBand = @"band"; +SDLName const SDLNameBatteryLevelStatus = @"battLevelStatus"; +SDLName const SDLNameBeltStatus = @"beltStatus"; +SDLName const SDLNameBitsPerSample = @"bitsPerSample"; +SDLName const SDLNameBodyInformation = @"bodyInformation"; +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 SDLNameCoordinate = @"c"; +SDLName const SDLNameCallActive = @"callActive"; +SDLName const SDLNameCarModeStatus = @"carModeStatus"; +SDLName const SDLNameCarrier = @"carrier"; +SDLName const SDLNameChangeRegistration = @"ChangeRegistration"; +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 SDLNameCommandIcon = @"cmdIcon"; +SDLName const SDLNameCommandId = @"cmdID"; +SDLName const SDLNameCompassDirection = @"compassDirection"; +SDLName const SDLNameCorrelationId = @"correlationID"; +SDLName const SDLNameCountryCode = @"countryCode"; +SDLName const SDLNameCountryName = @"countryName"; +SDLName const SDLNameCreateInteractionChoiceSet = @"CreateInteractionChoiceSet"; +SDLName const SDLNameClockText = @"CT"; +SDLName const SDLNameCurrentTemperature = @"currentTemperature"; +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 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 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 SDLNameDisplayType = @"displayType"; +SDLName const SDLNameDistanceToEmpty = @"distanceToEmpty"; +SDLName const SDLNameDistanceToManeuver = @"distanceToManeuver"; +SDLName const SDLNameDistanceToManeuverScale = @"distanceToManeuverScale"; +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 SDLNameEmergencyEvent = @"emergencyEvent"; +SDLName const SDLNameEmergencyEventType = @"emergencyEventType"; +SDLName const SDLNameEncodedSyncPData = @"EncodedSyncPData"; +SDLName const SDLNameEndAudioPassThru = @"EndAudioPassThru"; +SDLName const SDLNameEndTime = @"endTime"; +SDLName const SDLNameEngineTorque = @"engineTorque"; +SDLName const SDLNameETA = @"eta"; +SDLName const SDLNameEvent = @"event"; +SDLName const SDLNameExternalTemperature = @"externalTemperature"; +SDLName const SDLNameFanSpeed = @"fanSpeed"; +SDLName const SDLNameFanSpeedAvailable = @"fanSpeedAvailable"; +SDLName const SDLNameFilename = @"fileName"; +SDLName const SDLNameFilenames = @"filenames"; +SDLName const SDLNameFileType = @"fileType"; +SDLName const SDLNameFirmwareRevision = @"firmwareRev"; +SDLName const SDLNameFrequencyInteger = @"frequencyInteger"; +SDLName const SDLNameFrequencyFraction = @"frequencyFraction"; +SDLName const SDLNameFuelCutoffStatus = @"fuelCutoffStatus"; +SDLName const SDLNameFuelLevel = @"fuelLevel"; +SDLName const SDLNameFuelLevelState = @"fuelLevel_State"; +SDLName const SDLNameFuelMaintenanceMode = @"fuelMaintenanceMode"; +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 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 SDLNameHeading = @"heading"; +SDLName const SDLNameHeadLampStatus = @"headLampStatus"; +SDLName const SDLNameHeight = @"height"; +SDLName const SDLNameHelpPrompt = @"helpPrompt"; +SDLName const SDLNameHighBeamsOn = @"highBeamsOn"; +SDLName const SDLNameHMIDisplayLanguage = @"hmiDisplayLanguage"; +SDLName const SDLNameHMIDisplayLanguageDesired = @"hmiDisplayLanguageDesired"; +SDLName const SDLNameHMILevel = @"hmiLevel"; +SDLName const SDLNameHMILevelLowercase = @"hmilevel"; +SDLName const SDLNameHMIPermissions = @"hmiPermissions"; +SDLName const SDLNameHMICapabilities = @"hmiCapabilities"; +SDLName const SDLNameHMIZoneCapabilities = @"hmiZoneCapabilities"; +SDLName const SDLNameHour = @"hour"; +SDLName const SDLNameHours = @"hours"; +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 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 SDLNameKeyboardLayout = @"keyboardLayout"; +SDLName const SDLNameKeyboardProperties = @"keyboardProperties"; +SDLName const SDLNameKeypressMode = @"keypressMode"; +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 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 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 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 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 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 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 SDLNameRDSData = @"rdsData"; +SDLName const SDLNameRDSDataAvailable = @"rdsDataAvailable"; +SDLName const SDLNameReadDID = @"ReadDID"; +SDLName const SDLNameRearLeftDoorAjar = @"rearLeftDoorAjar"; +SDLName const SDLNameRearRightDoorAjar = @"rearRightDoorAjar"; +SDLName const SDLNameReason = @"reason"; +SDLName const SDLNameRect = @"rect"; +SDLName const SDLNameRegion = @"REG"; +SDLName const SDLNameRegisterAppInterface = @"RegisterAppInterface"; +SDLName const SDLNameRemoteControlCapability = @"remoteControlCapability"; +SDLName const SDLNameRequest = @"request"; +SDLName const SDLNameRequestType = @"requestType"; +SDLName const SDLNameReserved = @"reserved"; +SDLName const SDLNameResetGlobalProperties = @"ResetGlobalProperties"; +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 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 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 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 SDLNameSpaceAvailable = @"spaceAvailable"; +SDLName const SDLNameSpeak = @"Speak"; +SDLName const SDLNameSpeechCapabilities = @"speechCapabilities"; +SDLName const SDLNameSpeed = @"speed"; +SDLName const SDLNameStartTime = @"startTime"; +SDLName const SDLNameState = @"state"; +SDLName const SDLNameStateAvailable = @"stateAvailable"; +SDLName const SDLNameStateOfCharge = @"stateOfCharge"; +SDLName const SDLNameStatus = @"status"; +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 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 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 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 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 SDLNameVideoCodec = @"codec"; +SDLName const SDLNameVideoProtocol = @"protocol"; +SDLName const SDLNameVideoStreaming = @"videoStreaming"; +SDLName const SDLNameVideoStreamingCapability = @"videoStreamingCapability"; +SDLName const SDLNameVentilationMode = @"ventilationMode"; +SDLName const SDLNameVentilationModeAvailable = @"ventilationModeAvailable"; +SDLName const SDLNameVIN = @"vin"; +SDLName const SDLNameVoiceRecognitionOn = @"voiceRecOn"; +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/SDLNavigationCapability.h b/SmartDeviceLink/SDLNavigationCapability.h index 46cc76193..7879f5308 100644 --- a/SmartDeviceLink/SDLNavigationCapability.h +++ b/SmartDeviceLink/SDLNavigationCapability.h @@ -8,18 +8,9 @@ #import "SDLRPCStruct.h" -@interface SDLNavigationCapability : SDLRPCStruct - -/** - * @abstract Constructs a newly allocated SDLNavigationCapability struct - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a newly allocated SDLNavigationCapability struct indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLNavigationCapability : SDLRPCStruct - (instancetype)initWithSendLocation:(BOOL)sendLocationEnabled waypoints:(BOOL)waypointsEnabled; @@ -27,12 +18,14 @@ Whether or not the SendLocation RPC is enabled. Boolean, optional */ -@property (copy, nonatomic) NSNumber *sendLocationEnabled; +@property (nullable, copy, nonatomic) NSNumber *sendLocationEnabled; /** Whether or not Waypoint related RPCs are enabled. Boolean, optional */ -@property (copy, nonatomic) NSNumber *getWayPointsEnabled; +@property (nullable, copy, nonatomic) NSNumber *getWayPointsEnabled; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLNavigationCapability.m b/SmartDeviceLink/SDLNavigationCapability.m index da7e372fa..ffacc2d52 100644 --- a/SmartDeviceLink/SDLNavigationCapability.m +++ b/SmartDeviceLink/SDLNavigationCapability.m @@ -8,24 +8,12 @@ #import "SDLNavigationCapability.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -@implementation SDLNavigationCapability - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - return self; -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} +@implementation SDLNavigationCapability - (instancetype)initWithSendLocation:(BOOL)sendLocationEnabled waypoints:(BOOL)waypointsEnabled { self = [self init]; @@ -39,28 +27,22 @@ - (instancetype)initWithSendLocation:(BOOL)sendLocationEnabled waypoints:(BOOL)w return self; } -- (void)setSendLocationEnabled:(NSNumber *)sendLocationEnabled { - if (sendLocationEnabled != nil) { - store[NAMES_sendLocationEnabled] = sendLocationEnabled; - } else { - [store removeObjectForKey:NAMES_sendLocationEnabled]; - } +- (void)setSendLocationEnabled:(nullable NSNumber *)sendLocationEnabled { + [store sdl_setObject:sendLocationEnabled forName:SDLNameSendLocationEnabled]; } -- (NSNumber *)sendLocationEnabled { - return store[NAMES_sendLocationEnabled]; +- (nullable NSNumber *)sendLocationEnabled { + return [store sdl_objectForName:SDLNameSendLocationEnabled]; } -- (void)setGetWayPointsEnabled:(NSNumber *)getWayPointsEnabled { - if (getWayPointsEnabled != nil) { - store[NAMES_getWayPointsEnabled] = getWayPointsEnabled; - } else { - [store removeObjectForKey:NAMES_getWayPointsEnabled]; - } +- (void)setGetWayPointsEnabled:(nullable NSNumber *)getWayPointsEnabled { + [store sdl_setObject:getWayPointsEnabled forName:SDLNameGetWayPointsEnabled]; } -- (NSNumber *)getWayPointsEnabled { - return store[NAMES_getWayPointsEnabled]; +- (nullable NSNumber *)getWayPointsEnabled { + return [store sdl_objectForName:SDLNameGetWayPointsEnabled]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLNotificationConstants.h b/SmartDeviceLink/SDLNotificationConstants.h index 04c00b6eb..be7c0b2aa 100644 --- a/SmartDeviceLink/SDLNotificationConstants.h +++ b/SmartDeviceLink/SDLNotificationConstants.h @@ -7,6 +7,10 @@ // #import + +@class SDLOnButtonEvent; +@class SDLOnButtonPress; +@class SDLOnCommand; @class SDLRPCNotification; @class SDLRPCResponse; @class SDLRPCRequest; @@ -26,12 +30,13 @@ typedef NOTIFICATION_TYPEDEF SDLNotificationName; typedef NSString *SDLNotificationUserInfoKey; #pragma mark - Blocks + /** - * A handler used on certain RPCs, primarily buttons or commands, when an event occurs. + * A handler used on SDLPerformAudioPassThru. * - * @param notification The RPC Notification that was fired. + * @param audioData The audio data contained in the notification. */ -typedef void (^SDLRPCNotificationHandler)(__kindof SDLRPCNotification *notification); +typedef void (^SDLAudioPassThruHandler)(NSData *__nullable audioData); /** * A handler used on all RPC requests which fires when the response is received. @@ -42,6 +47,26 @@ typedef void (^SDLRPCNotificationHandler)(__kindof SDLRPCNotification *notificat */ typedef void (^SDLResponseHandler)(__kindof SDLRPCRequest *__nullable request, __kindof SDLRPCResponse *__nullable response, NSError *__nullable error); + +/** + A handler that may optionally be run when an SDLSubscribeButton or SDLSoftButton has a corresponding notification occur. + + @warning This only works if you send the RPC using SDLManager. + @warning Only one of the two parameters will be set for each block call. + + @param buttonPress An SDLOnButtonPress object that corresponds to this particular button. + @param buttonEvent An SDLOnButtonEvent object that corresponds to this particular button. + */ +typedef void (^SDLRPCButtonNotificationHandler)(SDLOnButtonPress *_Nullable buttonPress, SDLOnButtonEvent *_Nullable buttonEvent); +/** + A handler that may optionally be run when an SDLAddCommand has a corresponding notification occur. + + @warning This only works if you send the RPC using SDLManager. + + @param command An SDLOnCommand object that corresponds to this particular SDLAddCommand. + */ +typedef void (^SDLRPCCommandNotificationHandler)(SDLOnCommand *command); + /** * The key used in all SDL NSNotifications to extract the response or notification from the userinfo dictionary. */ @@ -57,6 +82,7 @@ extern SDLNotificationName const SDLTransportDidConnect; extern SDLNotificationName const SDLDidReceiveError; extern SDLNotificationName const SDLDidReceiveLockScreenIcon; extern SDLNotificationName const SDLDidBecomeReady; +extern SDLNotificationName const SDLDidUpdateProjectionView; /** * NSNotification names associated with specific RPC responses. @@ -66,6 +92,7 @@ extern SDLNotificationName const SDLDidReceiveAddCommandResponse; extern SDLNotificationName const SDLDidReceiveAddSubMenuResponse; extern SDLNotificationName const SDLDidReceiveAlertResponse; extern SDLNotificationName const SDLDidReceiveAlertManeuverResponse; +extern SDLNotificationName const SDLDidReceiveButtonPressResponse; extern SDLNotificationName const SDLDidReceiveChangeRegistrationResponse; extern SDLNotificationName const SDLDidReceiveCreateInteractionChoiceSetResponse; extern SDLNotificationName const SDLDidReceiveDeleteCommandResponse; @@ -78,6 +105,7 @@ extern SDLNotificationName const SDLDidReceiveEncodedSyncPDataResponse; extern SDLNotificationName const SDLDidReceiveEndAudioPassThruResponse; extern SDLNotificationName const SDLDidReceiveGenericResponse; extern SDLNotificationName const SDLDidReceiveGetDTCsResponse; +extern SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataResponse; extern SDLNotificationName const SDLDidReceiveGetSystemCapabilitiesResponse; extern SDLNotificationName const SDLDidReceiveGetVehicleDataResponse; extern SDLNotificationName const SDLDidReceiveGetWaypointsResponse; @@ -94,6 +122,7 @@ extern SDLNotificationName const SDLDidReceiveSendLocationResponse; extern SDLNotificationName const SDLDidReceiveSetAppIconResponse; extern SDLNotificationName const SDLDidReceiveSetDisplayLayoutResponse; extern SDLNotificationName const SDLDidReceiveSetGlobalPropertiesResponse; +extern SDLNotificationName const SDLDidReceiveSetInteriorVehicleDataResponse; extern SDLNotificationName const SDLDidReceiveSetMediaClockTimerResponse; extern SDLNotificationName const SDLDidReceiveShowConstantTBTResponse; extern SDLNotificationName const SDLDidReceiveShowResponse; @@ -121,6 +150,7 @@ extern SDLNotificationName const SDLDidReceiveButtonEventNotification; extern SDLNotificationName const SDLDidReceiveButtonPressNotification; extern SDLNotificationName const SDLDidReceiveCommandNotification; extern SDLNotificationName const SDLDidReceiveEncodedDataNotification; +extern SDLNotificationName const SDLDidReceiveInteriorVehicleDataNotification; extern SDLNotificationName const SDLDidReceiveKeyboardInputNotification; extern SDLNotificationName const SDLDidChangeLanguageNotification; extern SDLNotificationName const SDLDidChangeLockScreenStatusNotification; diff --git a/SmartDeviceLink/SDLNotificationConstants.m b/SmartDeviceLink/SDLNotificationConstants.m index 1952f397b..813a07ca6 100644 --- a/SmartDeviceLink/SDLNotificationConstants.m +++ b/SmartDeviceLink/SDLNotificationConstants.m @@ -18,12 +18,14 @@ SDLNotificationName const SDLDidReceiveLockScreenIcon = @"com.sdl.general.lockscreenIconReceived"; SDLNotificationName const SDLDidBecomeReady = @"com.sdl.notification.managerReady"; SDLNotificationName const SDLDidReceiveVehicleIconNotification = @"com.sdl.notification.vehicleIcon"; +SDLNotificationName const SDLDidUpdateProjectionView = @"com.sdl.notification.projectionViewUpdate"; #pragma mark - RPC Responses SDLNotificationName const SDLDidReceiveAddCommandResponse = @"com.sdl.response.addCommand"; SDLNotificationName const SDLDidReceiveAddSubMenuResponse = @"com.sdl.response.addSubMenu"; SDLNotificationName const SDLDidReceiveAlertResponse = @"com.sdl.response.alert"; SDLNotificationName const SDLDidReceiveAlertManeuverResponse = @"com.sdl.response.alertManeuver"; +SDLNotificationName const SDLDidReceiveButtonPressResponse = @"com.sdl.response.buttonPress"; SDLNotificationName const SDLDidReceiveChangeRegistrationResponse = @"com.sdl.response.changeRegistration"; SDLNotificationName const SDLDidReceiveCreateInteractionChoiceSetResponse = @"com.sdl.response.createInteractionChoiceSet"; SDLNotificationName const SDLDidReceiveDeleteCommandResponse = @"com.sdl.response.deleteCommand"; @@ -36,6 +38,7 @@ SDLNotificationName const SDLDidReceiveEndAudioPassThruResponse = @"com.sdl.response.endAudioPassThru"; SDLNotificationName const SDLDidReceiveGenericResponse = @"com.sdl.response.generic"; SDLNotificationName const SDLDidReceiveGetDTCsResponse = @"com.sdl.response.getDTCs"; +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"; @@ -52,6 +55,7 @@ SDLNotificationName const SDLDidReceiveSetAppIconResponse = @"com.sdl.response.setAppIcon"; SDLNotificationName const SDLDidReceiveSetDisplayLayoutResponse = @"com.sdl.response.setDisplayLayout"; SDLNotificationName const SDLDidReceiveSetGlobalPropertiesResponse = @"com.sdl.response.setGlobalProperties"; +SDLNotificationName const SDLDidReceiveSetInteriorVehicleDataResponse = @"com.sdl.response.setInteriorVehicleData"; SDLNotificationName const SDLDidReceiveSetMediaClockTimerResponse = @"com.sdl.response.setMediaClockTimer"; SDLNotificationName const SDLDidReceiveShowConstantTBTResponse = @"com.sdl.response.showConstantTBT"; SDLNotificationName const SDLDidReceiveShowResponse = @"com.sdl.response.show"; @@ -76,6 +80,7 @@ SDLNotificationName const SDLDidReceiveButtonPressNotification = @"com.sdl.notification.buttonPress"; SDLNotificationName const SDLDidReceiveCommandNotification = @"com.sdl.notification.command"; SDLNotificationName const SDLDidReceiveEncodedDataNotification = @"com.sdl.notification.encodedData"; +SDLNotificationName const SDLDidReceiveInteriorVehicleDataNotification = @"com.sdl.notification.interiorVehicleData"; SDLNotificationName const SDLDidReceiveKeyboardInputNotification = @"com.sdl.notification.keyboardInput"; SDLNotificationName const SDLDidChangeLanguageNotification = @"com.sdl.notification.changeLanguage"; SDLNotificationName const SDLDidChangeLockScreenStatusNotification = @"com.sdl.notification.lockScreenStatus"; @@ -95,6 +100,7 @@ @implementation SDLNotificationConstants SDLDidReceiveAddSubMenuResponse, SDLDidReceiveAlertResponse, SDLDidReceiveAlertManeuverResponse, + SDLDidReceiveButtonPressResponse, SDLDidReceiveChangeRegistrationResponse, SDLDidReceiveCreateInteractionChoiceSetResponse, SDLDidReceiveDeleteCommandResponse, @@ -107,6 +113,7 @@ @implementation SDLNotificationConstants SDLDidReceiveEndAudioPassThruResponse, SDLDidReceiveGenericResponse, SDLDidReceiveGetDTCsResponse, + SDLDidReceiveGetInteriorVehicleDataResponse, SDLDidReceiveGetSystemCapabilitiesResponse, SDLDidReceiveGetVehicleDataResponse, SDLDidReceiveGetWaypointsResponse, @@ -123,6 +130,7 @@ @implementation SDLNotificationConstants SDLDidReceiveSetAppIconResponse, SDLDidReceiveSetDisplayLayoutResponse, SDLDidReceiveSetGlobalPropertiesResponse, + SDLDidReceiveSetInteriorVehicleDataResponse, SDLDidReceiveSetMediaClockTimerResponse, SDLDidReceiveShowConstantTBTResponse, SDLDidReceiveShowResponse, diff --git a/SmartDeviceLink/SDLNotificationDispatcher.m b/SmartDeviceLink/SDLNotificationDispatcher.m index 81fbeee76..142286400 100644 --- a/SmartDeviceLink/SDLNotificationDispatcher.m +++ b/SmartDeviceLink/SDLNotificationDispatcher.m @@ -14,7 +14,6 @@ #import "SDLRPCNotificationNotification.h" #import "SDLRPCResponseNotification.h" - NS_ASSUME_NONNULL_BEGIN @implementation SDLNotificationDispatcher @@ -24,7 +23,7 @@ - (void)postNotificationName:(NSString *)name infoObject:(nullable id)infoObject if (infoObject != nil) { userInfo = @{SDLNotificationUserInfoObject: infoObject}; } - + dispatch_async(dispatch_get_main_queue(), ^{ [[NSNotificationCenter defaultCenter] postNotificationName:name object:self userInfo:userInfo]; }); @@ -44,7 +43,6 @@ - (void)postRPCNotificationNotification:(NSString *)name notification:(__kindof }); } - #pragma mark - SDLProxyListener Delegate Methods - (void)onProxyOpened { @@ -66,7 +64,6 @@ - (void)onOnDriverDistraction:(SDLOnDriverDistraction *)notification { [self postRPCNotificationNotification:SDLDidChangeDriverDistractionStateNotification notification:notification]; } - #pragma mark Optional Methods - (void)onError:(NSException *)e { @@ -94,6 +91,10 @@ - (void)onAlertResponse:(SDLAlertResponse *)response { [self postRPCResponseNotification:SDLDidReceiveAlertResponse response:response]; } +- (void)onButtonPressResponse:(SDLButtonPressResponse *)response { + [self postRPCResponseNotification:SDLDidReceiveButtonPressResponse response:response]; +} + - (void)onChangeRegistrationResponse:(SDLChangeRegistrationResponse *)response { [self postRPCResponseNotification:SDLDidReceiveChangeRegistrationResponse response:response]; } @@ -142,6 +143,10 @@ - (void)onGetDTCsResponse:(SDLGetDTCsResponse *)response { [self postRPCResponseNotification:SDLDidReceiveGetDTCsResponse response:response]; } +- (void)onGetInteriorVehicleDataResponse:(SDLGetInteriorVehicleDataResponse *)response { + [self postRPCResponseNotification:SDLDidReceiveGetInteriorVehicleDataResponse response:response]; +} + - (void)onGetSystemCapabilityResponse:(SDLGetSystemCapabilityResponse *)response { [self postRPCResponseNotification:SDLDidReceiveGetSystemCapabilitiesResponse response:response]; } @@ -206,6 +211,10 @@ - (void)onSetGlobalPropertiesResponse:(SDLSetGlobalPropertiesResponse *)response [self postRPCResponseNotification:SDLDidReceiveSetGlobalPropertiesResponse response:response]; } +- (void)onSetInteriorVehicleDataResponse:(SDLSetInteriorVehicleDataResponse *)response{ + [self postRPCResponseNotification:SDLDidReceiveSetInteriorVehicleDataResponse response:response]; +} + - (void)onSetMediaClockTimerResponse:(SDLSetMediaClockTimerResponse *)response { [self postRPCResponseNotification:SDLDidReceiveSetMediaClockTimerResponse response:response]; } @@ -234,7 +243,7 @@ - (void)onSubscribeVehicleDataResponse:(SDLSubscribeVehicleDataResponse *)respon [self postRPCResponseNotification:SDLDidReceiveSubscribeVehicleDataResponse response:response]; } -- (void)onSubscribeWayPointsResponse:(SDLSubscribeWaypointsResponse *)response { +- (void)onSubscribeWayPointsResponse:(SDLSubscribeWayPointsResponse *)response { [self postRPCResponseNotification:SDLDidReceiveSubscribeWaypointsResponse response:response]; } @@ -258,7 +267,7 @@ - (void)onUnsubscribeVehicleDataResponse:(SDLUnsubscribeVehicleDataResponse *)re [self postRPCResponseNotification:SDLDidReceiveUnsubscribeVehicleDataResponse response:response]; } -- (void)onUnsubscribeWayPointsResponse:(SDLUnsubscribeWaypointsResponse *)response { +- (void)onUnsubscribeWayPointsResponse:(SDLUnsubscribeWayPointsResponse *)response { [self postRPCResponseNotification:SDLDidReceiveUnsubscribeWaypointsResponse response:response]; } @@ -290,6 +299,10 @@ - (void)onOnHashChange:(SDLOnHashChange *)notification { [self postRPCNotificationNotification:SDLDidReceiveNewHashNotification notification:notification]; } +- (void)onOnInteriorVehicleData:(SDLOnInteriorVehicleData *)notification { + [self postRPCNotificationNotification:SDLDidReceiveInteriorVehicleDataNotification notification:notification]; +} + - (void)onOnKeyboardInput:(SDLOnKeyboardInput *)notification { [self postRPCNotificationNotification:SDLDidReceiveKeyboardInputNotification notification:notification]; } @@ -326,7 +339,7 @@ - (void)onOnVehicleData:(SDLOnVehicleData *)notification { [self postRPCNotificationNotification:SDLDidReceiveVehicleDataNotification notification:notification]; } -- (void)onOnWayPointChange:(SDLOnWaypointChange *)notification { +- (void)onOnWayPointChange:(SDLOnWayPointChange *)notification { [self postRPCNotificationNotification:SDLDidReceiveWaypointNotification notification:notification]; } diff --git a/SmartDeviceLink/SDLOasisAddress.h b/SmartDeviceLink/SDLOasisAddress.h index 17bb00af6..d2a463264 100644 --- a/SmartDeviceLink/SDLOasisAddress.h +++ b/SmartDeviceLink/SDLOasisAddress.h @@ -3,73 +3,77 @@ #import "SDLRPCStruct.h" +NS_ASSUME_NONNULL_BEGIN + @interface SDLOasisAddress : SDLRPCStruct -- (instancetype)initWithSubThoroughfare:(NSString *)subThoroughfare thoroughfare:(NSString *)thoroughfare locality:(NSString *)locality administrativeArea:(NSString *)administrativeArea postalCode:(NSString *)postalCode countryCode:(NSString *)countryCode; +- (instancetype)initWithSubThoroughfare:(nullable NSString *)subThoroughfare thoroughfare:(nullable NSString *)thoroughfare locality:(nullable NSString *)locality administrativeArea:(nullable NSString *)administrativeArea postalCode:(nullable NSString *)postalCode countryCode:(nullable NSString *)countryCode; -- (instancetype)initWithSubThoroughfare:(NSString *)subThoroughfare thoroughfare:(NSString *)thoroughfare locality:(NSString *)locality administrativeArea:(NSString *)administrativeArea postalCode:(NSString *)postalCode countryCode:(NSString *)countryCode countryName:(NSString *)countryName subAdministrativeArea:(NSString *)subAdministrativeArea subLocality:(NSString *)subLocality; +- (instancetype)initWithSubThoroughfare:(nullable NSString *)subThoroughfare thoroughfare:(nullable NSString *)thoroughfare locality:(nullable NSString *)locality administrativeArea:(nullable NSString *)administrativeArea postalCode:(nullable NSString *)postalCode countryCode:(nullable NSString *)countryCode countryName:(nullable NSString *)countryName subAdministrativeArea:(nullable NSString *)subAdministrativeArea subLocality:(nullable NSString *)subLocality; /** * @abstract Name of the country (localized) * * Optional, max length = 200 */ -@property (copy, nonatomic) NSString *countryName; +@property (nullable, copy, nonatomic) NSString *countryName; /** * @abstract countryCode of the country(ISO 3166-2) * * Optional, max length = 200 */ -@property (copy, nonatomic) NSString *countryCode; +@property (nullable, copy, nonatomic) NSString *countryCode; /** * @abstract postalCode of location (PLZ, ZIP, PIN, CAP etc.) * * Optional, max length = 200 */ -@property (copy, nonatomic) NSString *postalCode; +@property (nullable, copy, nonatomic) NSString *postalCode; /** * @abstract Portion of country (e.g. state) * * Optional, max length = 200 */ -@property (copy, nonatomic) NSString *administrativeArea; +@property (nullable, copy, nonatomic) NSString *administrativeArea; /** * @abstract Portion of administrativeArea (e.g. county) * * Optional, max length = 200 */ -@property (copy, nonatomic) NSString *subAdministrativeArea; +@property (nullable, copy, nonatomic) NSString *subAdministrativeArea; /** * @abstract Hypernym for city/village * * Optional, max length = 200 */ -@property (copy, nonatomic) NSString *locality; +@property (nullable, copy, nonatomic) NSString *locality; /** * @abstract Hypernym for district * * Optional, max length = 200 */ -@property (copy, nonatomic) NSString *subLocality; +@property (nullable, copy, nonatomic) NSString *subLocality; /** * @abstract Hypernym for street, road etc. * * Optional, max length = 200 */ -@property (copy, nonatomic) NSString *thoroughfare; +@property (nullable, copy, nonatomic) NSString *thoroughfare; /** * @abstract Portion of thoroughfare (e.g. house number) * * Optional, max length = 200 */ -@property (copy, nonatomic) NSString *subThoroughfare; +@property (nullable, copy, nonatomic) NSString *subThoroughfare; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOasisAddress.m b/SmartDeviceLink/SDLOasisAddress.m index aa1feba9e..97bfbe8cf 100644 --- a/SmartDeviceLink/SDLOasisAddress.m +++ b/SmartDeviceLink/SDLOasisAddress.m @@ -2,15 +2,19 @@ // #import "SDLOasisAddress.h" + +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLOasisAddress -- (instancetype)initWithSubThoroughfare:(NSString *)subThoroughfare thoroughfare:(NSString *)thoroughfare locality:(NSString *)locality administrativeArea:(NSString *)administrativeArea postalCode:(NSString *)postalCode countryCode:(NSString *)countryCode { +- (instancetype)initWithSubThoroughfare:(nullable NSString *)subThoroughfare thoroughfare:(nullable NSString *)thoroughfare locality:(nullable NSString *)locality administrativeArea:(nullable NSString *)administrativeArea postalCode:(nullable NSString *)postalCode countryCode:(nullable NSString *)countryCode { return [self initWithSubThoroughfare:subThoroughfare thoroughfare:thoroughfare locality:locality administrativeArea:administrativeArea postalCode:postalCode countryCode:countryCode countryName:nil subAdministrativeArea:nil subLocality:nil]; } -- (instancetype)initWithSubThoroughfare:(NSString *)subThoroughfare thoroughfare:(NSString *)thoroughfare locality:(NSString *)locality administrativeArea:(NSString *)administrativeArea postalCode:(NSString *)postalCode countryCode:(NSString *)countryCode countryName:(NSString *)countryName subAdministrativeArea:(NSString *)subAdministrativeArea subLocality:(NSString *)subLocality { +- (instancetype)initWithSubThoroughfare:(nullable NSString *)subThoroughfare thoroughfare:(nullable NSString *)thoroughfare locality:(nullable NSString *)locality administrativeArea:(nullable NSString *)administrativeArea postalCode:(nullable NSString *)postalCode countryCode:(nullable NSString *)countryCode countryName:(nullable NSString *)countryName subAdministrativeArea:(nullable NSString *)subAdministrativeArea subLocality:(nullable NSString *)subLocality { self = [self init]; if (!self) { return nil; @@ -29,113 +33,78 @@ - (instancetype)initWithSubThoroughfare:(NSString *)subThoroughfare thoroughfare return self; } - -- (void)setCountryName:(NSString *)countryName { - if (countryName != nil) { - store[NAMES_countryName] = countryName; - } else { - [store removeObjectForKey:NAMES_countryName]; - } +- (void)setCountryName:(nullable NSString *)countryName { + [store sdl_setObject:countryName forName:SDLNameCountryName]; } -- (NSString *)countryName { - return store[NAMES_countryName]; +- (nullable NSString *)countryName { + return [store sdl_objectForName:SDLNameCountryName]; } -- (void)setCountryCode:(NSString *)countryCode { - if (countryCode != nil) { - store[NAMES_countryCode] = countryCode; - } else { - [store removeObjectForKey:NAMES_countryCode]; - } +- (void)setCountryCode:(nullable NSString *)countryCode { + [store sdl_setObject:countryCode forName:SDLNameCountryCode]; } -- (NSString *)countryCode { - return store[NAMES_countryCode]; +- (nullable NSString *)countryCode { + return [store sdl_objectForName:SDLNameCountryCode]; } -- (void)setPostalCode:(NSString *)postalCode { - if (postalCode != nil) { - store[NAMES_postalCode] = postalCode; - } else { - [store removeObjectForKey:NAMES_postalCode]; - } +- (void)setPostalCode:(nullable NSString *)postalCode { + [store sdl_setObject:postalCode forName:SDLNamePostalCode]; } -- (NSString *)postalCode { - return store[NAMES_postalCode]; +- (nullable NSString *)postalCode { + return [store sdl_objectForName:SDLNamePostalCode]; } -- (void)setAdministrativeArea:(NSString *)administrativeArea { - if (administrativeArea != nil) { - store[NAMES_administrativeArea] = administrativeArea; - } else { - [store removeObjectForKey:NAMES_administrativeArea]; - } +- (void)setAdministrativeArea:(nullable NSString *)administrativeArea { + [store sdl_setObject:administrativeArea forName:SDLNameAdministrativeArea]; } -- (NSString *)administrativeArea { - return store[NAMES_administrativeArea]; +- (nullable NSString *)administrativeArea { + return [store sdl_objectForName:SDLNameAdministrativeArea]; } -- (void)setSubAdministrativeArea:(NSString *)subAdministrativeArea { - if (subAdministrativeArea != nil) { - store[NAMES_subAdministrativeArea] = subAdministrativeArea; - } else { - [store removeObjectForKey:NAMES_subAdministrativeArea]; - } +- (void)setSubAdministrativeArea:(nullable NSString *)subAdministrativeArea { + [store sdl_setObject:subAdministrativeArea forName:SDLNameSubAdministrativeArea]; } -- (NSString *)subAdministrativeArea { - return store[NAMES_subAdministrativeArea]; +- (nullable NSString *)subAdministrativeArea { + return [store sdl_objectForName:SDLNameSubAdministrativeArea]; } -- (void)setLocality:(NSString *)locality { - if (locality != nil) { - store[NAMES_locality] = locality; - } else { - [store removeObjectForKey:NAMES_locality]; - } +- (void)setLocality:(nullable NSString *)locality { + [store sdl_setObject:locality forName:SDLNameLocality]; } -- (NSString *)locality { - return store[NAMES_locality]; +- (nullable NSString *)locality { + return [store sdl_objectForName:SDLNameLocality]; } -- (void)setSubLocality:(NSString *)subLocality { - if (subLocality != nil) { - store[NAMES_subLocality] = subLocality; - } else { - [store removeObjectForKey:NAMES_subLocality]; - } +- (void)setSubLocality:(nullable NSString *)subLocality { + [store sdl_setObject:subLocality forName:SDLNameSubLocality]; } -- (NSString *)subLocality { - return store[NAMES_subLocality]; +- (nullable NSString *)subLocality { + return [store sdl_objectForName:SDLNameSubLocality]; } -- (void)setThoroughfare:(NSString *)thoroughfare { - if (thoroughfare != nil) { - store[NAMES_thoroughfare] = thoroughfare; - } else { - [store removeObjectForKey:NAMES_thoroughfare]; - } +- (void)setThoroughfare:(nullable NSString *)thoroughfare { + [store sdl_setObject:thoroughfare forName:SDLNameThoroughfare]; } -- (NSString *)thoroughfare { - return store[NAMES_thoroughfare]; +- (nullable NSString *)thoroughfare { + return [store sdl_objectForName:SDLNameThoroughfare]; } -- (void)setSubThoroughfare:(NSString *)subThoroughfare { - if (subThoroughfare != nil) { - store[NAMES_subThoroughfare] = subThoroughfare; - } else { - [store removeObjectForKey:NAMES_subThoroughfare]; - } +- (void)setSubThoroughfare:(nullable NSString *)subThoroughfare { + [store sdl_setObject:subThoroughfare forName:SDLNameSubThoroughfare]; } -- (NSString *)subThoroughfare { - return store[NAMES_subThoroughfare]; +- (nullable NSString *)subThoroughfare { + return [store sdl_objectForName:SDLNameSubThoroughfare]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLObjectWithPriority.h b/SmartDeviceLink/SDLObjectWithPriority.h index 334139d5f..848773f05 100644 --- a/SmartDeviceLink/SDLObjectWithPriority.h +++ b/SmartDeviceLink/SDLObjectWithPriority.h @@ -5,14 +5,17 @@ #import +NS_ASSUME_NONNULL_BEGIN @interface SDLObjectWithPriority : NSObject -@property (strong) id object; -@property (assign) NSInteger priority; +@property (nullable, strong, nonatomic) id object; +@property (assign, nonatomic) NSInteger priority; -- (instancetype)initWithObject:(id)object priority:(NSInteger)priority NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithObject:(nullable id)object priority:(NSInteger)priority NS_DESIGNATED_INITIALIZER; -+ (instancetype)objectWithObject:(id)object priority:(NSInteger)priority; ++ (instancetype)objectWithObject:(nullable id)object priority:(NSInteger)priority; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLObjectWithPriority.m b/SmartDeviceLink/SDLObjectWithPriority.m index 4dd72091e..6c8d72878 100644 --- a/SmartDeviceLink/SDLObjectWithPriority.m +++ b/SmartDeviceLink/SDLObjectWithPriority.m @@ -5,10 +5,11 @@ #import "SDLObjectWithPriority.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLObjectWithPriority -- (instancetype)initWithObject:(id)object priority:(NSInteger)priority { +- (instancetype)initWithObject:(nullable id)object priority:(NSInteger)priority { self = [super init]; if (self == nil) { return nil; @@ -24,8 +25,10 @@ - (instancetype)init { return [self initWithObject:nil priority:NSIntegerMax]; } -+ (instancetype)objectWithObject:(id)object priority:(NSInteger)priority { ++ (instancetype)objectWithObject:(nullable id)object priority:(NSInteger)priority { return [[self alloc] initWithObject:object priority:priority]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnAppInterfaceUnregistered.h b/SmartDeviceLink/SDLOnAppInterfaceUnregistered.h index 59b596f58..7e18b858a 100644 --- a/SmartDeviceLink/SDLOnAppInterfaceUnregistered.h +++ b/SmartDeviceLink/SDLOnAppInterfaceUnregistered.h @@ -3,7 +3,7 @@ #import "SDLRPCNotification.h" -@class SDLAppInterfaceUnregisteredReason; +#import "SDLAppInterfaceUnregisteredReason.h" /** @@ -14,22 +14,16 @@ * @since SDL 1.0 * @see SDLRegisterAppInterface */ -@interface SDLOnAppInterfaceUnregistered : SDLRPCNotification { -} -/** - * Constructs a newly allocated SDLOnAppInterfaceUnregistered object - */ -- (instancetype)init; -/** - * Constructs a newly allocated SDLOnAppInterfaceUnregistered object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLOnAppInterfaceUnregistered : SDLRPCNotification /** * @abstract The reason application's interface was terminated */ -@property (strong) SDLAppInterfaceUnregisteredReason *reason; +@property (strong, nonatomic) SDLAppInterfaceUnregisteredReason reason; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnAppInterfaceUnregistered.m b/SmartDeviceLink/SDLOnAppInterfaceUnregistered.m index 5427cf871..a38ac0738 100644 --- a/SmartDeviceLink/SDLOnAppInterfaceUnregistered.m +++ b/SmartDeviceLink/SDLOnAppInterfaceUnregistered.m @@ -3,39 +3,27 @@ #import "SDLOnAppInterfaceUnregistered.h" -#import "SDLAppInterfaceUnregisteredReason.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLOnAppInterfaceUnregistered - (instancetype)init { - if (self = [super initWithName:NAMES_OnAppInterfaceUnregistered]) { + if (self = [super initWithName:SDLNameOnAppInterfaceUnregistered]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (void)setReason:(SDLAppInterfaceUnregisteredReason)reason { + [parameters sdl_setObject:reason forName:SDLNameReason]; } -- (void)setReason:(SDLAppInterfaceUnregisteredReason *)reason { - if (reason != nil) { - [parameters setObject:reason forKey:NAMES_reason]; - } else { - [parameters removeObjectForKey:NAMES_reason]; - } -} - -- (SDLAppInterfaceUnregisteredReason *)reason { - NSObject *obj = [parameters objectForKey:NAMES_reason]; - if (obj == nil || [obj isKindOfClass:SDLAppInterfaceUnregisteredReason.class]) { - return (SDLAppInterfaceUnregisteredReason *)obj; - } else { - return [SDLAppInterfaceUnregisteredReason valueOf:(NSString *)obj]; - } +- (SDLAppInterfaceUnregisteredReason)reason { + return [parameters sdl_objectForName:SDLNameReason]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnAudioPassThru.h b/SmartDeviceLink/SDLOnAudioPassThru.h index f37d4067e..4fc9d9e08 100644 --- a/SmartDeviceLink/SDLOnAudioPassThru.h +++ b/SmartDeviceLink/SDLOnAudioPassThru.h @@ -23,17 +23,11 @@ * * */ -@interface SDLOnAudioPassThru : SDLRPCNotification { -} -/** - *Constructs a newly allocated SDLOnAudioPassThru object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLOnAudioPassThru : SDLRPCNotification -/** - * Constructs a newly allocated SDLOnAudioPassThru object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnAudioPassThru.m b/SmartDeviceLink/SDLOnAudioPassThru.m index e0360e3e4..2ab8fefc4 100644 --- a/SmartDeviceLink/SDLOnAudioPassThru.m +++ b/SmartDeviceLink/SDLOnAudioPassThru.m @@ -4,20 +4,19 @@ #import "SDLOnAudioPassThru.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLOnAudioPassThru - (instancetype)init { - if (self = [super initWithName:NAMES_OnAudioPassThru]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameOnAudioPassThru]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnButtonEvent.h b/SmartDeviceLink/SDLOnButtonEvent.h index 0d1fc8afd..f4b65d95d 100644 --- a/SmartDeviceLink/SDLOnButtonEvent.h +++ b/SmartDeviceLink/SDLOnButtonEvent.h @@ -3,9 +3,8 @@ #import "SDLRPCNotification.h" -@class SDLButtonName; -@class SDLButtonEventMode; - +#import "SDLButtonName.h" +#import "SDLButtonEventMode.h" /** * Notifies application that user has depressed or released a button to which @@ -44,30 +43,20 @@ * * @since SDL 1.0 */ -@interface SDLOnButtonEvent : SDLRPCNotification { -} -/** - * Constructs a newly allocated SDLOnButtonEvent object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a newly allocated SDLOnButtonEvent object indicated by the dictionary parameter - * - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLOnButtonEvent : SDLRPCNotification /** * @abstract The name of the button */ -@property (strong) SDLButtonName *buttonName; +@property (strong, nonatomic) SDLButtonName buttonName; /** * @abstract Indicates whether this is an UP or DOWN event */ -@property (strong) SDLButtonEventMode *buttonEventMode; +@property (strong, nonatomic) SDLButtonEventMode buttonEventMode; /** * @abstract If ButtonName is "CUSTOM_BUTTON", this references the integer ID passed by a custom button. (e.g. softButton ID) @@ -76,6 +65,8 @@ * * Optional, Integer, 0 - 65536 */ -@property (strong) NSNumber *customButtonID; +@property (nullable, strong, nonatomic) NSNumber *customButtonID; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnButtonEvent.m b/SmartDeviceLink/SDLOnButtonEvent.m index d112d88ea..4d65422a8 100644 --- a/SmartDeviceLink/SDLOnButtonEvent.m +++ b/SmartDeviceLink/SDLOnButtonEvent.m @@ -3,69 +3,45 @@ #import "SDLOnButtonEvent.h" -#import "SDLButtonEventMode.h" -#import "SDLButtonName.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLOnButtonEvent - (instancetype)init { - if (self = [super initWithName:NAMES_OnButtonEvent]) { + if (self = [super initWithName:SDLNameOnButtonEvent]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (void)setButtonName:(SDLButtonName *)buttonName { - if (buttonName != nil) { - [parameters setObject:buttonName forKey:NAMES_buttonName]; - } else { - [parameters removeObjectForKey:NAMES_buttonName]; - } +- (void)setButtonName:(SDLButtonName)buttonName { + [parameters sdl_setObject:buttonName forName:SDLNameButtonName]; } -- (SDLButtonName *)buttonName { - NSObject *obj = [parameters objectForKey:NAMES_buttonName]; - if (obj == nil || [obj isKindOfClass:SDLButtonName.class]) { - return (SDLButtonName *)obj; - } else { - return [SDLButtonName valueOf:(NSString *)obj]; - } +- (SDLButtonName)buttonName { + NSObject *obj = [parameters sdl_objectForName:SDLNameButtonName]; + return (SDLButtonName)obj; } -- (void)setButtonEventMode:(SDLButtonEventMode *)buttonEventMode { - if (buttonEventMode != nil) { - [parameters setObject:buttonEventMode forKey:NAMES_buttonEventMode]; - } else { - [parameters removeObjectForKey:NAMES_buttonEventMode]; - } +- (void)setButtonEventMode:(SDLButtonEventMode)buttonEventMode { + [parameters sdl_setObject:buttonEventMode forName:SDLNameButtonEventMode]; } -- (SDLButtonEventMode *)buttonEventMode { - NSObject *obj = [parameters objectForKey:NAMES_buttonEventMode]; - if (obj == nil || [obj isKindOfClass:SDLButtonEventMode.class]) { - return (SDLButtonEventMode *)obj; - } else { - return [SDLButtonEventMode valueOf:(NSString *)obj]; - } +- (SDLButtonEventMode)buttonEventMode { + NSObject *obj = [parameters sdl_objectForName:SDLNameButtonEventMode]; + return (SDLButtonEventMode)obj; } -- (void)setCustomButtonID:(NSNumber *)customButtonID { - if (customButtonID != nil) { - [parameters setObject:customButtonID forKey:NAMES_customButtonID]; - } else { - [parameters removeObjectForKey:NAMES_customButtonID]; - } +- (void)setCustomButtonID:(nullable NSNumber *)customButtonID { + [parameters sdl_setObject:customButtonID forName:SDLNameCustomButtonId]; } -- (NSNumber *)customButtonID { - return [parameters objectForKey:NAMES_customButtonID]; +- (nullable NSNumber *)customButtonID { + return [parameters sdl_objectForName:SDLNameCustomButtonId]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnButtonPress.h b/SmartDeviceLink/SDLOnButtonPress.h index 942dbd583..1c8381114 100644 --- a/SmartDeviceLink/SDLOnButtonPress.h +++ b/SmartDeviceLink/SDLOnButtonPress.h @@ -3,9 +3,8 @@ #import "SDLRPCNotification.h" -@class SDLButtonName; -@class SDLButtonPressMode; - +#import "SDLButtonName.h" +#import "SDLButtonPressMode.h" /** * Notifies application of button press events for buttons to which the @@ -49,20 +48,10 @@ * * @since SDL 1.0 */ -@interface SDLOnButtonPress : SDLRPCNotification { -} -/** - * Constructs a newly allocated SDLOnButtonPress object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * Constructs a newly allocated SDLOnButtonPress object indicated by the dictionary parameter - * - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLOnButtonPress : SDLRPCNotification /** * @abstract the button's name @@ -71,7 +60,7 @@ * * Required */ -@property (strong) SDLButtonName *buttonName; +@property (strong, nonatomic) SDLButtonName buttonName; /** * @abstract Indicates whether this is a LONG or SHORT button press event @@ -80,7 +69,7 @@ * * Required */ -@property (strong) SDLButtonPressMode *buttonPressMode; +@property (strong, nonatomic) SDLButtonPressMode buttonPressMode; /** * @abstract If ButtonName is "CUSTOM_BUTTON", this references the integer ID passed by a custom button. (e.g. softButton ID) @@ -89,6 +78,8 @@ * * Optional, Integer 0 - 65536 */ -@property (strong) NSNumber *customButtonID; +@property (nullable, strong, nonatomic) NSNumber *customButtonID; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnButtonPress.m b/SmartDeviceLink/SDLOnButtonPress.m index 8926b7951..addeccfd8 100644 --- a/SmartDeviceLink/SDLOnButtonPress.m +++ b/SmartDeviceLink/SDLOnButtonPress.m @@ -3,69 +3,45 @@ #import "SDLOnButtonPress.h" -#import "SDLButtonName.h" -#import "SDLButtonPressMode.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLOnButtonPress - (instancetype)init { - if (self = [super initWithName:NAMES_OnButtonPress]) { + if (self = [super initWithName:SDLNameOnButtonPress]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (void)setButtonName:(SDLButtonName *)buttonName { - if (buttonName != nil) { - [parameters setObject:buttonName forKey:NAMES_buttonName]; - } else { - [parameters removeObjectForKey:NAMES_buttonName]; - } +- (void)setButtonName:(SDLButtonName)buttonName { + [parameters sdl_setObject:buttonName forName:SDLNameButtonName]; } -- (SDLButtonName *)buttonName { - NSObject *obj = [parameters objectForKey:NAMES_buttonName]; - if (obj == nil || [obj isKindOfClass:SDLButtonName.class]) { - return (SDLButtonName *)obj; - } else { - return [SDLButtonName valueOf:(NSString *)obj]; - } +- (SDLButtonName)buttonName { + NSObject *obj = [parameters sdl_objectForName:SDLNameButtonName]; + return (SDLButtonName)obj; } -- (void)setButtonPressMode:(SDLButtonPressMode *)buttonPressMode { - if (buttonPressMode != nil) { - [parameters setObject:buttonPressMode forKey:NAMES_buttonPressMode]; - } else { - [parameters removeObjectForKey:NAMES_buttonPressMode]; - } +- (void)setButtonPressMode:(SDLButtonPressMode)buttonPressMode { + [parameters sdl_setObject:buttonPressMode forName:SDLNameButtonPressMode]; } -- (SDLButtonPressMode *)buttonPressMode { - NSObject *obj = [parameters objectForKey:NAMES_buttonPressMode]; - if (obj == nil || [obj isKindOfClass:SDLButtonPressMode.class]) { - return (SDLButtonPressMode *)obj; - } else { - return [SDLButtonPressMode valueOf:(NSString *)obj]; - } +- (SDLButtonPressMode)buttonPressMode { + NSObject *obj = [parameters sdl_objectForName:SDLNameButtonPressMode]; + return (SDLButtonPressMode)obj; } -- (void)setCustomButtonID:(NSNumber *)customButtonID { - if (customButtonID != nil) { - [parameters setObject:customButtonID forKey:NAMES_customButtonID]; - } else { - [parameters removeObjectForKey:NAMES_customButtonID]; - } +- (void)setCustomButtonID:(nullable NSNumber *)customButtonID { + [parameters sdl_setObject:customButtonID forName:SDLNameCustomButtonId]; } -- (NSNumber *)customButtonID { - return [parameters objectForKey:NAMES_customButtonID]; +- (nullable NSNumber *)customButtonID { + return [parameters sdl_objectForName:SDLNameCustomButtonId]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnCommand.h b/SmartDeviceLink/SDLOnCommand.h index 5d3d3f599..0b685a486 100644 --- a/SmartDeviceLink/SDLOnCommand.h +++ b/SmartDeviceLink/SDLOnCommand.h @@ -3,8 +3,7 @@ #import "SDLRPCNotification.h" -@class SDLTriggerSource; - +#import "SDLTriggerSource.h" /** * This is called when a command was selected via VR after pressing the PTT button, or selected from the menu after @@ -15,28 +14,21 @@ * @since SDL 1.0 * @see SDLAddCommand SDLDeleteCommand SDLDeleteSubMenu */ -@interface SDLOnCommand : SDLRPCNotification { -} -/** - *Constructs a newly allocated SDLRPCNotification object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * Constructs a newly allocated SDLRPCNotification object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLOnCommand : SDLRPCNotification /** * @abstract 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. */ -@property (strong) NSNumber *cmdID; +@property (strong, nonatomic) NSNumber *cmdID; /** * @abstract Indicates whether command was selected via voice or via a menu selection (using the OK button). */ -@property (strong) SDLTriggerSource *triggerSource; +@property (strong, nonatomic) SDLTriggerSource triggerSource; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnCommand.m b/SmartDeviceLink/SDLOnCommand.m index f16023d42..f1d547852 100644 --- a/SmartDeviceLink/SDLOnCommand.m +++ b/SmartDeviceLink/SDLOnCommand.m @@ -3,51 +3,36 @@ #import "SDLOnCommand.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -#import "SDLTriggerSource.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLOnCommand - (instancetype)init { - if (self = [super initWithName:NAMES_OnCommand]) { + if (self = [super initWithName:SDLNameOnCommand]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (void)setCmdID:(NSNumber *)cmdID { - if (cmdID != nil) { - [parameters setObject:cmdID forKey:NAMES_cmdID]; - } else { - [parameters removeObjectForKey:NAMES_cmdID]; - } +- (void)setCmdID:(NSNumber *)cmdID { + [parameters sdl_setObject:cmdID forName:SDLNameCommandId]; } -- (NSNumber *)cmdID { - return [parameters objectForKey:NAMES_cmdID]; +- (NSNumber *)cmdID { + return [parameters sdl_objectForName:SDLNameCommandId]; } -- (void)setTriggerSource:(SDLTriggerSource *)triggerSource { - if (triggerSource != nil) { - [parameters setObject:triggerSource forKey:NAMES_triggerSource]; - } else { - [parameters removeObjectForKey:NAMES_triggerSource]; - } +- (void)setTriggerSource:(SDLTriggerSource)triggerSource { + [parameters sdl_setObject:triggerSource forName:SDLNameTriggerSource]; } -- (SDLTriggerSource *)triggerSource { - NSObject *obj = [parameters objectForKey:NAMES_triggerSource]; - if (obj == nil || [obj isKindOfClass:SDLTriggerSource.class]) { - return (SDLTriggerSource *)obj; - } else { - return [SDLTriggerSource valueOf:(NSString *)obj]; - } +- (SDLTriggerSource)triggerSource { + NSObject *obj = [parameters sdl_objectForName:SDLNameTriggerSource]; + return (SDLTriggerSource)obj; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnDriverDistraction.h b/SmartDeviceLink/SDLOnDriverDistraction.h index d99e57393..7a0b4e163 100644 --- a/SmartDeviceLink/SDLOnDriverDistraction.h +++ b/SmartDeviceLink/SDLOnDriverDistraction.h @@ -3,8 +3,7 @@ #import "SDLRPCNotification.h" -@class SDLDriverDistractionState; - +#import "SDLDriverDistractionState.h" /** * Notifies the application of the current driver distraction state (whether driver distraction rules are in effect, or @@ -23,24 +22,16 @@ * * @since SDL 1.0 */ -@interface SDLOnDriverDistraction : SDLRPCNotification { -} -/** - * Constructs a newly allocated SDLOnDriverDistraction object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * Constructs a newly allocated SDLOnDriverDistraction object indicated by the dictionary parameter - * - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLOnDriverDistraction : SDLRPCNotification /** * @abstract The driver distraction state (i.e. whether driver distraction rules are in effect, or not) */ -@property (strong) SDLDriverDistractionState *state; +@property (strong, nonatomic) SDLDriverDistractionState state; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnDriverDistraction.m b/SmartDeviceLink/SDLOnDriverDistraction.m index 1a87075b3..cba06de2e 100644 --- a/SmartDeviceLink/SDLOnDriverDistraction.m +++ b/SmartDeviceLink/SDLOnDriverDistraction.m @@ -3,39 +3,29 @@ #import "SDLOnDriverDistraction.h" -#import "SDLDriverDistractionState.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +#import "SDLDriverDistractionState.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLOnDriverDistraction - (instancetype)init { - if (self = [super initWithName:NAMES_OnDriverDistraction]) { + if (self = [super initWithName:SDLNameOnDriverDistraction]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (void)setState:(SDLDriverDistractionState)state { + [parameters sdl_setObject:state forName:SDLNameState]; } -- (void)setState:(SDLDriverDistractionState *)state { - if (state != nil) { - [parameters setObject:state forKey:NAMES_state]; - } else { - [parameters removeObjectForKey:NAMES_state]; - } -} - -- (SDLDriverDistractionState *)state { - NSObject *obj = [parameters objectForKey:NAMES_state]; - if (obj == nil || [obj isKindOfClass:SDLDriverDistractionState.class]) { - return (SDLDriverDistractionState *)obj; - } else { - return [SDLDriverDistractionState valueOf:(NSString *)obj]; - } +- (SDLDriverDistractionState)state { + NSObject *obj = [parameters sdl_objectForName:SDLNameState]; + return (SDLDriverDistractionState)obj; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnEncodedSyncPData.h b/SmartDeviceLink/SDLOnEncodedSyncPData.h index 618aaf7d2..4694cf798 100644 --- a/SmartDeviceLink/SDLOnEncodedSyncPData.h +++ b/SmartDeviceLink/SDLOnEncodedSyncPData.h @@ -3,15 +3,14 @@ #import "SDLRPCNotification.h" +NS_ASSUME_NONNULL_BEGIN -@interface SDLOnEncodedSyncPData : SDLRPCNotification { -} +@interface SDLOnEncodedSyncPData : SDLRPCNotification -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -@property (strong) NSMutableArray *data; -@property (strong) NSString *URL; -@property (strong) NSNumber *Timeout; +@property (strong, nonatomic) NSArray *data; +@property (nullable, strong, nonatomic) NSString *URL; +@property (nullable, strong, nonatomic) NSNumber *Timeout; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnEncodedSyncPData.m b/SmartDeviceLink/SDLOnEncodedSyncPData.m index f4aca251a..d9796b4cb 100644 --- a/SmartDeviceLink/SDLOnEncodedSyncPData.m +++ b/SmartDeviceLink/SDLOnEncodedSyncPData.m @@ -3,57 +3,43 @@ #import "SDLOnEncodedSyncPData.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLOnEncodedSyncPData - (instancetype)init { - if (self = [super initWithName:NAMES_OnEncodedSyncPData]) { + if (self = [super initWithName:SDLNameOnEncodedSyncPData]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (void)setData:(NSMutableArray *)data { - if (data != nil) { - [parameters setObject:data forKey:NAMES_data]; - } else { - [parameters removeObjectForKey:NAMES_data]; - } +- (void)setData:(NSArray *)data { + [parameters sdl_setObject:data forName:SDLNameData]; } -- (NSMutableArray *)data { - return [parameters objectForKey:NAMES_data]; +- (NSArray *)data { + return [parameters sdl_objectForName:SDLNameData]; } -- (void)setURL:(NSString *)URL { - if (URL != nil) { - [parameters setObject:URL forKey:NAMES_URL]; - } else { - [parameters removeObjectForKey:NAMES_URL]; - } +- (void)setURL:(nullable NSString *)URL { + [parameters sdl_setObject:URL forName:SDLNameURLUppercase]; } -- (NSString *)URL { - return [parameters objectForKey:NAMES_URL]; +- (nullable NSString *)URL { + return [parameters sdl_objectForName:SDLNameURLUppercase]; } -- (void)setTimeout:(NSNumber *)Timeout { - if (Timeout != nil) { - [parameters setObject:Timeout forKey:NAMES_Timeout]; - } else { - [parameters removeObjectForKey:NAMES_Timeout]; - } +- (void)setTimeout:(nullable NSNumber *)Timeout { + [parameters sdl_setObject:Timeout forName:SDLNameTimeoutCapitalized]; } -- (NSNumber *)Timeout { - return [parameters objectForKey:NAMES_Timeout]; +- (nullable NSNumber *)Timeout { + return [parameters sdl_objectForName:SDLNameTimeoutCapitalized]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnHMIStatus.h b/SmartDeviceLink/SDLOnHMIStatus.h index c417070d5..10ae21948 100644 --- a/SmartDeviceLink/SDLOnHMIStatus.h +++ b/SmartDeviceLink/SDLOnHMIStatus.h @@ -3,10 +3,9 @@ #import "SDLRPCNotification.h" -@class SDLAudioStreamingState; -@class SDLHMILevel; -@class SDLSystemContext; - +#import "SDLAudioStreamingState.h" +#import "SDLHMILevel.h" +#import "SDLSystemContext.h" /** * Notifies an application that HMI conditions have changed for the application. This indicates whether the application @@ -23,36 +22,29 @@ * * @since SDL 1.0 */ -@interface SDLOnHMIStatus : SDLRPCNotification { -} -/** - *Constructs a newly allocated SDLOnHMIStatus object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - *

    Constructs a newly allocated SDLOnHMIStatus object indicated by the dictionary parameter

    - *@param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLOnHMIStatus : SDLRPCNotification /** * @abstract SDLHMILevel in effect for the application */ -@property (strong) SDLHMILevel *hmiLevel; +@property (strong, nonatomic) SDLHMILevel hmiLevel; /** * @abstract 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. * * Informs app whether any currently streaming audio is audible to user (AUDIBLE) or not (NOT_AUDIBLE). A value of NOT_AUDIBLE means that either the application's audio will not be audible to the user, or that the application's audio should not be audible to the user (i.e. some other application on the mobile device may be streaming audio and the application's audio would be blended with that other audio). */ -@property (strong) SDLAudioStreamingState *audioStreamingState; +@property (strong, nonatomic) SDLAudioStreamingState audioStreamingState; /** * @abstract the System Context * @discussion whether a user-initiated interaction is in-progress (VRSESSION or MENU), or not (MAIN) */ -@property (strong) SDLSystemContext *systemContext; +@property (strong, nonatomic) SDLSystemContext systemContext; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnHMIStatus.m b/SmartDeviceLink/SDLOnHMIStatus.m index e3dc0d7fc..6240ec9c2 100644 --- a/SmartDeviceLink/SDLOnHMIStatus.m +++ b/SmartDeviceLink/SDLOnHMIStatus.m @@ -3,75 +3,49 @@ #import "SDLOnHMIStatus.h" +#import "NSMutableDictionary+Store.h" #import "SDLAudioStreamingState.h" #import "SDLHMILevel.h" #import "SDLNames.h" #import "SDLSystemContext.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLOnHMIStatus - (instancetype)init { - if (self = [super initWithName:NAMES_OnHMIStatus]) { + if (self = [super initWithName:SDLNameOnHMIStatus]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (void)setHmiLevel:(SDLHMILevel)hmiLevel { + [parameters sdl_setObject:hmiLevel forName:SDLNameHMILevel]; } -- (void)setHmiLevel:(SDLHMILevel *)hmiLevel { - if (hmiLevel != nil) { - [parameters setObject:hmiLevel forKey:NAMES_hmiLevel]; - } else { - [parameters removeObjectForKey:NAMES_hmiLevel]; - } +- (SDLHMILevel)hmiLevel { + NSObject *obj = [parameters sdl_objectForName:SDLNameHMILevel]; + return (SDLHMILevel)obj; } -- (SDLHMILevel *)hmiLevel { - NSObject *obj = [parameters objectForKey:NAMES_hmiLevel]; - if (obj == nil || [obj isKindOfClass:SDLHMILevel.class]) { - return (SDLHMILevel *)obj; - } else { - return [SDLHMILevel valueOf:(NSString *)obj]; - } +- (void)setAudioStreamingState:(SDLAudioStreamingState)audioStreamingState { + [parameters sdl_setObject:audioStreamingState forName:SDLNameAudioStreamingState]; } -- (void)setAudioStreamingState:(SDLAudioStreamingState *)audioStreamingState { - if (audioStreamingState != nil) { - [parameters setObject:audioStreamingState forKey:NAMES_audioStreamingState]; - } else { - [parameters removeObjectForKey:NAMES_audioStreamingState]; - } +- (SDLAudioStreamingState)audioStreamingState { + NSObject *obj = [parameters sdl_objectForName:SDLNameAudioStreamingState]; + return (SDLAudioStreamingState)obj; } -- (SDLAudioStreamingState *)audioStreamingState { - NSObject *obj = [parameters objectForKey:NAMES_audioStreamingState]; - if (obj == nil || [obj isKindOfClass:SDLAudioStreamingState.class]) { - return (SDLAudioStreamingState *)obj; - } else { - return [SDLAudioStreamingState valueOf:(NSString *)obj]; - } +- (void)setSystemContext:(SDLSystemContext)systemContext { + [parameters sdl_setObject:systemContext forName:SDLNameSystemContext]; } -- (void)setSystemContext:(SDLSystemContext *)systemContext { - if (systemContext != nil) { - [parameters setObject:systemContext forKey:NAMES_systemContext]; - } else { - [parameters removeObjectForKey:NAMES_systemContext]; - } -} - -- (SDLSystemContext *)systemContext { - NSObject *obj = [parameters objectForKey:NAMES_systemContext]; - if (obj == nil || [obj isKindOfClass:SDLSystemContext.class]) { - return (SDLSystemContext *)obj; - } else { - return [SDLSystemContext valueOf:(NSString *)obj]; - } +- (SDLSystemContext)systemContext { + NSObject *obj = [parameters sdl_objectForName:SDLNameSystemContext]; + return (SDLSystemContext)obj; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnHashChange.h b/SmartDeviceLink/SDLOnHashChange.h index 4facf1f15..59dd0f0d0 100644 --- a/SmartDeviceLink/SDLOnHashChange.h +++ b/SmartDeviceLink/SDLOnHashChange.h @@ -4,12 +4,12 @@ #import "SDLRPCNotification.h" -@interface SDLOnHashChange : SDLRPCNotification { -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLOnHashChange : SDLRPCNotification -@property (strong) NSString *hashID; +@property (strong, nonatomic) NSString *hashID; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnHashChange.m b/SmartDeviceLink/SDLOnHashChange.m index b1bfd8c6a..f3fb70731 100644 --- a/SmartDeviceLink/SDLOnHashChange.m +++ b/SmartDeviceLink/SDLOnHashChange.m @@ -4,32 +4,27 @@ #import "SDLOnHashChange.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLOnHashChange - (instancetype)init { - if (self = [super initWithName:NAMES_OnHashChange]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameOnHashChange]) { } return self; } - (void)setHashID:(NSString *)hashID { - if (hashID != nil) { - [parameters setObject:hashID forKey:NAMES_hashID]; - } else { - [parameters removeObjectForKey:NAMES_hashID]; - } + [parameters sdl_setObject:hashID forName:SDLNameHashId]; } - (NSString *)hashID { - return [parameters objectForKey:NAMES_hashID]; + return [parameters sdl_objectForName:SDLNameHashId]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnInteriorVehicleData.h b/SmartDeviceLink/SDLOnInteriorVehicleData.h new file mode 100644 index 000000000..196690dad --- /dev/null +++ b/SmartDeviceLink/SDLOnInteriorVehicleData.h @@ -0,0 +1,16 @@ +// +// SDLOnInteriorVehicleData.h +// + +#import "SDLRPCNotification.h" +@class SDLModuleData; + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLOnInteriorVehicleData : SDLRPCNotification + +@property (strong, nonatomic) SDLModuleData *moduleData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnInteriorVehicleData.m b/SmartDeviceLink/SDLOnInteriorVehicleData.m new file mode 100644 index 000000000..bb065608c --- /dev/null +++ b/SmartDeviceLink/SDLOnInteriorVehicleData.m @@ -0,0 +1,30 @@ +// +// SDLOnInteriorVehicleData.m +// + +#import "SDLOnInteriorVehicleData.h" +#import "SDLNames.h" +#import "SDLModuleData.h" +#import "NSMutableDictionary+Store.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLOnInteriorVehicleData + +- (instancetype)init { + if (self = [super initWithName:SDLNameOnInteriorVehicleData]) { + } + return self; +} + +- (void)setModuleData:(SDLModuleData *)moduleData { + [parameters sdl_setObject:moduleData forName:SDLNameModuleData]; +} + +- (SDLModuleData *)moduleData { + return [parameters sdl_objectForName:SDLNameModuleData ofClass:SDLModuleData.class]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnKeyboardInput.h b/SmartDeviceLink/SDLOnKeyboardInput.h index e976d6c88..38c4989ef 100644 --- a/SmartDeviceLink/SDLOnKeyboardInput.h +++ b/SmartDeviceLink/SDLOnKeyboardInput.h @@ -3,16 +3,15 @@ #import "SDLRPCNotification.h" -@class SDLKeyboardEvent; +#import "SDLKeyboardEvent.h" +NS_ASSUME_NONNULL_BEGIN -@interface SDLOnKeyboardInput : SDLRPCNotification { -} +@interface SDLOnKeyboardInput : SDLRPCNotification -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -@property (strong) SDLKeyboardEvent *event; -@property (strong) NSString *data; +@property (strong, nonatomic) SDLKeyboardEvent event; +@property (nullable, strong, nonatomic) NSString *data; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnKeyboardInput.m b/SmartDeviceLink/SDLOnKeyboardInput.m index a70a7d06c..a6bd02295 100644 --- a/SmartDeviceLink/SDLOnKeyboardInput.m +++ b/SmartDeviceLink/SDLOnKeyboardInput.m @@ -3,51 +3,36 @@ #import "SDLOnKeyboardInput.h" -#import "SDLKeyboardEvent.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLOnKeyboardInput - (instancetype)init { - if (self = [super initWithName:NAMES_OnKeyboardInput]) { + if (self = [super initWithName:SDLNameOnKeyboardInput]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (void)setEvent:(SDLKeyboardEvent *)event { - if (event != nil) { - [parameters setObject:event forKey:NAMES_event]; - } else { - [parameters removeObjectForKey:NAMES_event]; - } +- (void)setEvent:(SDLKeyboardEvent)event { + [parameters sdl_setObject:event forName:SDLNameEvent]; } -- (SDLKeyboardEvent *)event { - NSObject *obj = [parameters objectForKey:NAMES_event]; - if (obj == nil || [obj isKindOfClass:SDLKeyboardEvent.class]) { - return (SDLKeyboardEvent *)obj; - } else { - return [SDLKeyboardEvent valueOf:(NSString *)obj]; - } +- (SDLKeyboardEvent)event { + NSObject *obj = [parameters sdl_objectForName:SDLNameEvent]; + return (SDLKeyboardEvent)obj; } -- (void)setData:(NSString *)data { - if (data != nil) { - [parameters setObject:data forKey:NAMES_data]; - } else { - [parameters removeObjectForKey:NAMES_data]; - } +- (void)setData:(nullable NSString *)data { + [parameters sdl_setObject:data forName:SDLNameData]; } -- (NSString *)data { - return [parameters objectForKey:NAMES_data]; +- (nullable NSString *)data { + return [parameters sdl_objectForName:SDLNameData]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnLanguageChange.h b/SmartDeviceLink/SDLOnLanguageChange.h index b794edcd1..4937c70fd 100644 --- a/SmartDeviceLink/SDLOnLanguageChange.h +++ b/SmartDeviceLink/SDLOnLanguageChange.h @@ -3,7 +3,7 @@ #import "SDLRPCNotification.h" -@class SDLLanguage; +#import "SDLLanguage.h" /** @@ -11,28 +11,21 @@ * * @since SDL 2.0 */ -@interface SDLOnLanguageChange : SDLRPCNotification { -} -/** - *Constructs a newly allocated SDLOnLanguageChange object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * Constructs a newly allocated SDLOnLanguageChange object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLOnLanguageChange : SDLRPCNotification /** * @abstract Current SDL voice engine (VR+TTS) language */ -@property (strong) SDLLanguage *language; +@property (strong, nonatomic) SDLLanguage language; /** * @abstract Current display language */ -@property (strong) SDLLanguage *hmiDisplayLanguage; +@property (strong, nonatomic) SDLLanguage hmiDisplayLanguage; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnLanguageChange.m b/SmartDeviceLink/SDLOnLanguageChange.m index 216d0c4a5..419875f73 100644 --- a/SmartDeviceLink/SDLOnLanguageChange.m +++ b/SmartDeviceLink/SDLOnLanguageChange.m @@ -3,56 +3,39 @@ #import "SDLOnLanguageChange.h" +#import "NSMutableDictionary+Store.h" #import "SDLLanguage.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLOnLanguageChange - (instancetype)init { - if (self = [super initWithName:NAMES_OnLanguageChange]) { + if (self = [super initWithName:SDLNameOnLanguageChange]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (void)setLanguage:(SDLLanguage)language { + [parameters sdl_setObject:language forName:SDLNameLanguage]; } -- (void)setLanguage:(SDLLanguage *)language { - if (language != nil) { - [parameters setObject:language forKey:NAMES_language]; - } else { - [parameters removeObjectForKey:NAMES_language]; - } +- (SDLLanguage)language { + NSObject *obj = [parameters sdl_objectForName:SDLNameLanguage]; + return (SDLLanguage)obj; } -- (SDLLanguage *)language { - NSObject *obj = [parameters objectForKey:NAMES_language]; - if (obj == nil || [obj isKindOfClass:SDLLanguage.class]) { - return (SDLLanguage *)obj; - } else { - return [SDLLanguage valueOf:(NSString *)obj]; - } +- (void)setHmiDisplayLanguage:(SDLLanguage)hmiDisplayLanguage { + [parameters sdl_setObject:hmiDisplayLanguage forName:SDLNameHMIDisplayLanguage]; } -- (void)setHmiDisplayLanguage:(SDLLanguage *)hmiDisplayLanguage { - if (hmiDisplayLanguage != nil) { - [parameters setObject:hmiDisplayLanguage forKey:NAMES_hmiDisplayLanguage]; - } else { - [parameters removeObjectForKey:NAMES_hmiDisplayLanguage]; - } +- (SDLLanguage)hmiDisplayLanguage { + NSObject *obj = [parameters sdl_objectForName:SDLNameHMIDisplayLanguage]; + return (SDLLanguage)obj; } -- (SDLLanguage *)hmiDisplayLanguage { - NSObject *obj = [parameters objectForKey:NAMES_hmiDisplayLanguage]; - if (obj == nil || [obj isKindOfClass:SDLLanguage.class]) { - return (SDLLanguage *)obj; - } else { - return [SDLLanguage valueOf:(NSString *)obj]; - } -} @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnLockScreenStatus.h b/SmartDeviceLink/SDLOnLockScreenStatus.h index 3a4a31452..830cd223f 100644 --- a/SmartDeviceLink/SDLOnLockScreenStatus.h +++ b/SmartDeviceLink/SDLOnLockScreenStatus.h @@ -5,8 +5,8 @@ #import "SDLRPCNotification.h" -@class SDLHMILevel; -@class SDLLockScreenStatus; +#import "SDLHMILevel.h" +#import "SDLLockScreenStatus.h" /** @@ -17,31 +17,33 @@ * For simplicity, the OnLockScreenStatus RPC will be provided via the onOnLockScreenNotification call back. The call back will include the LockScreenStatus enum which indicates if the lockscreen is required, optional or not required. * The call back also includes details regarding the current HMI_Status level, driver distraction status and user selection status of the application. */ -@interface SDLOnLockScreenStatus : SDLRPCNotification -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLOnLockScreenStatus : SDLRPCNotification /** *

    Get the current driver distraction status(i.e. whether driver distraction rules are in effect, or not)

    * @return String */ -@property (strong) NSNumber *driverDistractionStatus; +@property (strong, nonatomic) NSNumber *driverDistractionStatus; /** *

    Get user selection status for the application (has the app been selected via hmi or voice command)

    * @return Boolean the current user selection status */ -@property (strong) NSNumber *userSelected; +@property (strong, nonatomic) NSNumber *userSelected; /** *

    Get the {@linkplain LockScreenStatus} enumeration, indicating if the lockscreen should be required, optional or off

    * @return {@linkplain LockScreenStatus} */ -@property (strong) SDLLockScreenStatus *lockScreenStatus; +@property (strong, nonatomic) SDLLockScreenStatus lockScreenStatus; /** *

    Get HMILevel in effect for the application

    * @return {@linkplain HMILevel} the current HMI Level in effect for the application */ -@property (strong) SDLHMILevel *hmiLevel; +@property (strong, nonatomic) SDLHMILevel hmiLevel; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnLockScreenStatus.m b/SmartDeviceLink/SDLOnLockScreenStatus.m index fc9e39c00..d2007956e 100644 --- a/SmartDeviceLink/SDLOnLockScreenStatus.m +++ b/SmartDeviceLink/SDLOnLockScreenStatus.m @@ -5,80 +5,53 @@ #import "SDLOnLockScreenStatus.h" +#import "NSMutableDictionary+Store.h" #import "SDLHMILevel.h" #import "SDLLockScreenStatus.h" +#import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLOnLockScreenStatus - (instancetype)init { - if (self = [super initWithName:@"OnLockScreenStatus"]) { + if (self = [super initWithName:SDLNameOnLockScreenStatus]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (void)setLockScreenStatus:(SDLLockScreenStatus)lockScreenStatus { + [parameters sdl_setObject:lockScreenStatus forName:SDLNameOnLockScreenStatus]; } -- (void)setLockScreenStatus:(SDLLockScreenStatus *)lockScreenStatus { - if (lockScreenStatus != nil) { - [parameters setObject:lockScreenStatus forKey:@"OnLockScreenStatus"]; - } else { - [parameters removeObjectForKey:@"OnLockScreenStatus"]; - } +- (SDLLockScreenStatus)lockScreenStatus { + return [parameters sdl_objectForName:SDLNameOnLockScreenStatus]; } -- (SDLLockScreenStatus *)lockScreenStatus { - NSObject *obj = [parameters objectForKey:@"OnLockScreenStatus"]; - if (obj == nil || [obj isKindOfClass:SDLLockScreenStatus.class]) { - return (SDLLockScreenStatus *)obj; - } else { - return [SDLLockScreenStatus valueOf:(NSString *)obj]; - } +- (void)setHmiLevel:(SDLHMILevel)hmiLevel { + [parameters sdl_setObject:hmiLevel forName:SDLNameHMILevel]; } -- (void)setHmiLevel:(SDLHMILevel *)hmiLevel { - if (hmiLevel != nil) { - [parameters setObject:hmiLevel forKey:@"hmilevel"]; - } else { - [parameters removeObjectForKey:@"hmilevel"]; - } +- (SDLHMILevel)hmiLevel { + return [parameters sdl_objectForName:SDLNameHMILevel]; } -- (SDLHMILevel *)hmiLevel { - NSObject *obj = [parameters objectForKey:@"hmilevel"]; - if (obj == nil || [obj isKindOfClass:SDLHMILevel.class]) { - return (SDLHMILevel *)obj; - } else { - return [SDLHMILevel valueOf:(NSString *)obj]; - } +- (void)setUserSelected:(NSNumber *)userSelected { + [parameters sdl_setObject:userSelected forName:SDLNameUserSelected]; } -- (void)setUserSelected:(NSNumber *)userSelected { - if (userSelected != nil) { - [parameters setObject:userSelected forKey:@"userselected"]; - } else { - [parameters removeObjectForKey:@"userselected"]; - } +- (NSNumber *)userSelected { + return [parameters sdl_objectForName:SDLNameUserSelected]; } -- (NSNumber *)userSelected { - return [parameters objectForKey:@"userselected"]; +- (void)setDriverDistractionStatus:(NSNumber *)driverDistractionStatus { + [parameters sdl_setObject:driverDistractionStatus forName:SDLNameDriverDistractionStatus]; } -- (void)setDriverDistractionStatus:(NSNumber *)driverDistractionStatus { - if (driverDistractionStatus != nil) { - [parameters setObject:driverDistractionStatus forKey:@"driverdistractionstatus"]; - } else { - [parameters removeObjectForKey:@"driverdistractionstatus"]; - } -} - -- (NSNumber *)driverDistractionStatus { - return [parameters objectForKey:@"driverdistractionstatus"]; +- (NSNumber *)driverDistractionStatus { + return [parameters sdl_objectForName:SDLNameDriverDistractionStatus]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnPermissionsChange.h b/SmartDeviceLink/SDLOnPermissionsChange.h index 267a63a10..007a5e736 100644 --- a/SmartDeviceLink/SDLOnPermissionsChange.h +++ b/SmartDeviceLink/SDLOnPermissionsChange.h @@ -3,25 +3,17 @@ #import "SDLRPCNotification.h" +@class SDLPermissionItem; /** * Provides update to app of which sets of functions are available * * @since SDL 2.0 */ -@interface SDLOnPermissionsChange : SDLRPCNotification { -} -/** - * Constructs a newly allocated SDLOnPermissionsChange object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * Constructs a newly allocated SDLOnPermissionsChange object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLOnPermissionsChange : SDLRPCNotification /** * @abstract Describes change in permissions for a given set of RPCs @@ -30,6 +22,8 @@ * * @see SDLPermissionItem */ -@property (strong) NSMutableArray *permissionItem; +@property (strong, nonatomic) NSArray *permissionItem; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnPermissionsChange.m b/SmartDeviceLink/SDLOnPermissionsChange.m index bc5a64f35..da908698a 100644 --- a/SmartDeviceLink/SDLOnPermissionsChange.m +++ b/SmartDeviceLink/SDLOnPermissionsChange.m @@ -3,45 +3,28 @@ #import "SDLOnPermissionsChange.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" #import "SDLPermissionItem.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLOnPermissionsChange - (instancetype)init { - if (self = [super initWithName:NAMES_OnPermissionsChange]) { + if (self = [super initWithName:SDLNameOnPermissionsChange]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (void)setPermissionItem:(NSArray *)permissionItem { + [parameters sdl_setObject:permissionItem forName:SDLNamePermissionItem]; } -- (void)setPermissionItem:(NSMutableArray *)permissionItem { - if (permissionItem != nil) { - [parameters setObject:permissionItem forKey:NAMES_permissionItem]; - } else { - [parameters removeObjectForKey:NAMES_permissionItem]; - } -} - -- (NSMutableArray *)permissionItem { - NSMutableArray *array = [parameters objectForKey:NAMES_permissionItem]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLPermissionItem.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLPermissionItem alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (NSArray *)permissionItem { + return [parameters sdl_objectsForName:SDLNamePermissionItem ofClass:SDLPermissionItem.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnSyncPData.h b/SmartDeviceLink/SDLOnSyncPData.h index 8729a881a..cf2e1af13 100644 --- a/SmartDeviceLink/SDLOnSyncPData.h +++ b/SmartDeviceLink/SDLOnSyncPData.h @@ -4,13 +4,13 @@ #import "SDLRPCNotification.h" -@interface SDLOnSyncPData : SDLRPCNotification { -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLOnSyncPData : SDLRPCNotification -@property (strong) NSString *URL; -@property (strong) NSNumber *Timeout; +@property (nullable, strong, nonatomic) NSString *URL; +@property (nullable, strong, nonatomic) NSNumber *Timeout; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnSyncPData.m b/SmartDeviceLink/SDLOnSyncPData.m index 11fe8a3ac..13446ab88 100644 --- a/SmartDeviceLink/SDLOnSyncPData.m +++ b/SmartDeviceLink/SDLOnSyncPData.m @@ -4,44 +4,35 @@ #import "SDLOnSyncPData.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLOnSyncPData - (instancetype)init { - if (self = [super initWithName:NAMES_OnSyncPData]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameOnSyncPData]) { } return self; } -- (void)setURL:(NSString *)URL { - if (URL != nil) { - [parameters setObject:URL forKey:NAMES_URL]; - } else { - [parameters removeObjectForKey:NAMES_URL]; - } +- (void)setURL:(nullable NSString *)URL { + [parameters sdl_setObject:URL forName:SDLNameURLUppercase]; } -- (NSString *)URL { - return [parameters objectForKey:NAMES_URL]; +- (nullable NSString *)URL { + return [parameters sdl_objectForName:SDLNameURLUppercase]; } -- (void)setTimeout:(NSNumber *)Timeout { - if (Timeout != nil) { - [parameters setObject:Timeout forKey:NAMES_Timeout]; - } else { - [parameters removeObjectForKey:NAMES_Timeout]; - } +- (void)setTimeout:(nullable NSNumber *)Timeout { + [parameters sdl_setObject:Timeout forName:SDLNameTimeoutCapitalized]; } -- (NSNumber *)Timeout { - return [parameters objectForKey:NAMES_Timeout]; +- (nullable NSNumber *)Timeout { + return [parameters sdl_objectForName:SDLNameTimeoutCapitalized]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnSystemRequest.h b/SmartDeviceLink/SDLOnSystemRequest.h index b590f0650..236cde278 100644 --- a/SmartDeviceLink/SDLOnSystemRequest.h +++ b/SmartDeviceLink/SDLOnSystemRequest.h @@ -3,21 +3,20 @@ #import "SDLRPCNotification.h" -@class SDLFileType; -@class SDLRequestType; +#import "SDLFileType.h" +#import "SDLRequestType.h" +NS_ASSUME_NONNULL_BEGIN -@interface SDLOnSystemRequest : SDLRPCNotification { -} +@interface SDLOnSystemRequest : SDLRPCNotification -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -@property (strong) SDLRequestType *requestType; -@property (strong) NSString *url; -@property (strong) NSNumber *timeout; -@property (strong) SDLFileType *fileType; -@property (strong) NSNumber *offset; -@property (strong) NSNumber *length; +@property (strong, nonatomic) SDLRequestType requestType; +@property (nullable, strong, nonatomic) NSString *url; +@property (nullable, strong, nonatomic) NSNumber *timeout; +@property (nullable, strong, nonatomic) SDLFileType fileType; +@property (nullable, strong, nonatomic) NSNumber *offset; +@property (nullable, strong, nonatomic) NSNumber *length; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnSystemRequest.m b/SmartDeviceLink/SDLOnSystemRequest.m index c5aff7569..30e58a1a9 100644 --- a/SmartDeviceLink/SDLOnSystemRequest.m +++ b/SmartDeviceLink/SDLOnSystemRequest.m @@ -3,105 +3,67 @@ #import "SDLOnSystemRequest.h" -#import "SDLFileType.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -#import "SDLRequestType.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLOnSystemRequest - (instancetype)init { - if (self = [super initWithName:NAMES_OnSystemRequest]) { + if (self = [super initWithName:SDLNameOnSystemRequest]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (void)setRequestType:(SDLRequestType)requestType { + [parameters sdl_setObject:requestType forName:SDLNameRequestType]; } -- (void)setRequestType:(SDLRequestType *)requestType { - if (requestType != nil) { - [parameters setObject:requestType forKey:NAMES_requestType]; - } else { - [parameters removeObjectForKey:NAMES_requestType]; - } +- (SDLRequestType)requestType { + return [parameters sdl_objectForName:SDLNameRequestType]; } -- (SDLRequestType *)requestType { - NSObject *obj = [parameters objectForKey:NAMES_requestType]; - if (obj == nil || [obj isKindOfClass:SDLRequestType.class]) { - return (SDLRequestType *)obj; - } else { - return [SDLRequestType valueOf:(NSString *)obj]; - } +- (void)setUrl:(nullable NSString *)url { + [parameters sdl_setObject:url forName:SDLNameURL]; } -- (void)setUrl:(NSString *)url { - if (url != nil) { - [parameters setObject:url forKey:NAMES_url]; - } else { - [parameters removeObjectForKey:NAMES_url]; - } +- (nullable NSString *)url { + return [parameters sdl_objectForName:SDLNameURL]; } -- (NSString *)url { - return [parameters objectForKey:NAMES_url]; +- (void)setTimeout:(nullable NSNumber *)timeout { + [parameters sdl_setObject:timeout forName:SDLNameTimeout]; } -- (void)setTimeout:(NSNumber *)timeout { - if (timeout != nil) { - [parameters setObject:timeout forKey:NAMES_timeout]; - } else { - [parameters removeObjectForKey:NAMES_timeout]; - } +- (nullable NSNumber *)timeout { + return [parameters sdl_objectForName:SDLNameTimeout]; } -- (NSNumber *)timeout { - return [parameters objectForKey:NAMES_timeout]; +- (void)setFileType:(nullable SDLFileType)fileType { + [parameters sdl_setObject:fileType forName:SDLNameFileType]; } -- (void)setFileType:(SDLFileType *)fileType { - if (fileType != nil) { - [parameters setObject:fileType forKey:NAMES_fileType]; - } else { - [parameters removeObjectForKey:NAMES_fileType]; - } +- (nullable SDLFileType)fileType { + return [parameters sdl_objectForName:SDLNameFileType]; } -- (SDLFileType *)fileType { - NSObject *obj = [parameters objectForKey:NAMES_fileType]; - if (obj == nil || [obj isKindOfClass:SDLFileType.class]) { - return (SDLFileType *)obj; - } else { - return [SDLFileType valueOf:(NSString *)obj]; - } -} - -- (void)setOffset:(NSNumber *)offset { - if (offset != nil) { - [parameters setObject:offset forKey:NAMES_offset]; - } else { - [parameters removeObjectForKey:NAMES_offset]; - } +- (void)setOffset:(nullable NSNumber *)offset { + [parameters sdl_setObject:offset forName:SDLNameOffset]; } -- (NSNumber *)offset { - return [parameters objectForKey:NAMES_offset]; +- (nullable NSNumber *)offset { + return [parameters sdl_objectForName:SDLNameOffset]; } -- (void)setLength:(NSNumber *)length { - if (length != nil) { - [parameters setObject:length forKey:NAMES_length]; - } else { - [parameters removeObjectForKey:NAMES_length]; - } +- (void)setLength:(nullable NSNumber *)length { + [parameters sdl_setObject:length forName:SDLNameLength]; } -- (NSNumber *)length { - return [parameters objectForKey:NAMES_length]; +- (nullable NSNumber *)length { + return [parameters sdl_objectForName:SDLNameLength]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnTBTClientState.h b/SmartDeviceLink/SDLOnTBTClientState.h index 8dec001ca..33e9c37be 100644 --- a/SmartDeviceLink/SDLOnTBTClientState.h +++ b/SmartDeviceLink/SDLOnTBTClientState.h @@ -3,15 +3,14 @@ #import "SDLRPCNotification.h" -@class SDLTBTState; +#import "SDLTBTState.h" +NS_ASSUME_NONNULL_BEGIN -@interface SDLOnTBTClientState : SDLRPCNotification { -} +@interface SDLOnTBTClientState : SDLRPCNotification -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -@property (strong) SDLTBTState *state; +@property (strong, nonatomic) SDLTBTState state; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnTBTClientState.m b/SmartDeviceLink/SDLOnTBTClientState.m index ee0dc1efc..41bc28f0d 100644 --- a/SmartDeviceLink/SDLOnTBTClientState.m +++ b/SmartDeviceLink/SDLOnTBTClientState.m @@ -3,39 +3,28 @@ #import "SDLOnTBTClientState.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -#import "SDLTBTState.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLOnTBTClientState - (instancetype)init { - if (self = [super initWithName:NAMES_OnTBTClientState]) { + if (self = [super initWithName:SDLNameOnTBTClientState]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (void)setState:(SDLTBTState)state { + [parameters sdl_setObject:state forName:SDLNameState]; } -- (void)setState:(SDLTBTState *)state { - if (state != nil) { - [parameters setObject:state forKey:NAMES_state]; - } else { - [parameters removeObjectForKey:NAMES_state]; - } -} - -- (SDLTBTState *)state { - NSObject *obj = [parameters objectForKey:NAMES_state]; - if (obj == nil || [obj isKindOfClass:SDLTBTState.class]) { - return (SDLTBTState *)obj; - } else { - return [SDLTBTState valueOf:(NSString *)obj]; - } +- (SDLTBTState)state { + NSObject *obj = [parameters sdl_objectForName:SDLNameState]; + return (SDLTBTState)obj; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnTouchEvent.h b/SmartDeviceLink/SDLOnTouchEvent.h index 68f1fa707..f9fa91907 100644 --- a/SmartDeviceLink/SDLOnTouchEvent.h +++ b/SmartDeviceLink/SDLOnTouchEvent.h @@ -3,16 +3,17 @@ #import "SDLRPCNotification.h" -@class SDLTouchType; +#import "SDLTouchType.h" +@class SDLTouchEvent; -@interface SDLOnTouchEvent : SDLRPCNotification { -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLOnTouchEvent : SDLRPCNotification -@property (strong) SDLTouchType *type; -@property (strong) NSMutableArray *event; +@property (strong, nonatomic) SDLTouchType type; +@property (strong, nonatomic) NSArray *event; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnTouchEvent.m b/SmartDeviceLink/SDLOnTouchEvent.m index f98a22af6..08cb844c1 100644 --- a/SmartDeviceLink/SDLOnTouchEvent.m +++ b/SmartDeviceLink/SDLOnTouchEvent.m @@ -3,63 +3,37 @@ #import "SDLOnTouchEvent.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" #import "SDLTouchEvent.h" -#import "SDLTouchType.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLOnTouchEvent - (instancetype)init { - if (self = [super initWithName:NAMES_OnTouchEvent]) { + if (self = [super initWithName:SDLNameOnTouchEvent]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (void)setType:(SDLTouchType)type { + [parameters sdl_setObject:type forName:SDLNameType]; } -- (void)setType:(SDLTouchType *)type { - if (type != nil) { - [parameters setObject:type forKey:NAMES_type]; - } else { - [parameters removeObjectForKey:NAMES_type]; - } +- (SDLTouchType)type { + NSObject *obj = [parameters sdl_objectForName:SDLNameType]; + return (SDLTouchType)obj; } -- (SDLTouchType *)type { - NSObject *obj = [parameters objectForKey:NAMES_type]; - if (obj == nil || [obj isKindOfClass:SDLTouchType.class]) { - return (SDLTouchType *)obj; - } else { - return [SDLTouchType valueOf:(NSString *)obj]; - } +- (void)setEvent:(NSArray *)event { + [parameters sdl_setObject:event forName:SDLNameEvent]; } -- (void)setEvent:(NSMutableArray *)event { - if (event != nil) { - [parameters setObject:event forKey:NAMES_event]; - } else { - [parameters removeObjectForKey:NAMES_event]; - } -} - -- (NSMutableArray *)event { - NSMutableArray *array = [parameters objectForKey:NAMES_event]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTouchEvent.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLTouchEvent alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (NSArray *)event { + return [parameters sdl_objectsForName:SDLNameEvent ofClass:SDLTouchEvent.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnVehicleData.h b/SmartDeviceLink/SDLOnVehicleData.h index 245477e3b..6a8c4af78 100644 --- a/SmartDeviceLink/SDLOnVehicleData.h +++ b/SmartDeviceLink/SDLOnVehicleData.h @@ -3,21 +3,22 @@ #import "SDLRPCNotification.h" +#import "SDLComponentVolumeStatus.h" +#import "SDLPRNDL.h" +#import "SDLVehicleDataEventStatus.h" +#import "SDLWiperStatus.h" + @class SDLAirbagStatus; @class SDLBeltStatus; @class SDLBodyInformation; @class SDLClusterModeStatus; -@class SDLComponentVolumeStatus; @class SDLDeviceStatus; @class SDLECallInfo; @class SDLEmergencyEvent; @class SDLGPSData; @class SDLHeadLampStatus; @class SDLMyKey; -@class SDLPRNDL; @class SDLTireStatus; -@class SDLVehicleDataEventStatus; -@class SDLWiperStatus; /** @@ -25,126 +26,117 @@ * * Since SmartDeviceLink 2.0 */ -@interface SDLOnVehicleData : SDLRPCNotification { -} +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a new SDLOnVehicleData object - */ -- (instancetype)init; - -/** - * @abstract Constructs a new SDLOnVehicleData object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLOnVehicleData : SDLRPCNotification /** * @abstract A SDLGPSData* value. See GPSData. */ -@property (strong) SDLGPSData *gps; +@property (nullable, strong, nonatomic) SDLGPSData *gps; /** * @abstract The vehicle speed in kilometers per hour. */ -@property (strong) NSNumber *speed; +@property (nullable, strong, nonatomic) NSNumber *speed; /** * @abstract The number of revolutions per minute of the engine. */ -@property (strong) NSNumber *rpm; +@property (nullable, strong, nonatomic) NSNumber *rpm; /** * @abstract The fuel level in the tank (percentage) */ -@property (strong) NSNumber *fuelLevel; +@property (nullable, strong, nonatomic) NSNumber *fuelLevel; /** * @abstract A SDLComponentVolumeStatus* value. The fuel level state. */ -@property (strong) SDLComponentVolumeStatus *fuelLevel_State; +@property (nullable, strong, nonatomic) SDLComponentVolumeStatus fuelLevel_State; /** * @abstract The instantaneous fuel consumption in microlitres. */ -@property (strong) NSNumber *instantFuelConsumption; +@property (nullable, strong, nonatomic) NSNumber *instantFuelConsumption; /** * @abstract The external temperature in degrees celsius. */ -@property (strong) NSNumber *externalTemperature; +@property (nullable, strong, nonatomic) NSNumber *externalTemperature; /** * @abstract The Vehicle Identification Number */ -@property (strong) NSString *vin; +@property (nullable, strong, nonatomic) NSString *vin; /** * @abstract See PRNDL. */ -@property (strong) SDLPRNDL *prndl; +@property (nullable, strong, nonatomic) SDLPRNDL prndl; /** * @abstract A SDLTireStatus* value. See TireStatus. */ -@property (strong) SDLTireStatus *tirePressure; +@property (nullable, strong, nonatomic) SDLTireStatus *tirePressure; /** * @abstract Odometer reading in km. */ -@property (strong) NSNumber *odometer; +@property (nullable, strong, nonatomic) NSNumber *odometer; /** * @abstract A SDLBeltStatus* value. The status of the seat belts. */ -@property (strong) SDLBeltStatus *beltStatus; +@property (nullable, strong, nonatomic) SDLBeltStatus *beltStatus; /** * @abstract A SDLBodyInformation* value. The body information including power modes. */ -@property (strong) SDLBodyInformation *bodyInformation; +@property (nullable, strong, nonatomic) SDLBodyInformation *bodyInformation; /** * @abstract A SDLDeviceStatus* value. The device status including signal and battery strength. */ -@property (strong) SDLDeviceStatus *deviceStatus; +@property (nullable, strong, nonatomic) SDLDeviceStatus *deviceStatus; /** * @abstract A SDLVehicleDataResult* value. The status of the brake pedal. */ -@property (strong) SDLVehicleDataEventStatus *driverBraking; +@property (nullable, strong, nonatomic) SDLVehicleDataEventStatus driverBraking; /** * @abstract A SDLWiperStatus* value. The status of the wipers. */ -@property (strong) SDLWiperStatus *wiperStatus; +@property (nullable, strong, nonatomic) SDLWiperStatus wiperStatus; /** * @abstract A SDLHeadLampStatus* value. Status of the head lamps. */ -@property (strong) SDLHeadLampStatus *headLampStatus; +@property (nullable, strong, nonatomic) SDLHeadLampStatus *headLampStatus; /** * @abstract Torque value for engine (in Nm) on non-diesel variants. */ -@property (strong) NSNumber *engineTorque; +@property (nullable, strong, nonatomic) NSNumber *engineTorque; /** * @abstract Accelerator pedal position (percentage depressed) */ -@property (strong) NSNumber *accPedalPosition; +@property (nullable, strong, nonatomic) NSNumber *accPedalPosition; /** * @abstract Current angle of the steering wheel (in deg) */ -@property (strong) NSNumber *steeringWheelAngle; -@property (strong) SDLECallInfo *eCallInfo; -@property (strong) SDLAirbagStatus *airbagStatus; -@property (strong) SDLEmergencyEvent *emergencyEvent; -@property (strong) SDLClusterModeStatus *clusterModeStatus; -@property (strong) SDLMyKey *myKey; +@property (nullable, strong, nonatomic) NSNumber *steeringWheelAngle; +@property (nullable, strong, nonatomic) SDLECallInfo *eCallInfo; +@property (nullable, strong, nonatomic) SDLAirbagStatus *airbagStatus; +@property (nullable, strong, nonatomic) SDLEmergencyEvent *emergencyEvent; +@property (nullable, strong, nonatomic) SDLClusterModeStatus *clusterModeStatus; +@property (nullable, strong, nonatomic) SDLMyKey *myKey; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnVehicleData.m b/SmartDeviceLink/SDLOnVehicleData.m index 3386ca450..6f4e99521 100644 --- a/SmartDeviceLink/SDLOnVehicleData.m +++ b/SmartDeviceLink/SDLOnVehicleData.m @@ -3,11 +3,11 @@ #import "SDLOnVehicleData.h" +#import "NSMutableDictionary+Store.h" #import "SDLAirbagStatus.h" #import "SDLBeltStatus.h" #import "SDLBodyInformation.h" #import "SDLClusterModeStatus.h" -#import "SDLComponentVolumeStatus.h" #import "SDLDeviceStatus.h" #import "SDLECallInfo.h" #import "SDLEmergencyEvent.h" @@ -15,399 +15,219 @@ #import "SDLHeadLampStatus.h" #import "SDLMyKey.h" #import "SDLNames.h" -#import "SDLPRNDL.h" #import "SDLTireStatus.h" -#import "SDLVehicleDataEventStatus.h" -#import "SDLWiperStatus.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLOnVehicleData - (instancetype)init { - if (self = [super initWithName:NAMES_OnVehicleData]) { + if (self = [super initWithName:SDLNameOnVehicleData]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (void)setGps:(nullable SDLGPSData *)gps { + [parameters sdl_setObject:gps forName:SDLNameGPS]; } -- (void)setGps:(SDLGPSData *)gps { - if (gps != nil) { - [parameters setObject:gps forKey:NAMES_gps]; - } else { - [parameters removeObjectForKey:NAMES_gps]; - } +- (nullable SDLGPSData *)gps { + return [parameters sdl_objectForName:SDLNameGPS ofClass:SDLGPSData.class]; } -- (SDLGPSData *)gps { - NSObject *obj = [parameters objectForKey:NAMES_gps]; - if (obj == nil || [obj isKindOfClass:SDLGPSData.class]) { - return (SDLGPSData *)obj; - } else { - return [[SDLGPSData alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setSpeed:(nullable NSNumber *)speed { + [parameters sdl_setObject:speed forName:SDLNameSpeed]; } -- (void)setSpeed:(NSNumber *)speed { - if (speed != nil) { - [parameters setObject:speed forKey:NAMES_speed]; - } else { - [parameters removeObjectForKey:NAMES_speed]; - } +- (nullable NSNumber *)speed { + return [parameters sdl_objectForName:SDLNameSpeed]; } -- (NSNumber *)speed { - return [parameters objectForKey:NAMES_speed]; +- (void)setRpm:(nullable NSNumber *)rpm { + [parameters sdl_setObject:rpm forName:SDLNameRPM]; } -- (void)setRpm:(NSNumber *)rpm { - if (rpm != nil) { - [parameters setObject:rpm forKey:NAMES_rpm]; - } else { - [parameters removeObjectForKey:NAMES_rpm]; - } +- (nullable NSNumber *)rpm { + return [parameters sdl_objectForName:SDLNameRPM]; } -- (NSNumber *)rpm { - return [parameters objectForKey:NAMES_rpm]; +- (void)setFuelLevel:(nullable NSNumber *)fuelLevel { + [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; } -- (void)setFuelLevel:(NSNumber *)fuelLevel { - if (fuelLevel != nil) { - [parameters setObject:fuelLevel forKey:NAMES_fuelLevel]; - } else { - [parameters removeObjectForKey:NAMES_fuelLevel]; - } +- (nullable NSNumber *)fuelLevel { + return [parameters sdl_objectForName:SDLNameFuelLevel]; } -- (NSNumber *)fuelLevel { - return [parameters objectForKey:NAMES_fuelLevel]; +- (void)setFuelLevel_State:(nullable SDLComponentVolumeStatus)fuelLevel_State { + [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; } -- (void)setFuelLevel_State:(SDLComponentVolumeStatus *)fuelLevel_State { - if (fuelLevel_State != nil) { - [parameters setObject:fuelLevel_State forKey:NAMES_fuelLevel_State]; - } else { - [parameters removeObjectForKey:NAMES_fuelLevel_State]; - } +- (nullable SDLComponentVolumeStatus)fuelLevel_State { + return [parameters sdl_objectForName:SDLNameFuelLevelState]; } -- (SDLComponentVolumeStatus *)fuelLevel_State { - NSObject *obj = [parameters objectForKey:NAMES_fuelLevel_State]; - if (obj == nil || [obj isKindOfClass:SDLComponentVolumeStatus.class]) { - return (SDLComponentVolumeStatus *)obj; - } else { - return [SDLComponentVolumeStatus valueOf:(NSString *)obj]; - } +- (void)setInstantFuelConsumption:(nullable NSNumber *)instantFuelConsumption { + [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; } -- (void)setInstantFuelConsumption:(NSNumber *)instantFuelConsumption { - if (instantFuelConsumption != nil) { - [parameters setObject:instantFuelConsumption forKey:NAMES_instantFuelConsumption]; - } else { - [parameters removeObjectForKey:NAMES_instantFuelConsumption]; - } +- (nullable NSNumber *)instantFuelConsumption { + return [parameters sdl_objectForName:SDLNameInstantFuelConsumption]; } -- (NSNumber *)instantFuelConsumption { - return [parameters objectForKey:NAMES_instantFuelConsumption]; +- (void)setExternalTemperature:(nullable NSNumber *)externalTemperature { + [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; } -- (void)setExternalTemperature:(NSNumber *)externalTemperature { - if (externalTemperature != nil) { - [parameters setObject:externalTemperature forKey:NAMES_externalTemperature]; - } else { - [parameters removeObjectForKey:NAMES_externalTemperature]; - } +- (nullable NSNumber *)externalTemperature { + return [parameters sdl_objectForName:SDLNameExternalTemperature]; } -- (NSNumber *)externalTemperature { - return [parameters objectForKey:NAMES_externalTemperature]; +- (void)setVin:(nullable NSString *)vin { + [parameters sdl_setObject:vin forName:SDLNameVIN]; } -- (void)setVin:(NSString *)vin { - if (vin != nil) { - [parameters setObject:vin forKey:NAMES_vin]; - } else { - [parameters removeObjectForKey:NAMES_vin]; - } +- (nullable NSString *)vin { + return [parameters sdl_objectForName:SDLNameVIN]; } -- (NSString *)vin { - return [parameters objectForKey:NAMES_vin]; +- (void)setPrndl:(nullable SDLPRNDL)prndl { + [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; } -- (void)setPrndl:(SDLPRNDL *)prndl { - if (prndl != nil) { - [parameters setObject:prndl forKey:NAMES_prndl]; - } else { - [parameters removeObjectForKey:NAMES_prndl]; - } +- (nullable SDLPRNDL)prndl { + NSObject *obj = [parameters sdl_objectForName:SDLNamePRNDL]; + return (SDLPRNDL)obj; } -- (SDLPRNDL *)prndl { - NSObject *obj = [parameters objectForKey:NAMES_prndl]; - if (obj == nil || [obj isKindOfClass:SDLPRNDL.class]) { - return (SDLPRNDL *)obj; - } else { - return [SDLPRNDL valueOf:(NSString *)obj]; - } +- (void)setTirePressure:(nullable SDLTireStatus *)tirePressure { + [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; } -- (void)setTirePressure:(SDLTireStatus *)tirePressure { - if (tirePressure != nil) { - [parameters setObject:tirePressure forKey:NAMES_tirePressure]; - } else { - [parameters removeObjectForKey:NAMES_tirePressure]; - } +- (nullable SDLTireStatus *)tirePressure { + return [parameters sdl_objectForName:SDLNameTirePressure ofClass:SDLTireStatus.class]; } -- (SDLTireStatus *)tirePressure { - NSObject *obj = [parameters objectForKey:NAMES_tirePressure]; - if (obj == nil || [obj isKindOfClass:SDLTireStatus.class]) { - return (SDLTireStatus *)obj; - } else { - return [[SDLTireStatus alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setOdometer:(nullable NSNumber *)odometer { + [parameters sdl_setObject:odometer forName:SDLNameOdometer]; } -- (void)setOdometer:(NSNumber *)odometer { - if (odometer != nil) { - [parameters setObject:odometer forKey:NAMES_odometer]; - } else { - [parameters removeObjectForKey:NAMES_odometer]; - } +- (nullable NSNumber *)odometer { + return [parameters sdl_objectForName:SDLNameOdometer]; } -- (NSNumber *)odometer { - return [parameters objectForKey:NAMES_odometer]; +- (void)setBeltStatus:(nullable SDLBeltStatus *)beltStatus { + [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; } -- (void)setBeltStatus:(SDLBeltStatus *)beltStatus { - if (beltStatus != nil) { - [parameters setObject:beltStatus forKey:NAMES_beltStatus]; - } else { - [parameters removeObjectForKey:NAMES_beltStatus]; - } +- (nullable SDLBeltStatus *)beltStatus { + return [parameters sdl_objectForName:SDLNameBeltStatus ofClass:SDLBeltStatus.class]; } -- (SDLBeltStatus *)beltStatus { - NSObject *obj = [parameters objectForKey:NAMES_beltStatus]; - if (obj == nil || [obj isKindOfClass:SDLBeltStatus.class]) { - return (SDLBeltStatus *)obj; - } else { - return [[SDLBeltStatus alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setBodyInformation:(nullable SDLBodyInformation *)bodyInformation { + [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; } -- (void)setBodyInformation:(SDLBodyInformation *)bodyInformation { - if (bodyInformation != nil) { - [parameters setObject:bodyInformation forKey:NAMES_bodyInformation]; - } else { - [parameters removeObjectForKey:NAMES_bodyInformation]; - } +- (nullable SDLBodyInformation *)bodyInformation { + return [parameters sdl_objectForName:SDLNameBodyInformation ofClass:SDLBodyInformation.class]; } -- (SDLBodyInformation *)bodyInformation { - NSObject *obj = [parameters objectForKey:NAMES_bodyInformation]; - if (obj == nil || [obj isKindOfClass:SDLBodyInformation.class]) { - return (SDLBodyInformation *)obj; - } else { - return [[SDLBodyInformation alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setDeviceStatus:(nullable SDLDeviceStatus *)deviceStatus { + [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; } -- (void)setDeviceStatus:(SDLDeviceStatus *)deviceStatus { - if (deviceStatus != nil) { - [parameters setObject:deviceStatus forKey:NAMES_deviceStatus]; - } else { - [parameters removeObjectForKey:NAMES_deviceStatus]; - } +- (nullable SDLDeviceStatus *)deviceStatus { + return [parameters sdl_objectForName:SDLNameDeviceStatus ofClass:SDLDeviceStatus.class]; } -- (SDLDeviceStatus *)deviceStatus { - NSObject *obj = [parameters objectForKey:NAMES_deviceStatus]; - if (obj == nil || [obj isKindOfClass:SDLDeviceStatus.class]) { - return (SDLDeviceStatus *)obj; - } else { - return [[SDLDeviceStatus alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setDriverBraking:(nullable SDLVehicleDataEventStatus)driverBraking { + [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; } -- (void)setDriverBraking:(SDLVehicleDataEventStatus *)driverBraking { - if (driverBraking != nil) { - [parameters setObject:driverBraking forKey:NAMES_driverBraking]; - } else { - [parameters removeObjectForKey:NAMES_driverBraking]; - } +- (nullable SDLVehicleDataEventStatus)driverBraking { + return [parameters sdl_objectForName:SDLNameDriverBraking]; } -- (SDLVehicleDataEventStatus *)driverBraking { - NSObject *obj = [parameters objectForKey:NAMES_driverBraking]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataEventStatus.class]) { - return (SDLVehicleDataEventStatus *)obj; - } else { - return [SDLVehicleDataEventStatus valueOf:(NSString *)obj]; - } +- (void)setWiperStatus:(nullable SDLWiperStatus)wiperStatus { + [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; } -- (void)setWiperStatus:(SDLWiperStatus *)wiperStatus { - if (wiperStatus != nil) { - [parameters setObject:wiperStatus forKey:NAMES_wiperStatus]; - } else { - [parameters removeObjectForKey:NAMES_wiperStatus]; - } +- (nullable SDLWiperStatus)wiperStatus { + return [parameters sdl_objectForName:SDLNameWiperStatus]; } -- (SDLWiperStatus *)wiperStatus { - NSObject *obj = [parameters objectForKey:NAMES_wiperStatus]; - if (obj == nil || [obj isKindOfClass:SDLWiperStatus.class]) { - return (SDLWiperStatus *)obj; - } else { - return [SDLWiperStatus valueOf:(NSString *)obj]; - } +- (void)setHeadLampStatus:(nullable SDLHeadLampStatus *)headLampStatus { + [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; } -- (void)setHeadLampStatus:(SDLHeadLampStatus *)headLampStatus { - if (headLampStatus != nil) { - [parameters setObject:headLampStatus forKey:NAMES_headLampStatus]; - } else { - [parameters removeObjectForKey:NAMES_headLampStatus]; - } +- (nullable SDLHeadLampStatus *)headLampStatus { + return [parameters sdl_objectForName:SDLNameHeadLampStatus ofClass:SDLHeadLampStatus.class]; } -- (SDLHeadLampStatus *)headLampStatus { - NSObject *obj = [parameters objectForKey:NAMES_headLampStatus]; - if (obj == nil || [obj isKindOfClass:SDLHeadLampStatus.class]) { - return (SDLHeadLampStatus *)obj; - } else { - return [[SDLHeadLampStatus alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setEngineTorque:(nullable NSNumber *)engineTorque { + [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; } -- (void)setEngineTorque:(NSNumber *)engineTorque { - if (engineTorque != nil) { - [parameters setObject:engineTorque forKey:NAMES_engineTorque]; - } else { - [parameters removeObjectForKey:NAMES_engineTorque]; - } +- (nullable NSNumber *)engineTorque { + return [parameters sdl_objectForName:SDLNameEngineTorque]; } -- (NSNumber *)engineTorque { - return [parameters objectForKey:NAMES_engineTorque]; +- (void)setAccPedalPosition:(nullable NSNumber *)accPedalPosition { + [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; } -- (void)setAccPedalPosition:(NSNumber *)accPedalPosition { - if (accPedalPosition != nil) { - [parameters setObject:accPedalPosition forKey:NAMES_accPedalPosition]; - } else { - [parameters removeObjectForKey:NAMES_accPedalPosition]; - } +- (nullable NSNumber *)accPedalPosition { + return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition]; } -- (NSNumber *)accPedalPosition { - return [parameters objectForKey:NAMES_accPedalPosition]; -} - -- (void)setSteeringWheelAngle:(NSNumber *)steeringWheelAngle { - if (steeringWheelAngle != nil) { - [parameters setObject:steeringWheelAngle forKey:NAMES_steeringWheelAngle]; - } else { - [parameters removeObjectForKey:NAMES_steeringWheelAngle]; - } +- (void)setSteeringWheelAngle:(nullable NSNumber *)steeringWheelAngle { + [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; } -- (NSNumber *)steeringWheelAngle { - return [parameters objectForKey:NAMES_steeringWheelAngle]; +- (nullable NSNumber *)steeringWheelAngle { + return [parameters sdl_objectForName:SDLNameSteeringWheelAngle]; } -- (void)setECallInfo:(SDLECallInfo *)eCallInfo { - if (eCallInfo != nil) { - [parameters setObject:eCallInfo forKey:NAMES_eCallInfo]; - } else { - [parameters removeObjectForKey:NAMES_eCallInfo]; - } +- (void)setECallInfo:(nullable SDLECallInfo *)eCallInfo { + [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; } -- (SDLECallInfo *)eCallInfo { - NSObject *obj = [parameters objectForKey:NAMES_eCallInfo]; - if (obj == nil || [obj isKindOfClass:SDLECallInfo.class]) { - return (SDLECallInfo *)obj; - } else { - return [[SDLECallInfo alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLECallInfo *)eCallInfo { + return [parameters sdl_objectForName:SDLNameECallInfo ofClass:SDLECallInfo.class]; } -- (void)setAirbagStatus:(SDLAirbagStatus *)airbagStatus { - if (airbagStatus != nil) { - [parameters setObject:airbagStatus forKey:NAMES_airbagStatus]; - } else { - [parameters removeObjectForKey:NAMES_airbagStatus]; - } +- (void)setAirbagStatus:(nullable SDLAirbagStatus *)airbagStatus { + [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; } -- (SDLAirbagStatus *)airbagStatus { - NSObject *obj = [parameters objectForKey:NAMES_airbagStatus]; - if (obj == nil || [obj isKindOfClass:SDLAirbagStatus.class]) { - return (SDLAirbagStatus *)obj; - } else { - return [[SDLAirbagStatus alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLAirbagStatus *)airbagStatus { + return [parameters sdl_objectForName:SDLNameAirbagStatus ofClass:SDLAirbagStatus.class]; } -- (void)setEmergencyEvent:(SDLEmergencyEvent *)emergencyEvent { - if (emergencyEvent != nil) { - [parameters setObject:emergencyEvent forKey:NAMES_emergencyEvent]; - } else { - [parameters removeObjectForKey:NAMES_emergencyEvent]; - } +- (void)setEmergencyEvent:(nullable SDLEmergencyEvent *)emergencyEvent { + [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; } -- (SDLEmergencyEvent *)emergencyEvent { - NSObject *obj = [parameters objectForKey:NAMES_emergencyEvent]; - if (obj == nil || [obj isKindOfClass:SDLEmergencyEvent.class]) { - return (SDLEmergencyEvent *)obj; - } else { - return [[SDLEmergencyEvent alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLEmergencyEvent *)emergencyEvent { + return [parameters sdl_objectForName:SDLNameEmergencyEvent ofClass:SDLEmergencyEvent.class]; } -- (void)setClusterModeStatus:(SDLClusterModeStatus *)clusterModeStatus { - if (clusterModeStatus != nil) { - [parameters setObject:clusterModeStatus forKey:NAMES_clusterModeStatus]; - } else { - [parameters removeObjectForKey:NAMES_clusterModeStatus]; - } +- (void)setClusterModeStatus:(nullable SDLClusterModeStatus *)clusterModeStatus { + [parameters sdl_setObject:clusterModeStatus forName:SDLNameClusterModeStatus]; } -- (SDLClusterModeStatus *)clusterModeStatus { - NSObject *obj = [parameters objectForKey:NAMES_clusterModeStatus]; - if (obj == nil || [obj isKindOfClass:SDLClusterModeStatus.class]) { - return (SDLClusterModeStatus *)obj; - } else { - return [[SDLClusterModeStatus alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLClusterModeStatus *)clusterModeStatus { + return [parameters sdl_objectForName:SDLNameClusterModeStatus ofClass:SDLClusterModeStatus.class]; } -- (void)setMyKey:(SDLMyKey *)myKey { - if (myKey != nil) { - [parameters setObject:myKey forKey:NAMES_myKey]; - } else { - [parameters removeObjectForKey:NAMES_myKey]; - } +- (void)setMyKey:(nullable SDLMyKey *)myKey { + [parameters sdl_setObject:myKey forName:SDLNameMyKey]; } -- (SDLMyKey *)myKey { - NSObject *obj = [parameters objectForKey:NAMES_myKey]; - if (obj == nil || [obj isKindOfClass:SDLMyKey.class]) { - return (SDLMyKey *)obj; - } else { - return [[SDLMyKey alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLMyKey *)myKey { + return [parameters sdl_objectForName:SDLNameMyKey ofClass:SDLMyKey.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnWaypointChange.h b/SmartDeviceLink/SDLOnWayPointChange.h similarity index 63% rename from SmartDeviceLink/SDLOnWaypointChange.h rename to SmartDeviceLink/SDLOnWayPointChange.h index 58b5fca81..bfcbff1a4 100644 --- a/SmartDeviceLink/SDLOnWaypointChange.h +++ b/SmartDeviceLink/SDLOnWayPointChange.h @@ -1,10 +1,12 @@ -// SDLOnWaypointChange.h +// SDLOnWayPointChange.h // #import "SDLRPCNotification.h" @class SDLLocationDetails; +NS_ASSUME_NONNULL_BEGIN + @interface SDLOnWayPointChange : SDLRPCNotification /** @@ -16,6 +18,4 @@ @end -__deprecated_msg("Use SDLOnWayPointChange instead") - @interface SDLOnWaypointChange : SDLOnWayPointChange - @end +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnWayPointChange.m b/SmartDeviceLink/SDLOnWayPointChange.m new file mode 100644 index 000000000..70c7c4242 --- /dev/null +++ b/SmartDeviceLink/SDLOnWayPointChange.m @@ -0,0 +1,30 @@ +// SDLOnWayPointChange.m +// + +#import "SDLOnWayPointChange.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLLocationDetails.h" +#import "SDLNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLOnWayPointChange + +- (instancetype)init { + if (self = [super initWithName:SDLNameOnWayPointChange]) { + } + return self; +} + +- (void)setWaypoints:(NSArray *)waypoints { + [parameters sdl_setObject:waypoints forName:SDLNameWayPoints]; +} + +- (NSArray *)waypoints { + return [parameters sdl_objectsForName:SDLNameWayPoints ofClass:SDLLocationDetails.class]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLOnWaypointChange.m b/SmartDeviceLink/SDLOnWaypointChange.m deleted file mode 100644 index 79afcde6e..000000000 --- a/SmartDeviceLink/SDLOnWaypointChange.m +++ /dev/null @@ -1,44 +0,0 @@ -// SDLOnWaypointChange.m -// - -#import "SDLOnWaypointChange.h" - -#import "SDLLocationDetails.h" -#import "SDLNames.h" - -@implementation SDLOnWayPointChange - -- (instancetype)init { - if (self = [super initWithName:NAMES_OnWaypointChange]) { - } - return self; -} - -- (void)setWaypoints:(NSArray *)waypoints { - if (waypoints != nil) { - parameters[NAMES_waypoints] = waypoints; - } else { - [parameters removeObjectForKey:NAMES_waypoints]; - } -} - -- (NSArray *)waypoints { - NSMutableArray *array = [parameters objectForKey:NAMES_waypoints]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLLocationDetails.class]) { - return [array copy]; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLLocationDetails alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return [newList copy]; - } -} - -@end - -@implementation SDLOnWaypointChange - -@end diff --git a/SmartDeviceLink/SDLPRNDL.h b/SmartDeviceLink/SDLPRNDL.h index 6095d1a82..68c05b200 100644 --- a/SmartDeviceLink/SDLPRNDL.h +++ b/SmartDeviceLink/SDLPRNDL.h @@ -9,135 +9,84 @@ * * @since SDL 2.0 */ -@interface SDLPRNDL : SDLEnum { -} - -/** - * @abstract get SDLPRNDL according value string - * - * @param value The value of the string to get an object for - * - * @return SDLPRNDL object - */ -+ (SDLPRNDL *)valueOf:(NSString *)value; - -/** - * @abstract declare an array to store all possible SDLPRNDL values - * - * @return the array - */ -+ (NSArray *)values; +typedef SDLEnum SDLPRNDL SDL_SWIFT_ENUM; /** * @abstract Park - * - * @return SDLPRNDL: *PARK* */ -+ (SDLPRNDL *)PARK; +extern SDLPRNDL const SDLPRNDLPark; /** * @abstract Reverse gear - * - * @return SDLPRNDL: *REVERSE* */ -+ (SDLPRNDL *)REVERSE; +extern SDLPRNDL const SDLPRNDLReverse; /** * @abstract No gear - * - * @return SDLPRNDL: *NEUTRAL* */ -+ (SDLPRNDL *)NEUTRAL; +extern SDLPRNDL const SDLPRNDLNeutral; /** * @abstract: Drive gear - * - * @return SDLPRNDL: *DRIVE* */ -+ (SDLPRNDL *)DRIVE; +extern SDLPRNDL const SDLPRNDLDrive; /** * @abstract Drive Sport mode - * - * @return SDLPRNDL: *SPORT* */ -+ (SDLPRNDL *)SPORT; +extern SDLPRNDL const SDLPRNDLSport; /** * @abstract 1st gear hold - * - * @return SDLPRNDL: *LOWGEAR* */ -+ (SDLPRNDL *)LOWGEAR; +extern SDLPRNDL const SDLPRNDLLowGear; /** * @abstract First gear - * - * @return SDLPRNDL: *FIRST* */ -+ (SDLPRNDL *)FIRST; +extern SDLPRNDL const SDLPRNDLFirst; /** * @abstract Second gear - * - * @return SDLPRNDL: *SECOND* */ -+ (SDLPRNDL *)SECOND; +extern SDLPRNDL const SDLPRNDLSecond; /** * @abstract Third gear - * - * @return SDLPRNDL: *THIRD* */ -+ (SDLPRNDL *)THIRD; +extern SDLPRNDL const SDLPRNDLThird; /** * @abstract Fourth gear - * - * @return SDLPRNDL: *FOURTH* */ -+ (SDLPRNDL *)FOURTH; +extern SDLPRNDL const SDLPRNDLFourth; /** * @abstract Fifth gear - * - * @return SDLPRNDL: *FIFTH* */ -+ (SDLPRNDL *)FIFTH; +extern SDLPRNDL const SDLPRNDLFifth; /** * @abstract Sixth gear - * - * @return SDLPRNDL: *SIXTH* */ -+ (SDLPRNDL *)SIXTH; +extern SDLPRNDL const SDLPRNDLSixth; /** * @abstract Seventh gear - * - * @return SDLPRNDL: *SEVENTH* */ -+ (SDLPRNDL *)SEVENTH; +extern SDLPRNDL const SDLPRNDLSeventh; /** * @abstract Eighth gear - * - * @return SDLPRNDL: *EIGHTH* */ -+ (SDLPRNDL *)EIGHTH; +extern SDLPRNDL const SDLPRNDLEighth; /** * @abstract Unknown - * - * @return SDLPRNDL: *UNKNOWN* */ -+ (SDLPRNDL *)UNKNOWN; +extern SDLPRNDL const SDLPRNDLUnknown; /** * @abstract Fault - * - * @return SDLPRNDL: *FAULT* */ -+ (SDLPRNDL *)FAULT; - -@end +extern SDLPRNDL const SDLPRNDLFault; diff --git a/SmartDeviceLink/SDLPRNDL.m b/SmartDeviceLink/SDLPRNDL.m index e0588af77..77eed8336 100644 --- a/SmartDeviceLink/SDLPRNDL.m +++ b/SmartDeviceLink/SDLPRNDL.m @@ -4,170 +4,19 @@ #import "SDLPRNDL.h" -SDLPRNDL *SDLPRNDL_PARK = nil; -SDLPRNDL *SDLPRNDL_REVERSE = nil; -SDLPRNDL *SDLPRNDL_NEUTRAL = nil; -SDLPRNDL *SDLPRNDL_DRIVE = nil; -SDLPRNDL *SDLPRNDL_SPORT = nil; -SDLPRNDL *SDLPRNDL_LOWGEAR = nil; -SDLPRNDL *SDLPRNDL_FIRST = nil; -SDLPRNDL *SDLPRNDL_SECOND = nil; -SDLPRNDL *SDLPRNDL_THIRD = nil; -SDLPRNDL *SDLPRNDL_FOURTH = nil; -SDLPRNDL *SDLPRNDL_FIFTH = nil; -SDLPRNDL *SDLPRNDL_SIXTH = nil; -SDLPRNDL *SDLPRNDL_SEVENTH = nil; -SDLPRNDL *SDLPRNDL_EIGHTH = nil; -SDLPRNDL *SDLPRNDL_UNKNOWN = nil; -SDLPRNDL *SDLPRNDL_FAULT = nil; - -NSArray *SDLPRNDL_values = nil; - -@implementation SDLPRNDL - -+ (SDLPRNDL *)valueOf:(NSString *)value { - for (SDLPRNDL *item in SDLPRNDL.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLPRNDL_values == nil) { - SDLPRNDL_values = @[ - SDLPRNDL.PARK, - SDLPRNDL.REVERSE, - SDLPRNDL.NEUTRAL, - SDLPRNDL.DRIVE, - SDLPRNDL.SPORT, - SDLPRNDL.LOWGEAR, - SDLPRNDL.FIRST, - SDLPRNDL.SECOND, - SDLPRNDL.THIRD, - SDLPRNDL.FOURTH, - SDLPRNDL.FIFTH, - SDLPRNDL.SIXTH, - SDLPRNDL.SEVENTH, - SDLPRNDL.EIGHTH, - SDLPRNDL.UNKNOWN, - SDLPRNDL.FAULT, - ]; - } - return SDLPRNDL_values; -} - -+ (SDLPRNDL *)PARK { - if (SDLPRNDL_PARK == nil) { - SDLPRNDL_PARK = [[SDLPRNDL alloc] initWithValue:@"PARK"]; - } - return SDLPRNDL_PARK; -} - -+ (SDLPRNDL *)REVERSE { - if (SDLPRNDL_REVERSE == nil) { - SDLPRNDL_REVERSE = [[SDLPRNDL alloc] initWithValue:@"REVERSE"]; - } - return SDLPRNDL_REVERSE; -} - -+ (SDLPRNDL *)NEUTRAL { - if (SDLPRNDL_NEUTRAL == nil) { - SDLPRNDL_NEUTRAL = [[SDLPRNDL alloc] initWithValue:@"NEUTRAL"]; - } - return SDLPRNDL_NEUTRAL; -} - -+ (SDLPRNDL *)DRIVE { - if (SDLPRNDL_DRIVE == nil) { - SDLPRNDL_DRIVE = [[SDLPRNDL alloc] initWithValue:@"DRIVE"]; - } - return SDLPRNDL_DRIVE; -} - -+ (SDLPRNDL *)SPORT { - if (SDLPRNDL_SPORT == nil) { - SDLPRNDL_SPORT = [[SDLPRNDL alloc] initWithValue:@"SPORT"]; - } - return SDLPRNDL_SPORT; -} - -+ (SDLPRNDL *)LOWGEAR { - if (SDLPRNDL_LOWGEAR == nil) { - SDLPRNDL_LOWGEAR = [[SDLPRNDL alloc] initWithValue:@"LOWGEAR"]; - } - return SDLPRNDL_LOWGEAR; -} - -+ (SDLPRNDL *)FIRST { - if (SDLPRNDL_FIRST == nil) { - SDLPRNDL_FIRST = [[SDLPRNDL alloc] initWithValue:@"FIRST"]; - } - return SDLPRNDL_FIRST; -} - -+ (SDLPRNDL *)SECOND { - if (SDLPRNDL_SECOND == nil) { - SDLPRNDL_SECOND = [[SDLPRNDL alloc] initWithValue:@"SECOND"]; - } - return SDLPRNDL_SECOND; -} - -+ (SDLPRNDL *)THIRD { - if (SDLPRNDL_THIRD == nil) { - SDLPRNDL_THIRD = [[SDLPRNDL alloc] initWithValue:@"THIRD"]; - } - return SDLPRNDL_THIRD; -} - -+ (SDLPRNDL *)FOURTH { - if (SDLPRNDL_FOURTH == nil) { - SDLPRNDL_FOURTH = [[SDLPRNDL alloc] initWithValue:@"FOURTH"]; - } - return SDLPRNDL_FOURTH; -} - -+ (SDLPRNDL *)FIFTH { - if (SDLPRNDL_FIFTH == nil) { - SDLPRNDL_FIFTH = [[SDLPRNDL alloc] initWithValue:@"FIFTH"]; - } - return SDLPRNDL_FIFTH; -} - -+ (SDLPRNDL *)SIXTH { - if (SDLPRNDL_SIXTH == nil) { - SDLPRNDL_SIXTH = [[SDLPRNDL alloc] initWithValue:@"SIXTH"]; - } - return SDLPRNDL_SIXTH; -} - -+ (SDLPRNDL *)SEVENTH { - if (SDLPRNDL_SEVENTH == nil) { - SDLPRNDL_SEVENTH = [[SDLPRNDL alloc] initWithValue:@"SEVENTH"]; - } - return SDLPRNDL_SEVENTH; -} - -+ (SDLPRNDL *)EIGHTH { - if (SDLPRNDL_EIGHTH == nil) { - SDLPRNDL_EIGHTH = [[SDLPRNDL alloc] initWithValue:@"EIGHTH"]; - } - return SDLPRNDL_EIGHTH; -} - -+ (SDLPRNDL *)UNKNOWN { - if (SDLPRNDL_UNKNOWN == nil) { - SDLPRNDL_UNKNOWN = [[SDLPRNDL alloc] initWithValue:@"UNKNOWN"]; - } - return SDLPRNDL_UNKNOWN; -} - -+ (SDLPRNDL *)FAULT { - if (SDLPRNDL_FAULT == nil) { - SDLPRNDL_FAULT = [[SDLPRNDL alloc] initWithValue:@"FAULT"]; - } - return SDLPRNDL_FAULT; -} - -@end +SDLPRNDL const SDLPRNDLPark = @"PARK"; +SDLPRNDL const SDLPRNDLReverse = @"REVERSE"; +SDLPRNDL const SDLPRNDLNeutral = @"NEUTRAL"; +SDLPRNDL const SDLPRNDLDrive = @"DRIVE"; +SDLPRNDL const SDLPRNDLSport = @"SPORT"; +SDLPRNDL const SDLPRNDLLowGear = @"LOWGEAR"; +SDLPRNDL const SDLPRNDLFirst = @"FIRST"; +SDLPRNDL const SDLPRNDLSecond = @"SECOND"; +SDLPRNDL const SDLPRNDLThird = @"THIRD"; +SDLPRNDL const SDLPRNDLFourth = @"FOURTH"; +SDLPRNDL const SDLPRNDLFifth = @"FIFTH"; +SDLPRNDL const SDLPRNDLSixth = @"SIXTH"; +SDLPRNDL const SDLPRNDLSeventh = @"SEVENTH"; +SDLPRNDL const SDLPRNDLEighth = @"EIGHTH"; +SDLPRNDL const SDLPRNDLUnknown = @"UNKNOWN"; +SDLPRNDL const SDLPRNDLFault = @"FAULT"; diff --git a/SmartDeviceLink/SDLParameterPermissions.h b/SmartDeviceLink/SDLParameterPermissions.h index af724d53f..0a1bdcc00 100644 --- a/SmartDeviceLink/SDLParameterPermissions.h +++ b/SmartDeviceLink/SDLParameterPermissions.h @@ -9,31 +9,24 @@ * * @since SDL 2.0 */ -@interface SDLParameterPermissions : SDLRPCStruct { -} -/** - * @abstract Constructs a newly allocated SDLParameterPermissions object - */ -- (instancetype)init; -/** - * @abstract Constructs a newly allocated SDLParameterPermissions object indicated by the dictionary parameter - * - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLParameterPermissions : SDLRPCStruct /** * @abstract A set of all parameters that are permitted for this given RPC. * * Required, Array of String, max String length = 100, Array size 0 - 100 */ -@property (strong) NSMutableArray *allowed; +@property (strong, nonatomic) NSArray *allowed; /** * @abstract A set of all parameters that are prohibited for this given RPC. * * Required, Array of String, max String length = 100, Array size 0 - 100 */ -@property (strong) NSMutableArray *userDisallowed; +@property (strong, nonatomic) NSArray *userDisallowed; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLParameterPermissions.m b/SmartDeviceLink/SDLParameterPermissions.m index e18d1ec12..bcc2f7047 100644 --- a/SmartDeviceLink/SDLParameterPermissions.m +++ b/SmartDeviceLink/SDLParameterPermissions.m @@ -4,44 +4,29 @@ #import "SDLParameterPermissions.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -@implementation SDLParameterPermissions - -- (instancetype)init { - if (self = [super init]) { - } - return self; -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} +@implementation SDLParameterPermissions -- (void)setAllowed:(NSMutableArray *)allowed { - if (allowed != nil) { - [store setObject:allowed forKey:NAMES_allowed]; - } else { - [store removeObjectForKey:NAMES_allowed]; - } +- (void)setAllowed:(NSArray *)allowed { + [store sdl_setObject:allowed forName:SDLNameAllowed]; } -- (NSMutableArray *)allowed { - return [store objectForKey:NAMES_allowed]; +- (NSArray *)allowed { + return [store sdl_objectForName:SDLNameAllowed]; } -- (void)setUserDisallowed:(NSMutableArray *)userDisallowed { - if (userDisallowed != nil) { - [store setObject:userDisallowed forKey:NAMES_userDisallowed]; - } else { - [store removeObjectForKey:NAMES_userDisallowed]; - } +- (void)setUserDisallowed:(NSArray *)userDisallowed { + [store sdl_setObject:userDisallowed forName:SDLNameUserDisallowed]; } -- (NSMutableArray *)userDisallowed { - return [store objectForKey:NAMES_userDisallowed]; +- (NSArray *)userDisallowed { + return [store sdl_objectForName:SDLNameUserDisallowed]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPerformAudioPassThru.h b/SmartDeviceLink/SDLPerformAudioPassThru.h index 3c2371fca..9f550fe6a 100644 --- a/SmartDeviceLink/SDLPerformAudioPassThru.h +++ b/SmartDeviceLink/SDLPerformAudioPassThru.h @@ -3,10 +3,12 @@ #import "SDLRPCRequest.h" -@class SDLSamplingRate; -@class SDLBitsPerSample; -@class SDLAudioType; +#import "SDLAudioType.h" +#import "SDLBitsPerSample.h" +#import "SDLNotificationConstants.h" +#import "SDLSamplingRate.h" +@class SDLTTSChunk; /** * This will open an audio pass thru session. By doing so the app can receive @@ -20,23 +22,19 @@ *

    Since SmartDeviceLink 2.0

    *

    See SDLEndAudioPassThru

    */ -@interface SDLPerformAudioPassThru : SDLRPCRequest { -} -/** - * @abstract Constructs a new SDLPerformAudioPassThru object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLPerformAudioPassThru object indicated by the NSMutableDictionary - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLPerformAudioPassThru : SDLRPCRequest -- (instancetype)initWithSamplingRate:(SDLSamplingRate *)samplingRate bitsPerSample:(SDLBitsPerSample *)bitsPerSample audioType:(SDLAudioType *)audioType maxDuration:(UInt32)maxDuration; +- (instancetype)initWithSamplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration; -- (instancetype)initWithInitialPrompt:(NSString *)initialPrompt audioPassThruDisplayText1:(NSString *)audioPassThruDisplayText1 audioPassThruDisplayText2:(NSString *)audioPassThruDisplayText2 samplingRate:(SDLSamplingRate *)samplingRate bitsPerSample:(SDLBitsPerSample *)bitsPerSample audioType:(SDLAudioType *)audioType maxDuration:(UInt32)maxDuration muteAudio:(BOOL)muteAudio; +- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt audioPassThruDisplayText1:(nullable NSString *)audioPassThruDisplayText1 audioPassThruDisplayText2:(nullable NSString *)audioPassThruDisplayText2 samplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration muteAudio:(BOOL)muteAudio; +- (instancetype)initWithSamplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration audioDataHandler:(nullable SDLAudioPassThruHandler)audioDataHandler; + +- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt audioPassThruDisplayText1:(nullable NSString *)audioPassThruDisplayText1 audioPassThruDisplayText2:(nullable NSString *)audioPassThruDisplayText2 samplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration muteAudio:(BOOL)muteAudio audioDataHandler:(nullable SDLAudioPassThruHandler)audioDataHandler; + /** * @abstract initial prompt which will be spoken before opening the audio pass * thru session by SDL @@ -54,7 +52,7 @@ *
  • Array Maxsize: 100
  • * */ -@property (strong) NSMutableArray *initialPrompt; +@property (nullable, strong, nonatomic) NSArray *initialPrompt; /** * @abstract a line of text displayed during audio capture * @discussion audioPassThruDisplayText1 @@ -63,7 +61,7 @@ *

    * Notes: Maxlength=500 */ -@property (strong) NSString *audioPassThruDisplayText1; +@property (nullable, strong, nonatomic) NSString *audioPassThruDisplayText1; /** * @abstract A line of text displayed during audio capture * @discussion audioPassThruDisplayText2 @@ -72,13 +70,13 @@ *

    * Notes: Maxlength=500 */ -@property (strong) NSString *audioPassThruDisplayText2; +@property (nullable, strong, nonatomic) NSString *audioPassThruDisplayText2; /** * @abstract A samplingRate * * @discussion a SamplingRate value representing a 8 or 16 or 22 or 24 khz */ -@property (strong) SDLSamplingRate *samplingRate; +@property (strong, nonatomic) SDLSamplingRate samplingRate; /** * @abstract the maximum duration of audio recording in milliseconds * @@ -88,21 +86,29 @@ *

    * Notes: Minvalue:1; Maxvalue:1000000 */ -@property (strong) NSNumber *maxDuration; +@property (strong, nonatomic) NSNumber *maxDuration; /** * @abstract the quality the audio is recorded - 8 bit or 16 bit * * @discussion a BitsPerSample value representing 8 bit or 16 bit */ -@property (strong) SDLBitsPerSample *bitsPerSample; +@property (strong, nonatomic) SDLBitsPerSample bitsPerSample; /** * @abstract an audioType */ -@property (strong) SDLAudioType *audioType; +@property (strong, nonatomic) SDLAudioType audioType; /** * @abstract a Boolean value representing if the current audio source should be * muted during the APT session
    */ -@property (strong) NSNumber *muteAudio; +@property (nullable, strong, nonatomic) NSNumber *muteAudio; + +/** + * A handler that will be called whenever an `onAudioPassThru` notification is received. + */ +@property (strong, nonatomic, nullable) SDLAudioPassThruHandler audioDataHandler; + @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPerformAudioPassThru.m b/SmartDeviceLink/SDLPerformAudioPassThru.m index 6d42daf20..f2bbbdf10 100644 --- a/SmartDeviceLink/SDLPerformAudioPassThru.m +++ b/SmartDeviceLink/SDLPerformAudioPassThru.m @@ -4,30 +4,26 @@ #import "SDLPerformAudioPassThru.h" -#import "SDLAudioType.h" -#import "SDLBitsPerSample.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -#import "SDLSamplingRate.h" #import "SDLTTSChunk.h" -#import "SDLTTSChunkFactory.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLPerformAudioPassThru - (instancetype)init { - if (self = [super initWithName:NAMES_PerformAudioPassThru]) { + if (self = [super initWithName:SDLNamePerformAudioPassThru]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt audioPassThruDisplayText1:(nullable NSString *)audioPassThruDisplayText1 audioPassThruDisplayText2:(nullable NSString *)audioPassThruDisplayText2 samplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration muteAudio:(BOOL)muteAudio { + return [self initWithInitialPrompt:initialPrompt audioPassThruDisplayText1:audioPassThruDisplayText1 audioPassThruDisplayText2:audioPassThruDisplayText2 samplingRate:samplingRate bitsPerSample:bitsPerSample audioType:audioType maxDuration:maxDuration muteAudio:muteAudio audioDataHandler:nil]; } -- (instancetype)initWithInitialPrompt:(NSString *)initialPrompt audioPassThruDisplayText1:(NSString *)audioPassThruDisplayText1 audioPassThruDisplayText2:(NSString *)audioPassThruDisplayText2 samplingRate:(SDLSamplingRate *)samplingRate bitsPerSample:(SDLBitsPerSample *)bitsPerSample audioType:(SDLAudioType *)audioType maxDuration:(UInt32)maxDuration muteAudio:(BOOL)muteAudio { - self = [self initWithSamplingRate:samplingRate bitsPerSample:bitsPerSample audioType:audioType maxDuration:maxDuration]; +- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt audioPassThruDisplayText1:(nullable NSString *)audioPassThruDisplayText1 audioPassThruDisplayText2:(nullable NSString *)audioPassThruDisplayText2 samplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration muteAudio:(BOOL)muteAudio audioDataHandler:(nullable SDLAudioPassThruHandler)audioDataHandler { + self = [self initWithSamplingRate:samplingRate bitsPerSample:bitsPerSample audioType:audioType maxDuration:maxDuration audioDataHandler:audioDataHandler]; if (!self) { return nil; } @@ -40,7 +36,11 @@ - (instancetype)initWithInitialPrompt:(NSString *)initialPrompt audioPassThruDis return self; } -- (instancetype)initWithSamplingRate:(SDLSamplingRate *)samplingRate bitsPerSample:(SDLBitsPerSample *)bitsPerSample audioType:(SDLAudioType *)audioType maxDuration:(UInt32)maxDuration { +- (instancetype)initWithSamplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration { + return [self initWithSamplingRate:samplingRate bitsPerSample:bitsPerSample audioType:audioType maxDuration:maxDuration audioDataHandler:nil]; +} + +- (instancetype)initWithSamplingRate:(SDLSamplingRate)samplingRate bitsPerSample:(SDLBitsPerSample)bitsPerSample audioType:(SDLAudioType)audioType maxDuration:(UInt32)maxDuration audioDataHandler:(nullable SDLAudioPassThruHandler)audioDataHandler { self = [self init]; if (!self) { return nil; @@ -50,130 +50,77 @@ - (instancetype)initWithSamplingRate:(SDLSamplingRate *)samplingRate bitsPerSamp self.bitsPerSample = bitsPerSample; self.audioType = audioType; self.maxDuration = @(maxDuration); - + self.audioDataHandler = audioDataHandler; + return self; } + -- (void)setInitialPrompt:(NSMutableArray *)initialPrompt { - if (initialPrompt != nil) { - [parameters setObject:initialPrompt forKey:NAMES_initialPrompt]; - } else { - [parameters removeObjectForKey:NAMES_initialPrompt]; - } +- (void)setInitialPrompt:(nullable NSArray *)initialPrompt { + [parameters sdl_setObject:initialPrompt forName:SDLNameInitialPrompt]; } -- (NSMutableArray *)initialPrompt { - NSMutableArray *array = [parameters objectForKey:NAMES_initialPrompt]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTTSChunk.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLTTSChunk alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (nullable NSArray *)initialPrompt { + return [parameters sdl_objectsForName:SDLNameInitialPrompt ofClass:SDLTTSChunk.class]; } -- (void)setAudioPassThruDisplayText1:(NSString *)audioPassThruDisplayText1 { - if (audioPassThruDisplayText1 != nil) { - [parameters setObject:audioPassThruDisplayText1 forKey:NAMES_audioPassThruDisplayText1]; - } else { - [parameters removeObjectForKey:NAMES_audioPassThruDisplayText1]; - } +- (void)setAudioPassThruDisplayText1:(nullable NSString *)audioPassThruDisplayText1 { + [parameters sdl_setObject:audioPassThruDisplayText1 forName:SDLNameAudioPassThruDisplayText1]; } -- (NSString *)audioPassThruDisplayText1 { - return [parameters objectForKey:NAMES_audioPassThruDisplayText1]; +- (nullable NSString *)audioPassThruDisplayText1 { + return [parameters sdl_objectForName:SDLNameAudioPassThruDisplayText1]; } -- (void)setAudioPassThruDisplayText2:(NSString *)audioPassThruDisplayText2 { - if (audioPassThruDisplayText2 != nil) { - [parameters setObject:audioPassThruDisplayText2 forKey:NAMES_audioPassThruDisplayText2]; - } else { - [parameters removeObjectForKey:NAMES_audioPassThruDisplayText2]; - } +- (void)setAudioPassThruDisplayText2:(nullable NSString *)audioPassThruDisplayText2 { + [parameters sdl_setObject:audioPassThruDisplayText2 forName:SDLNameAudioPassThruDisplayText2]; } -- (NSString *)audioPassThruDisplayText2 { - return [parameters objectForKey:NAMES_audioPassThruDisplayText2]; +- (nullable NSString *)audioPassThruDisplayText2 { + return [parameters sdl_objectForName:SDLNameAudioPassThruDisplayText2]; } -- (void)setSamplingRate:(SDLSamplingRate *)samplingRate { - if (samplingRate != nil) { - [parameters setObject:samplingRate forKey:NAMES_samplingRate]; - } else { - [parameters removeObjectForKey:NAMES_samplingRate]; - } +- (void)setSamplingRate:(SDLSamplingRate)samplingRate { + [parameters sdl_setObject:samplingRate forName:SDLNameSamplingRate]; } -- (SDLSamplingRate *)samplingRate { - NSObject *obj = [parameters objectForKey:NAMES_samplingRate]; - if (obj == nil || [obj isKindOfClass:SDLSamplingRate.class]) { - return (SDLSamplingRate *)obj; - } else { - return [SDLSamplingRate valueOf:(NSString *)obj]; - } +- (SDLSamplingRate)samplingRate { + NSObject *obj = [parameters sdl_objectForName:SDLNameSamplingRate]; + return (SDLSamplingRate )obj; } -- (void)setMaxDuration:(NSNumber *)maxDuration { - if (maxDuration != nil) { - [parameters setObject:maxDuration forKey:NAMES_maxDuration]; - } else { - [parameters removeObjectForKey:NAMES_maxDuration]; - } +- (void)setMaxDuration:(NSNumber *)maxDuration { + [parameters sdl_setObject:maxDuration forName:SDLNameMaxDuration]; } -- (NSNumber *)maxDuration { - return [parameters objectForKey:NAMES_maxDuration]; +- (NSNumber *)maxDuration { + return [parameters sdl_objectForName:SDLNameMaxDuration]; } -- (void)setBitsPerSample:(SDLBitsPerSample *)bitsPerSample { - if (bitsPerSample != nil) { - [parameters setObject:bitsPerSample forKey:NAMES_bitsPerSample]; - } else { - [parameters removeObjectForKey:NAMES_bitsPerSample]; - } +- (void)setBitsPerSample:(SDLBitsPerSample)bitsPerSample { + [parameters sdl_setObject:bitsPerSample forName:SDLNameBitsPerSample]; } -- (SDLBitsPerSample *)bitsPerSample { - NSObject *obj = [parameters objectForKey:NAMES_bitsPerSample]; - if (obj == nil || [obj isKindOfClass:SDLBitsPerSample.class]) { - return (SDLBitsPerSample *)obj; - } else { - return [SDLBitsPerSample valueOf:(NSString *)obj]; - } +- (SDLBitsPerSample)bitsPerSample { + return [parameters sdl_objectForName:SDLNameBitsPerSample]; } -- (void)setAudioType:(SDLAudioType *)audioType { - if (audioType != nil) { - [parameters setObject:audioType forKey:NAMES_audioType]; - } else { - [parameters removeObjectForKey:NAMES_audioType]; - } +- (void)setAudioType:(SDLAudioType)audioType { + [parameters sdl_setObject:audioType forName:SDLNameAudioType]; } -- (SDLAudioType *)audioType { - NSObject *obj = [parameters objectForKey:NAMES_audioType]; - if (obj == nil || [obj isKindOfClass:SDLAudioType.class]) { - return (SDLAudioType *)obj; - } else { - return [SDLAudioType valueOf:(NSString *)obj]; - } +- (SDLAudioType)audioType { + return [parameters sdl_objectForName:SDLNameAudioType]; } -- (void)setMuteAudio:(NSNumber *)muteAudio { - if (muteAudio != nil) { - [parameters setObject:muteAudio forKey:NAMES_muteAudio]; - } else { - [parameters removeObjectForKey:NAMES_muteAudio]; - } +- (void)setMuteAudio:(nullable NSNumber *)muteAudio { + [parameters sdl_setObject:muteAudio forName:SDLNameMuteAudio]; } -- (NSNumber *)muteAudio { - return [parameters objectForKey:NAMES_muteAudio]; +- (nullable NSNumber *)muteAudio { + return [parameters sdl_objectForName:SDLNameMuteAudio]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPerformAudioPassThruResponse.h b/SmartDeviceLink/SDLPerformAudioPassThruResponse.h index 3d2835114..853a566bc 100644 --- a/SmartDeviceLink/SDLPerformAudioPassThruResponse.h +++ b/SmartDeviceLink/SDLPerformAudioPassThruResponse.h @@ -9,17 +9,11 @@ * * Since SmartDeviceLink 2.0 */ -@interface SDLPerformAudioPassThruResponse : SDLRPCResponse { -} -/** - * @abstract Constructs a new SDLPerformAudioPassThruResponse object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLPerformAudioPassThruResponse object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLPerformAudioPassThruResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPerformAudioPassThruResponse.m b/SmartDeviceLink/SDLPerformAudioPassThruResponse.m index ed8a1e614..31a5c5a57 100644 --- a/SmartDeviceLink/SDLPerformAudioPassThruResponse.m +++ b/SmartDeviceLink/SDLPerformAudioPassThruResponse.m @@ -4,20 +4,19 @@ #import "SDLPerformAudioPassThruResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLPerformAudioPassThruResponse - (instancetype)init { - if (self = [super initWithName:NAMES_PerformAudioPassThru]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNamePerformAudioPassThru]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPerformInteraction.h b/SmartDeviceLink/SDLPerformInteraction.h index 7200aa039..c8d27e22a 100644 --- a/SmartDeviceLink/SDLPerformInteraction.h +++ b/SmartDeviceLink/SDLPerformInteraction.h @@ -4,12 +4,12 @@ #import "SDLRPCRequest.h" -@class SDLInteractionMode; -@class SDLLayoutMode; +#import "SDLInteractionMode.h" +#import "SDLLayoutMode.h" + @class SDLTTSChunk; @class SDLVRHelpItem; - /** * Performs an application-initiated interaction in which the user can select a * {@linkplain Choice} from among the specified Choice Sets. For instance, an @@ -25,35 +25,26 @@ * Since SmartDeviceLink 1.0
    * See SDLCreateInteractionChoiceSet SDLDeleteInteractionChoiceSet */ -@interface SDLPerformInteraction : SDLRPCRequest { -} -/** - * @abstract Constructs a new SDLPerformInteraction object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLPerformInteraction object indicated by the NSMutableDictionary - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLPerformInteraction : SDLRPCRequest - (instancetype)initWithInteractionChoiceSetId:(UInt16)interactionChoiceSetId; - (instancetype)initWithInteractionChoiceSetIdList:(NSArray *> *)interactionChoiceSetIdList; -- (instancetype)initWithInitialPrompt:(NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(UInt16)interactionChoiceSetID; +- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(UInt16)interactionChoiceSetID; -- (instancetype)initWithInitialPrompt:(NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(UInt16)interactionChoiceSetID vrHelp:(NSArray *)vrHelp; +- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(UInt16)interactionChoiceSetID vrHelp:(nullable NSArray *)vrHelp; -- (instancetype)initWithInitialPrompt:(NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(NSString *)helpPrompt timeoutPrompt:(NSString *)timeoutPrompt interactionMode:(SDLInteractionMode *)interactionMode timeout:(UInt32)timeout; +- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(nullable NSString *)helpPrompt timeoutPrompt:(nullable NSString *)timeoutPrompt interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout; -- (instancetype)initWithInitialPrompt:(NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(NSString *)helpPrompt timeoutPrompt:(NSString *)timeoutPrompt interactionMode:(SDLInteractionMode *)interactionMode timeout:(UInt32)timeout vrHelp:(NSArray *)vrHelp; +- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(nullable NSString *)helpPrompt timeoutPrompt:(nullable NSString *)timeoutPrompt interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray *)vrHelp; -// TODO: (Alex M.)[2016-12-1] Add missing generic -- (instancetype)initWithInitialChunks:(NSArray *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpChunks:(NSArray *)helpChunks timeoutChunks:(NSArray *)timeoutChunks interactionMode:(SDLInteractionMode *)interactionMode timeout:(UInt32)timeout vrHelp:(NSArray *)vrHelp; +- (instancetype)initWithInitialChunks:(nullable NSArray *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpChunks:(nullable NSArray *)helpChunks timeoutChunks:(nullable NSArray *)timeoutChunks interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray *)vrHelp; -- (instancetype)initWithInitialChunks:(NSArray *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpChunks:(NSArray *)helpChunks timeoutChunks:(NSArray *)timeoutChunks interactionMode:(SDLInteractionMode *)interactionMode timeout:(UInt32)timeout vrHelp:(NSArray *)vrHelp interactionLayout:(SDLLayoutMode *)layout; +- (instancetype)initWithInitialChunks:(nullable NSArray *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpChunks:(nullable NSArray *)helpChunks timeoutChunks:(nullable NSArray *)timeoutChunks interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray *)vrHelp interactionLayout:(nullable SDLLayoutMode)layout; /** * @abstract The Text that Displayed when the interaction begins. This text may @@ -61,44 +52,46 @@ * displayed on first line of multiline display, and is centered. If text * does not fit on line, it will be truncated */ -@property (strong) NSString *initialText; +@property (strong, nonatomic) NSString *initialText; /** * @abstract An array of one or more TTSChunks that, taken together, specify * what is to be spoken to the user at the start of an interaction */ -@property (strong) NSMutableArray *initialPrompt; +@property (nullable, strong, nonatomic) NSArray *initialPrompt; /** * @abstract The Indicates mode that indicate how user selects interaction * choice. User can choose either by voice (VR_ONLY), by visual selection * from the menu (MANUAL_ONLY), or by either mode (BOTH) */ -@property (strong) SDLInteractionMode *interactionMode; +@property (strong, nonatomic) SDLInteractionMode interactionMode; /** * @abstract A Vector value representing an Array of one or more Choice * Set IDs */ -@property (strong) NSMutableArray *interactionChoiceSetIDList; +@property (strong, nonatomic) NSArray *> *interactionChoiceSetIDList; /** * @abstract A Vector which taken together, specify the help phrase to * be spoken when the user says "help" during the VR session */ -@property (strong) NSMutableArray *helpPrompt; +@property (nullable, strong, nonatomic) NSArray *helpPrompt; /** * @abstract An array of TTSChunks which, taken together, specify the phrase to * be spoken when the listen times out during the VR session */ -@property (strong) NSMutableArray *timeoutPrompt; +@property (nullable, strong, nonatomic) NSArray *timeoutPrompt; /** * @abstract An Integer value representing the amount of time, in milliseconds, * SDL will wait for the user to make a choice (VR or Menu) */ -@property (strong) NSNumber *timeout; +@property (nullable, strong, nonatomic) NSNumber *timeout; /** * @abstract A Voice recognition Help, which is a suggested VR Help Items to * display on-screen during Perform Interaction * @since SmartDeviceLink 2.0 */ -@property (strong) NSMutableArray *vrHelp; -@property (strong) SDLLayoutMode *interactionLayout; +@property (nullable, strong, nonatomic) NSArray *vrHelp; +@property (nullable, strong, nonatomic) SDLLayoutMode interactionLayout; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPerformInteraction.m b/SmartDeviceLink/SDLPerformInteraction.m index 687b13cc4..c4faeda37 100644 --- a/SmartDeviceLink/SDLPerformInteraction.m +++ b/SmartDeviceLink/SDLPerformInteraction.m @@ -4,25 +4,17 @@ #import "SDLPerformInteraction.h" -#import "SDLInteractionMode.h" -#import "SDLLayoutMode.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" #import "SDLTTSChunk.h" -#import "SDLTTSChunkFactory.h" #import "SDLVrHelpItem.h" -static UInt16 const SDLDefaultTimeout = 10000; +NS_ASSUME_NONNULL_BEGIN @implementation SDLPerformInteraction - (instancetype)init { - if (self = [super initWithName:NAMES_PerformInteraction]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNamePerformInteraction]) { } return self; } @@ -31,30 +23,45 @@ - (instancetype)initWithInteractionChoiceSetId:(UInt16)interactionChoiceSetId { return [self initWithInteractionChoiceSetIdList:@[@(interactionChoiceSetId)]]; } -- (instancetype)initWithInitialPrompt:(NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(UInt16)interactionChoiceSetID { - return [self initWithInitialPrompt:initialPrompt initialText:initialText interactionChoiceSetID:interactionChoiceSetID vrHelp:nil]; +- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(UInt16)interactionChoiceSetID { + self = [self initWithInteractionChoiceSetId:interactionChoiceSetID]; + if (!self) { + return nil; + } + + self.initialPrompt = [SDLTTSChunk textChunksFromString:initialPrompt]; + self.initialText = initialText; + + return self; } -- (instancetype)initWithInitialPrompt:(NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(UInt16)interactionChoiceSetID vrHelp:(NSArray *)vrHelp { - return [self initWithInitialPrompt:initialPrompt initialText:initialText interactionChoiceSetIDList:@[@(interactionChoiceSetID)] helpPrompt:nil timeoutPrompt:nil interactionMode:nil timeout:SDLDefaultTimeout vrHelp:vrHelp]; +- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(UInt16)interactionChoiceSetID vrHelp:(nullable NSArray *)vrHelp { + self = [self initWithInitialPrompt:initialPrompt initialText:initialText interactionChoiceSetID:interactionChoiceSetID]; + if (!self) { + return nil; + } + + self.vrHelp = [vrHelp mutableCopy]; + + return self; } -- (instancetype)initWithInitialPrompt:(NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(NSString *)helpPrompt timeoutPrompt:(NSString *)timeoutPrompt interactionMode:(SDLInteractionMode *)interactionMode timeout:(UInt32)timeout { +- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(nullable NSString *)helpPrompt timeoutPrompt:(nullable NSString *)timeoutPrompt interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout { return [self initWithInitialPrompt:initialPrompt initialText:initialText interactionChoiceSetIDList:interactionChoiceSetIDList helpPrompt:helpPrompt timeoutPrompt:timeoutPrompt interactionMode:interactionMode timeout:timeout vrHelp:nil]; } -- (instancetype)initWithInitialPrompt:(NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(NSString *)helpPrompt timeoutPrompt:(NSString *)timeoutPrompt interactionMode:(SDLInteractionMode *)interactionMode timeout:(UInt32)timeout vrHelp:(NSArray *)vrHelp { - NSMutableArray *initialChunks = [SDLTTSChunk textChunksFromString:initialPrompt]; - NSMutableArray *helpChunks = [SDLTTSChunk textChunksFromString:helpPrompt]; - NSMutableArray *timeoutChunks = [SDLTTSChunk textChunksFromString:timeoutPrompt]; +- (instancetype)initWithInitialPrompt:(nullable NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpPrompt:(nullable NSString *)helpPrompt timeoutPrompt:(nullable NSString *)timeoutPrompt interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray *)vrHelp { + NSArray *initialChunks = [SDLTTSChunk textChunksFromString:initialPrompt]; + NSArray *helpChunks = [SDLTTSChunk textChunksFromString:helpPrompt]; + NSArray *timeoutChunks = [SDLTTSChunk textChunksFromString:timeoutPrompt]; return [self initWithInitialChunks:initialChunks initialText:initialText interactionChoiceSetIDList:interactionChoiceSetIDList helpChunks:helpChunks timeoutChunks:timeoutChunks interactionMode:interactionMode timeout:timeout vrHelp:vrHelp]; } -- (instancetype)initWithInitialChunks:(NSArray *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpChunks:(NSArray *)helpChunks timeoutChunks:(NSArray *)timeoutChunks interactionMode:(SDLInteractionMode *)interactionMode timeout:(UInt32)timeout vrHelp:(NSArray *)vrHelp { +- (instancetype)initWithInitialChunks:(nullable NSArray *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpChunks:(nullable NSArray *)helpChunks timeoutChunks:(nullable NSArray *)timeoutChunks interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray *)vrHelp { return [self initWithInitialChunks:initialChunks initialText:initialText interactionChoiceSetIDList:interactionChoiceSetIDList helpChunks:helpChunks timeoutChunks:timeoutChunks interactionMode:interactionMode timeout:timeout vrHelp:vrHelp interactionLayout:nil]; } -- (instancetype)initWithInitialChunks:(NSArray *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpChunks:(NSArray *)helpChunks timeoutChunks:(NSArray *)timeoutChunks interactionMode:(SDLInteractionMode *)interactionMode timeout:(UInt32)timeout vrHelp:(NSArray *)vrHelp interactionLayout:(SDLLayoutMode *)layout { +- (instancetype)initWithInitialChunks:(nullable NSArray *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList helpChunks:(nullable NSArray *)helpChunks timeoutChunks:(nullable NSArray *)timeoutChunks interactionMode:(SDLInteractionMode)interactionMode timeout:(UInt32)timeout vrHelp:(nullable NSArray *)vrHelp interactionLayout:(nullable SDLLayoutMode)layout { self = [self initWithInteractionChoiceSetIdList:interactionChoiceSetIDList]; if (!self) { return nil; @@ -72,7 +79,7 @@ - (instancetype)initWithInitialChunks:(NSArray *)initialChunks in return self; } -- (instancetype)initWithInteractionChoiceSetIdList:(NSArray *)interactionChoiceSetIdList { +- (instancetype)initWithInteractionChoiceSetIdList:(NSArray *> *)interactionChoiceSetIdList { self = [self init]; if (!self) { return nil; @@ -84,165 +91,77 @@ - (instancetype)initWithInteractionChoiceSetIdList:(NSArray *)interactionChoiceS } - (void)setInitialText:(NSString *)initialText { - if (initialText != nil) { - [parameters setObject:initialText forKey:NAMES_initialText]; - } else { - [parameters removeObjectForKey:NAMES_initialText]; - } + [parameters sdl_setObject:initialText forName:SDLNameInitialText]; } - (NSString *)initialText { - return [parameters objectForKey:NAMES_initialText]; + return [parameters sdl_objectForName:SDLNameInitialText]; } -- (void)setInitialPrompt:(NSMutableArray *)initialPrompt { - if (initialPrompt != nil) { - [parameters setObject:initialPrompt forKey:NAMES_initialPrompt]; - } else { - [parameters removeObjectForKey:NAMES_initialPrompt]; - } +- (void)setInitialPrompt:(nullable NSArray *)initialPrompt { + [parameters sdl_setObject:initialPrompt forName:SDLNameInitialPrompt]; } -- (NSMutableArray *)initialPrompt { - NSMutableArray *array = [parameters objectForKey:NAMES_initialPrompt]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTTSChunk.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLTTSChunk alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (nullable NSArray *)initialPrompt { + return [parameters sdl_objectsForName:SDLNameInitialPrompt ofClass:SDLTTSChunk.class]; } -- (void)setInteractionMode:(SDLInteractionMode *)interactionMode { - if (interactionMode != nil) { - [parameters setObject:interactionMode forKey:NAMES_interactionMode]; - } else { - [parameters removeObjectForKey:NAMES_interactionMode]; - } +- (void)setInteractionMode:(SDLInteractionMode)interactionMode { + [parameters sdl_setObject:interactionMode forName:SDLNameInteractionMode]; } -- (SDLInteractionMode *)interactionMode { - NSObject *obj = [parameters objectForKey:NAMES_interactionMode]; - if (obj == nil || [obj isKindOfClass:SDLInteractionMode.class]) { - return (SDLInteractionMode *)obj; - } else { - return [SDLInteractionMode valueOf:(NSString *)obj]; - } +- (SDLInteractionMode)interactionMode { + return [parameters sdl_objectForName:SDLNameInteractionMode]; } -- (void)setInteractionChoiceSetIDList:(NSMutableArray *)interactionChoiceSetIDList { - if (interactionChoiceSetIDList != nil) { - [parameters setObject:interactionChoiceSetIDList forKey:NAMES_interactionChoiceSetIDList]; - } else { - [parameters removeObjectForKey:NAMES_interactionChoiceSetIDList]; - } +- (void)setInteractionChoiceSetIDList:(NSArray *> *)interactionChoiceSetIDList { + [parameters sdl_setObject:interactionChoiceSetIDList forName:SDLNameInteractionChoiceSetIdList]; } -- (NSMutableArray *)interactionChoiceSetIDList { - return [parameters objectForKey:NAMES_interactionChoiceSetIDList]; +- (NSArray *> *)interactionChoiceSetIDList { + return [parameters sdl_objectForName:SDLNameInteractionChoiceSetIdList]; } -- (void)setHelpPrompt:(NSMutableArray *)helpPrompt { - if (helpPrompt != nil) { - [parameters setObject:helpPrompt forKey:NAMES_helpPrompt]; - } else { - [parameters removeObjectForKey:NAMES_helpPrompt]; - } +- (void)setHelpPrompt:(nullable NSArray *)helpPrompt { + [parameters sdl_setObject:helpPrompt forName:SDLNameHelpPrompt]; } -- (NSMutableArray *)helpPrompt { - NSMutableArray *array = [parameters objectForKey:NAMES_helpPrompt]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTTSChunk.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLTTSChunk alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (nullable NSArray *)helpPrompt { + return [parameters sdl_objectsForName:SDLNameHelpPrompt ofClass:SDLTTSChunk.class]; } -- (void)setTimeoutPrompt:(NSMutableArray *)timeoutPrompt { - if (timeoutPrompt != nil) { - [parameters setObject:timeoutPrompt forKey:NAMES_timeoutPrompt]; - } else { - [parameters removeObjectForKey:NAMES_timeoutPrompt]; - } +- (void)setTimeoutPrompt:(nullable NSArray *)timeoutPrompt { + [parameters sdl_setObject:timeoutPrompt forName:SDLNameTimeoutPrompt]; } -- (NSMutableArray *)timeoutPrompt { - NSMutableArray *array = [parameters objectForKey:NAMES_timeoutPrompt]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTTSChunk.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLTTSChunk alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (nullable NSArray *)timeoutPrompt { + return [parameters sdl_objectsForName:SDLNameTimeoutPrompt ofClass:SDLTTSChunk.class]; } -- (void)setTimeout:(NSNumber *)timeout { - if (timeout != nil) { - [parameters setObject:timeout forKey:NAMES_timeout]; - } else { - [parameters removeObjectForKey:NAMES_timeout]; - } +- (void)setTimeout:(nullable NSNumber *)timeout { + [parameters sdl_setObject:timeout forName:SDLNameTimeout]; } -- (NSNumber *)timeout { - return [parameters objectForKey:NAMES_timeout]; +- (nullable NSNumber *)timeout { + return [parameters sdl_objectForName:SDLNameTimeout]; } -- (void)setVrHelp:(NSMutableArray *)vrHelp { - if (vrHelp != nil) { - [parameters setObject:vrHelp forKey:NAMES_vrHelp]; - } else { - [parameters removeObjectForKey:NAMES_vrHelp]; - } +- (void)setVrHelp:(nullable NSArray *)vrHelp { + [parameters sdl_setObject:vrHelp forName:SDLNameVRHelp]; } -- (NSMutableArray *)vrHelp { - NSMutableArray *array = [parameters objectForKey:NAMES_vrHelp]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLVRHelpItem.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLVRHelpItem alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (nullable NSArray *)vrHelp { + return [parameters sdl_objectsForName:SDLNameVRHelp ofClass:SDLVRHelpItem.class]; } -- (void)setInteractionLayout:(SDLLayoutMode *)interactionLayout { - if (interactionLayout != nil) { - [parameters setObject:interactionLayout forKey:NAMES_interactionLayout]; - } else { - [parameters removeObjectForKey:NAMES_interactionLayout]; - } +- (void)setInteractionLayout:(nullable SDLLayoutMode)interactionLayout { + [parameters sdl_setObject:interactionLayout forName:SDLNameInteractionLayout]; } -- (SDLLayoutMode *)interactionLayout { - NSObject *obj = [parameters objectForKey:NAMES_interactionLayout]; - if (obj == nil || [obj isKindOfClass:SDLLayoutMode.class]) { - return (SDLLayoutMode *)obj; - } else { - return [SDLLayoutMode valueOf:(NSString *)obj]; - } +- (nullable SDLLayoutMode)interactionLayout { + return [parameters sdl_objectForName:SDLNameInteractionLayout]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPerformInteractionResponse.h b/SmartDeviceLink/SDLPerformInteractionResponse.h index b589f9492..587b0e955 100644 --- a/SmartDeviceLink/SDLPerformInteractionResponse.h +++ b/SmartDeviceLink/SDLPerformInteractionResponse.h @@ -4,27 +4,17 @@ #import "SDLRPCResponse.h" -@class SDLTriggerSource; - +#import "SDLTriggerSource.h" /** * PerformInteraction Response is sent, when SDLPerformInteraction has been called * * @since SDL 1.0 */ -@interface SDLPerformInteractionResponse : SDLRPCResponse { -} -/** - * @abstract Constructs a new SDLPerformInteractionResponse object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a new SDLPerformInteractionResponse object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLPerformInteractionResponse : SDLRPCResponse /** * @abstract ID of the choice that was selected in response to PerformInteraction. @@ -33,7 +23,7 @@ * * Optional, Integer, 0 - 2,000,000,000 */ -@property (strong) NSNumber *choiceID; +@property (nullable, strong, nonatomic) NSNumber *choiceID; /** * @abstract Manually entered text selection, e.g. through keyboard @@ -42,14 +32,16 @@ * * Optional, Max length 500 chars */ -@property (strong) NSString *manualTextEntry; +@property (nullable, strong, nonatomic) NSString *manualTextEntry; /** * @abstract A *SDLTriggerSource* object which will be shown in the HMI * * @discussion Only is valid if resultCode is SUCCESS. */ -@property (strong) SDLTriggerSource *triggerSource; +@property (nullable, strong, nonatomic) SDLTriggerSource triggerSource; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPerformInteractionResponse.m b/SmartDeviceLink/SDLPerformInteractionResponse.m index ae1c5e14c..085c844d5 100644 --- a/SmartDeviceLink/SDLPerformInteractionResponse.m +++ b/SmartDeviceLink/SDLPerformInteractionResponse.m @@ -4,63 +4,43 @@ #import "SDLPerformInteractionResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -#import "SDLTriggerSource.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLPerformInteractionResponse - (instancetype)init { - if (self = [super initWithName:NAMES_PerformInteraction]) { + if (self = [super initWithName:SDLNamePerformInteraction]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (void)setChoiceID:(NSNumber *)choiceID { - if (choiceID != nil) { - [parameters setObject:choiceID forKey:NAMES_choiceID]; - } else { - [parameters removeObjectForKey:NAMES_choiceID]; - } +- (void)setChoiceID:(nullable NSNumber *)choiceID { + [parameters sdl_setObject:choiceID forName:SDLNameChoiceId]; } -- (NSNumber *)choiceID { - return [parameters objectForKey:NAMES_choiceID]; +- (nullable NSNumber *)choiceID { + return [parameters sdl_objectForName:SDLNameChoiceId]; } -- (void)setManualTextEntry:(NSString *)manualTextEntry { - if (manualTextEntry != nil) { - [parameters setObject:manualTextEntry forKey:NAMES_manualTextEntry]; - } else { - [parameters removeObjectForKey:NAMES_manualTextEntry]; - } +- (void)setManualTextEntry:(nullable NSString *)manualTextEntry { + [parameters sdl_setObject:manualTextEntry forName:SDLNameManualTextEntry]; } -- (NSString *)manualTextEntry { - return [parameters objectForKey:NAMES_manualTextEntry]; +- (nullable NSString *)manualTextEntry { + return [parameters sdl_objectForName:SDLNameManualTextEntry]; } -- (void)setTriggerSource:(SDLTriggerSource *)triggerSource { - if (triggerSource != nil) { - [parameters setObject:triggerSource forKey:NAMES_triggerSource]; - } else { - [parameters removeObjectForKey:NAMES_triggerSource]; - } +- (void)setTriggerSource:(nullable SDLTriggerSource)triggerSource { + [parameters sdl_setObject:triggerSource forName:SDLNameTriggerSource]; } -- (SDLTriggerSource *)triggerSource { - NSObject *obj = [parameters objectForKey:NAMES_triggerSource]; - if (obj == nil || [obj isKindOfClass:SDLTriggerSource.class]) { - return (SDLTriggerSource *)obj; - } else { - return [SDLTriggerSource valueOf:(NSString *)obj]; - } +- (nullable SDLTriggerSource)triggerSource { + return [parameters sdl_objectForName:SDLNameTriggerSource]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPermissionFilter.h b/SmartDeviceLink/SDLPermissionFilter.h index 1a89cb876..f31666bec 100644 --- a/SmartDeviceLink/SDLPermissionFilter.h +++ b/SmartDeviceLink/SDLPermissionFilter.h @@ -55,7 +55,7 @@ NS_ASSUME_NONNULL_BEGIN * * @return An instance of `SDLPermissionFilter`. */ -+ (instancetype)filterWithRPCNames:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType observer:(SDLPermissionsChangedHandler)handler; ++ (instancetype)filterWithRPCNames:(NSArray *)rpcNames groupType:(SDLPermissionGroupType)groupType observer:(SDLPermissionsChangedHandler)handler NS_SWIFT_UNAVAILABLE("Use the initializer"); /** * Whether the current filter is equivalent with another filter or not. diff --git a/SmartDeviceLink/SDLPermissionItem.h b/SmartDeviceLink/SDLPermissionItem.h index a0fe0d580..ea7eb7154 100644 --- a/SmartDeviceLink/SDLPermissionItem.h +++ b/SmartDeviceLink/SDLPermissionItem.h @@ -6,15 +6,14 @@ @class SDLHMIPermissions; @class SDLParameterPermissions; +NS_ASSUME_NONNULL_BEGIN -@interface SDLPermissionItem : SDLRPCStruct { -} +@interface SDLPermissionItem : SDLRPCStruct -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -@property (strong) NSString *rpcName; -@property (strong) SDLHMIPermissions *hmiPermissions; -@property (strong) SDLParameterPermissions *parameterPermissions; +@property (strong, nonatomic) NSString *rpcName; +@property (strong, nonatomic) SDLHMIPermissions *hmiPermissions; +@property (strong, nonatomic) SDLParameterPermissions *parameterPermissions; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPermissionItem.m b/SmartDeviceLink/SDLPermissionItem.m index 560094c2e..01cdf127b 100644 --- a/SmartDeviceLink/SDLPermissionItem.m +++ b/SmartDeviceLink/SDLPermissionItem.m @@ -3,69 +3,39 @@ #import "SDLPermissionItem.h" +#import "NSMutableDictionary+Store.h" #import "SDLHMIPermissions.h" #import "SDLNames.h" #import "SDLParameterPermissions.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLPermissionItem -- (instancetype)init { - if (self = [super init]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - - (void)setRpcName:(NSString *)rpcName { - if (rpcName != nil) { - [store setObject:rpcName forKey:NAMES_rpcName]; - } else { - [store removeObjectForKey:NAMES_rpcName]; - } + [store sdl_setObject:rpcName forName:SDLNameRPCName]; } - (NSString *)rpcName { - return [store objectForKey:NAMES_rpcName]; + return [store sdl_objectForName:SDLNameRPCName]; } - (void)setHmiPermissions:(SDLHMIPermissions *)hmiPermissions { - if (hmiPermissions != nil) { - [store setObject:hmiPermissions forKey:NAMES_hmiPermissions]; - } else { - [store removeObjectForKey:NAMES_hmiPermissions]; - } + [store sdl_setObject:hmiPermissions forName:SDLNameHMIPermissions]; } - (SDLHMIPermissions *)hmiPermissions { - NSObject *obj = [store objectForKey:NAMES_hmiPermissions]; - if (obj == nil || [obj isKindOfClass:SDLHMIPermissions.class]) { - return (SDLHMIPermissions *)obj; - } else { - return [[SDLHMIPermissions alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } + return [store sdl_objectForName:SDLNameHMIPermissions ofClass:SDLHMIPermissions.class]; } - (void)setParameterPermissions:(SDLParameterPermissions *)parameterPermissions { - if (parameterPermissions != nil) { - [store setObject:parameterPermissions forKey:NAMES_parameterPermissions]; - } else { - [store removeObjectForKey:NAMES_parameterPermissions]; - } + [store sdl_setObject:parameterPermissions forName:SDLNameParameterPermissions]; } - (SDLParameterPermissions *)parameterPermissions { - NSObject *obj = [store objectForKey:NAMES_parameterPermissions]; - if (obj == nil || [obj isKindOfClass:SDLParameterPermissions.class]) { - return (SDLParameterPermissions *)obj; - } else { - return [[SDLParameterPermissions alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } + return [store sdl_objectForName:SDLNameParameterPermissions ofClass:SDLParameterPermissions.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPermissionManager.h b/SmartDeviceLink/SDLPermissionManager.h index 5aea0c81d..1fcd2322a 100644 --- a/SmartDeviceLink/SDLPermissionManager.h +++ b/SmartDeviceLink/SDLPermissionManager.h @@ -8,9 +8,9 @@ #import +#import "SDLHMILevel.h" #import "SDLPermissionConstants.h" -@class SDLHMILevel; @class SDLPermissionItem; diff --git a/SmartDeviceLink/SDLPermissionManager.m b/SmartDeviceLink/SDLPermissionManager.m index af8df0ce9..b37ca5b5b 100644 --- a/SmartDeviceLink/SDLPermissionManager.m +++ b/SmartDeviceLink/SDLPermissionManager.m @@ -8,7 +8,6 @@ #import "SDLPermissionManager.h" -#import "SDLHMILevel.h" #import "SDLHMIPermissions.h" #import "SDLNotificationConstants.h" #import "SDLOnHMIStatus.h" @@ -25,7 +24,7 @@ @interface SDLPermissionManager () @property (strong, nonatomic) NSMutableDictionary *permissions; @property (strong, nonatomic) NSMutableArray *filters; -@property (copy, nonatomic, nullable) SDLHMILevel *currentHMILevel; +@property (copy, nonatomic, nullable) SDLHMILevel currentHMILevel; @end @@ -79,7 +78,7 @@ - (SDLPermissionGroupStatus)groupStatusOfRPCs:(NSArray *)r return [self.class sdl_groupStatusOfRPCs:rpcNames withPermissions:[self.permissions copy] hmiLevel:self.currentHMILevel]; } -+ (SDLPermissionGroupStatus)sdl_groupStatusOfRPCs:(NSArray *)rpcNames withPermissions:(NSDictionary *)permissions hmiLevel:(SDLHMILevel *)hmiLevel { ++ (SDLPermissionGroupStatus)sdl_groupStatusOfRPCs:(NSArray *)rpcNames withPermissions:(NSDictionary *)permissions hmiLevel:(SDLHMILevel)hmiLevel { // If we don't have an HMI level, then just say everything is disallowed if (hmiLevel == nil) { return SDLPermissionGroupStatusUnknown; @@ -175,13 +174,12 @@ - (void)removeObserverForIdentifier:(SDLPermissionObserverIdentifier)identifier #pragma mark - SDL Notification Observers -- (void)sdl_permissionsDidChange:(NSNotification *)notification { - NSAssert([notification.userInfo[SDLNotificationUserInfoObject] isKindOfClass:[SDLOnPermissionsChange class]], @"A notification was sent with an unanticipated object"); - if (![notification.userInfo[SDLNotificationUserInfoObject] isKindOfClass:[SDLOnPermissionsChange class]]) { +- (void)sdl_permissionsDidChange:(SDLRPCNotificationNotification *)notification { + if (![notification isNotificationMemberOfClass:[SDLOnPermissionsChange class]]) { return; } - SDLOnPermissionsChange *onPermissionChange = notification.userInfo[SDLNotificationUserInfoObject]; + SDLOnPermissionsChange *onPermissionChange = notification.notification; NSArray *newPermissionItems = [onPermissionChange.permissionItem copy]; NSArray *currentFilters = [self.filters copy]; @@ -220,14 +218,13 @@ - (void)sdl_permissionsDidChange:(NSNotification *)notification { } - (void)sdl_hmiLevelDidChange:(SDLRPCNotificationNotification *)notification { - NSAssert([notification.notification isKindOfClass:[SDLOnHMIStatus class]], @"A notification was sent with an unanticipated object"); - if (![notification.notification isKindOfClass:[SDLOnHMIStatus class]]) { + if (![notification isNotificationMemberOfClass:[SDLOnHMIStatus class]]) { return; } - SDLOnHMIStatus *hmiStatus = notification.userInfo[SDLNotificationUserInfoObject]; + SDLOnHMIStatus *hmiStatus = notification.notification; - SDLHMILevel *oldHMILevel = [self.currentHMILevel copy]; + SDLHMILevel oldHMILevel = [self.currentHMILevel copy]; self.currentHMILevel = hmiStatus.hmiLevel; NSArray *filters = [self.filters copy]; @@ -242,7 +239,7 @@ - (void)sdl_hmiLevelDidChange:(SDLRPCNotificationNotification *)notification { } } - NSArray *filtersToCall = [mutableFiltersToCall copy]; + NSArray *filtersToCall = [mutableFiltersToCall copy]; // For all the modified filters, call if necessary for (SDLPermissionFilter *filter in filtersToCall) { @@ -262,7 +259,7 @@ - (void)sdl_hmiLevelDidChange:(SDLRPCNotificationNotification *)notification { * * @return Whether or not the filter changed based on the difference in HMI levels. */ -- (BOOL)sdl_didFilterChange:(SDLPermissionFilter *)filter fromHMILevel:(SDLHMILevel *)oldHMILevel toHMILevel:(SDLHMILevel *)newHMILevel { +- (BOOL)sdl_didFilterChange:(SDLPermissionFilter *)filter fromHMILevel:(SDLHMILevel)oldHMILevel toHMILevel:(SDLHMILevel)newHMILevel { BOOL changed = NO; for (NSString *rpcName in filter.rpcNames) { SDLPermissionItem *item = self.permissions[rpcName]; diff --git a/SmartDeviceLink/SDLPermissionStatus.h b/SmartDeviceLink/SDLPermissionStatus.h index 0ac9219ec..48bcec938 100644 --- a/SmartDeviceLink/SDLPermissionStatus.h +++ b/SmartDeviceLink/SDLPermissionStatus.h @@ -9,47 +9,24 @@ * * @since SDL 2.0 */ -@interface SDLPermissionStatus : SDLEnum { -} - -/** - * @abstract SDLPermissionStatus - * - * @param value The value of the string to get an object for - * - * @return a SDLPermissionStatus object - */ -+ (SDLPermissionStatus *)valueOf:(NSString *)value; - -/** - * @abstract declare an array to store all possible SDLPermissionStatus values - * @return the array - */ -+ (NSArray *)values; - +typedef SDLEnum SDLPermissionStatus SDL_SWIFT_ENUM; /** * @abstract permission: allowed - * @return permission status: *ALLOWED* */ -+ (SDLPermissionStatus *)ALLOWED; +extern SDLPermissionStatus const SDLPermissionStatusAllowed; /** * @abstract permission: disallowed - * @return permission status: *DISALLOWED* */ -+ (SDLPermissionStatus *)DISALLOWED; +extern SDLPermissionStatus const SDLPermissionStatusDisallowed; /** * @abstract permission: user disallowed - * @return permission status: *USER_DISALLOWED* */ -+ (SDLPermissionStatus *)USER_DISALLOWED; +extern SDLPermissionStatus const SDLPermissionStatusUserDisallowed; /** * @abstract permission: user consent pending - * @return permission status: *USER_CONSENT_PENDING* */ -+ (SDLPermissionStatus *)USER_CONSENT_PENDING; - -@end +extern SDLPermissionStatus const SDLPermissionStatusUserConsentPending; diff --git a/SmartDeviceLink/SDLPermissionStatus.m b/SmartDeviceLink/SDLPermissionStatus.m index 179cf2014..ff9654c46 100644 --- a/SmartDeviceLink/SDLPermissionStatus.m +++ b/SmartDeviceLink/SDLPermissionStatus.m @@ -4,62 +4,7 @@ #import "SDLPermissionStatus.h" -SDLPermissionStatus *SDLPermissionStatus_ALLOWED = nil; -SDLPermissionStatus *SDLPermissionStatus_DISALLOWED = nil; -SDLPermissionStatus *SDLPermissionStatus_USER_DISALLOWED = nil; -SDLPermissionStatus *SDLPermissionStatus_USER_CONSENT_PENDING = nil; - -NSArray *SDLPermissionStatus_values = nil; - -@implementation SDLPermissionStatus - -+ (SDLPermissionStatus *)valueOf:(NSString *)value { - for (SDLPermissionStatus *item in SDLPermissionStatus.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLPermissionStatus_values == nil) { - SDLPermissionStatus_values = @[ - SDLPermissionStatus.ALLOWED, - SDLPermissionStatus.DISALLOWED, - SDLPermissionStatus.USER_DISALLOWED, - SDLPermissionStatus.USER_CONSENT_PENDING, - ]; - } - return SDLPermissionStatus_values; -} - -+ (SDLPermissionStatus *)ALLOWED { - if (SDLPermissionStatus_ALLOWED == nil) { - SDLPermissionStatus_ALLOWED = [[SDLPermissionStatus alloc] initWithValue:@"ALLOWED"]; - } - return SDLPermissionStatus_ALLOWED; -} - -+ (SDLPermissionStatus *)DISALLOWED { - if (SDLPermissionStatus_DISALLOWED == nil) { - SDLPermissionStatus_DISALLOWED = [[SDLPermissionStatus alloc] initWithValue:@"DISALLOWED"]; - } - return SDLPermissionStatus_DISALLOWED; -} - -+ (SDLPermissionStatus *)USER_DISALLOWED { - if (SDLPermissionStatus_USER_DISALLOWED == nil) { - SDLPermissionStatus_USER_DISALLOWED = [[SDLPermissionStatus alloc] initWithValue:@"USER_DISALLOWED"]; - } - return SDLPermissionStatus_USER_DISALLOWED; -} - -+ (SDLPermissionStatus *)USER_CONSENT_PENDING { - if (SDLPermissionStatus_USER_CONSENT_PENDING == nil) { - SDLPermissionStatus_USER_CONSENT_PENDING = [[SDLPermissionStatus alloc] initWithValue:@"USER_CONSENT_PENDING"]; - } - return SDLPermissionStatus_USER_CONSENT_PENDING; -} - -@end +SDLPermissionStatus const SDLPermissionStatusAllowed = @"ALLOWED"; +SDLPermissionStatus const SDLPermissionStatusDisallowed = @"DISALLOWED"; +SDLPermissionStatus const SDLPermissionStatusUserDisallowed = @"USER_DISALLOWED"; +SDLPermissionStatus const SDLPermissionStatusUserConsentPending = @"USER_CONSENT_PENDING"; diff --git a/SmartDeviceLink/SDLPhoneCapability.h b/SmartDeviceLink/SDLPhoneCapability.h index a15a62190..8dce8c797 100644 --- a/SmartDeviceLink/SDLPhoneCapability.h +++ b/SmartDeviceLink/SDLPhoneCapability.h @@ -8,18 +8,9 @@ #import "SDLRPCStruct.h" -@interface SDLPhoneCapability : SDLRPCStruct - -/** - * @abstract Constructs a newly allocated SDLPhoneCapability struct - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a newly allocated SDLPhoneCapability struct indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLPhoneCapability : SDLRPCStruct - (instancetype)initWithDialNumber:(BOOL)dialNumberEnabled; @@ -27,6 +18,8 @@ Whether or not the DialNumber RPC is enabled. Boolean, optional */ -@property (strong, nonatomic) NSNumber *dialNumberEnabled; +@property (nullable, strong, nonatomic) NSNumber *dialNumberEnabled; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPhoneCapability.m b/SmartDeviceLink/SDLPhoneCapability.m index 0744dc9e2..5089f8ad3 100644 --- a/SmartDeviceLink/SDLPhoneCapability.m +++ b/SmartDeviceLink/SDLPhoneCapability.m @@ -8,26 +8,13 @@ #import "SDLPhoneCapability.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLPhoneCapability -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - - (instancetype)initWithDialNumber:(BOOL)dialNumberEnabled { self = [self init]; if (!self) { @@ -39,16 +26,14 @@ - (instancetype)initWithDialNumber:(BOOL)dialNumberEnabled { return self; } -- (void)setDialNumberEnabled:(NSNumber *)dialNumberEnabled { - if (dialNumberEnabled != nil) { - store[NAMES_dialNumberEnabled] = dialNumberEnabled; - } else { - [store removeObjectForKey:NAMES_dialNumberEnabled]; - } +- (void)setDialNumberEnabled:(nullable NSNumber *)dialNumberEnabled { + [store sdl_setObject:dialNumberEnabled forName:SDLNameDialNumberEnabled]; } -- (NSNumber *)dialNumberEnabled { - return store[NAMES_dialNumberEnabled]; +- (nullable NSNumber *)dialNumberEnabled { + return [store sdl_objectForName:SDLNameDialNumberEnabled]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPinchGesture.h b/SmartDeviceLink/SDLPinchGesture.h index 714a97312..024ea8fc6 100644 --- a/SmartDeviceLink/SDLPinchGesture.h +++ b/SmartDeviceLink/SDLPinchGesture.h @@ -59,4 +59,4 @@ NS_ASSUME_NONNULL_BEGIN @end -NS_ASSUME_NONNULL_END \ No newline at end of file +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPolicyDataParser.h b/SmartDeviceLink/SDLPolicyDataParser.h index 4e005f9fe..cdc763b1e 100644 --- a/SmartDeviceLink/SDLPolicyDataParser.h +++ b/SmartDeviceLink/SDLPolicyDataParser.h @@ -4,28 +4,32 @@ #import +NS_ASSUME_NONNULL_BEGIN + @interface SDLPolicyDataParser : NSObject -@property (assign) Byte protocolVersion; -@property (assign) BOOL isResponseRequired; -@property (assign) BOOL isHighBandwidth; -@property (assign) BOOL isSigned; -@property (assign) BOOL isEncrypted; -@property (assign) BOOL hasESN; -@property (assign) Byte serviceType; -@property (assign) Byte commandType; -@property (assign) BOOL CPUDestination; -@property (assign) Byte encryptionKeyIndex; -@property (assign) UInt32 payloadSize; -@property (strong) NSData *ESN; -@property (assign) UInt32 moduleMessageId; -@property (assign) UInt32 serverMessageId; -@property (assign) Byte messageStatus; -@property (strong) NSData *initializationVector; -@property (strong) NSData *payload; -@property (strong) NSData *signatureTag; +@property (assign, nonatomic) Byte protocolVersion; +@property (assign, nonatomic) BOOL isResponseRequired; +@property (assign, nonatomic) BOOL isHighBandwidth; +@property (assign, nonatomic) BOOL isSigned; +@property (assign, nonatomic) BOOL isEncrypted; +@property (assign, nonatomic) BOOL hasESN; +@property (assign, nonatomic) Byte serviceType; +@property (assign, nonatomic) Byte commandType; +@property (assign, nonatomic) BOOL CPUDestination; +@property (assign, nonatomic) Byte encryptionKeyIndex; +@property (assign, nonatomic) UInt32 payloadSize; +@property (strong, nonatomic) NSData *ESN; +@property (assign, nonatomic) UInt32 moduleMessageId; +@property (assign, nonatomic) UInt32 serverMessageId; +@property (assign, nonatomic) Byte messageStatus; +@property (strong, nonatomic) NSData *initializationVector; +@property (strong, nonatomic) NSData *payload; +@property (strong, nonatomic) NSData *signatureTag; -- (NSData *)unwrap:(NSData *)wrappedData; +- (nullable NSData *)unwrap:(NSData *)wrappedData; - (void)parsePolicyData:(NSData *)data; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPolicyDataParser.m b/SmartDeviceLink/SDLPolicyDataParser.m index 92b1e1580..9e23aeedc 100644 --- a/SmartDeviceLink/SDLPolicyDataParser.m +++ b/SmartDeviceLink/SDLPolicyDataParser.m @@ -3,17 +3,19 @@ // #import "SDLPolicyDataParser.h" -#import "SDLDebugTool.h" +#import "SDLLogMacros.h" + +NS_ASSUME_NONNULL_BEGIN @implementation SDLPolicyDataParser -- (NSData *)unwrap:(NSData *)wrappedData { +- (nullable NSData *)unwrap:(NSData *)wrappedData { NSData *decodedData = nil; @try { NSError *errorJSONSerialization = nil; NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:wrappedData options:kNilOptions error:&errorJSONSerialization]; - NSArray *array = dictionary[@"data"]; + NSArray *array = dictionary[@"data"]; NSString *base64EncodedString = array[0]; if ([NSData instancesRespondToSelector:@selector(initWithBase64EncodedString:options:)]) { @@ -27,17 +29,13 @@ - (NSData *)unwrap:(NSData *)wrappedData { } @catch (NSException *exception) { decodedData = nil; - [SDLDebugTool logInfo:@"Error in PolicyDataParser::unwrap()"]; + SDLLogW(@"%@", exception); } return decodedData; } - (void)parsePolicyData:(NSData *)data { - if (data == nil) { - return; - } - @try { Byte *bytes = (Byte *)data.bytes; @@ -56,11 +54,11 @@ - (void)parsePolicyData:(NSData *)data { self.CPUDestination = (thirdByte & 0b00001000) != 0; self.encryptionKeyIndex = (thirdByte & 0b00000111); - const int payloadSizeOffset = 3; + const int PayloadSizeOffset = 3; if (self.isHighBandwidth) { - self.payloadSize = ntohl(*(UInt32 *)(bytes + payloadSizeOffset)); + self.payloadSize = ntohl(*(UInt32 *)(bytes + PayloadSizeOffset)); } else { - self.payloadSize = ntohs(*(UInt16 *)(bytes + payloadSizeOffset)); + self.payloadSize = ntohs(*(UInt16 *)(bytes + PayloadSizeOffset)); } if (self.hasESN) { @@ -95,22 +93,25 @@ - (void)parsePolicyData:(NSData *)data { } int payloadOffset = 5; - if (self.isHighBandwidth) + if (self.isHighBandwidth) { payloadOffset += 11; - if (self.hasESN) + } + if (self.hasESN) { payloadOffset += self.ESN.length; - if (self.isEncrypted) + } + if (self.isEncrypted) { payloadOffset += self.initializationVector.length; + } + self.payload = [NSData dataWithBytes:(bytes + payloadOffset) length:self.payloadSize]; if (self.isSigned) { int signatureTagOffset = (int)data.length - 16; self.signatureTag = [NSData dataWithBytes:(bytes + signatureTagOffset) length:16]; } - } @catch (NSException *exception) { - [SDLDebugTool logInfo:@"Error in PolicyDataParser::parsePolicyData()"]; + SDLLogW(@"%@", exception); } } @@ -138,3 +139,5 @@ - (NSString *)description { } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPowerModeQualificationStatus.h b/SmartDeviceLink/SDLPowerModeQualificationStatus.h index 4e520196b..273bc2022 100644 --- a/SmartDeviceLink/SDLPowerModeQualificationStatus.h +++ b/SmartDeviceLink/SDLPowerModeQualificationStatus.h @@ -4,15 +4,9 @@ #import "SDLEnum.h" -@interface SDLPowerModeQualificationStatus : SDLEnum { -} +typedef SDLEnum SDLPowerModeQualificationStatus SDL_SWIFT_ENUM; -+ (SDLPowerModeQualificationStatus *)valueOf:(NSString *)value; -+ (NSArray *)values; - -+ (SDLPowerModeQualificationStatus *)POWER_MODE_UNDEFINED; -+ (SDLPowerModeQualificationStatus *)POWER_MODE_EVALUATION_IN_PROGRESS; -+ (SDLPowerModeQualificationStatus *)NOT_DEFINED; -+ (SDLPowerModeQualificationStatus *)POWER_MODE_OK; - -@end +extern SDLPowerModeQualificationStatus const SDLPowerModeQualificationStatusUndefined; +extern SDLPowerModeQualificationStatus const SDLPowerModeQualificationStatusEvaluationInProgress; +extern SDLPowerModeQualificationStatus const SDLPowerModeQualificationStatusNotDefined; +extern SDLPowerModeQualificationStatus const SDLPowerModeQualificationStatusOk; diff --git a/SmartDeviceLink/SDLPowerModeQualificationStatus.m b/SmartDeviceLink/SDLPowerModeQualificationStatus.m index d820221e9..b1819776c 100644 --- a/SmartDeviceLink/SDLPowerModeQualificationStatus.m +++ b/SmartDeviceLink/SDLPowerModeQualificationStatus.m @@ -4,62 +4,7 @@ #import "SDLPowerModeQualificationStatus.h" -SDLPowerModeQualificationStatus *SDLPowerModeQualificationStatus_POWER_MODE_UNDEFINED = nil; -SDLPowerModeQualificationStatus *SDLPowerModeQualificationStatus_POWER_MODE_EVALUATION_IN_PROGRESS = nil; -SDLPowerModeQualificationStatus *SDLPowerModeQualificationStatus_NOT_DEFINED = nil; -SDLPowerModeQualificationStatus *SDLPowerModeQualificationStatus_POWER_MODE_OK = nil; - -NSArray *SDLPowerModeQualificationStatus_values = nil; - -@implementation SDLPowerModeQualificationStatus - -+ (SDLPowerModeQualificationStatus *)valueOf:(NSString *)value { - for (SDLPowerModeQualificationStatus *item in SDLPowerModeQualificationStatus.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLPowerModeQualificationStatus_values == nil) { - SDLPowerModeQualificationStatus_values = @[ - SDLPowerModeQualificationStatus.POWER_MODE_UNDEFINED, - SDLPowerModeQualificationStatus.POWER_MODE_EVALUATION_IN_PROGRESS, - SDLPowerModeQualificationStatus.NOT_DEFINED, - SDLPowerModeQualificationStatus.POWER_MODE_OK, - ]; - } - return SDLPowerModeQualificationStatus_values; -} - -+ (SDLPowerModeQualificationStatus *)POWER_MODE_UNDEFINED { - if (SDLPowerModeQualificationStatus_POWER_MODE_UNDEFINED == nil) { - SDLPowerModeQualificationStatus_POWER_MODE_UNDEFINED = [[SDLPowerModeQualificationStatus alloc] initWithValue:@"POWER_MODE_UNDEFINED"]; - } - return SDLPowerModeQualificationStatus_POWER_MODE_UNDEFINED; -} - -+ (SDLPowerModeQualificationStatus *)POWER_MODE_EVALUATION_IN_PROGRESS { - if (SDLPowerModeQualificationStatus_POWER_MODE_EVALUATION_IN_PROGRESS == nil) { - SDLPowerModeQualificationStatus_POWER_MODE_EVALUATION_IN_PROGRESS = [[SDLPowerModeQualificationStatus alloc] initWithValue:@"POWER_MODE_EVALUATION_IN_PROGRESS"]; - } - return SDLPowerModeQualificationStatus_POWER_MODE_EVALUATION_IN_PROGRESS; -} - -+ (SDLPowerModeQualificationStatus *)NOT_DEFINED { - if (SDLPowerModeQualificationStatus_NOT_DEFINED == nil) { - SDLPowerModeQualificationStatus_NOT_DEFINED = [[SDLPowerModeQualificationStatus alloc] initWithValue:@"NOT_DEFINED"]; - } - return SDLPowerModeQualificationStatus_NOT_DEFINED; -} - -+ (SDLPowerModeQualificationStatus *)POWER_MODE_OK { - if (SDLPowerModeQualificationStatus_POWER_MODE_OK == nil) { - SDLPowerModeQualificationStatus_POWER_MODE_OK = [[SDLPowerModeQualificationStatus alloc] initWithValue:@"POWER_MODE_OK"]; - } - return SDLPowerModeQualificationStatus_POWER_MODE_OK; -} - -@end +SDLPowerModeQualificationStatus const SDLPowerModeQualificationStatusUndefined = @"POWER_MODE_UNDEFINED"; +SDLPowerModeQualificationStatus const SDLPowerModeQualificationStatusEvaluationInProgress = @"POWER_MODE_EVALUATION_IN_PROGRESS"; +SDLPowerModeQualificationStatus const SDLPowerModeQualificationStatusNotDefined = @"NOT_DEFINED"; +SDLPowerModeQualificationStatus const SDLPowerModeQualificationStatusOk = @"POWER_MODE_OK"; diff --git a/SmartDeviceLink/SDLPowerModeStatus.h b/SmartDeviceLink/SDLPowerModeStatus.h index 8eb24fdb4..e49063343 100644 --- a/SmartDeviceLink/SDLPowerModeStatus.h +++ b/SmartDeviceLink/SDLPowerModeStatus.h @@ -4,20 +4,14 @@ #import "SDLEnum.h" -@interface SDLPowerModeStatus : SDLEnum { -} +typedef SDLEnum SDLPowerModeStatus SDL_SWIFT_ENUM; -+ (SDLPowerModeStatus *)valueOf:(NSString *)value; -+ (NSArray *)values; - -+ (SDLPowerModeStatus *)KEY_OUT; -+ (SDLPowerModeStatus *)KEY_RECENTLY_OUT; -+ (SDLPowerModeStatus *)KEY_APPROVED_0; -+ (SDLPowerModeStatus *)POST_ACCESORY_0; -+ (SDLPowerModeStatus *)ACCESORY_1; -+ (SDLPowerModeStatus *)POST_IGNITION_1; -+ (SDLPowerModeStatus *)IGNITION_ON_2; -+ (SDLPowerModeStatus *)RUNNING_2; -+ (SDLPowerModeStatus *)CRANK_3; - -@end +extern SDLPowerModeStatus const SDLPowerModeStatusKeyOut; +extern SDLPowerModeStatus const SDLPowerModeStatusKeyRecentlyOut; +extern SDLPowerModeStatus const SDLPowerModeStatusKeyApproved; +extern SDLPowerModeStatus const SDLPowerModeStatusPostAccessory; +extern SDLPowerModeStatus const SDLPowerModeStatusAccessory; +extern SDLPowerModeStatus const SDLPowerModeStatusPostIgnition; +extern SDLPowerModeStatus const SDLPowerModeStatusIgnitionOn; +extern SDLPowerModeStatus const SDLPowerModeStatusRunning; +extern SDLPowerModeStatus const SDLPowerModeStatusCrank; diff --git a/SmartDeviceLink/SDLPowerModeStatus.m b/SmartDeviceLink/SDLPowerModeStatus.m index efc46a094..b1210d7a6 100644 --- a/SmartDeviceLink/SDLPowerModeStatus.m +++ b/SmartDeviceLink/SDLPowerModeStatus.m @@ -4,107 +4,12 @@ #import "SDLPowerModeStatus.h" -SDLPowerModeStatus *SDLPowerModeStatus_KEY_OUT = nil; -SDLPowerModeStatus *SDLPowerModeStatus_KEY_RECENTLY_OUT = nil; -SDLPowerModeStatus *SDLPowerModeStatus_KEY_APPROVED_0 = nil; -SDLPowerModeStatus *SDLPowerModeStatus_POST_ACCESORY_0 = nil; -SDLPowerModeStatus *SDLPowerModeStatus_ACCESORY_1 = nil; -SDLPowerModeStatus *SDLPowerModeStatus_POST_IGNITION_1 = nil; -SDLPowerModeStatus *SDLPowerModeStatus_IGNITION_ON_2 = nil; -SDLPowerModeStatus *SDLPowerModeStatus_RUNNING_2 = nil; -SDLPowerModeStatus *SDLPowerModeStatus_CRANK_3 = nil; - -NSArray *SDLPowerModeStatus_values = nil; - -@implementation SDLPowerModeStatus - -+ (SDLPowerModeStatus *)valueOf:(NSString *)value { - for (SDLPowerModeStatus *item in SDLPowerModeStatus.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLPowerModeStatus_values == nil) { - SDLPowerModeStatus_values = @[ - SDLPowerModeStatus.KEY_OUT, - SDLPowerModeStatus.KEY_RECENTLY_OUT, - SDLPowerModeStatus.KEY_APPROVED_0, - SDLPowerModeStatus.POST_ACCESORY_0, - SDLPowerModeStatus.ACCESORY_1, - SDLPowerModeStatus.POST_IGNITION_1, - SDLPowerModeStatus.IGNITION_ON_2, - SDLPowerModeStatus.RUNNING_2, - SDLPowerModeStatus.CRANK_3, - ]; - } - return SDLPowerModeStatus_values; -} - -+ (SDLPowerModeStatus *)KEY_OUT { - if (SDLPowerModeStatus_KEY_OUT == nil) { - SDLPowerModeStatus_KEY_OUT = [[SDLPowerModeStatus alloc] initWithValue:@"KEY_OUT"]; - } - return SDLPowerModeStatus_KEY_OUT; -} - -+ (SDLPowerModeStatus *)KEY_RECENTLY_OUT { - if (SDLPowerModeStatus_KEY_RECENTLY_OUT == nil) { - SDLPowerModeStatus_KEY_RECENTLY_OUT = [[SDLPowerModeStatus alloc] initWithValue:@"KEY_RECENTLY_OUT"]; - } - return SDLPowerModeStatus_KEY_RECENTLY_OUT; -} - -+ (SDLPowerModeStatus *)KEY_APPROVED_0 { - if (SDLPowerModeStatus_KEY_APPROVED_0 == nil) { - SDLPowerModeStatus_KEY_APPROVED_0 = [[SDLPowerModeStatus alloc] initWithValue:@"KEY_APPROVED_0"]; - } - return SDLPowerModeStatus_KEY_APPROVED_0; -} - -+ (SDLPowerModeStatus *)POST_ACCESORY_0 { - if (SDLPowerModeStatus_POST_ACCESORY_0 == nil) { - SDLPowerModeStatus_POST_ACCESORY_0 = [[SDLPowerModeStatus alloc] initWithValue:@"POST_ACCESORY_0"]; - } - return SDLPowerModeStatus_POST_ACCESORY_0; -} - -+ (SDLPowerModeStatus *)ACCESORY_1 { - if (SDLPowerModeStatus_ACCESORY_1 == nil) { - SDLPowerModeStatus_ACCESORY_1 = [[SDLPowerModeStatus alloc] initWithValue:@"ACCESORY_1"]; - } - return SDLPowerModeStatus_ACCESORY_1; -} - -+ (SDLPowerModeStatus *)POST_IGNITION_1 { - if (SDLPowerModeStatus_POST_IGNITION_1 == nil) { - SDLPowerModeStatus_POST_IGNITION_1 = [[SDLPowerModeStatus alloc] initWithValue:@"POST_IGNITION_1"]; - } - return SDLPowerModeStatus_POST_IGNITION_1; -} - -+ (SDLPowerModeStatus *)IGNITION_ON_2 { - if (SDLPowerModeStatus_IGNITION_ON_2 == nil) { - SDLPowerModeStatus_IGNITION_ON_2 = [[SDLPowerModeStatus alloc] initWithValue:@"IGNITION_ON_2"]; - } - return SDLPowerModeStatus_IGNITION_ON_2; -} - -+ (SDLPowerModeStatus *)RUNNING_2 { - if (SDLPowerModeStatus_RUNNING_2 == nil) { - SDLPowerModeStatus_RUNNING_2 = [[SDLPowerModeStatus alloc] initWithValue:@"RUNNING_2"]; - } - return SDLPowerModeStatus_RUNNING_2; -} - -+ (SDLPowerModeStatus *)CRANK_3 { - if (SDLPowerModeStatus_CRANK_3 == nil) { - SDLPowerModeStatus_CRANK_3 = [[SDLPowerModeStatus alloc] initWithValue:@"CRANK_3"]; - } - return SDLPowerModeStatus_CRANK_3; -} - -@end +SDLPowerModeStatus const SDLPowerModeStatusKeyOut = @"KEY_OUT"; +SDLPowerModeStatus const SDLPowerModeStatusKeyRecentlyOut = @"KEY_RECENTLY_OUT"; +SDLPowerModeStatus const SDLPowerModeStatusKeyApproved = @"KEY_APPROVED_0"; +SDLPowerModeStatus const SDLPowerModeStatusPostAccessory = @"POST_ACCESORY_0"; +SDLPowerModeStatus const SDLPowerModeStatusAccessory = @"ACCESORY_1"; +SDLPowerModeStatus const SDLPowerModeStatusPostIgnition = @"POST_IGNITION_1"; +SDLPowerModeStatus const SDLPowerModeStatusIgnitionOn = @"IGNITION_ON_2"; +SDLPowerModeStatus const SDLPowerModeStatusRunning = @"RUNNING_2"; +SDLPowerModeStatus const SDLPowerModeStatusCrank = @"CRANK_3"; diff --git a/SmartDeviceLink/SDLPredefinedLayout.h b/SmartDeviceLink/SDLPredefinedLayout.h index 7d061d449..cf310dc51 100644 --- a/SmartDeviceLink/SDLPredefinedLayout.h +++ b/SmartDeviceLink/SDLPredefinedLayout.h @@ -4,31 +4,25 @@ #import "SDLEnum.h" -@interface SDLPredefinedLayout : SDLEnum { -} +typedef SDLEnum SDLPredefinedLayout SDL_SWIFT_ENUM; -+ (SDLPredefinedLayout *)valueOf:(NSString *)value; -+ (NSArray *)values; - -+ (SDLPredefinedLayout *)DEFAULT; -+ (SDLPredefinedLayout *)MEDIA; -+ (SDLPredefinedLayout *)NON_MEDIA; -+ (SDLPredefinedLayout *)ONSCREEN_PRESETS; -+ (SDLPredefinedLayout *)NAV_FULLSCREEN_MAP; -+ (SDLPredefinedLayout *)NAV_LIST; -+ (SDLPredefinedLayout *)NAV_KEYBOARD; -+ (SDLPredefinedLayout *)GRAPHIC_WITH_TEXT; -+ (SDLPredefinedLayout *)TEXT_WITH_GRAPHIC; -+ (SDLPredefinedLayout *)TILES_ONLY; -+ (SDLPredefinedLayout *)TEXTBUTTONS_ONLY; -+ (SDLPredefinedLayout *)GRAPHIC_WITH_TILES; -+ (SDLPredefinedLayout *)TILES_WITH_GRAPHIC; -+ (SDLPredefinedLayout *)GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS; -+ (SDLPredefinedLayout *)TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC; -+ (SDLPredefinedLayout *)GRAPHIC_WITH_TEXTBUTTONS; -+ (SDLPredefinedLayout *)TEXTBUTTONS_WITH_GRAPHIC; -+ (SDLPredefinedLayout *)LARGE_GRAPHIC_WITH_SOFTBUTTONS; -+ (SDLPredefinedLayout *)DOUBLE_GRAPHIC_WITH_SOFTBUTTONS; -+ (SDLPredefinedLayout *)LARGE_GRAPHIC_ONLY; - -@end +extern SDLPredefinedLayout const SDLPredefinedLayoutDefault; +extern SDLPredefinedLayout const SDLPredefinedLayoutMedia; +extern SDLPredefinedLayout const SDLPredefinedLayoutNonMedia; +extern SDLPredefinedLayout const SDLPredefinedLayoutOnscreenPresets; +extern SDLPredefinedLayout const SDLPredefinedLayoutNavigationFullscreenMap; +extern SDLPredefinedLayout const SDLPredefinedLayoutNavigationList; +extern SDLPredefinedLayout const SDLPredefinedLayoutNavigationKeyboard; +extern SDLPredefinedLayout const SDLPredefinedLayoutGraphicWithText; +extern SDLPredefinedLayout const SDLPredefinedLayoutTextWithGraphic; +extern SDLPredefinedLayout const SDLPredefinedLayoutTilesOnly; +extern SDLPredefinedLayout const SDLPredefinedLayoutTextButtonsOnly; +extern SDLPredefinedLayout const SDLPredefinedLayoutGraphicWithTiles; +extern SDLPredefinedLayout const SDLPredefinedLayoutTilesWithGraphic; +extern SDLPredefinedLayout const SDLPredefinedLayoutGraphicWithTextAndSoftButtons; +extern SDLPredefinedLayout const SDLPredefinedLayoutTextAndSoftButtonsWithGraphic; +extern SDLPredefinedLayout const SDLPredefinedLayoutGraphicWithTextButtons; +extern SDLPredefinedLayout const SDLPredefinedLayoutTextButtonsWithGraphic; +extern SDLPredefinedLayout const SDLPredefinedLayoutLargeGraphicWithSoftButtons; +extern SDLPredefinedLayout const SDLPredefinedLayoutDoubleGraphicWithSoftButtons; +extern SDLPredefinedLayout const SDLPredefinedLayoutLargeGraphicOnly; diff --git a/SmartDeviceLink/SDLPredefinedLayout.m b/SmartDeviceLink/SDLPredefinedLayout.m index 57dc2b384..08a0c29e8 100644 --- a/SmartDeviceLink/SDLPredefinedLayout.m +++ b/SmartDeviceLink/SDLPredefinedLayout.m @@ -4,206 +4,23 @@ #import "SDLPredefinedLayout.h" -SDLPredefinedLayout *SDLPredefinedLayout_DEFAULT = nil; -SDLPredefinedLayout *SDLPredefinedLayout_MEDIA = nil; -SDLPredefinedLayout *SDLPredefinedLayout_NON_MEDIA = nil; -SDLPredefinedLayout *SDLPredefinedLayout_ONSCREEN_PRESETS = nil; -SDLPredefinedLayout *SDLPredefinedLayout_NAV_FULLSCREEN_MAP = nil; -SDLPredefinedLayout *SDLPredefinedLayout_NAV_LIST = nil; -SDLPredefinedLayout *SDLPredefinedLayout_NAV_KEYBOARD = nil; -SDLPredefinedLayout *SDLPredefinedLayout_GRAPHIC_WITH_TEXT = nil; -SDLPredefinedLayout *SDLPredefinedLayout_TEXT_WITH_GRAPHIC = nil; -SDLPredefinedLayout *SDLPredefinedLayout_TILES_ONLY = nil; -SDLPredefinedLayout *SDLPredefinedLayout_TEXTBUTTONS_ONLY = nil; -SDLPredefinedLayout *SDLPredefinedLayout_GRAPHIC_WITH_TILES = nil; -SDLPredefinedLayout *SDLPredefinedLayout_TILES_WITH_GRAPHIC = nil; -SDLPredefinedLayout *SDLPredefinedLayout_GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS = nil; -SDLPredefinedLayout *SDLPredefinedLayout_TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC = nil; -SDLPredefinedLayout *SDLPredefinedLayout_GRAPHIC_WITH_TEXTBUTTONS = nil; -SDLPredefinedLayout *SDLPredefinedLayout_TEXTBUTTONS_WITH_GRAPHIC = nil; -SDLPredefinedLayout *SDLPredefinedLayout_LARGE_GRAPHIC_WITH_SOFTBUTTONS = nil; -SDLPredefinedLayout *SDLPredefinedLayout_DOUBLE_GRAPHIC_WITH_SOFTBUTTONS = nil; -SDLPredefinedLayout *SDLPredefinedLayout_LARGE_GRAPHIC_ONLY = nil; - -NSArray *SDLPredefinedLayout_values = nil; - -@implementation SDLPredefinedLayout - -+ (SDLPredefinedLayout *)valueOf:(NSString *)value { - for (SDLPredefinedLayout *item in SDLPredefinedLayout.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLPredefinedLayout_values == nil) { - SDLPredefinedLayout_values = @[ - SDLPredefinedLayout.DEFAULT, - SDLPredefinedLayout.MEDIA, - SDLPredefinedLayout.NON_MEDIA, - SDLPredefinedLayout.ONSCREEN_PRESETS, - SDLPredefinedLayout.NAV_FULLSCREEN_MAP, - SDLPredefinedLayout.NAV_LIST, - SDLPredefinedLayout.NAV_KEYBOARD, - SDLPredefinedLayout.GRAPHIC_WITH_TEXT, - SDLPredefinedLayout.TEXT_WITH_GRAPHIC, - SDLPredefinedLayout.TILES_ONLY, - SDLPredefinedLayout.TEXTBUTTONS_ONLY, - SDLPredefinedLayout.GRAPHIC_WITH_TILES, - SDLPredefinedLayout.TILES_WITH_GRAPHIC, - SDLPredefinedLayout.GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS, - SDLPredefinedLayout.TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC, - SDLPredefinedLayout.GRAPHIC_WITH_TEXTBUTTONS, - SDLPredefinedLayout.TEXTBUTTONS_WITH_GRAPHIC, - SDLPredefinedLayout.LARGE_GRAPHIC_WITH_SOFTBUTTONS, - SDLPredefinedLayout.DOUBLE_GRAPHIC_WITH_SOFTBUTTONS, - SDLPredefinedLayout.LARGE_GRAPHIC_ONLY, - ]; - } - return SDLPredefinedLayout_values; -} - -+ (SDLPredefinedLayout *)DEFAULT { - if (SDLPredefinedLayout_DEFAULT == nil) { - SDLPredefinedLayout_DEFAULT = [[SDLPredefinedLayout alloc] initWithValue:@"DEFAULT"]; - } - return SDLPredefinedLayout_DEFAULT; -} - -+ (SDLPredefinedLayout *)MEDIA { - if (SDLPredefinedLayout_MEDIA == nil) { - SDLPredefinedLayout_MEDIA = [[SDLPredefinedLayout alloc] initWithValue:@"MEDIA"]; - } - return SDLPredefinedLayout_MEDIA; -} - -+ (SDLPredefinedLayout *)NON_MEDIA { - if (SDLPredefinedLayout_NON_MEDIA == nil) { - SDLPredefinedLayout_NON_MEDIA = [[SDLPredefinedLayout alloc] initWithValue:@"NON-MEDIA"]; - } - return SDLPredefinedLayout_NON_MEDIA; -} - -+ (SDLPredefinedLayout *)ONSCREEN_PRESETS { - if (SDLPredefinedLayout_ONSCREEN_PRESETS == nil) { - SDLPredefinedLayout_ONSCREEN_PRESETS = [[SDLPredefinedLayout alloc] initWithValue:@"ONSCREEN_PRESETS"]; - } - return SDLPredefinedLayout_ONSCREEN_PRESETS; -} - -+ (SDLPredefinedLayout *)NAV_FULLSCREEN_MAP { - if (SDLPredefinedLayout_NAV_FULLSCREEN_MAP == nil) { - SDLPredefinedLayout_NAV_FULLSCREEN_MAP = [[SDLPredefinedLayout alloc] initWithValue:@"NAV_FULLSCREEN_MAP"]; - } - return SDLPredefinedLayout_NAV_FULLSCREEN_MAP; -} - -+ (SDLPredefinedLayout *)NAV_LIST { - if (SDLPredefinedLayout_NAV_LIST == nil) { - SDLPredefinedLayout_NAV_LIST = [[SDLPredefinedLayout alloc] initWithValue:@"NAV_LIST"]; - } - return SDLPredefinedLayout_NAV_LIST; -} - -+ (SDLPredefinedLayout *)NAV_KEYBOARD { - if (SDLPredefinedLayout_NAV_KEYBOARD == nil) { - SDLPredefinedLayout_NAV_KEYBOARD = [[SDLPredefinedLayout alloc] initWithValue:@"NAV_KEYBOARD"]; - } - return SDLPredefinedLayout_NAV_KEYBOARD; -} - -+ (SDLPredefinedLayout *)GRAPHIC_WITH_TEXT { - if (SDLPredefinedLayout_GRAPHIC_WITH_TEXT == nil) { - SDLPredefinedLayout_GRAPHIC_WITH_TEXT = [[SDLPredefinedLayout alloc] initWithValue:@"GRAPHIC_WITH_TEXT"]; - } - return SDLPredefinedLayout_GRAPHIC_WITH_TEXT; -} - -+ (SDLPredefinedLayout *)TEXT_WITH_GRAPHIC { - if (SDLPredefinedLayout_TEXT_WITH_GRAPHIC == nil) { - SDLPredefinedLayout_TEXT_WITH_GRAPHIC = [[SDLPredefinedLayout alloc] initWithValue:@"TEXT_WITH_GRAPHIC"]; - } - return SDLPredefinedLayout_TEXT_WITH_GRAPHIC; -} - -+ (SDLPredefinedLayout *)TILES_ONLY { - if (SDLPredefinedLayout_TILES_ONLY == nil) { - SDLPredefinedLayout_TILES_ONLY = [[SDLPredefinedLayout alloc] initWithValue:@"TILES_ONLY"]; - } - return SDLPredefinedLayout_TILES_ONLY; -} - -+ (SDLPredefinedLayout *)TEXTBUTTONS_ONLY { - if (SDLPredefinedLayout_TEXTBUTTONS_ONLY == nil) { - SDLPredefinedLayout_TEXTBUTTONS_ONLY = [[SDLPredefinedLayout alloc] initWithValue:@"TEXTBUTTONS_ONLY"]; - } - return SDLPredefinedLayout_TEXTBUTTONS_ONLY; -} - -+ (SDLPredefinedLayout *)GRAPHIC_WITH_TILES { - if (SDLPredefinedLayout_GRAPHIC_WITH_TILES == nil) { - SDLPredefinedLayout_GRAPHIC_WITH_TILES = [[SDLPredefinedLayout alloc] initWithValue:@"GRAPHIC_WITH_TILES"]; - } - return SDLPredefinedLayout_GRAPHIC_WITH_TILES; -} - -+ (SDLPredefinedLayout *)TILES_WITH_GRAPHIC { - if (SDLPredefinedLayout_TILES_WITH_GRAPHIC == nil) { - SDLPredefinedLayout_TILES_WITH_GRAPHIC = [[SDLPredefinedLayout alloc] initWithValue:@"TILES_WITH_GRAPHIC"]; - } - return SDLPredefinedLayout_TILES_WITH_GRAPHIC; -} - -+ (SDLPredefinedLayout *)GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS { - if (SDLPredefinedLayout_GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS == nil) { - SDLPredefinedLayout_GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS = [[SDLPredefinedLayout alloc] initWithValue:@"GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS"]; - } - return SDLPredefinedLayout_GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS; -} - -+ (SDLPredefinedLayout *)TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC { - if (SDLPredefinedLayout_TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC == nil) { - SDLPredefinedLayout_TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC = [[SDLPredefinedLayout alloc] initWithValue:@"TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC"]; - } - return SDLPredefinedLayout_TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC; -} - -+ (SDLPredefinedLayout *)GRAPHIC_WITH_TEXTBUTTONS { - if (SDLPredefinedLayout_GRAPHIC_WITH_TEXTBUTTONS == nil) { - SDLPredefinedLayout_GRAPHIC_WITH_TEXTBUTTONS = [[SDLPredefinedLayout alloc] initWithValue:@"GRAPHIC_WITH_TEXTBUTTONS"]; - } - return SDLPredefinedLayout_GRAPHIC_WITH_TEXTBUTTONS; -} - -+ (SDLPredefinedLayout *)TEXTBUTTONS_WITH_GRAPHIC { - if (SDLPredefinedLayout_TEXTBUTTONS_WITH_GRAPHIC == nil) { - SDLPredefinedLayout_TEXTBUTTONS_WITH_GRAPHIC = [[SDLPredefinedLayout alloc] initWithValue:@"TEXTBUTTONS_WITH_GRAPHIC"]; - } - return SDLPredefinedLayout_TEXTBUTTONS_WITH_GRAPHIC; -} - -+ (SDLPredefinedLayout *)LARGE_GRAPHIC_WITH_SOFTBUTTONS { - if (SDLPredefinedLayout_LARGE_GRAPHIC_WITH_SOFTBUTTONS == nil) { - SDLPredefinedLayout_LARGE_GRAPHIC_WITH_SOFTBUTTONS = [[SDLPredefinedLayout alloc] initWithValue:@"LARGE_GRAPHIC_WITH_SOFTBUTTONS"]; - } - return SDLPredefinedLayout_LARGE_GRAPHIC_WITH_SOFTBUTTONS; -} - -+ (SDLPredefinedLayout *)DOUBLE_GRAPHIC_WITH_SOFTBUTTONS { - if (SDLPredefinedLayout_DOUBLE_GRAPHIC_WITH_SOFTBUTTONS == nil) { - SDLPredefinedLayout_DOUBLE_GRAPHIC_WITH_SOFTBUTTONS = [[SDLPredefinedLayout alloc] initWithValue:@"DOUBLE_GRAPHIC_WITH_SOFTBUTTONS"]; - } - return SDLPredefinedLayout_DOUBLE_GRAPHIC_WITH_SOFTBUTTONS; -} - -+ (SDLPredefinedLayout *)LARGE_GRAPHIC_ONLY { - if (SDLPredefinedLayout_LARGE_GRAPHIC_ONLY == nil) { - SDLPredefinedLayout_LARGE_GRAPHIC_ONLY = [[SDLPredefinedLayout alloc] initWithValue:@"LARGE_GRAPHIC_ONLY"]; - } - return SDLPredefinedLayout_LARGE_GRAPHIC_ONLY; -} - -@end +SDLPredefinedLayout const SDLPredefinedLayoutDefault = @"DEFAULT"; +SDLPredefinedLayout const SDLPredefinedLayoutMedia = @"MEDIA"; +SDLPredefinedLayout const SDLPredefinedLayoutNonMedia = @"NON-MEDIA"; +SDLPredefinedLayout const SDLPredefinedLayoutOnscreenPresets = @"ONSCREEN_PRESETS"; +SDLPredefinedLayout const SDLPredefinedLayoutNavigationFullscreenMap = @"NAV_FULLSCREEN_MAP"; +SDLPredefinedLayout const SDLPredefinedLayoutNavigationList = @"NAV_LIST"; +SDLPredefinedLayout const SDLPredefinedLayoutNavigationKeyboard = @"NAV_KEYBOARD"; +SDLPredefinedLayout const SDLPredefinedLayoutGraphicWithText = @"GRAPHIC_WITH_TEXT"; +SDLPredefinedLayout const SDLPredefinedLayoutTextWithGraphic = @"TEXT_WITH_GRAPHIC"; +SDLPredefinedLayout const SDLPredefinedLayoutTilesOnly = @"TILES_ONLY"; +SDLPredefinedLayout const SDLPredefinedLayoutTextButtonsOnly = @"TEXTBUTTONS_ONLY"; +SDLPredefinedLayout const SDLPredefinedLayoutGraphicWithTiles = @"GRAPHIC_WITH_TILES"; +SDLPredefinedLayout const SDLPredefinedLayoutTilesWithGraphic = @"TILES_WITH_GRAPHIC"; +SDLPredefinedLayout const SDLPredefinedLayoutGraphicWithTextAndSoftButtons = @"GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS"; +SDLPredefinedLayout const SDLPredefinedLayoutTextAndSoftButtonsWithGraphic = @"TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC"; +SDLPredefinedLayout const SDLPredefinedLayoutGraphicWithTextButtons = @"GRAPHIC_WITH_TEXTBUTTONS"; +SDLPredefinedLayout const SDLPredefinedLayoutTextButtonsWithGraphic = @"TEXTBUTTONS_WITH_GRAPHIC"; +SDLPredefinedLayout const SDLPredefinedLayoutLargeGraphicWithSoftButtons = @"LARGE_GRAPHIC_WITH_SOFTBUTTONS"; +SDLPredefinedLayout const SDLPredefinedLayoutDoubleGraphicWithSoftButtons = @"DOUBLE_GRAPHIC_WITH_SOFTBUTTONS"; +SDLPredefinedLayout const SDLPredefinedLayoutLargeGraphicOnly = @"LARGE_GRAPHIC_ONLY"; diff --git a/SmartDeviceLink/SDLPrerecordedSpeech.h b/SmartDeviceLink/SDLPrerecordedSpeech.h index 85934237a..c4e1fb4aa 100644 --- a/SmartDeviceLink/SDLPrerecordedSpeech.h +++ b/SmartDeviceLink/SDLPrerecordedSpeech.h @@ -4,16 +4,10 @@ #import "SDLEnum.h" -@interface SDLPrerecordedSpeech : SDLEnum { -} +typedef SDLEnum SDLPrerecordedSpeech SDL_SWIFT_ENUM; -+ (SDLPrerecordedSpeech *)valueOf:(NSString *)value; -+ (NSArray *)values; - -+ (SDLPrerecordedSpeech *)HELP_JINGLE; -+ (SDLPrerecordedSpeech *)INITIAL_JINGLE; -+ (SDLPrerecordedSpeech *)LISTEN_JINGLE; -+ (SDLPrerecordedSpeech *)POSITIVE_JINGLE; -+ (SDLPrerecordedSpeech *)NEGATIVE_JINGLE; - -@end +extern SDLPrerecordedSpeech const SDLPrerecordedSpeechHelp; +extern SDLPrerecordedSpeech const SDLPrerecordedSpeechInitial; +extern SDLPrerecordedSpeech const SDLPrerecordedSpeechListen; +extern SDLPrerecordedSpeech const SDLPrerecordedSpeechPositive; +extern SDLPrerecordedSpeech const SDLPrerecordedSpeechNegative; diff --git a/SmartDeviceLink/SDLPrerecordedSpeech.m b/SmartDeviceLink/SDLPrerecordedSpeech.m index 676645f76..0c3b63fe7 100644 --- a/SmartDeviceLink/SDLPrerecordedSpeech.m +++ b/SmartDeviceLink/SDLPrerecordedSpeech.m @@ -4,71 +4,8 @@ #import "SDLPrerecordedSpeech.h" -SDLPrerecordedSpeech *SDLPrerecordedSpeech_HELP_JINGLE = nil; -SDLPrerecordedSpeech *SDLPrerecordedSpeech_INITIAL_JINGLE = nil; -SDLPrerecordedSpeech *SDLPrerecordedSpeech_LISTEN_JINGLE = nil; -SDLPrerecordedSpeech *SDLPrerecordedSpeech_POSITIVE_JINGLE = nil; -SDLPrerecordedSpeech *SDLPrerecordedSpeech_NEGATIVE_JINGLE = nil; - -NSArray *SDLPrerecordedSpeech_values = nil; - -@implementation SDLPrerecordedSpeech - -+ (SDLPrerecordedSpeech *)valueOf:(NSString *)value { - for (SDLPrerecordedSpeech *item in SDLPrerecordedSpeech.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLPrerecordedSpeech_values == nil) { - SDLPrerecordedSpeech_values = @[ - SDLPrerecordedSpeech.HELP_JINGLE, - SDLPrerecordedSpeech.INITIAL_JINGLE, - SDLPrerecordedSpeech.LISTEN_JINGLE, - SDLPrerecordedSpeech.POSITIVE_JINGLE, - SDLPrerecordedSpeech.NEGATIVE_JINGLE, - ]; - } - return SDLPrerecordedSpeech_values; -} - -+ (SDLPrerecordedSpeech *)HELP_JINGLE { - if (SDLPrerecordedSpeech_HELP_JINGLE == nil) { - SDLPrerecordedSpeech_HELP_JINGLE = [[SDLPrerecordedSpeech alloc] initWithValue:@"HELP_JINGLE"]; - } - return SDLPrerecordedSpeech_HELP_JINGLE; -} - -+ (SDLPrerecordedSpeech *)INITIAL_JINGLE { - if (SDLPrerecordedSpeech_INITIAL_JINGLE == nil) { - SDLPrerecordedSpeech_INITIAL_JINGLE = [[SDLPrerecordedSpeech alloc] initWithValue:@"INITIAL_JINGLE"]; - } - return SDLPrerecordedSpeech_INITIAL_JINGLE; -} - -+ (SDLPrerecordedSpeech *)LISTEN_JINGLE { - if (SDLPrerecordedSpeech_LISTEN_JINGLE == nil) { - SDLPrerecordedSpeech_LISTEN_JINGLE = [[SDLPrerecordedSpeech alloc] initWithValue:@"LISTEN_JINGLE"]; - } - return SDLPrerecordedSpeech_LISTEN_JINGLE; -} - -+ (SDLPrerecordedSpeech *)POSITIVE_JINGLE { - if (SDLPrerecordedSpeech_POSITIVE_JINGLE == nil) { - SDLPrerecordedSpeech_POSITIVE_JINGLE = [[SDLPrerecordedSpeech alloc] initWithValue:@"POSITIVE_JINGLE"]; - } - return SDLPrerecordedSpeech_POSITIVE_JINGLE; -} - -+ (SDLPrerecordedSpeech *)NEGATIVE_JINGLE { - if (SDLPrerecordedSpeech_NEGATIVE_JINGLE == nil) { - SDLPrerecordedSpeech_NEGATIVE_JINGLE = [[SDLPrerecordedSpeech alloc] initWithValue:@"NEGATIVE_JINGLE"]; - } - return SDLPrerecordedSpeech_NEGATIVE_JINGLE; -} - -@end +SDLPrerecordedSpeech const SDLPrerecordedSpeechHelp = @"HELP_JINGLE"; +SDLPrerecordedSpeech const SDLPrerecordedSpeechInitial = @"INITIAL_JINGLE"; +SDLPrerecordedSpeech const SDLPrerecordedSpeechListen = @"LISTEN_JINGLE"; +SDLPrerecordedSpeech const SDLPrerecordedSpeechPositive = @"POSITIVE_JINGLE"; +SDLPrerecordedSpeech const SDLPrerecordedSpeechNegative = @"NEGATIVE_JINGLE"; diff --git a/SmartDeviceLink/SDLPresetBankCapabilities.h b/SmartDeviceLink/SDLPresetBankCapabilities.h index edf544f8b..9242bddbd 100644 --- a/SmartDeviceLink/SDLPresetBankCapabilities.h +++ b/SmartDeviceLink/SDLPresetBankCapabilities.h @@ -9,25 +9,18 @@ * * @since SDL 2.0 */ -@interface SDLPresetBankCapabilities : SDLRPCStruct { -} -/** - * @abstract Constructs a newly allocated SDLPresetBankCapabilities object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a newly allocated SDLPresetBankCapabilities object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLPresetBankCapabilities : SDLRPCStruct /** * @abstract If Onscreen custom presets are available. * * Required, Boolean */ -@property (strong) NSNumber *onScreenPresetsAvailable; +@property (strong, nonatomic) NSNumber *onScreenPresetsAvailable; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPresetBankCapabilities.m b/SmartDeviceLink/SDLPresetBankCapabilities.m index 7654aa61d..2fe43d7a7 100644 --- a/SmartDeviceLink/SDLPresetBankCapabilities.m +++ b/SmartDeviceLink/SDLPresetBankCapabilities.m @@ -4,32 +4,21 @@ #import "SDLPresetBankCapabilities.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -@implementation SDLPresetBankCapabilities - -- (instancetype)init { - if (self = [super init]) { - } - return self; -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} +@implementation SDLPresetBankCapabilities -- (void)setOnScreenPresetsAvailable:(NSNumber *)onScreenPresetsAvailable { - if (onScreenPresetsAvailable != nil) { - [store setObject:onScreenPresetsAvailable forKey:NAMES_onScreenPresetsAvailable]; - } else { - [store removeObjectForKey:NAMES_onScreenPresetsAvailable]; - } +- (void)setOnScreenPresetsAvailable:(NSNumber *)onScreenPresetsAvailable { + [store sdl_setObject:onScreenPresetsAvailable forName:SDLNameOnScreenPresetsAvailable]; } -- (NSNumber *)onScreenPresetsAvailable { - return [store objectForKey:NAMES_onScreenPresetsAvailable]; +- (NSNumber *)onScreenPresetsAvailable { + return [store sdl_objectForName:SDLNameOnScreenPresetsAvailable]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPrimaryAudioSource.h b/SmartDeviceLink/SDLPrimaryAudioSource.h index 81e9a2257..4eb31c51b 100644 --- a/SmartDeviceLink/SDLPrimaryAudioSource.h +++ b/SmartDeviceLink/SDLPrimaryAudioSource.h @@ -9,64 +9,39 @@ * * @since SDL 2.0 */ -@interface SDLPrimaryAudioSource : SDLEnum { -} - -/** - * @abstract get SDLPrimaryAudioSource according value string - * - * @param value String value to retrieve the object enum for - * - * @return SDLPrimaryAudioSource object - */ -+ (SDLPrimaryAudioSource *)valueOf:(NSString *)value; - -/** - * @abstract declare an array to store all possible SDLPrimaryAudioSource values - * @return the array - */ -+ (NSArray *)values; +typedef SDLEnum SDLPrimaryAudioSource SDL_SWIFT_ENUM; /** * @abstract Currently no source selected - * @return the current primary audio source: *NO_SOURCE_SELECTED* */ -+ (SDLPrimaryAudioSource *)NO_SOURCE_SELECTED; +extern SDLPrimaryAudioSource const SDLPrimaryAudioSourceNoSourceSelected; /** * @abstract USB is current source - * @return the current primary audio source: *USB* */ -+ (SDLPrimaryAudioSource *)USB; +extern SDLPrimaryAudioSource const SDLPrimaryAudioSourceUSB; /** * @abstract USB2 is current source - * @return the current primary audio source: *USB2* */ -+ (SDLPrimaryAudioSource *)USB2; +extern SDLPrimaryAudioSource const SDLPrimaryAudioSourceUSB2; /** * @abstract Bluetooth Stereo is current source - * @return the current primary audio source: *BLUETOOTH_STEREO_BTST* */ -+ (SDLPrimaryAudioSource *)BLUETOOTH_STEREO_BTST; +extern SDLPrimaryAudioSource const SDLPrimaryAudioSourceBluetoothStereo; /** * @abstract Line in is current source - * @return the current primary audio source: *LINE_IN* */ -+ (SDLPrimaryAudioSource *)LINE_IN; +extern SDLPrimaryAudioSource const SDLPrimaryAudioSourceLineIn; /** * @abstract iPod is current source - * @return the current primary audio source: *IPOD* */ -+ (SDLPrimaryAudioSource *)IPOD; +extern SDLPrimaryAudioSource const SDLPrimaryAudioSourceIpod; /** * @abstract Mobile app is current source - * @return the current primary audio source: *MOBILE_APP* */ -+ (SDLPrimaryAudioSource *)MOBILE_APP; - -@end +extern SDLPrimaryAudioSource const SDLPrimaryAudioSourceMobileApp; diff --git a/SmartDeviceLink/SDLPrimaryAudioSource.m b/SmartDeviceLink/SDLPrimaryAudioSource.m index 4293411a8..d0cdd8214 100644 --- a/SmartDeviceLink/SDLPrimaryAudioSource.m +++ b/SmartDeviceLink/SDLPrimaryAudioSource.m @@ -4,89 +4,10 @@ #import "SDLPrimaryAudioSource.h" -SDLPrimaryAudioSource *SDLPrimaryAudioSource_NO_SOURCE_SELECTED = nil; -SDLPrimaryAudioSource *SDLPrimaryAudioSource_USB = nil; -SDLPrimaryAudioSource *SDLPrimaryAudioSource_USB2 = nil; -SDLPrimaryAudioSource *SDLPrimaryAudioSource_BLUETOOTH_STEREO_BTST = nil; -SDLPrimaryAudioSource *SDLPrimaryAudioSource_LINE_IN = nil; -SDLPrimaryAudioSource *SDLPrimaryAudioSource_IPOD = nil; -SDLPrimaryAudioSource *SDLPrimaryAudioSource_MOBILE_APP = nil; - -NSArray *SDLPrimaryAudioSource_values = nil; - -@implementation SDLPrimaryAudioSource - -+ (SDLPrimaryAudioSource *)valueOf:(NSString *)value { - for (SDLPrimaryAudioSource *item in SDLPrimaryAudioSource.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLPrimaryAudioSource_values == nil) { - SDLPrimaryAudioSource_values = @[ - SDLPrimaryAudioSource.NO_SOURCE_SELECTED, - SDLPrimaryAudioSource.USB, - SDLPrimaryAudioSource.USB2, - SDLPrimaryAudioSource.BLUETOOTH_STEREO_BTST, - SDLPrimaryAudioSource.LINE_IN, - SDLPrimaryAudioSource.IPOD, - SDLPrimaryAudioSource.MOBILE_APP, - ]; - } - return SDLPrimaryAudioSource_values; -} - -+ (SDLPrimaryAudioSource *)NO_SOURCE_SELECTED { - if (SDLPrimaryAudioSource_NO_SOURCE_SELECTED == nil) { - SDLPrimaryAudioSource_NO_SOURCE_SELECTED = [[SDLPrimaryAudioSource alloc] initWithValue:@"NO_SOURCE_SELECTED"]; - } - return SDLPrimaryAudioSource_NO_SOURCE_SELECTED; -} - -+ (SDLPrimaryAudioSource *)USB { - if (SDLPrimaryAudioSource_USB == nil) { - SDLPrimaryAudioSource_USB = [[SDLPrimaryAudioSource alloc] initWithValue:@"USB"]; - } - return SDLPrimaryAudioSource_USB; -} - -+ (SDLPrimaryAudioSource *)USB2 { - if (SDLPrimaryAudioSource_USB2 == nil) { - SDLPrimaryAudioSource_USB2 = [[SDLPrimaryAudioSource alloc] initWithValue:@"USB2"]; - } - return SDLPrimaryAudioSource_USB2; -} - -+ (SDLPrimaryAudioSource *)BLUETOOTH_STEREO_BTST { - if (SDLPrimaryAudioSource_BLUETOOTH_STEREO_BTST == nil) { - SDLPrimaryAudioSource_BLUETOOTH_STEREO_BTST = [[SDLPrimaryAudioSource alloc] initWithValue:@"BLUETOOTH_STEREO_BTST"]; - } - return SDLPrimaryAudioSource_BLUETOOTH_STEREO_BTST; -} - -+ (SDLPrimaryAudioSource *)LINE_IN { - if (SDLPrimaryAudioSource_LINE_IN == nil) { - SDLPrimaryAudioSource_LINE_IN = [[SDLPrimaryAudioSource alloc] initWithValue:@"LINE_IN"]; - } - return SDLPrimaryAudioSource_LINE_IN; -} - -+ (SDLPrimaryAudioSource *)IPOD { - if (SDLPrimaryAudioSource_IPOD == nil) { - SDLPrimaryAudioSource_IPOD = [[SDLPrimaryAudioSource alloc] initWithValue:@"IPOD"]; - } - return SDLPrimaryAudioSource_IPOD; -} - -+ (SDLPrimaryAudioSource *)MOBILE_APP { - if (SDLPrimaryAudioSource_MOBILE_APP == nil) { - SDLPrimaryAudioSource_MOBILE_APP = [[SDLPrimaryAudioSource alloc] initWithValue:@"MOBILE_APP"]; - } - return SDLPrimaryAudioSource_MOBILE_APP; -} - -@end +SDLPrimaryAudioSource const SDLPrimaryAudioSourceNoSourceSelected = @"NO_SOURCE_SELECTED"; +SDLPrimaryAudioSource const SDLPrimaryAudioSourceUSB = @"USB"; +SDLPrimaryAudioSource const SDLPrimaryAudioSourceUSB2 = @"USB2"; +SDLPrimaryAudioSource const SDLPrimaryAudioSourceBluetoothStereo = @"BLUETOOTH_STEREO_BTST"; +SDLPrimaryAudioSource const SDLPrimaryAudioSourceLineIn = @"LINE_IN"; +SDLPrimaryAudioSource const SDLPrimaryAudioSourceIpod = @"IPOD"; +SDLPrimaryAudioSource const SDLPrimaryAudioSourceMobileApp = @"MOBILE_APP"; diff --git a/SmartDeviceLink/SDLPrioritizedObjectCollection.h b/SmartDeviceLink/SDLPrioritizedObjectCollection.h index 8cf90c805..993f7d903 100644 --- a/SmartDeviceLink/SDLPrioritizedObjectCollection.h +++ b/SmartDeviceLink/SDLPrioritizedObjectCollection.h @@ -5,6 +5,8 @@ #import +NS_ASSUME_NONNULL_BEGIN + @interface SDLPrioritizedObjectCollection : NSObject /** @@ -15,13 +17,15 @@ * @param object The object to be added to the priority collection * @param priority The priority to use when determining the location of the object in the collection. A lower number is considered a higher priority */ -- (void)addObject:(id)object withPriority:(NSInteger)priority; +- (void)addObject:(nullable id)object withPriority:(NSInteger)priority; /** * Retreive the highest priority object from the collection. This also removes the object. * * @return The highest priority object retrieved from the collection. */ -- (id)nextObject; +- (nullable id)nextObject; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPrioritizedObjectCollection.m b/SmartDeviceLink/SDLPrioritizedObjectCollection.m index 637596d14..398ca4057 100644 --- a/SmartDeviceLink/SDLPrioritizedObjectCollection.m +++ b/SmartDeviceLink/SDLPrioritizedObjectCollection.m @@ -6,9 +6,10 @@ #import "SDLPrioritizedObjectCollection.h" #import "SDLObjectWithPriority.h" +NS_ASSUME_NONNULL_BEGIN @interface SDLPrioritizedObjectCollection () { - NSMutableArray *privateArray; + NSMutableArray *privateArray; } @end @@ -18,12 +19,12 @@ @implementation SDLPrioritizedObjectCollection - (instancetype)init { self = [super init]; if (self) { - privateArray = [NSMutableArray new]; + privateArray = [NSMutableArray new]; } return self; } -- (void)addObject:(id)object withPriority:(NSInteger)priority { +- (void)addObject:(nullable id)object withPriority:(NSInteger)priority { if (object == nil || [[NSNull null] isEqual:object]) { return; } @@ -49,7 +50,7 @@ - (void)addObject:(id)object withPriority:(NSInteger)priority { } } -- (instancetype)nextObject { +- (nullable instancetype)nextObject { if (privateArray.count == 0) { return nil; } @@ -64,3 +65,5 @@ - (instancetype)nextObject { } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLProtocol.h b/SmartDeviceLink/SDLProtocol.h index 0d7023ce9..a0a4d1ecd 100644 --- a/SmartDeviceLink/SDLProtocol.h +++ b/SmartDeviceLink/SDLProtocol.h @@ -5,27 +5,23 @@ @class SDLProtocolHeader; @class SDLProtocolRecievedMessageRouter; +NS_ASSUME_NONNULL_BEGIN + typedef NS_ENUM(NSUInteger, SDLProtocolError) { SDLProtocolErrorNoSecurityManager, }; extern NSString *const SDLProtocolSecurityErrorDomain; + @interface SDLProtocol : SDLAbstractProtocol // Sending -- (void)sendStartSessionWithType:(SDLServiceType)serviceType __deprecated_msg(("Use startServiceWithType: instead")); -- (void)startServiceWithType:(SDLServiceType)serviceType __deprecated_msg(("Use startServiceWithType:payload: instead")); -- (void)startServiceWithType:(SDLServiceType)serviceType payload:(NSData *)payload; - -- (void)startSecureServiceWithType:(SDLServiceType)serviceType completionHandler:(void (^)(BOOL success, NSError *error))completionHandler __deprecated_msg(("Use startSecureServiceWithType:payload:completionHandler instead")); -- (void)startSecureServiceWithType:(SDLServiceType)serviceType payload:(NSData *)payload completionHandler:(void (^)(BOOL success, NSError *error))completionHandler; - -- (void)sendEndSessionWithType:(SDLServiceType)serviceType __deprecated_msg(("Use endServiceWithType: instead")); +- (void)startServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload; +- (void)startSecureServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload completionHandler:(void (^)(BOOL success, NSError *error))completionHandler; - (void)endServiceWithType:(SDLServiceType)serviceType; - (void)sendRPC:(SDLRPCMessage *)message; - (BOOL)sendRPC:(SDLRPCMessage *)message encrypted:(BOOL)encryption error:(NSError **)error; -- (void)sendRPCRequest:(SDLRPCRequest *)rpcRequest __deprecated_msg(("Use sendRPC: instead")); - (void)sendRawData:(NSData *)data withServiceType:(SDLServiceType)serviceType; - (void)sendEncryptedRawData:(NSData *)data onService:(SDLServiceType)serviceType; @@ -33,3 +29,5 @@ extern NSString *const SDLProtocolSecurityErrorDomain; - (void)handleBytesFromTransport:(NSData *)receivedData; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLProtocol.m b/SmartDeviceLink/SDLProtocol.m index 8a8c31324..186226414 100644 --- a/SmartDeviceLink/SDLProtocol.m +++ b/SmartDeviceLink/SDLProtocol.m @@ -3,14 +3,14 @@ #import "SDLFunctionID.h" -#import "SDLJsonEncoder.h" #import "SDLAbstractTransport.h" #import "SDLControlFramePayloadConstants.h" +#import "SDLControlFramePayloadEndService.h" #import "SDLControlFramePayloadNak.h" #import "SDLControlFramePayloadRPCStartService.h" #import "SDLControlFramePayloadRPCStartServiceAck.h" -#import "SDLDebugTool.h" +#import "SDLLogMacros.h" #import "SDLGlobals.h" #import "SDLPrioritizedObjectCollection.h" #import "SDLProtocol.h" @@ -33,17 +33,20 @@ typedef NSNumber SDLServiceTypeBox; +NS_ASSUME_NONNULL_BEGIN + @interface SDLProtocol () { UInt32 _messageID; dispatch_queue_t _receiveQueue; dispatch_queue_t _sendQueue; SDLPrioritizedObjectCollection *_prioritizedCollection; - BOOL _alreadyDestructed; } -@property (strong) NSMutableData *receiveBuffer; -@property (strong) SDLProtocolReceivedMessageRouter *messageRouter; -@property (nonatomic, strong) NSMutableDictionary *serviceHeaders; +@property (strong, nonatomic) NSMutableData *receiveBuffer; +@property (nullable, strong, nonatomic) SDLProtocolReceivedMessageRouter *messageRouter; +@property (strong, nonatomic) NSMutableDictionary *serviceHeaders; +@property (assign, nonatomic) int32_t hashId; + @end @@ -56,6 +59,7 @@ @implementation SDLProtocol - (instancetype)init { if (self = [super init]) { _messageID = 0; + _hashId = SDLControlFrameInt32NotFound; _receiveQueue = dispatch_queue_create("com.sdl.protocol.receive", DISPATCH_QUEUE_SERIAL); _sendQueue = dispatch_queue_create("com.sdl.protocol.transmit", DISPATCH_QUEUE_SERIAL); _prioritizedCollection = [[SDLPrioritizedObjectCollection alloc] init]; @@ -72,40 +76,27 @@ - (instancetype)init { - (UInt8)sdl_retrieveSessionIDforServiceType:(SDLServiceType)serviceType { SDLProtocolHeader *header = self.serviceHeaders[@(serviceType)]; if (header == nil) { - NSString *logMessage = [NSString stringWithFormat:@"Warning: Tried to retrieve sessionID for serviceType %i, but no header is saved for that service type", serviceType]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_Protocol toOutput:SDLDebugOutput_File | SDLDebugOutput_DeviceConsole toGroup:self.debugConsoleGroupName]; + SDLLogW(@"Warning: Tried to retrieve sessionID for serviceType %i, but no header is saved for that service type", serviceType); } return header.sessionID; } -- (void)sendStartSessionWithType:(SDLServiceType)serviceType { - [self startServiceWithType:serviceType payload:nil]; -} - #pragma mark - Start Service -- (void)startServiceWithType:(SDLServiceType)serviceType { - [self startServiceWithType:serviceType payload:nil]; -} - -- (void)startServiceWithType:(SDLServiceType)serviceType payload:(NSData *)payload { +- (void)startServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload { // No encryption, just build and send the message synchronously SDLProtocolMessage *message = [self sdl_createStartServiceMessageWithType:serviceType encrypted:NO payload:payload]; [self sdl_sendDataToTransport:message.data onService:serviceType]; } -- (void)startSecureServiceWithType:(SDLServiceType)serviceType completionHandler:(void (^)(BOOL success, NSError *error))completionHandler { - [self startSecureServiceWithType:serviceType payload:nil completionHandler:completionHandler]; -} - -- (void)startSecureServiceWithType:(SDLServiceType)serviceType payload:(NSData *)payload completionHandler:(void (^)(BOOL success, NSError *error))completionHandler { +- (void)startSecureServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload completionHandler:(void (^)(BOOL success, NSError *error))completionHandler { [self sdl_initializeTLSEncryptionWithCompletionHandler:^(BOOL success, NSError *error) { if (!success) { // We can't start the service because we don't have encryption, return the error completionHandler(success, error); - return; // from block + BLOCK_RETURN; } // TLS initialization succeeded. Build and send the message. @@ -114,16 +105,16 @@ - (void)startSecureServiceWithType:(SDLServiceType)serviceType payload:(NSData * }]; } -- (SDLProtocolMessage *)sdl_createStartServiceMessageWithType:(SDLServiceType)serviceType encrypted:(BOOL)encryption payload:(NSData *)payload { - SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:[SDLGlobals globals].majorProtocolVersion]; +- (SDLProtocolMessage *)sdl_createStartServiceMessageWithType:(SDLServiceType)serviceType encrypted:(BOOL)encryption payload:(nullable NSData *)payload { + SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:[SDLGlobals sharedGlobals].majorProtocolVersion]; NSData *servicePayload = payload; switch (serviceType) { - case SDLServiceType_RPC: { + case SDLServiceTypeRPC: { // Need a different header for starting the RPC service, we get the session Id from the HU, or its the same as the RPC service's header = [SDLProtocolHeader headerForVersion:1]; - if ([self sdl_retrieveSessionIDforServiceType:SDLServiceType_RPC]) { - header.sessionID = [self sdl_retrieveSessionIDforServiceType:SDLServiceType_RPC]; + if ([self sdl_retrieveSessionIDforServiceType:SDLServiceTypeRPC]) { + header.sessionID = [self sdl_retrieveSessionIDforServiceType:SDLServiceTypeRPC]; } else { header.sessionID = 0; } @@ -132,13 +123,12 @@ - (SDLProtocolMessage *)sdl_createStartServiceMessageWithType:(SDLServiceType)se servicePayload = startServicePayload.data; } break; default: { - header.sessionID = [self sdl_retrieveSessionIDforServiceType:SDLServiceType_RPC]; + header.sessionID = [self sdl_retrieveSessionIDforServiceType:SDLServiceTypeRPC]; } break; } - header.frameType = SDLFrameType_Control; + header.frameType = SDLFrameTypeControl; header.serviceType = serviceType; - header.frameData = SDLFrameData_StartSession; - header.bytesInPayload = (UInt32)servicePayload.length; + header.frameData = SDLFrameInfoStartService; // Sending a StartSession with the encrypted bit set causes module to initiate SSL Handshake with a ClientHello message, which should be handled by the 'processControlService' method. header.encrypted = encryption; @@ -146,9 +136,9 @@ - (SDLProtocolMessage *)sdl_createStartServiceMessageWithType:(SDLServiceType)se return [SDLProtocolMessage messageWithHeader:header andPayload:servicePayload]; } -- (void)sdl_initializeTLSEncryptionWithCompletionHandler:(void (^)(BOOL success, NSError *error))completionHandler { +- (void)sdl_initializeTLSEncryptionWithCompletionHandler:(void (^)(BOOL success, NSError *_Nullable error))completionHandler { if (self.securityManager == nil) { - [SDLDebugTool logInfo:@"Could not start service, encryption was requested but failed because no security manager has been set."]; + SDLLogE(@"Could not start streaming service, encryption was requested by the remote system but failed because there is no security manager set for this app."); if (completionHandler != nil) { completionHandler(NO, [NSError errorWithDomain:SDLProtocolSecurityErrorDomain code:SDLProtocolErrorNoSecurityManager userInfo:nil]); @@ -157,38 +147,43 @@ - (void)sdl_initializeTLSEncryptionWithCompletionHandler:(void (^)(BOOL success, return; } - [self.securityManager initializeWithAppId:self.appId - completionHandler:^(NSError *_Nullable error) { - if (error) { - NSString *logString = [NSString stringWithFormat:@"Security Manager failed to initialize with error: %@", error]; - [SDLDebugTool logInfo:logString]; - - if (completionHandler != nil) { - completionHandler(NO, error); - } - } else { - if (completionHandler != nil) { - completionHandler(YES, nil); - } - } - }]; + [self.securityManager initializeWithAppId:self.appId completionHandler:^(NSError *_Nullable error) { + if (error) { + SDLLogE(@"Security Manager failed to initialize with error: %@", error); + + if (completionHandler != nil) { + completionHandler(NO, error); + } + } else { + if (completionHandler != nil) { + completionHandler(YES, nil); + } + } + }]; } #pragma mark - End Service -- (void)sendEndSessionWithType:(SDLServiceType)serviceType { - [self endServiceWithType:serviceType]; -} - - (void)endServiceWithType:(SDLServiceType)serviceType { - SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:[SDLGlobals globals].majorProtocolVersion]; - header.frameType = SDLFrameType_Control; + SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:[SDLGlobals sharedGlobals].majorProtocolVersion]; + header.frameType = SDLFrameTypeControl; header.serviceType = serviceType; - header.frameData = SDLFrameData_EndSession; + header.frameData = SDLFrameInfoEndService; header.sessionID = [self sdl_retrieveSessionIDforServiceType:serviceType]; - SDLProtocolMessage *message = [SDLProtocolMessage messageWithHeader:header andPayload:nil]; + // 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) { + SDLControlFramePayloadEndService *endServicePayload = [[SDLControlFramePayloadEndService alloc] initWithHashId:self.hashId]; + payload = endServicePayload.data; + } else { + payload = [NSData dataWithBytes:&_hashId length:sizeof(_hashId)]; + } + } + + SDLProtocolMessage *message = [SDLProtocolMessage messageWithHeader:header andPayload:payload]; [self sdl_sendDataToTransport:message.data onService:serviceType]; } @@ -201,16 +196,18 @@ - (void)sendRPC:(SDLRPCMessage *)message { - (BOOL)sendRPC:(SDLRPCMessage *)message encrypted:(BOOL)encryption error:(NSError *__autoreleasing *)error { NSParameterAssert(message != nil); - - NSData *jsonData = [[SDLJsonEncoder instance] encodeDictionary:[message serializeAsDictionary:[SDLGlobals globals].majorProtocolVersion]]; + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:[message serializeAsDictionary:[SDLGlobals sharedGlobals].majorProtocolVersion] options:kNilOptions error:error]; + + if (error != nil) { + SDLLogW(@"Error encoding JSON data: %@", *error); + } + NSData *messagePayload = nil; - - NSString *logMessage = [NSString stringWithFormat:@"%@", message]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogV(@"Send RPC %@", message); // Build the message payload. Include the binary header if necessary // VERSION DEPENDENT CODE - switch ([SDLGlobals globals].majorProtocolVersion) { + switch ([SDLGlobals sharedGlobals].majorProtocolVersion) { case 1: { // No binary header in version 1 messagePayload = jsonData; @@ -222,7 +219,7 @@ - (BOOL)sendRPC:(SDLRPCMessage *)message encrypted:(BOOL)encryption error:(NSErr // Build a binary header // Serialize the RPC data into an NSData SDLRPCPayload *rpcPayload = [[SDLRPCPayload alloc] init]; - rpcPayload.functionID = [[[[SDLFunctionID alloc] init] getFunctionID:[message getFunctionName]] intValue]; + rpcPayload.functionID = [[[SDLFunctionID sharedInstance] functionIdForName:[message getFunctionName]] intValue]; rpcPayload.jsonData = jsonData; rpcPayload.binaryData = message.bulkData; @@ -248,52 +245,40 @@ - (BOOL)sendRPC:(SDLRPCMessage *)message encrypted:(BOOL)encryption error:(NSErr } } break; default: { - NSAssert(NO, @"Attempting to send an RPC based on an unknown version number: %@, message: %@", @([SDLGlobals globals].majorProtocolVersion), message); + NSAssert(NO, @"Attempting to send an RPC based on an unknown version number: %@, message: %@", @([SDLGlobals sharedGlobals].majorProtocolVersion), message); } break; } // Build the protocol level header & message - SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:[SDLGlobals globals].majorProtocolVersion]; + SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:[SDLGlobals sharedGlobals].majorProtocolVersion]; header.encrypted = encryption; - header.frameType = SDLFrameType_Single; - header.serviceType = (message.bulkData.length <= 0) ? SDLServiceType_RPC : SDLServiceType_BulkData; - header.frameData = SDLFrameData_SingleFrame; - header.sessionID = [self sdl_retrieveSessionIDforServiceType:SDLServiceType_RPC]; - header.bytesInPayload = (UInt32)messagePayload.length; + header.frameType = SDLFrameTypeSingle; + header.serviceType = (message.bulkData.length <= 0) ? SDLServiceTypeRPC : SDLServiceTypeBulkData; + header.frameData = SDLFrameInfoSingleFrame; + header.sessionID = [self sdl_retrieveSessionIDforServiceType:SDLServiceTypeRPC]; // V2+ messages need to have message ID property set. - if ([SDLGlobals globals].majorProtocolVersion >= 2) { + if ([SDLGlobals sharedGlobals].majorProtocolVersion >= 2) { [((SDLV2ProtocolHeader *)header) setMessageID:++_messageID]; } - SDLProtocolMessage *protocolMessage = [SDLProtocolMessage messageWithHeader:header andPayload:messagePayload]; // See if the message is small enough to send in one transmission. If not, break it up into smaller messages and send. - if (protocolMessage.size < [[SDLGlobals globals] mtuSizeForServiceType:SDLServiceType_RPC]) { - [self sdl_logRPCSend:protocolMessage]; - [self sdl_sendDataToTransport:protocolMessage.data onService:SDLServiceType_RPC]; + if (protocolMessage.size < [[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeRPC]) { + SDLLogV(@"Sending protocol message: %@", protocolMessage); + [self sdl_sendDataToTransport:protocolMessage.data onService:SDLServiceTypeRPC]; } else { - NSArray *messages = [SDLProtocolMessageDisassembler disassemble:protocolMessage withLimit:[[SDLGlobals globals] mtuSizeForServiceType:SDLServiceType_RPC]]; + NSArray *messages = [SDLProtocolMessageDisassembler disassemble:protocolMessage withLimit:[[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeRPC]]; for (SDLProtocolMessage *smallerMessage in messages) { - [self sdl_logRPCSend:smallerMessage]; - [self sdl_sendDataToTransport:smallerMessage.data onService:SDLServiceType_RPC]; + SDLLogV(@"Sending protocol message: %@", smallerMessage); + [self sdl_sendDataToTransport:smallerMessage.data onService:SDLServiceTypeRPC]; } } return YES; } -// SDLRPCRequest in from app -> SDLProtocolMessage out to transport layer. -- (void)sendRPCRequest:(SDLRPCRequest *)rpcRequest { - [self sendRPC:rpcRequest]; -} - -- (void)sdl_logRPCSend:(SDLProtocolMessage *)message { - NSString *logMessage = [NSString stringWithFormat:@"Sending : %@", message]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_Protocol toOutput:SDLDebugOutput_File | SDLDebugOutput_DeviceConsole toGroup:self.debugConsoleGroupName]; -} - // Use for normal messages - (void)sdl_sendDataToTransport:(NSData *)data onService:(NSInteger)priority { [_prioritizedCollection addObject:data withPriority:priority]; @@ -316,9 +301,9 @@ - (void)sendEncryptedRawData:(NSData *)data onService:(SDLServiceType)serviceTyp } - (void)sdl_sendRawData:(NSData *)data onService:(SDLServiceType)service encryption:(BOOL)encryption { - SDLV2ProtocolHeader *header = [[SDLV2ProtocolHeader alloc] initWithVersion:[SDLGlobals globals].majorProtocolVersion]; + SDLV2ProtocolHeader *header = [[SDLV2ProtocolHeader alloc] initWithVersion:[SDLGlobals sharedGlobals].majorProtocolVersion]; header.encrypted = encryption; - header.frameType = SDLFrameType_Single; + header.frameType = SDLFrameTypeSingle; header.serviceType = service; header.sessionID = [self sdl_retrieveSessionIDforServiceType:service]; header.messageID = ++_messageID; @@ -328,22 +313,19 @@ - (void)sdl_sendRawData:(NSData *)data onService:(SDLServiceType)service encrypt data = [self.securityManager encryptData:data withError:&encryptError]; if (encryptError) { - NSString *encryptLogString = [NSString stringWithFormat:@"Error attempting to encrypt raw data for service: %@, error: %@", @(service), encryptError]; - [SDLDebugTool logInfo:encryptLogString]; + SDLLogE(@"Error attempting to encrypt raw data for service: %@, error: %@", @(service), encryptError); } } - header.bytesInPayload = (UInt32)data.length; - SDLProtocolMessage *message = [SDLProtocolMessage messageWithHeader:header andPayload:data]; - if (message.size < [[SDLGlobals globals] mtuSizeForServiceType:service]) { - [self sdl_logRPCSend:message]; + if (message.size < [[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeRPC]) { + SDLLogV(@"Sending protocol message: %@", message); [self sdl_sendDataToTransport:message.data onService:header.serviceType]; } else { - NSArray *messages = [SDLProtocolMessageDisassembler disassemble:message withLimit:[[SDLGlobals globals] mtuSizeForServiceType:service]]; + NSArray *messages = [SDLProtocolMessageDisassembler disassemble:message withLimit:[[SDLGlobals sharedGlobals] mtuSizeForServiceType:service]]; for (SDLProtocolMessage *smallerMessage in messages) { - [self sdl_logRPCSend:smallerMessage]; + SDLLogV(@"Sending protocol message: %@", smallerMessage); [self sdl_sendDataToTransport:smallerMessage.data onService:header.serviceType]; } } @@ -356,7 +338,7 @@ - (void)sdl_sendRawData:(NSData *)data onService:(SDLServiceType)service encrypt - (void)handleBytesFromTransport:(NSData *)receivedData { // Initialize the receive buffer which will contain bytes while messages are constructed. if (self.receiveBuffer == nil) { - self.receiveBuffer = [NSMutableData dataWithCapacity:(4 * [[SDLGlobals globals] mtuSizeForServiceType:SDLServiceType_RPC])]; + self.receiveBuffer = [NSMutableData dataWithCapacity:(4 * [[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeRPC])]; } // Save the data @@ -366,7 +348,6 @@ - (void)handleBytesFromTransport:(NSData *)receivedData { } - (void)processMessages { - NSMutableString *logMessage = [[NSMutableString alloc] init]; UInt8 incomingVersion = [SDLProtocolHeader determineVersion:self.receiveBuffer]; // If we have enough bytes, create the header. @@ -393,19 +374,16 @@ - (void)processMessages { payload = [self.securityManager decryptData:payload withError:&decryptError]; if (decryptError) { - NSString *decryptLogMessage = [NSString stringWithFormat:@"Error attempting to decrypt a payload with error: %@", decryptError]; - [SDLDebugTool logInfo:decryptLogMessage]; + SDLLogE(@"Error attempting to decrypt a payload with error: %@", decryptError); return; } } message = [SDLProtocolMessage messageWithHeader:header andPayload:payload]; - [logMessage appendFormat:@"message complete. %@", message]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_Protocol toOutput:SDLDebugOutput_File | SDLDebugOutput_DeviceConsole toGroup:self.debugConsoleGroupName]; + SDLLogV(@"Protocol message received: %@", message); } else { // Need to wait for more bytes. - [logMessage appendFormat:@"header complete. message incomplete, waiting for %ld more bytes. Header:%@", (long)(messageSize - self.receiveBuffer.length), header]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_Protocol toOutput:SDLDebugOutput_File | SDLDebugOutput_DeviceConsole toGroup:self.debugConsoleGroupName]; + SDLLogV(@" protocol header complete, message incomplete, waiting for %ld more bytes. Header: %@", (long)(messageSize - self.receiveBuffer.length), header); return; } @@ -428,14 +406,16 @@ - (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceA // V5 Packet if (startServiceACK.header.version >= 5) { switch (startServiceACK.header.serviceType) { - case SDLServiceType_RPC: { + case SDLServiceTypeRPC: { SDLControlFramePayloadRPCStartServiceAck *startServiceACKPayload = [[SDLControlFramePayloadRPCStartServiceAck alloc] initWithData:startServiceACK.payload]; -// NSLog(@"ServiceAckPayload: %@", startServiceACKPayload); if (startServiceACKPayload.mtu != SDLControlFrameInt64NotFound) { - [[SDLGlobals globals] setDynamicMTUSize:startServiceACKPayload.mtu forServiceType:startServiceACK.header.serviceType]; + [[SDLGlobals sharedGlobals] setDynamicMTUSize:startServiceACKPayload.mtu forServiceType:startServiceACK.header.serviceType]; + } + if (startServiceACKPayload.hashId != SDLControlFrameInt32NotFound) { + self.hashId = startServiceACKPayload.hashId; } - [SDLGlobals globals].maxHeadUnitVersion = (startServiceACKPayload.protocolVersion != nil) ? startServiceACKPayload.protocolVersion : [NSString stringWithFormat:@"%u.0.0", startServiceACK.header.version]; + [SDLGlobals sharedGlobals].maxHeadUnitVersion = (startServiceACKPayload.protocolVersion != nil) ? startServiceACKPayload.protocolVersion : [NSString stringWithFormat:@"%u.0.0", startServiceACK.header.version]; // TODO: Hash id? } break; default: @@ -444,8 +424,8 @@ - (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceA } else { // V4 and below packet switch (startServiceACK.header.serviceType) { - case SDLServiceType_RPC: { - [SDLGlobals globals].maxHeadUnitVersion = [NSString stringWithFormat:@"%u.0.0", startServiceACK.header.version]; + case SDLServiceTypeRPC: { + [SDLGlobals sharedGlobals].maxHeadUnitVersion = [NSString stringWithFormat:@"%u.0.0", startServiceACK.header.version]; } break; default: break; @@ -460,19 +440,6 @@ - (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceA if ([listener respondsToSelector:@selector(handleProtocolStartServiceACKMessage:)]) { [listener handleProtocolStartServiceACKMessage:startServiceACK]; } - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - if ([listener respondsToSelector:@selector(handleProtocolStartSessionACK:)]) { - [listener handleProtocolStartSessionACK:startServiceACK.header]; - } - - if ([listener respondsToSelector:@selector(handleProtocolStartSessionACK:sessionID:version:)]) { - [listener handleProtocolStartSessionACK:startServiceACK.header.serviceType - sessionID:startServiceACK.header.sessionID - version:startServiceACK.header.version]; -#pragma clang diagnostic pop - } } } @@ -483,13 +450,6 @@ - (void)handleProtocolStartServiceNAKMessage:(SDLProtocolMessage *)startServiceN if ([listener respondsToSelector:@selector(handleProtocolStartServiceNAKMessage:)]) { [listener handleProtocolStartServiceNAKMessage:startServiceNAK]; } - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - if ([listener respondsToSelector:@selector(handleProtocolStartSessionNACK:)]) { - [listener handleProtocolStartSessionNACK:startServiceNAK.header.serviceType]; - } -#pragma clang diagnostic pop } } @@ -501,14 +461,7 @@ - (void)handleProtocolEndServiceACKMessage:(SDLProtocolMessage *)endServiceACK { if ([listener respondsToSelector:@selector(handleProtocolEndServiceACKMessage:)]) { [listener handleProtocolEndServiceACKMessage:endServiceACK]; } - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - if ([listener respondsToSelector:@selector(handleProtocolEndSessionACK:)]) { - [listener handleProtocolEndSessionACK:endServiceACK.header.serviceType]; - } } -#pragma clang diagnostic pop } - (void)handleProtocolEndServiceNAKMessage:(SDLProtocolMessage *)endServiceNAK { @@ -518,22 +471,15 @@ - (void)handleProtocolEndServiceNAKMessage:(SDLProtocolMessage *)endServiceNAK { if ([listener respondsToSelector:@selector(handleProtocolEndServiceNAKMessage:)]) { [listener handleProtocolEndServiceNAKMessage:endServiceNAK]; } - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - if ([listener respondsToSelector:@selector(handleProtocolEndSessionNACK:)]) { - [listener handleProtocolEndSessionNACK:endServiceNAK.header.serviceType]; - } } -#pragma clang diagnostic pop } - (void)handleHeartbeatForSession:(Byte)session { // Respond with a heartbeat ACK - SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:[SDLGlobals globals].majorProtocolVersion]; - header.frameType = SDLFrameType_Control; - header.serviceType = SDLServiceType_Control; - header.frameData = SDLFrameData_HeartbeatACK; + SDLProtocolHeader *header = [SDLProtocolHeader headerForVersion:[SDLGlobals sharedGlobals].majorProtocolVersion]; + header.frameType = SDLFrameTypeControl; + header.serviceType = SDLServiceTypeControl; + header.frameData = SDLFrameInfoHeartbeatACK; header.sessionID = session; SDLProtocolMessage *message = [SDLProtocolMessage messageWithHeader:header andPayload:nil]; [self sdl_sendDataToTransport:message.data onService:header.serviceType]; @@ -555,7 +501,7 @@ - (void)handleHeartbeatACK { - (void)onProtocolMessageReceived:(SDLProtocolMessage *)msg { // Control service (but not control frame type) messages are TLS handshake messages - if (msg.header.serviceType == SDLServiceType_Control) { + if (msg.header.serviceType == SDLServiceTypeControl) { [self sdl_processSecurityMessage:msg]; return; } @@ -596,8 +542,7 @@ - (void)sdl_logControlNAKPayload:(SDLProtocolMessage *)nakMessage { SDLControlFramePayloadNak *endServiceNakPayload = [[SDLControlFramePayloadNak alloc] initWithData:nakMessage.payload]; NSArray *rejectedParams = endServiceNakPayload.rejectedParams; if (rejectedParams.count > 0) { - NSString *log = [NSString stringWithFormat:@"Start Service NAK'd, service type: %@, rejectedParams: %@", @(nakMessage.header.serviceType), rejectedParams]; - [SDLDebugTool logInfo:log]; + SDLLogE(@"Start Service NAK'd, service type: %@, rejectedParams: %@", @(nakMessage.header.serviceType), rejectedParams); } } } @@ -607,15 +552,13 @@ - (void)sdl_logControlNAKPayload:(SDLProtocolMessage *)nakMessage { // TODO: These should be split out to a separate class to be tested properly - (void)sdl_processSecurityMessage:(SDLProtocolMessage *)clientHandshakeMessage { if (self.securityManager == nil) { - NSString *logString = [NSString stringWithFormat:@"Failed to process security message because no security manager is set. Message: %@", clientHandshakeMessage]; - [SDLDebugTool logInfo:logString]; + SDLLogE(@"Failed to process security message because no security manager is set. Message: %@", clientHandshakeMessage); return; } // Misformatted handshake message, something went wrong if (clientHandshakeMessage.payload.length <= 12) { - NSString *logString = [NSString stringWithFormat:@"Security message is malformed, less than 12 bytes. It does not have a protocol header. Message: %@", clientHandshakeMessage]; - [SDLDebugTool logInfo:logString]; + SDLLogE(@"Security message is malformed, less than 12 bytes. It does not have a protocol header. Message: %@", clientHandshakeMessage); } // Tear off the binary header of the client protocol message to get at the actual TLS handshake @@ -629,8 +572,7 @@ - (void)sdl_processSecurityMessage:(SDLProtocolMessage *)clientHandshakeMessage // If the handshake went bad and the security library ain't happy, send over the failure to the module. This should result in an ACK with encryption off. SDLProtocolMessage *serverSecurityMessage = nil; if (serverHandshakeData == nil) { - NSString *logString = [NSString stringWithFormat:@"Error running TLS handshake procedure. Sending error to module. Error: %@", handshakeError]; - [SDLDebugTool logInfo:logString]; + SDLLogE(@"Error running TLS handshake procedure. Sending error to module. Error: %@", handshakeError); serverSecurityMessage = [self.class sdl_serverSecurityFailedMessageWithClientMessageHeader:clientHandshakeMessage.header messageId:++_messageID]; } else { @@ -639,16 +581,16 @@ - (void)sdl_processSecurityMessage:(SDLProtocolMessage *)clientHandshakeMessage } // Send the response or error message. If it's an error message, the module will ACK the Start Service without encryption. If it's a TLS handshake message, the module will ACK with encryption - [self sdl_sendDataToTransport:serverSecurityMessage.data onService:SDLServiceType_Control]; + [self sdl_sendDataToTransport:serverSecurityMessage.data onService:SDLServiceTypeControl]; } + (SDLProtocolMessage *)sdl_serverSecurityHandshakeMessageWithData:(NSData *)data clientMessageHeader:(SDLProtocolHeader *)clientHeader messageId:(UInt32)messageId { // This can't possibly be a v1 header because v1 does not have control protocol messages SDLV2ProtocolHeader *serverMessageHeader = [SDLProtocolHeader headerForVersion:clientHeader.version]; serverMessageHeader.encrypted = NO; - serverMessageHeader.frameType = SDLFrameType_Single; - serverMessageHeader.serviceType = SDLServiceType_Control; - serverMessageHeader.frameData = SDLFrameData_SingleFrame; + serverMessageHeader.frameType = SDLFrameTypeSingle; + serverMessageHeader.serviceType = SDLServiceTypeControl; + serverMessageHeader.frameData = SDLFrameInfoSingleFrame; serverMessageHeader.sessionID = clientHeader.sessionID; serverMessageHeader.messageID = messageId; @@ -660,7 +602,6 @@ + (SDLProtocolMessage *)sdl_serverSecurityHandshakeMessageWithData:(NSData *)dat serverTLSPayload.binaryData = data; NSData *binaryData = serverTLSPayload.data; - serverMessageHeader.bytesInPayload = (UInt32)binaryData.length; return [SDLProtocolMessage messageWithHeader:serverMessageHeader andPayload:binaryData]; } @@ -669,9 +610,9 @@ + (SDLProtocolMessage *)sdl_serverSecurityFailedMessageWithClientMessageHeader:( // This can't possibly be a v1 header because v1 does not have control protocol messages SDLV2ProtocolHeader *serverMessageHeader = [SDLProtocolHeader headerForVersion:clientHeader.version]; serverMessageHeader.encrypted = NO; - serverMessageHeader.frameType = SDLFrameType_Single; - serverMessageHeader.serviceType = SDLServiceType_Control; - serverMessageHeader.frameData = SDLFrameData_SingleFrame; + serverMessageHeader.frameType = SDLFrameTypeSingle; + serverMessageHeader.serviceType = SDLServiceTypeControl; + serverMessageHeader.frameData = SDLFrameInfoSingleFrame; serverMessageHeader.sessionID = clientHeader.sessionID; serverMessageHeader.messageID = messageId; @@ -682,32 +623,11 @@ + (SDLProtocolMessage *)sdl_serverSecurityFailedMessageWithClientMessageHeader:( serverTLSPayload.correlationID = 0x00; NSData *binaryData = serverTLSPayload.data; - serverMessageHeader.bytesInPayload = (UInt32)binaryData.length; // TODO: (Joel F.)[2016-02-15] This is supposed to have some JSON data and json data size return [SDLProtocolMessage messageWithHeader:serverMessageHeader andPayload:binaryData]; } - -#pragma mark - Lifecycle - -- (void)sdl_destructObjects { - if (!_alreadyDestructed) { - _alreadyDestructed = YES; - _messageRouter.delegate = nil; - _messageRouter = nil; - self.transport = nil; - self.protocolDelegateTable = nil; - } -} - -- (void)dispose { - [self sdl_destructObjects]; -} - -- (void)dealloc { - [self sdl_destructObjects]; - [SDLDebugTool logInfo:@"SDLProtocol Dealloc" withType:SDLDebugType_Transport_iAP toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; -} - @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLProtocolHeader.h b/SmartDeviceLink/SDLProtocolHeader.h index 908a675c7..e28539597 100644 --- a/SmartDeviceLink/SDLProtocolHeader.h +++ b/SmartDeviceLink/SDLProtocolHeader.h @@ -5,59 +5,61 @@ typedef NS_ENUM(UInt8, SDLFrameType) { - SDLFrameType_Control = 0x00, - SDLFrameType_Single = 0x01, - SDLFrameType_First = 0x02, - SDLFrameType_Consecutive = 0x03 + SDLFrameTypeControl = 0x00, + SDLFrameTypeSingle = 0x01, + SDLFrameTypeFirst = 0x02, + SDLFrameTypeConsecutive = 0x03 }; typedef NS_ENUM(UInt8, SDLServiceType) { - SDLServiceType_Control = 0x00, - SDLServiceType_RPC = 0x07, - SDLServiceType_Audio = 0x0A, - SDLServiceType_Video = 0x0B, - SDLServiceType_BulkData = 0x0F + SDLServiceTypeControl = 0x00, + SDLServiceTypeRPC NS_SWIFT_NAME(rpc) = 0x07, + SDLServiceTypeAudio = 0x0A, + SDLServiceTypeVideo = 0x0B, + SDLServiceTypeBulkData = 0x0F }; -typedef NS_ENUM(UInt8, SDLFrameData) { - SDLFrameData_Heartbeat = 0x00, - SDLFrameData_StartSession = 0x01, - SDLFrameData_StartSessionACK = 0x02, - SDLFrameData_StartSessionNACK = 0x03, - SDLFrameData_EndSession = 0x04, - SDLFrameData_EndSessionACK = 0x05, - SDLFrameData_EndSessionNACK = 0x06, - SDLFrameData_ServiceDataACK = 0xFE, - SDLFrameData_HeartbeatACK = 0xFF, +typedef NS_ENUM(UInt8, SDLFrameInfo) { + SDLFrameInfoHeartbeat = 0x00, + SDLFrameInfoStartService = 0x01, + SDLFrameInfoStartServiceACK = 0x02, + SDLFrameInfoStartServiceNACK = 0x03, + SDLFrameInfoEndService = 0x04, + SDLFrameInfoEndServiceACK = 0x05, + SDLFrameInfoEndServiceNACK = 0x06, + SDLFrameInfoServiceDataAck = 0xFE, + SDLFrameInfoHeartbeatACK = 0xFF, // If frameType == Single (0x01) - SDLFrameData_SingleFrame = 0x00, + SDLFrameInfoSingleFrame = 0x00, // If frameType == First (0x02) - SDLFrameData_FirstFrame = 0x00, + SDLFrameInfoFirstFrame = 0x00, // If frametype == Consecutive (0x03) - SDLFrameData_ConsecutiveLastFrame = 0x00 + SDLFrameInfoConsecutiveLastFrame = 0x00 }; +NS_ASSUME_NONNULL_BEGIN @interface SDLProtocolHeader : NSObject { UInt8 _version; NSUInteger _size; } -@property (assign, readonly) UInt8 version; -@property (assign, readonly) NSUInteger size; -@property (assign) BOOL compressed __deprecated_msg("This is a mirror for encrypted"); -@property (assign) BOOL encrypted; -@property (assign) SDLFrameType frameType; -@property (assign) SDLServiceType serviceType; -@property (assign) SDLFrameData frameData; -@property (assign) UInt8 sessionID; -@property (assign) UInt32 bytesInPayload; +@property (assign, nonatomic, readonly) UInt8 version; +@property (assign, nonatomic, readonly) NSUInteger size; +@property (assign, nonatomic) BOOL encrypted; +@property (assign, nonatomic) SDLFrameType frameType; +@property (assign, nonatomic) SDLServiceType serviceType; +@property (assign, nonatomic) SDLFrameInfo frameData; +@property (assign, nonatomic) UInt8 sessionID; +@property (assign, nonatomic) UInt32 bytesInPayload; - (instancetype)init; -- (NSData *)data; +- (nullable NSData *)data; - (void)parse:(NSData *)data; - (NSString *)description; + (__kindof SDLProtocolHeader *)headerForVersion:(UInt8)version; + (UInt8)determineVersion:(NSData *)data; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLProtocolHeader.m b/SmartDeviceLink/SDLProtocolHeader.m index 7a2c23161..afe93724d 100644 --- a/SmartDeviceLink/SDLProtocolHeader.m +++ b/SmartDeviceLink/SDLProtocolHeader.m @@ -6,6 +6,8 @@ #import "SDLV1ProtocolHeader.h" #import "SDLV2ProtocolHeader.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLProtocolHeader @synthesize version = _version; @@ -20,20 +22,12 @@ - (instancetype)init { return self; } -- (BOOL)compressed { - return _encrypted; -} - -- (void)setCompressed:(BOOL)compressed { - _encrypted = compressed; -} - -- (id)copyWithZone:(NSZone *)zone { +- (id)copyWithZone:(nullable NSZone *)zone { [self doesNotRecognizeSelector:_cmd]; return 0; } -- (NSData *)data { +- (nullable NSData *)data { [self doesNotRecognizeSelector:_cmd]; return nil; } @@ -76,3 +70,5 @@ + (UInt8)determineVersion:(NSData *)data { } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLProtocolListener.h b/SmartDeviceLink/SDLProtocolListener.h index 94a85177f..7888a9ee3 100644 --- a/SmartDeviceLink/SDLProtocolListener.h +++ b/SmartDeviceLink/SDLProtocolListener.h @@ -5,6 +5,7 @@ @class SDLProtocolMessage; +NS_ASSUME_NONNULL_BEGIN @protocol SDLProtocolListener @@ -16,11 +17,6 @@ - (void)handleProtocolEndServiceNAKMessage:(SDLProtocolMessage *)endServiceNAK; // Older protocol handlers -- (void)handleProtocolStartSessionACK:(SDLServiceType)serviceType sessionID:(Byte)sessionID version:(Byte)version __deprecated_msg("use handleProtocolStartSessionACKMessage: instead"); -- (void)handleProtocolStartSessionACK:(SDLProtocolHeader *)header __deprecated_msg("use handleProtocolStartSessionACKMessage: instead"); -- (void)handleProtocolStartSessionNACK:(SDLServiceType)serviceType __deprecated_msg("use handleProtocolStartSessionNAKMessage: instead"); -- (void)handleProtocolEndSessionACK:(SDLServiceType)serviceType __deprecated_msg("use handleProtocolEndSessionACKMessage: instead"); -- (void)handleProtocolEndSessionNACK:(SDLServiceType)serviceType __deprecated_msg("use handleProtocolEndSessionNAKMessage: instead"); - (void)handleHeartbeatForSession:(Byte)session; - (void)handleHeartbeatACK; - (void)onProtocolMessageReceived:(SDLProtocolMessage *)msg; @@ -29,3 +25,5 @@ - (void)onError:(NSString *)info exception:(NSException *)e; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLProtocolMessage.h b/SmartDeviceLink/SDLProtocolMessage.h index b7daeb055..4028ec497 100644 --- a/SmartDeviceLink/SDLProtocolMessage.h +++ b/SmartDeviceLink/SDLProtocolMessage.h @@ -2,21 +2,23 @@ // #import + @class SDLProtocolHeader; +NS_ASSUME_NONNULL_BEGIN @interface SDLProtocolMessage : NSObject -@property (strong) SDLProtocolHeader *header; -@property (strong) NSData *payload; -@property (strong, readonly) NSData *data; +@property (strong, nonatomic) SDLProtocolHeader *header; +@property (nullable, strong, nonatomic) NSData *payload; +@property (strong, nonatomic, readonly) NSData *data; -+ (instancetype)messageWithHeader:(SDLProtocolHeader *)header andPayload:(NSData *)payload; // Returns a V1 or V2 object ++ (instancetype)messageWithHeader:(SDLProtocolHeader *)header andPayload:(nullable NSData *)payload; // Returns a V1 or V2 object - (NSUInteger)size; - (NSString *)description; -- (NSDictionary *)rpcDictionary; // Use for RPC type messages to obtain the data in a dictionary - -+ (UInt8)determineVersion:(NSData *)data __deprecated_msg(("Use SDLProtocolHeader determineVersion: instead")); +- (nullable NSDictionary *)rpcDictionary; // Use for RPC type messages to obtain the data in a dictionary @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLProtocolMessage.m b/SmartDeviceLink/SDLProtocolMessage.m index 8b6d079f6..66680e40e 100644 --- a/SmartDeviceLink/SDLProtocolMessage.m +++ b/SmartDeviceLink/SDLProtocolMessage.m @@ -3,22 +3,21 @@ #import "SDLProtocolMessage.h" + +#import "NSMutableDictionary+Store.h" #import "SDLFunctionID.h" +#import "SDLNames.h" #import "SDLProtocolHeader.h" #import "SDLRPCPayload.h" #import "SDLV1ProtocolMessage.h" #import "SDLV2ProtocolMessage.h" -@interface SDLProtocolMessage () - -@property (strong) NSMutableData *internalBuffer; - -@end +NS_ASSUME_NONNULL_BEGIN @implementation SDLProtocolMessage // Returns a V1 or V2 object -+ (instancetype)messageWithHeader:(SDLProtocolHeader *)header andPayload:(NSData *)payload { ++ (instancetype)messageWithHeader:(SDLProtocolHeader *)header andPayload:(nullable NSData *)payload { SDLProtocolMessage *newMessage = nil; UInt8 version = header.version; @@ -33,7 +32,7 @@ + (instancetype)messageWithHeader:(SDLProtocolHeader *)header andPayload:(NSData return newMessage; } -- (NSDictionary *)rpcDictionary { +- (nullable NSDictionary *)rpcDictionary { [self doesNotRecognizeSelector:_cmd]; return nil; } @@ -50,25 +49,21 @@ - (NSData *)data { return dataOut; } -+ (UInt8)determineVersion:(NSData *)data { - return [SDLProtocolHeader determineVersion:data]; -} - - (NSString *)description { // Print the header data. NSMutableString *description = [[NSMutableString alloc] init]; [description appendString:self.header.description]; // If it's an RPC, provide greater detail - if (((self.header.serviceType == SDLServiceType_RPC) || (self.header.serviceType == SDLServiceType_BulkData)) && (self.header.frameType == SDLFrameType_Single)) { + if (((self.header.serviceType == SDLServiceTypeRPC) || (self.header.serviceType == SDLServiceTypeBulkData)) && (self.header.frameType == SDLFrameTypeSingle)) { // version of RPC Message determines how we access the info. if (self.header.version >= 2) { SDLRPCPayload *rpcPayload = [SDLRPCPayload rpcPayloadWithData:self.payload]; if (rpcPayload) { - NSString *functionName = [[[SDLFunctionID alloc] init] getFunctionName:rpcPayload.functionID]; + SDLName functionName = [[SDLFunctionID sharedInstance] functionNameForId:rpcPayload.functionID]; UInt8 rpcType = rpcPayload.rpcType; - NSArray *rpcTypeNames = @[@"Request", @"Response", @"Notification"]; + NSArray *rpcTypeNames = @[@"Request", @"Response", @"Notification"]; NSString *rpcTypeString = nil; if (rpcType >= 0 && rpcType < rpcTypeNames.count) { rpcTypeString = rpcTypeNames[rpcType]; @@ -88,3 +83,5 @@ - (NSString *)description { } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLProtocolMessageAssembler.h b/SmartDeviceLink/SDLProtocolMessageAssembler.h index 3c793f441..589d8032a 100644 --- a/SmartDeviceLink/SDLProtocolMessageAssembler.h +++ b/SmartDeviceLink/SDLProtocolMessageAssembler.h @@ -5,18 +5,20 @@ @class SDLProtocolMessage; +NS_ASSUME_NONNULL_BEGIN -typedef void (^SDLMessageAssemblyCompletionHandler)(BOOL done, SDLProtocolMessage *assembledMessage); +typedef void (^SDLMessageAssemblyCompletionHandler)(BOOL done, SDLProtocolMessage * _Nullable assembledMessage); @interface SDLProtocolMessageAssembler : NSObject -@property (assign, readonly) UInt8 sessionID; -@property (assign) UInt32 frameCount; // number of consecutive frames required for reassembly -@property (assign) UInt32 expectedBytes; -@property (strong) NSMutableDictionary *parts; +@property (assign, nonatomic, readonly) UInt8 sessionID; +@property (assign, nonatomic) UInt32 frameCount; // number of consecutive frames required for reassembly +@property (assign, nonatomic) UInt32 expectedBytes; - (instancetype)initWithSessionID:(UInt8)sessionID; - (void)handleMessage:(SDLProtocolMessage *)message withCompletionHandler:(SDLMessageAssemblyCompletionHandler)completionHandler; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLProtocolMessageAssembler.m b/SmartDeviceLink/SDLProtocolMessageAssembler.m index b43c94189..3aa53347a 100644 --- a/SmartDeviceLink/SDLProtocolMessageAssembler.m +++ b/SmartDeviceLink/SDLProtocolMessageAssembler.m @@ -3,10 +3,18 @@ #import "SDLProtocolMessageAssembler.h" -#import "SDLDebugTool.h" +#import "SDLLogMacros.h" #import "SDLProtocolHeader.h" #import "SDLProtocolMessage.h" +NS_ASSUME_NONNULL_BEGIN + +@interface SDLProtocolMessageAssembler () + +@property (nullable, strong) NSMutableDictionary *parts; + +@end + @implementation SDLProtocolMessageAssembler - (instancetype)initWithSessionID:(UInt8)sessionID { @@ -19,7 +27,7 @@ - (instancetype)initWithSessionID:(UInt8)sessionID { - (void)handleMessage:(SDLProtocolMessage *)message withCompletionHandler:(SDLMessageAssemblyCompletionHandler)completionHandler { // Validate input if (message.header.sessionID != self.sessionID) { - [SDLDebugTool logInfo:@"Error: message part sent to wrong assembler."]; + SDLLogE(@"Message part sent to the wrong assembler. This session id: %d, message session id: %d", self.sessionID, message.header.sessionID); return; } @@ -31,12 +39,12 @@ - (void)handleMessage:(SDLProtocolMessage *)message withCompletionHandler:(SDLMe // Determine which frame it is and save it. // Note: frames are numbered 1,2,3, ..., 0 // Always 0 for last frame. - if (message.header.frameType == SDLFrameType_First) { + if (message.header.frameType == SDLFrameTypeFirst) { // If it's the first-frame, extract the meta-data self.expectedBytes = NSSwapBigIntToHost(((UInt32 *)message.payload.bytes)[0]); self.frameCount = NSSwapBigIntToHost(((UInt32 *)message.payload.bytes)[1]); self.parts[@"firstframe"] = message.payload; - } else if (message.header.frameType == SDLFrameType_Consecutive) { + } else if (message.header.frameType == SDLFrameTypeConsecutive) { // Save the frame w/ frame# as the key NSInteger frameNumber = message.header.frameData; NSNumber *frameNumberObj = @(frameNumber); @@ -52,8 +60,8 @@ - (void)handleMessage:(SDLProtocolMessage *)message withCompletionHandler:(SDLMe // Create the header SDLProtocolHeader *header = message.header.copy; - header.frameType = SDLFrameType_Single; - header.frameData = SDLFrameData_SingleFrame; + header.frameType = SDLFrameTypeSingle; + header.frameData = SDLFrameInfoSingleFrame; // Create the payload @@ -67,9 +75,8 @@ - (void)handleMessage:(SDLProtocolMessage *)message withCompletionHandler:(SDLMe [payload appendData:dataToAppend]; // Validation - header.bytesInPayload = (UInt32)payload.length; if (payload.length != self.expectedBytes) { - [SDLDebugTool logFormat:@"Warning: collected bytes size of %lu not equal to expected size of %i.", (unsigned long)payload.length, (unsigned int)self.expectedBytes]; + SDLLogW(@"Collected bytes size of %lu not equal to expected size of %i.", (unsigned long)payload.length, (unsigned int)self.expectedBytes); } // Create the message. @@ -93,3 +100,5 @@ - (void)handleMessage:(SDLProtocolMessage *)message withCompletionHandler:(SDLMe } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLProtocolMessageDisassembler.h b/SmartDeviceLink/SDLProtocolMessageDisassembler.h index 10f6f2860..644b1c1de 100644 --- a/SmartDeviceLink/SDLProtocolMessageDisassembler.h +++ b/SmartDeviceLink/SDLProtocolMessageDisassembler.h @@ -5,9 +5,12 @@ @class SDLProtocolMessage; +NS_ASSUME_NONNULL_BEGIN @interface SDLProtocolMessageDisassembler : NSObject -+ (NSArray *)disassemble:(SDLProtocolMessage *)protocolMessage withLimit:(NSUInteger)mtu; ++ (NSArray *)disassemble:(SDLProtocolMessage *)protocolMessage withLimit:(NSUInteger)mtu; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLProtocolMessageDisassembler.m b/SmartDeviceLink/SDLProtocolMessageDisassembler.m index 76d722956..6ab4d32af 100644 --- a/SmartDeviceLink/SDLProtocolMessageDisassembler.m +++ b/SmartDeviceLink/SDLProtocolMessageDisassembler.m @@ -5,13 +5,14 @@ #import "SDLProtocolHeader.h" #import "SDLProtocolMessage.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLProtocolMessageDisassembler // Use to break up a large message into a sequence of smaller messages, // each of which is less than 'mtu' number of bytes total size. -+ (NSArray *)disassemble:(SDLProtocolMessage *)incomingMessage withLimit:(NSUInteger)mtu { ++ (NSArray *)disassemble:(SDLProtocolMessage *)incomingMessage withLimit:(NSUInteger)mtu { // Questions: // What message IDs does the current system use? Same messageIDs? Same CorrelationIDs? // What gets simply copied from incoming header to created headers; and what needs adjustment? @@ -32,18 +33,17 @@ + (NSArray *)disassemble:(SDLProtocolMessage *)incomingMessage withLimit:(NSUInt NSUInteger numberOfDataBytesPerMessage = mtu - headerSize; // Create the outgoing array to hold the messages we will create. - NSMutableArray *outgoingMessages = [NSMutableArray arrayWithCapacity:numberOfMessagesRequired + 1]; + NSMutableArray *outgoingMessages = [NSMutableArray arrayWithCapacity:numberOfMessagesRequired + 1]; // Create the first message SDLProtocolHeader *firstFrameHeader = [incomingMessage.header copy]; - firstFrameHeader.frameType = SDLFrameType_First; + firstFrameHeader.frameType = SDLFrameTypeFirst; UInt32 payloadData[2]; payloadData[0] = CFSwapInt32HostToBig((UInt32)incomingMessage.payload.length); payloadData[1] = CFSwapInt32HostToBig((UInt32)numberOfMessagesRequired); NSMutableData *firstFramePayload = [NSMutableData dataWithBytes:payloadData length:sizeof(payloadData)]; - firstFrameHeader.bytesInPayload = (UInt32)firstFramePayload.length; SDLProtocolMessage *firstMessage = [SDLProtocolMessage messageWithHeader:firstFrameHeader andPayload:firstFramePayload]; outgoingMessages[0] = firstMessage; @@ -56,12 +56,11 @@ + (NSArray *)disassemble:(SDLProtocolMessage *)incomingMessage withLimit:(NSUInt UInt8 frameNumber = (n % 255) + 1; SDLProtocolHeader *nextFrameHeader = [incomingMessage.header copy]; - nextFrameHeader.frameType = SDLFrameType_Consecutive; + nextFrameHeader.frameType = SDLFrameTypeConsecutive; nextFrameHeader.frameData = frameNumber; NSUInteger offsetOfDataForThisFrame = headerSize + (n * numberOfDataBytesPerMessage); NSData *nextFramePayload = [incomingMessage.data subdataWithRange:NSMakeRange(offsetOfDataForThisFrame, numberOfDataBytesPerMessage)]; - nextFrameHeader.bytesInPayload = (UInt32)nextFramePayload.length; SDLProtocolMessage *nextMessage = [SDLProtocolMessage messageWithHeader:nextFrameHeader andPayload:nextFramePayload]; outgoingMessages[n + 1] = nextMessage; @@ -70,15 +69,14 @@ + (NSArray *)disassemble:(SDLProtocolMessage *)incomingMessage withLimit:(NSUInt // Create the last message SDLProtocolHeader *lastFrameHeader = [incomingMessage.header copy]; - lastFrameHeader.frameType = SDLFrameType_Consecutive; - lastFrameHeader.frameData = SDLFrameData_ConsecutiveLastFrame; + lastFrameHeader.frameType = SDLFrameTypeConsecutive; + lastFrameHeader.frameData = SDLFrameInfoConsecutiveLastFrame; NSUInteger numberOfMessagesCreatedSoFar = numberOfMessagesRequired - 1; NSUInteger numberOfDataBytesSentSoFar = numberOfMessagesCreatedSoFar * numberOfDataBytesPerMessage; NSUInteger numberOfDataBytesInLastMessage = incomingPayloadSize - numberOfDataBytesSentSoFar; NSUInteger offsetOfDataForLastFrame = headerSize + numberOfDataBytesSentSoFar; NSData *lastFramePayload = [incomingMessage.data subdataWithRange:NSMakeRange(offsetOfDataForLastFrame, numberOfDataBytesInLastMessage)]; - lastFrameHeader.bytesInPayload = (UInt32)lastFramePayload.length; SDLProtocolMessage *lastMessage = [SDLProtocolMessage messageWithHeader:lastFrameHeader andPayload:lastFramePayload]; outgoingMessages[numberOfMessagesRequired] = lastMessage; @@ -87,3 +85,5 @@ + (NSArray *)disassemble:(SDLProtocolMessage *)incomingMessage withLimit:(NSUInt } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLProtocolReceivedMessageRouter.h b/SmartDeviceLink/SDLProtocolReceivedMessageRouter.h index cd3e4c9c5..c153c0c41 100644 --- a/SmartDeviceLink/SDLProtocolReceivedMessageRouter.h +++ b/SmartDeviceLink/SDLProtocolReceivedMessageRouter.h @@ -5,11 +5,14 @@ #import "SDLProtocolListener.h" @class SDLProtocolMessage; +NS_ASSUME_NONNULL_BEGIN @interface SDLProtocolReceivedMessageRouter : NSObject -@property (weak) id delegate; +@property (weak, nonatomic, nullable) id delegate; - (void)handleReceivedMessage:(SDLProtocolMessage *)message; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLProtocolReceivedMessageRouter.m b/SmartDeviceLink/SDLProtocolReceivedMessageRouter.m index 1c00a9ce9..cb12229cf 100644 --- a/SmartDeviceLink/SDLProtocolReceivedMessageRouter.m +++ b/SmartDeviceLink/SDLProtocolReceivedMessageRouter.m @@ -4,15 +4,15 @@ // This class gets handed the SDLProtocol messages as they are received and decides what happens to them and where they are sent on to. #import "SDLProtocolReceivedMessageRouter.h" -#import "SDLDebugTool.h" +#import "SDLLogMacros.h" #import "SDLProtocolMessage.h" #import "SDLProtocolMessageAssembler.h" +NS_ASSUME_NONNULL_BEGIN @interface SDLProtocolReceivedMessageRouter () -@property (assign) BOOL alreadyDestructed; -@property (strong) NSMutableDictionary *messageAssemblers; +@property (strong, nonatomic) NSMutableDictionary *messageAssemblers; @end @@ -21,7 +21,6 @@ @implementation SDLProtocolReceivedMessageRouter - (instancetype)init { if (self = [super init]) { - _alreadyDestructed = NO; self.messageAssemblers = [NSMutableDictionary dictionaryWithCapacity:2]; } return self; @@ -31,14 +30,14 @@ - (void)handleReceivedMessage:(SDLProtocolMessage *)message { SDLFrameType frameType = message.header.frameType; switch (frameType) { - case SDLFrameType_Single: { + case SDLFrameTypeSingle: { [self sdl_dispatchProtocolMessage:message]; } break; - case SDLFrameType_Control: { + case SDLFrameTypeControl: { [self sdl_dispatchControlMessage:message]; } break; - case SDLFrameType_First: // fallthrough - case SDLFrameType_Consecutive: { + case SDLFrameTypeFirst: // fallthrough + case SDLFrameTypeConsecutive: { [self sdl_dispatchMultiPartMessage:message]; } break; default: break; @@ -53,32 +52,32 @@ - (void)sdl_dispatchProtocolMessage:(SDLProtocolMessage *)message { - (void)sdl_dispatchControlMessage:(SDLProtocolMessage *)message { switch (message.header.frameData) { - case SDLFrameData_StartSessionACK: { + case SDLFrameInfoStartServiceACK: { if ([self.delegate respondsToSelector:@selector(handleProtocolStartServiceACKMessage:)]) { [self.delegate handleProtocolStartServiceACKMessage:message]; } } break; - case SDLFrameData_StartSessionNACK: { + case SDLFrameInfoStartServiceNACK: { if ([self.delegate respondsToSelector:@selector(handleProtocolStartServiceNAKMessage:)]) { [self.delegate handleProtocolStartServiceNAKMessage:message]; } } break; - case SDLFrameData_EndSessionACK: { + case SDLFrameInfoEndServiceACK: { if ([self.delegate respondsToSelector:@selector(handleProtocolEndServiceACKMessage:)]) { [self.delegate handleProtocolEndServiceACKMessage:message]; } } break; - case SDLFrameData_EndSessionNACK: { + case SDLFrameInfoEndServiceNACK: { if ([self.delegate respondsToSelector:@selector(handleProtocolStartServiceNAKMessage:)]) { [self.delegate handleProtocolEndServiceNAKMessage:message]; } } break; - case SDLFrameData_Heartbeat: { + case SDLFrameInfoHeartbeat: { if ([self.delegate respondsToSelector:@selector(handleHeartbeatForSession:)]) { [self.delegate handleHeartbeatForSession:message.header.sessionID]; } } break; - case SDLFrameData_HeartbeatACK: { + case SDLFrameInfoHeartbeatACK: { if ([self.delegate respondsToSelector:@selector(handleHeartbeatACK)]) { [self.delegate handleHeartbeatACK]; } @@ -105,22 +104,6 @@ - (void)sdl_dispatchMultiPartMessage:(SDLProtocolMessage *)message { [assembler handleMessage:message withCompletionHandler:completionHandler]; } - -#pragma mark - Lifecycle - -- (void)sdl_destructObjects { - if (!self.alreadyDestructed) { - self.alreadyDestructed = YES; - self.delegate = nil; - } -} - -- (void)sdl_dispose { - [self sdl_destructObjects]; -} - -- (void)dealloc { - [self sdl_destructObjects]; -} - @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLProxy.h b/SmartDeviceLink/SDLProxy.h index 05da1c2b5..6beb28d8d 100644 --- a/SmartDeviceLink/SDLProxy.h +++ b/SmartDeviceLink/SDLProxy.h @@ -6,7 +6,6 @@ @class SDLProtocol; @class SDLPutFile; @class SDLRPCMessage; -@class SDLRPCRequestFactory; @class SDLStreamingMediaManager; @class SDLTimer; @@ -14,43 +13,37 @@ #import "SDLProxyListener.h" #import "SDLSecurityType.h" +NS_ASSUME_NONNULL_BEGIN + __deprecated_msg("Use SDLManager instead") @interface SDLProxy : NSObject { Byte _version; Byte _bulkSessionID; BOOL _isConnected; - BOOL _alreadyDestructed; } -@property (strong) SDLAbstractProtocol *protocol; -@property (strong) SDLAbstractTransport *transport; -@property (readonly, copy) NSSet *proxyListeners; -@property (strong) SDLTimer *startSessionTimer; -@property (copy) NSString *debugConsoleGroupName; -@property (readonly, copy) NSString *proxyVersion; -@property (nonatomic, strong, readonly) SDLStreamingMediaManager *streamingMediaManager; +@property (nullable, strong, nonatomic) SDLAbstractProtocol *protocol; +@property (nullable, strong, nonatomic) SDLAbstractTransport *transport; +@property (readonly, copy, nonatomic) NSSet *> *proxyListeners; +@property (strong, nonatomic) SDLTimer *startSessionTimer; +@property (copy, nonatomic) NSString *debugConsoleGroupName; +@property (readonly, copy, nonatomic) NSString *proxyVersion; - (id)initWithTransport:(SDLAbstractTransport *)transport protocol:(SDLAbstractProtocol *)protocol delegate:(NSObject *)delegate; -- (void)dispose; - (void)addDelegate:(NSObject *)delegate; - (void)removeDelegate:(NSObject *)delegate; - (void)sendRPC:(SDLRPCMessage *)message; -- (void)sendRPCRequest:(SDLRPCMessage *)msg __deprecated_msg("use -sendRPC: instead"); -- (void)handleRPCDictionary:(NSDictionary *)dictionary; -- (void)handleRpcMessage:(NSDictionary *)msg __deprecated_msg("use -handleRPCDictionary: instead"); +- (void)handleRPCDictionary:(NSDictionary *)dictionary; - (void)handleProtocolMessage:(SDLProtocolMessage *)msgData; - (void)addSecurityManagers:(NSArray *)securityManagerClasses forAppId:(NSString *)appId; -+ (void)enableSiphonDebug; -+ (void)disableSiphonDebug; - /** * Puts data into a file on the module * @abstract Performs a putFile for a given input stream, performed in chunks, for handling very large files. @@ -63,3 +56,5 @@ __deprecated_msg("Use SDLManager instead") - (void)putFileStream:(NSInputStream *)inputStream withRequest:(SDLPutFile *)putFileRPCRequest; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLProxy.m b/SmartDeviceLink/SDLProxy.m index e0ff39263..6f19a7686 100644 --- a/SmartDeviceLink/SDLProxy.m +++ b/SmartDeviceLink/SDLProxy.m @@ -8,18 +8,16 @@ #import "SDLAbstractTransport.h" #import "SDLAudioStreamingState.h" -#import "SDLDebugTool.h" +#import "SDLLogMacros.h" #import "SDLEncodedSyncPData.h" #import "SDLFileType.h" #import "SDLFunctionID.h" #import "SDLGlobals.h" #import "SDLHMILevel.h" -#import "SDLJsonDecoder.h" -#import "SDLJsonEncoder.h" #import "SDLLanguage.h" #import "SDLLayoutMode.h" #import "SDLLockScreenStatusManager.h" -#import "SDLNames.h" + #import "SDLOnHMIStatus.h" #import "SDLOnSystemRequest.h" #import "SDLPolicyDataParser.h" @@ -30,34 +28,34 @@ #import "SDLRPCResponse.h" #import "SDLRegisterAppInterfaceResponse.h" #import "SDLRequestType.h" -#import "SDLSiphonServer.h" #import "SDLStreamingMediaManager.h" #import "SDLSystemContext.h" #import "SDLSystemRequest.h" #import "SDLTimer.h" -#import "SDLURLSession.h" #import "SDLVehicleType.h" +NS_ASSUME_NONNULL_BEGIN + typedef NSString SDLVehicleMake; typedef void (^URLSessionTaskCompletionHandler)(NSData *data, NSURLResponse *response, NSError *error); typedef void (^URLSessionDownloadTaskCompletionHandler)(NSURL *location, NSURLResponse *response, NSError *error); -NSString *const SDLProxyVersion = @"4.7.4"; -const float startSessionTime = 10.0; -const float notifyProxyClosedDelay = 0.1; -const int POLICIES_CORRELATION_ID = 65535; - +NSString *const SDLProxyVersion = @"5.0.0"; +const float StartSessionTime = 10.0; +const float NotifyProxyClosedDelay = 0.1; +const int PoliciesCorrelationId = 65535; +static float DefaultConnectionTimeout = 45.0; @interface SDLProxy () { SDLLockScreenStatusManager *_lsm; } @property (copy, nonatomic) NSString *appId; -@property (strong, nonatomic) NSMutableSet *mutableProxyListeners; -@property (nonatomic, strong, readwrite, nullable) SDLStreamingMediaManager *streamingMediaManager; -@property (nonatomic, strong, nullable) SDLDisplayCapabilities *displayCapabilities; +@property (strong, nonatomic) NSMutableSet *> *mutableProxyListeners; +@property (nullable, nonatomic, strong) SDLDisplayCapabilities *displayCapabilities; @property (nonatomic, strong) NSMutableDictionary *securityManagers; +@property (nonatomic, strong) NSURLSession* urlSession; @end @@ -67,9 +65,9 @@ @implementation SDLProxy #pragma mark - Object lifecycle - (instancetype)initWithTransport:(SDLAbstractTransport *)transport protocol:(SDLAbstractProtocol *)protocol delegate:(NSObject *)theDelegate { if (self = [super init]) { + SDLLogD(@"Framework Version: %@", self.proxyVersion); _debugConsoleGroupName = @"default"; _lsm = [[SDLLockScreenStatusManager alloc] init]; - _alreadyDestructed = NO; _mutableProxyListeners = [NSMutableSet setWithObject:theDelegate]; _securityManagers = [NSMutableDictionary dictionary]; @@ -81,46 +79,31 @@ - (instancetype)initWithTransport:(SDLAbstractTransport *)transport protocol:(SD [self.transport connect]; - [SDLDebugTool logInfo:@"SDLProxy initWithTransport"]; + SDLLogV(@"Proxy transport initialization"); + [[EAAccessoryManager sharedAccessoryManager] registerForLocalNotifications]; + + NSURLSessionConfiguration* configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; + configuration.timeoutIntervalForRequest = DefaultConnectionTimeout; + configuration.timeoutIntervalForResource = DefaultConnectionTimeout; + configuration.requestCachePolicy = NSURLRequestUseProtocolCachePolicy; + + _urlSession = [NSURLSession sessionWithConfiguration:configuration]; + } return self; } -- (void)destructObjects { - if (!_alreadyDestructed) { - _alreadyDestructed = YES; - - [[NSNotificationCenter defaultCenter] removeObserver:self]; - - [[SDLURLSession defaultSession] cancelAllTasks]; - - [self.protocol dispose]; - [self.transport dispose]; - - _transport = nil; - _protocol = nil; - _mutableProxyListeners = nil; - _streamingMediaManager = nil; - _displayCapabilities = nil; - } -} - -- (void)dispose { - if (self.transport != nil) { - [self.transport disconnect]; - } - +- (void)dealloc { if (self.protocol.securityManager != nil) { [self.protocol.securityManager stop]; } - - [self destructObjects]; -} - -- (void)dealloc { - [self destructObjects]; - [SDLDebugTool logInfo:@"SDLProxy Dealloc" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:_debugConsoleGroupName]; + + [[NSNotificationCenter defaultCenter] removeObserver:self]; + [[EAAccessoryManager sharedAccessoryManager] unregisterForLocalNotifications]; + + [_urlSession invalidateAndCancel]; + SDLLogV(@"Proxy dealloc"); } - (void)notifyProxyClosed { @@ -137,30 +120,28 @@ - (void)sendMobileHMIState { UIApplicationState appState = [UIApplication sharedApplication].applicationState; SDLOnHMIStatus *HMIStatusRPC = [[SDLOnHMIStatus alloc] init]; - HMIStatusRPC.audioStreamingState = [SDLAudioStreamingState NOT_AUDIBLE]; - HMIStatusRPC.systemContext = [SDLSystemContext MAIN]; + HMIStatusRPC.audioStreamingState = SDLAudioStreamingStateNotAudible; + HMIStatusRPC.systemContext = SDLSystemContextMain; switch (appState) { case UIApplicationStateActive: { - HMIStatusRPC.hmiLevel = [SDLHMILevel FULL]; + HMIStatusRPC.hmiLevel = SDLHMILevelFull; } break; case UIApplicationStateBackground: // Fallthrough case UIApplicationStateInactive: { - HMIStatusRPC.hmiLevel = [SDLHMILevel BACKGROUND]; + HMIStatusRPC.hmiLevel = SDLHMILevelBackground; } break; default: break; } - NSString *log = [NSString stringWithFormat:@"Sending new mobile hmi state: %@", HMIStatusRPC.hmiLevel.value]; - [SDLDebugTool logInfo:log withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; - + SDLLogD(@"Mobile UIApplication state changed, sending to remote system: %@", HMIStatusRPC.hmiLevel); [self sendRPC:HMIStatusRPC]; } #pragma mark - Accessors -- (NSSet *)proxyListeners { +- (NSSet *> *)proxyListeners { return [self.mutableProxyListeners copy]; } @@ -171,20 +152,6 @@ - (NSString *)proxyVersion { return SDLProxyVersion; } -- (SDLStreamingMediaManager *)streamingMediaManager { - if (_streamingMediaManager == nil) { - if (self.displayCapabilities == nil) { - return nil; - } - _streamingMediaManager = [[SDLStreamingMediaManager alloc] initWithProtocol:self.protocol displayCapabilities:self.displayCapabilities]; - [self.protocol.protocolDelegateTable addObject:_streamingMediaManager]; - [self.mutableProxyListeners addObject:_streamingMediaManager.touchManager]; - } - - return _streamingMediaManager; -} - - #pragma mark - SecurityManager - (void)addSecurityManagers:(NSArray *)securityManagerClasses forAppId:(NSString *)appId { @@ -211,7 +178,7 @@ - (void)addSecurityManagers:(NSArray *)securityManagerClasses forAppId:(N } } -- (id)securityManagerForMake:(NSString *)make { +- (nullable id)securityManagerForMake:(NSString *)make { if ((make != nil) && (self.securityManagers[make] != nil)) { Class securityManagerClass = self.securityManagers[make]; self.protocol.appId = self.appId; @@ -226,16 +193,16 @@ - (void)addSecurityManagers:(NSArray *)securityManagerClasses forAppId:(N - (void)onProtocolOpened { _isConnected = YES; - [SDLDebugTool logInfo:@"StartSession (request)" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; - - [self.protocol startServiceWithType:SDLServiceType_RPC]; + SDLLogV(@"Proxy RPC protocol opened"); + // THe RPC payload will be created by the protocol object...it's weird and confusing, I know. + [self.protocol startServiceWithType:SDLServiceTypeRPC payload:nil]; if (self.startSessionTimer == nil) { - self.startSessionTimer = [[SDLTimer alloc] initWithDuration:startSessionTime repeat:NO]; + self.startSessionTimer = [[SDLTimer alloc] initWithDuration:StartSessionTime repeat:NO]; __weak typeof(self) weakSelf = self; self.startSessionTimer.elapsedBlock = ^{ - [SDLDebugTool logInfo:@"Start Session Timeout" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:weakSelf.debugConsoleGroupName]; - [weakSelf performSelector:@selector(notifyProxyClosed) withObject:nil afterDelay:notifyProxyClosedDelay]; + SDLLogW(@"Start session timed out"); + [weakSelf performSelector:@selector(notifyProxyClosed) withObject:nil afterDelay:NotifyProxyClosedDelay]; }; } [self.startSessionTimer start]; @@ -249,14 +216,12 @@ - (void)onError:(NSString *)info exception:(NSException *)e { [self invokeMethodOnDelegates:@selector(onError:) withObject:e]; } -- (void)handleProtocolStartSessionACK:(SDLProtocolHeader *)header { +- (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceACK { // Turn off the timer, the start session response came back [self.startSessionTimer cancel]; + SDLLogV(@"StartSession (response)\nSessionId: %d for serviceType %d", startServiceACK.header.sessionID, startServiceACK.header.serviceType); - NSString *logMessage = [NSString stringWithFormat:@"StartSession (response)\nSessionId: %d for serviceType %d", header.sessionID, header.serviceType]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; - - if (header.serviceType == SDLServiceType_RPC) { + if (startServiceACK.header.serviceType == SDLServiceTypeRPC) { [self invokeMethodOnDelegates:@selector(onProxyOpened) withObject:nil]; } } @@ -265,8 +230,7 @@ - (void)onProtocolMessageReceived:(SDLProtocolMessage *)msgData { @try { [self handleProtocolMessage:msgData]; } @catch (NSException *e) { - NSString *logMessage = [NSString stringWithFormat:@"Proxy: Failed to handle protocol message %@", e]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_Debug toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogW(@"Proxy: Failed to handle protocol message %@", e); } } @@ -276,30 +240,23 @@ - (void)sendRPC:(SDLRPCMessage *)message { @try { [self.protocol sendRPC:message]; } @catch (NSException *exception) { - NSString *logMessage = [NSString stringWithFormat:@"Proxy: Failed to send RPC message: %@", message.name]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_Debug toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; - } -} - -- (void)sendRPCRequest:(SDLRPCMessage *)msg { - if ([msg isKindOfClass:SDLRPCRequest.class]) { - [self sendRPC:msg]; + SDLLogE(@"Proxy: Failed to send RPC message: %@", message.name); } } - (void)handleProtocolMessage:(SDLProtocolMessage *)incomingMessage { // Convert protocol message to dictionary - NSDictionary *rpcMessageAsDictionary = [incomingMessage rpcDictionary]; + NSDictionary *rpcMessageAsDictionary = [incomingMessage rpcDictionary]; [self handleRPCDictionary:rpcMessageAsDictionary]; } -- (void)handleRPCDictionary:(NSDictionary *)dict { +- (void)handleRPCDictionary:(NSDictionary *)dict { SDLRPCMessage *message = [[SDLRPCMessage alloc] initWithDictionary:[dict mutableCopy]]; NSString *functionName = [message getFunctionName]; NSString *messageType = [message messageType]; // If it's a response, append response - if ([messageType isEqualToString:NAMES_response]) { + if ([messageType isEqualToString:SDLNameResponse]) { BOOL notGenericResponseMessage = ![functionName isEqualToString:@"GenericResponse"]; if (notGenericResponseMessage) { functionName = [NSString stringWithFormat:@"%@Response", functionName]; @@ -311,11 +268,10 @@ - (void)handleRPCDictionary:(NSDictionary *)dict { SDLRPCMessage *newMessage = [[NSClassFromString(functionClassName) alloc] initWithDictionary:[dict mutableCopy]]; // Log the RPC message - NSString *logMessage = [NSString stringWithFormat:@"%@", newMessage]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogV(@"Message received: %@", newMessage); // Intercept and handle several messages ourselves - if ([functionName isEqualToString:NAMES_OnAppInterfaceUnregistered] || [functionName isEqualToString:NAMES_UnregisterAppInterface]) { + if ([functionName isEqualToString:SDLNameOnAppInterfaceUnregistered] || [functionName isEqualToString:SDLNameUnregisterAppInterface]) { [self handleRPCUnregistered:dict]; } @@ -323,10 +279,6 @@ - (void)handleRPCDictionary:(NSDictionary *)dict { [self handleRegisterAppInterfaceResponse:(SDLRPCResponse *)newMessage]; } - if ([functionName isEqualToString:@"EncodedSyncPDataResponse"]) { - [SDLDebugTool logInfo:@"EncodedSyncPData (response)" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; - } - if ([functionName isEqualToString:@"OnEncodedSyncPData"]) { [self handleSyncPData:newMessage]; } @@ -355,34 +307,23 @@ - (void)handleRPCDictionary:(NSDictionary *)dict { } } -- (void)handleRpcMessage:(NSDictionary *)msg { - [self handleRPCDictionary:msg]; -} - #pragma mark - RPC Handlers -- (void)handleRPCUnregistered:(NSDictionary *)messageDictionary { - NSString *logMessage = [NSString stringWithFormat:@"Unregistration forced by module. %@", messageDictionary]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; +- (void)handleRPCUnregistered:(NSDictionary *)messageDictionary { + SDLLogW(@"Unregistration forced by module. %@", messageDictionary); [self notifyProxyClosed]; } - (void)handleRegisterAppInterfaceResponse:(SDLRPCResponse *)response { - //Print Proxy Version To Console - NSString *logMessage = [NSString stringWithFormat:@"Framework Version: %@", self.proxyVersion]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; SDLRegisterAppInterfaceResponse *registerResponse = (SDLRegisterAppInterfaceResponse *)response; - self.displayCapabilities = registerResponse.displayCapabilities; - if (_streamingMediaManager) { - _streamingMediaManager.displayCapabilties = registerResponse.displayCapabilities; - } + self.protocol.securityManager = [self securityManagerForMake:registerResponse.vehicleType.make]; if (self.protocol.securityManager && [self.protocol.securityManager respondsToSelector:@selector(setAppId:)]) { self.protocol.securityManager.appId = self.appId; } - if ([SDLGlobals globals].majorProtocolVersion >= 4) { + if ([SDLGlobals sharedGlobals].majorProtocolVersion >= 4) { [self sendMobileHMIState]; // Send SDL updates to application state [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sendMobileHMIState) name:UIApplicationDidBecomeActiveNotification object:nil]; @@ -392,11 +333,10 @@ - (void)handleRegisterAppInterfaceResponse:(SDLRPCResponse *)response { - (void)handleSyncPData:(SDLRPCMessage *)message { // If URL != nil, perform HTTP Post and don't pass the notification to proxy listeners - NSString *logMessage = [NSString stringWithFormat:@"OnEncodedSyncPData (notification)\n%@", message]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogV(@"OnEncodedSyncPData: %@", message); NSString *urlString = (NSString *)[message getParameters:@"URL"]; - NSDictionary *encodedSyncPData = (NSDictionary *)[message getParameters:@"data"]; + NSDictionary *encodedSyncPData = (NSDictionary *)[message getParameters:@"data"]; NSNumber *encodedSyncPTimeout = (NSNumber *)[message getParameters:@"Timeout"]; if (urlString && encodedSyncPData && encodedSyncPTimeout) { @@ -404,34 +344,32 @@ - (void)handleSyncPData:(SDLRPCMessage *)message { } } -- (void)handleSystemRequest:(NSDictionary *)dict { - [SDLDebugTool logInfo:@"OnSystemRequest (notification)" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; +- (void)handleSystemRequest:(NSDictionary *)dict { + SDLLogV(@"OnSystemRequest"); SDLOnSystemRequest *systemRequest = [[SDLOnSystemRequest alloc] initWithDictionary:[dict mutableCopy]]; - SDLRequestType *requestType = systemRequest.requestType; + SDLRequestType requestType = systemRequest.requestType; // Handle the various OnSystemRequest types - if (requestType == [SDLRequestType PROPRIETARY]) { + if ([requestType isEqualToEnum:SDLRequestTypeProprietary]) { [self handleSystemRequestProprietary:systemRequest]; - } else if (requestType == [SDLRequestType LOCK_SCREEN_ICON_URL]) { + } else if ([requestType isEqualToEnum:SDLRequestTypeLockScreenIconURL]) { [self handleSystemRequestLockScreenIconURL:systemRequest]; - } else if (requestType == [SDLRequestType HTTP]) { + } else if ([requestType isEqualToEnum:SDLRequestTypeHTTP]) { [self sdl_handleSystemRequestHTTP:systemRequest]; - } else if (requestType == [SDLRequestType LAUNCH_APP]) { + } else if ([requestType isEqualToEnum:SDLRequestTypeLaunchApp]) { [self sdl_handleSystemRequestLaunchApp:systemRequest]; } } - (void)handleSystemRequestResponse:(SDLRPCMessage *)message { - NSString *logMessage = [NSString stringWithFormat:@"SystemRequest (response)\n%@", message]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogV(@"SystemRequestResponse to be discarded"); } #pragma mark Handle Post-Invoke of Delegate Methods - (void)handleAfterHMIStatus:(SDLRPCMessage *)message { - NSString *statusString = (NSString *)[message getParameters:NAMES_hmiLevel]; - SDLHMILevel *hmiLevel = [SDLHMILevel valueOf:statusString]; + SDLHMILevel hmiLevel = (SDLHMILevel)[message getParameters:SDLNameHMILevel]; _lsm.hmiLevel = hmiLevel; SEL callbackSelector = NSSelectorFromString(@"onOnLockScreenNotification:"); @@ -439,7 +377,7 @@ - (void)handleAfterHMIStatus:(SDLRPCMessage *)message { } - (void)handleAfterDriverDistraction:(SDLRPCMessage *)message { - NSString *stateString = (NSString *)[message getParameters:NAMES_state]; + NSString *stateString = (NSString *)[message getParameters:SDLNameState]; BOOL state = [stateString isEqualToString:@"DD_ON"] ? YES : NO; _lsm.driverDistracted = state; @@ -452,7 +390,7 @@ - (void)handleAfterDriverDistraction:(SDLRPCMessage *)message { - (void)sdl_handleSystemRequestLaunchApp:(SDLOnSystemRequest *)request { NSURL *URLScheme = [NSURL URLWithString:request.url]; if (URLScheme == nil) { - [SDLDebugTool logInfo:[NSString stringWithFormat:@"Launch App failure: invalid URL sent from module: %@", request.url] withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogW(@"System request LaunchApp failed: invalid URL sent from module: %@", request.url); return; } // If system version is less than 9.0 http://stackoverflow.com/a/5337804/1370927 @@ -466,12 +404,12 @@ - (void)sdl_handleSystemRequestLaunchApp:(SDLOnSystemRequest *)request { } - (void)handleSystemRequestProprietary:(SDLOnSystemRequest *)request { - NSDictionary *JSONDictionary = [self validateAndParseSystemRequest:request]; + NSDictionary *JSONDictionary = [self validateAndParseSystemRequest:request]; if (JSONDictionary == nil || request.url == nil) { return; } - NSDictionary *requestData = JSONDictionary[@"HTTPRequest"]; + NSDictionary *requestData = JSONDictionary[@"HTTPRequest"]; NSString *bodyString = requestData[@"body"]; NSData *bodyData = [bodyString dataUsingEncoding:NSUTF8StringEncoding]; @@ -480,8 +418,7 @@ - (void)handleSystemRequestProprietary:(SDLOnSystemRequest *)request { NSData *policyData = [pdp unwrap:bodyData]; if (policyData != nil) { [pdp parsePolicyData:policyData]; - NSString *logMessage = [NSString stringWithFormat:@"Policy Data from Module\n%@", pdp]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogV(@"Policy data received"); } // Send the HTTP Request @@ -489,27 +426,23 @@ - (void)handleSystemRequestProprietary:(SDLOnSystemRequest *)request { [self uploadForBodyDataDictionary:JSONDictionary URLString:request.url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - __strong typeof(weakSelf) strongSelf = weakSelf; - NSString *logMessage = nil; + __strong typeof(weakSelf) strongSelf = weakSelf; if (error) { - logMessage = [NSString stringWithFormat:@"OnSystemRequest (HTTP response) = ERROR: %@", error]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogW(@"OnSystemRequest HTTP response error: %@", error); return; } if (data == nil || data.length == 0) { - [SDLDebugTool logInfo:@"OnSystemRequest (HTTP response) failure: no data returned" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:strongSelf.debugConsoleGroupName]; + SDLLogW(@"OnSystemRequest HTTP response error: no data received"); return; } - // Show the HTTP response - [SDLDebugTool logInfo:@"OnSystemRequest (HTTP response)" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:strongSelf.debugConsoleGroupName]; - // Create the SystemRequest RPC to send to module. + SDLLogV(@"OnSystemRequest HTTP response"); SDLSystemRequest *request = [[SDLSystemRequest alloc] init]; - request.correlationID = [NSNumber numberWithInt:POLICIES_CORRELATION_ID]; - request.requestType = [SDLRequestType PROPRIETARY]; + request.correlationID = [NSNumber numberWithInt:PoliciesCorrelationId]; + request.requestType = SDLRequestTypeProprietary; request.bulkData = data; // Parse and display the policy data. @@ -517,31 +450,27 @@ - (void)handleSystemRequestProprietary:(SDLOnSystemRequest *)request { NSData *policyData = [pdp unwrap:data]; if (policyData) { [pdp parsePolicyData:policyData]; - logMessage = [NSString stringWithFormat:@"Policy Data from Cloud\n%@", pdp]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:strongSelf.debugConsoleGroupName]; + SDLLogV(@"Cloud policy data: %@", pdp); } - // Send and log RPC Request - logMessage = [NSString stringWithFormat:@"SystemRequest (request)\n%@\nData length=%lu", [request serializeAsDictionary:2], (unsigned long)data.length]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:strongSelf.debugConsoleGroupName]; + // Send the RPC Request [strongSelf sendRPC:request]; }]; } - (void)handleSystemRequestLockScreenIconURL:(SDLOnSystemRequest *)request { - __weak typeof(self) weakSelf = self; - [[SDLURLSession defaultSession] dataFromURL:[NSURL URLWithString:request.url] - completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - __strong typeof(weakSelf) strongSelf = weakSelf; - if (error != nil) { - NSString *logMessage = [NSString stringWithFormat:@"OnSystemRequest failure (HTTP response), download task failed: %@", error.localizedDescription]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; - return; - } - - UIImage *icon = [UIImage imageWithData:data]; - [strongSelf invokeMethodOnDelegates:@selector(onReceivedLockScreenIcon:) withObject:icon]; - }]; + __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 (lock screen icon) HTTP download task failed: %@", error.localizedDescription); + return; + } + + UIImage *icon = [UIImage imageWithData:data]; + [strongSelf invokeMethodOnDelegates:@selector(onReceivedLockScreenIcon:) withObject:icon]; + }]; } - (void)sdl_handleSystemRequestHTTP:(SDLOnSystemRequest *)request { @@ -555,32 +484,27 @@ - (void)sdl_handleSystemRequestHTTP:(SDLOnSystemRequest *)request { toURLString:request.url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { __strong typeof(weakSelf) strongSelf = weakSelf; - NSString *logMessage = nil; if (error != nil) { - logMessage = [NSString stringWithFormat:@"OnSystemRequest (HTTP response) = ERROR: %@", error.localizedDescription]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:strongSelf.debugConsoleGroupName]; + SDLLogW(@"OnSystemRequest (HTTP) error: %@", error.localizedDescription); return; } if (data.length == 0) { - [SDLDebugTool logInfo:@"OnSystemRequest (HTTP response) failure: no data returned" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:strongSelf.debugConsoleGroupName]; + SDLLogW(@"OnSystemRequest (HTTP) error: no data returned"); return; } // Show the HTTP response - NSString *responseLogString = [NSString stringWithFormat:@"OnSystemRequest (HTTP) response: %@", response]; - [SDLDebugTool logInfo:responseLogString withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:strongSelf.debugConsoleGroupName]; + SDLLogV(@"OnSystemRequest (HTTP) response: %@", response); // Create the SystemRequest RPC to send to module. SDLPutFile *putFile = [[SDLPutFile alloc] init]; - putFile.fileType = [SDLFileType JSON]; - putFile.correlationID = @(POLICIES_CORRELATION_ID); + putFile.fileType = SDLFileTypeJSON; + putFile.correlationID = @(PoliciesCorrelationId); putFile.syncFileName = @"response_data"; putFile.bulkData = data; - // Send and log RPC Request - logMessage = [NSString stringWithFormat:@"SystemRequest (request)\n%@\nData length=%lu", [request serializeAsDictionary:2], (unsigned long)data.length]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + // Send RPC Request [strongSelf sendRPC:putFile]; }]; } @@ -592,26 +516,26 @@ - (void)sdl_handleSystemRequestHTTP:(SDLOnSystemRequest *)request { * * @return A parsed JSON dictionary, or nil if it couldn't be parsed */ -- (NSDictionary *)validateAndParseSystemRequest:(SDLOnSystemRequest *)request { +- (nullable NSDictionary *)validateAndParseSystemRequest:(SDLOnSystemRequest *)request { NSString *urlString = request.url; - SDLFileType *fileType = request.fileType; + SDLFileType fileType = request.fileType; // Validate input if (urlString == nil || [NSURL URLWithString:urlString] == nil) { - [SDLDebugTool logInfo:@"OnSystemRequest (notification) failure: url is nil" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogW(@"OnSystemRequest validation failure: URL is nil"); return nil; } - if (fileType != [SDLFileType JSON]) { - [SDLDebugTool logInfo:@"OnSystemRequest (notification) failure: file type is not JSON" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + if (![fileType isEqualToEnum:SDLFileTypeJSON]) { + SDLLogW(@"OnSystemRequest validation failure: file type is not JSON"); return nil; } // Get data dictionary from the bulkData NSError *error = nil; - NSDictionary *JSONDictionary = [NSJSONSerialization JSONObjectWithData:request.bulkData options:kNilOptions error:&error]; + NSDictionary *JSONDictionary = [NSJSONSerialization JSONObjectWithData:request.bulkData options:kNilOptions error:&error]; if (error != nil) { - [SDLDebugTool logInfo:@"OnSystemRequest failure: notification data is not valid JSON." withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogW(@"OnSystemRequest validation failure: data is not valid JSON"); return nil; } @@ -632,12 +556,10 @@ - (void)sdl_uploadData:(NSData *_Nonnull)data toURLString:(NSString *_Nonnull)ur [request setValue:@"application/json" forHTTPHeaderField:@"content-type"]; request.HTTPMethod = @"POST"; - // Logging - NSString *logMessage = [NSString stringWithFormat:@"OnSystemRequest (HTTP Request) to URL %@", urlString]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogV(@"OnSystemRequest (HTTP) upload task created for URL: %@", urlString); // Create the upload task - [[SDLURLSession defaultSession] uploadWithURLRequest:request data:data completionHandler:completionHandler]; + [self sdl_sendUploadRequest:request withData:data completionHandler:completionHandler]; } /** @@ -647,13 +569,13 @@ - (void)sdl_uploadData:(NSData *_Nonnull)data toURLString:(NSString *_Nonnull)ur * @param urlString A string containing the URL to send the upload to * @param completionHandler A completion handler returning the response from the server to the upload task */ -- (void)uploadForBodyDataDictionary:(NSDictionary *)dictionary URLString:(NSString *)urlString completionHandler:(URLSessionTaskCompletionHandler)completionHandler { +- (void)uploadForBodyDataDictionary:(NSDictionary *)dictionary URLString:(NSString *)urlString completionHandler:(URLSessionTaskCompletionHandler)completionHandler { NSParameterAssert(dictionary != nil); NSParameterAssert(urlString != nil); NSParameterAssert(completionHandler != NULL); // Extract data from the dictionary - NSDictionary *requestData = dictionary[@"HTTPRequest"]; + NSDictionary *requestData = dictionary[@"HTTPRequest"]; NSDictionary *headers = requestData[@"headers"]; NSString *contentType = headers[@"ContentType"]; NSTimeInterval timeout = [headers[@"ConnectTimeout"] doubleValue]; @@ -668,14 +590,29 @@ - (void)uploadForBodyDataDictionary:(NSDictionary *)dictionary URLString:(NSStri request.timeoutInterval = timeout; request.HTTPMethod = method; - // Logging - NSString *logMessage = [NSString stringWithFormat:@"OnSystemRequest (HTTP Request) to URL %@", urlString]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogV(@"OnSystemRequest (Proprietary) upload task created for URL: %@", urlString); // Create the upload task - [[SDLURLSession defaultSession] uploadWithURLRequest:request data:bodyData completionHandler:completionHandler]; + [self sdl_sendUploadRequest:request withData:bodyData completionHandler:completionHandler]; +} + +- (void)sdl_sendUploadRequest:(NSURLRequest*)request withData:(NSData*)data completionHandler:(URLSessionTaskCompletionHandler)completionHandler { + NSMutableURLRequest* mutableRequest = [request mutableCopy]; + + if ([mutableRequest.URL.scheme isEqualToString:@"http"]) { + mutableRequest.URL = [NSURL URLWithString:[mutableRequest.URL.absoluteString stringByReplacingCharactersInRange:NSMakeRange(0, 4) withString:@"https"]]; + } + + [[self.urlSession uploadTaskWithRequest:request fromData:data completionHandler:completionHandler] resume]; } +- (void)sdl_sendDataTaskWithURL:(NSURL*)url completionHandler:(URLSessionTaskCompletionHandler)completionHandler { + if ([url.scheme isEqualToString:@"http"]) { + url = [NSURL URLWithString:[url.absoluteString stringByReplacingCharactersInRange:NSMakeRange(0, 4) withString:@"https"]]; + } + + [[self.urlSession dataTaskWithURL:url completionHandler:completionHandler] resume]; +} #pragma mark - Delegate management @@ -691,7 +628,7 @@ - (void)removeDelegate:(NSObject *)delegate { } } -- (void)invokeMethodOnDelegates:(SEL)aSelector withObject:(id)object { +- (void)invokeMethodOnDelegates:(SEL)aSelector withObject:(nullable id)object { dispatch_async(dispatch_get_main_queue(), ^{ @autoreleasepool { for (id listener in self.proxyListeners) { @@ -707,7 +644,7 @@ - (void)invokeMethodOnDelegates:(SEL)aSelector withObject:(id)object { #pragma mark - System Request and SyncP handling -- (void)sendEncodedSyncPData:(NSDictionary *)encodedSyncPData toURL:(NSString *)urlString withTimeout:(NSNumber *)timeout { +- (void)sendEncodedSyncPData:(NSDictionary *)encodedSyncPData toURL:(NSString *)urlString withTimeout:(NSNumber *)timeout { // Configure HTTP URL & Request NSURL *url = [NSURL URLWithString:urlString]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; @@ -717,45 +654,43 @@ - (void)sendEncodedSyncPData:(NSDictionary *)encodedSyncPData toURL:(NSString *) // Prepare the data in the required format NSString *encodedSyncPDataString = [[NSString stringWithFormat:@"%@", encodedSyncPData] componentsSeparatedByString:@"\""][1]; - NSArray *array = [NSArray arrayWithObject:encodedSyncPDataString]; - NSDictionary *dictionary = @{ @"data": array }; + NSArray *array = [NSArray arrayWithObject:encodedSyncPDataString]; + NSDictionary *dictionary = @{ @"data": array }; NSError *JSONSerializationError = nil; NSData *data = [NSJSONSerialization dataWithJSONObject:dictionary options:kNilOptions error:&JSONSerializationError]; if (JSONSerializationError) { - NSString *logMessage = [NSString stringWithFormat:@"Error formatting data for HTTP Request. %@", JSONSerializationError]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogW(@"Error attempting to create SyncPData for HTTP request: %@", JSONSerializationError); return; } // Send the HTTP Request __weak typeof(self) weakSelf = self; - [[SDLURLSession defaultSession] uploadWithURLRequest:request - data:data - completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - __strong typeof(self) strongSelf = weakSelf; - [strongSelf syncPDataNetworkRequestCompleteWithData:data response:response error:error]; - }]; + [[self.urlSession uploadTaskWithRequest:request + fromData:data + completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { + [weakSelf syncPDataNetworkRequestCompleteWithData:data response:response error:error]; + }] resume]; - [SDLDebugTool logInfo:@"OnEncodedSyncPData (HTTP request)" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogV(@"OnEncodedSyncPData (HTTP Request)"); } // Handle the OnEncodedSyncPData HTTP Response - (void)syncPDataNetworkRequestCompleteWithData:(NSData *)data response:(NSURLResponse *)response error:(NSError *)error { // Sample of response: {"data":["SDLKGLSDKFJLKSjdslkfjslkJLKDSGLKSDJFLKSDJF"]} - [SDLDebugTool logInfo:@"OnEncodedSyncPData (HTTP response)" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogV(@"OnEncodedSyncPData (HTTP Response): %@", response); // Validate response data. if (data == nil || data.length == 0) { - [SDLDebugTool logInfo:@"OnEncodedSyncPData (HTTP response) failure: no data returned" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogW(@"OnEncodedSyncPData (HTTP Response): no data returned"); return; } // Convert data to RPCRequest NSError *JSONConversionError = nil; - NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&JSONConversionError]; + NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&JSONConversionError]; if (!JSONConversionError) { SDLEncodedSyncPData *request = [[SDLEncodedSyncPData alloc] init]; - request.correlationID = [NSNumber numberWithInt:POLICIES_CORRELATION_ID]; + request.correlationID = [NSNumber numberWithInt:PoliciesCorrelationId]; request.data = [responseDictionary objectForKey:@"data"]; [self sendRPC:request]; @@ -779,7 +714,7 @@ - (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode { // Grab some bytes from the stream and send them in a SDLPutFile RPC Request NSUInteger currentStreamOffset = [[stream propertyForKey:NSStreamFileCurrentOffsetKey] unsignedIntegerValue]; - NSMutableData *buffer = [NSMutableData dataWithLength:[[SDLGlobals globals] mtuSizeForServiceType:SDLServiceType_RPC]]; + NSMutableData *buffer = [NSMutableData dataWithLength:[[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeRPC]]; NSUInteger nBytesRead = [(NSInputStream *)stream read:(uint8_t *)buffer.mutableBytes maxLength:buffer.length]; if (nBytesRead > 0) { NSData *data = [buffer subdataWithRange:NSMakeRange(0, nBytesRead)]; @@ -804,7 +739,7 @@ - (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode { break; } case NSStreamEventErrorOccurred: { - [SDLDebugTool logInfo:@"Stream Event: Error" withType:SDLDebugType_RPC toOutput:SDLDebugOutput_All toGroup:self.debugConsoleGroupName]; + SDLLogE(@"NSStream error attempting to upload putfile stream: %lu", (unsigned long)eventCode); break; } default: { @@ -813,14 +748,6 @@ - (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode { } } - -#pragma mark - Siphon management -+ (void)enableSiphonDebug { - [SDLSiphonServer enableSiphonDebug]; -} - -+ (void)disableSiphonDebug { - [SDLSiphonServer disableSiphonDebug]; -} - @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLProxyFactory.h b/SmartDeviceLink/SDLProxyFactory.h index f4aee3089..5d2212e58 100644 --- a/SmartDeviceLink/SDLProxyFactory.h +++ b/SmartDeviceLink/SDLProxyFactory.h @@ -7,8 +7,10 @@ @class SDLProxy; +NS_ASSUME_NONNULL_BEGIN + __deprecated_msg("Use SDLManager instead") - @interface SDLProxyFactory : NSObject { +@interface SDLProxyFactory : NSObject { } + (SDLProxy *)buildSDLProxyWithListener:(NSObject *)listener; @@ -17,3 +19,5 @@ __deprecated_msg("Use SDLManager instead") tcpIPAddress:(NSString *)ipaddress tcpPort:(NSString *)port; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLProxyFactory.m b/SmartDeviceLink/SDLProxyFactory.m index 9f9f7b1da..3a703e073 100644 --- a/SmartDeviceLink/SDLProxyFactory.m +++ b/SmartDeviceLink/SDLProxyFactory.m @@ -3,12 +3,12 @@ #import "SDLProxyFactory.h" -#import "SDLDebugTool.h" #import "SDLIAPTransport.h" #import "SDLProtocol.h" #import "SDLProxy.h" #import "SDLTCPTransport.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLProxyFactory @@ -35,3 +35,5 @@ + (SDLProxy *)buildSDLProxyWithListener:(NSObject *)delegate } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLProxyListener.h b/SmartDeviceLink/SDLProxyListener.h index 793ecad4f..70a02f3f2 100644 --- a/SmartDeviceLink/SDLProxyListener.h +++ b/SmartDeviceLink/SDLProxyListener.h @@ -7,6 +7,7 @@ @class SDLAddSubMenuResponse; @class SDLAlertManeuverResponse; @class SDLAlertResponse; +@class SDLButtonPressResponse; @class SDLChangeRegistrationResponse; @class SDLCreateInteractionChoiceSetResponse; @class SDLDeleteCommandResponse; @@ -19,6 +20,7 @@ @class SDLEndAudioPassThruResponse; @class SDLGenericResponse; @class SDLGetDTCsResponse; +@class SDLGetInteriorVehicleDataResponse; @class SDLGetSystemCapabilityResponse; @class SDLGetVehicleDataResponse; @class SDLGetWaypointsResponse; @@ -32,6 +34,7 @@ @class SDLOnEncodedSyncPData; @class SDLOnHashChange; @class SDLOnHMIStatus; +@class SDLOnInteriorVehicleData; @class SDLOnKeyboardInput; @class SDLOnLanguageChange; @class SDLOnLockScreenStatus; @@ -42,7 +45,7 @@ @class SDLOnTBTClientState; @class SDLOnTouchEvent; @class SDLOnVehicleData; -@class SDLOnWaypointChange; +@class SDLOnWayPointChange; @class SDLPerformAudioPassThruResponse; @class SDLPerformInteractionResponse; @class SDLPutFileResponse; @@ -55,6 +58,7 @@ @class SDLSetAppIconResponse; @class SDLSetDisplayLayoutResponse; @class SDLSetGlobalPropertiesResponse; +@class SDLSetInteriorVehicleDataResponse; @class SDLSetMediaClockTimerResponse; @class SDLShowConstantTBTResponse; @class SDLShowResponse; @@ -62,14 +66,15 @@ @class SDLSpeakResponse; @class SDLSubscribeButtonResponse; @class SDLSubscribeVehicleDataResponse; -@class SDLSubscribeWaypointsResponse; +@class SDLSubscribeWayPointsResponse; @class SDLSyncPDataResponse; @class SDLUpdateTurnListResponse; @class SDLUnregisterAppInterfaceResponse; @class SDLUnsubscribeButtonResponse; @class SDLUnsubscribeVehicleDataResponse; -@class SDLUnsubscribeWaypointsResponse; +@class SDLUnsubscribeWayPointsResponse; +NS_ASSUME_NONNULL_BEGIN @protocol SDLProxyListener @@ -84,6 +89,7 @@ - (void)onAddSubMenuResponse:(SDLAddSubMenuResponse *)response; - (void)onAlertManeuverResponse:(SDLAlertManeuverResponse *)response; - (void)onAlertResponse:(SDLAlertResponse *)response; +- (void)onButtonPressResponse:(SDLButtonPressResponse *)response; - (void)onChangeRegistrationResponse:(SDLChangeRegistrationResponse *)response; - (void)onCreateInteractionChoiceSetResponse:(SDLCreateInteractionChoiceSetResponse *)response; - (void)onDeleteCommandResponse:(SDLDeleteCommandResponse *)response; @@ -97,6 +103,7 @@ - (void)onError:(NSException *)e; - (void)onGenericResponse:(SDLGenericResponse *)response; - (void)onGetDTCsResponse:(SDLGetDTCsResponse *)response; +- (void)onGetInteriorVehicleDataResponse:(SDLGetInteriorVehicleDataResponse *)response; - (void)onGetSystemCapabilityResponse:(SDLGetSystemCapabilityResponse *)response; - (void)onGetVehicleDataResponse:(SDLGetVehicleDataResponse *)response; - (void)onGetWayPointsResponse:(SDLGetWaypointsResponse *)response; @@ -109,6 +116,7 @@ - (void)onOnCommand:(SDLOnCommand *)notification; - (void)onOnEncodedSyncPData:(SDLOnEncodedSyncPData *)notification; - (void)onOnHashChange:(SDLOnHashChange *)notification; +- (void)onOnInteriorVehicleData:(SDLOnInteriorVehicleData *)notification; - (void)onOnKeyboardInput:(SDLOnKeyboardInput *)notification; - (void)onOnLanguageChange:(SDLOnLanguageChange *)notification; - (void)onOnLockScreenNotification:(SDLOnLockScreenStatus *)notification; @@ -118,7 +126,7 @@ - (void)onOnTBTClientState:(SDLOnTBTClientState *)notification; - (void)onOnTouchEvent:(SDLOnTouchEvent *)notification; - (void)onOnVehicleData:(SDLOnVehicleData *)notification; -- (void)onOnWayPointChange:(SDLOnWaypointChange *)notification; +- (void)onOnWayPointChange:(SDLOnWayPointChange *)notification; - (void)onPerformAudioPassThruResponse:(SDLPerformAudioPassThruResponse *)response; - (void)onPerformInteractionResponse:(SDLPerformInteractionResponse *)response; - (void)onPutFileResponse:(SDLPutFileResponse *)response; @@ -131,6 +139,7 @@ - (void)onSetAppIconResponse:(SDLSetAppIconResponse *)response; - (void)onSetDisplayLayoutResponse:(SDLSetDisplayLayoutResponse *)response; - (void)onSetGlobalPropertiesResponse:(SDLSetGlobalPropertiesResponse *)response; +- (void)onSetInteriorVehicleDataResponse:(SDLSetInteriorVehicleDataResponse *)response; - (void)onSetMediaClockTimerResponse:(SDLSetMediaClockTimerResponse *)response; - (void)onShowConstantTBTResponse:(SDLShowConstantTBTResponse *)response; - (void)onShowResponse:(SDLShowResponse *)response; @@ -138,12 +147,14 @@ - (void)onSpeakResponse:(SDLSpeakResponse *)response; - (void)onSubscribeButtonResponse:(SDLSubscribeButtonResponse *)response; - (void)onSubscribeVehicleDataResponse:(SDLSubscribeVehicleDataResponse *)response; -- (void)onSubscribeWayPointsResponse:(SDLSubscribeWaypointsResponse *)response; +- (void)onSubscribeWayPointsResponse:(SDLSubscribeWayPointsResponse *)response; - (void)onSyncPDataResponse:(SDLSyncPDataResponse *)response; - (void)onUpdateTurnListResponse:(SDLUpdateTurnListResponse *)response; - (void)onUnregisterAppInterfaceResponse:(SDLUnregisterAppInterfaceResponse *)response; - (void)onUnsubscribeButtonResponse:(SDLUnsubscribeButtonResponse *)response; - (void)onUnsubscribeVehicleDataResponse:(SDLUnsubscribeVehicleDataResponse *)response; -- (void)onUnsubscribeWayPointsResponse:(SDLUnsubscribeWaypointsResponse *)response; +- (void)onUnsubscribeWayPointsResponse:(SDLUnsubscribeWayPointsResponse *)response; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPutFile.h b/SmartDeviceLink/SDLPutFile.h index f0cc0a8f1..247228fbd 100644 --- a/SmartDeviceLink/SDLPutFile.h +++ b/SmartDeviceLink/SDLPutFile.h @@ -3,8 +3,7 @@ #import "SDLRPCRequest.h" -@class SDLFileType; - +#import "SDLFileType.h" /** * Used to push a binary data onto the SDL module from a mobile device, such as @@ -14,41 +13,30 @@ * @see SDLDeleteFile * @see SDLListFiles */ -@interface SDLPutFile : SDLRPCRequest { -} -/** - * Constructs a new SDLPutFile object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * Constructs a new SDLPutFile object indicated by the dictionary parameter - * - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLPutFile : SDLRPCRequest -- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType *)fileType; +- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)fileType; -- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType *)fileType persistentFile:(BOOL)persistentFile; +- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)fileType persistentFile:(BOOL)persistentFile; -// TODO: (Alex M.)[2016-12-1] Change from UInt64 ot UInt32 -- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType *)fileType persistentFile:(BOOL)persistentFile systemFile:(BOOL)systemFile offset:(UInt64)offset length:(UInt64)length; +- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)fileType persistentFile:(BOOL)persistentFile systemFile:(BOOL)systemFile offset:(UInt32)offset length:(UInt32)length; /** * A file reference name * * Required, maxlength 255 characters */ -@property (strong) NSString *syncFileName; +@property (strong, nonatomic) NSString *syncFileName; /** * A FileType value representing a selected file type * * Required */ -@property (strong) SDLFileType *fileType; +@property (strong, nonatomic) SDLFileType fileType; /** * A value to indicates if the file is meant to persist between @@ -61,27 +49,29 @@ * * Boolean, Optional, default = NO */ -@property (strong) NSNumber *persistentFile; +@property (nullable, strong, nonatomic) NSNumber *persistentFile; /** * 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. * * Boolean, Optional, default = NO */ -@property (strong) NSNumber *systemFile; +@property (nullable, strong, nonatomic) NSNumber *systemFile; /** * Offset in bytes for resuming partial data chunks. * * Integer, Optional, 0 - 100,000,000,000 */ -@property (strong) NSNumber *offset; +@property (nullable, strong, nonatomic) NSNumber *offset; /** * 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, 0 - 100,000,000,000 */ -@property (strong) NSNumber *length; +@property (nullable, strong, nonatomic) NSNumber *length; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPutFile.m b/SmartDeviceLink/SDLPutFile.m index 0442d3655..5b289d4ce 100644 --- a/SmartDeviceLink/SDLPutFile.m +++ b/SmartDeviceLink/SDLPutFile.m @@ -3,25 +3,20 @@ #import "SDLPutFile.h" -#import "SDLFileType.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLPutFile - (instancetype)init { - if (self = [super initWithName:NAMES_PutFile]) { + if (self = [super initWithName:SDLNamePutFile]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType *)fileType persistentFile:(BOOL)persistentFile systemFile:(BOOL)systemFile offset:(UInt64)offset length:(UInt64)length { +- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)fileType persistentFile:(BOOL)persistentFile systemFile:(BOOL)systemFile offset:(UInt32)offset length:(UInt32)length { self = [self initWithFileName:fileName fileType:fileType persistentFile:persistentFile]; if (!self) { return nil; @@ -34,7 +29,7 @@ - (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType *)fi return self; } -- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType *)fileType persistentFile:(BOOL)persistentFile { +- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)fileType persistentFile:(BOOL)persistentFile { self = [self initWithFileName:fileName fileType:fileType]; if (!self) { return nil; @@ -45,7 +40,7 @@ - (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType *)fi return self; } -- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType *)fileType { +- (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType)fileType { self = [self init]; if (!self) { return nil; @@ -58,80 +53,53 @@ - (instancetype)initWithFileName:(NSString *)fileName fileType:(SDLFileType *)fi } - (void)setSyncFileName:(NSString *)syncFileName { - if (syncFileName != nil) { - [parameters setObject:syncFileName forKey:NAMES_syncFileName]; - } else { - [parameters removeObjectForKey:NAMES_syncFileName]; - } + [parameters sdl_setObject:syncFileName forName:SDLNameSyncFileName]; } - (NSString *)syncFileName { - return [parameters objectForKey:NAMES_syncFileName]; + return [parameters sdl_objectForName:SDLNameSyncFileName]; } -- (void)setFileType:(SDLFileType *)fileType { - if (fileType != nil) { - [parameters setObject:fileType forKey:NAMES_fileType]; - } else { - [parameters removeObjectForKey:NAMES_fileType]; - } +- (void)setFileType:(SDLFileType)fileType { + [parameters sdl_setObject:fileType forName:SDLNameFileType]; } -- (SDLFileType *)fileType { - NSObject *obj = [parameters objectForKey:NAMES_fileType]; - if (obj == nil || [obj isKindOfClass:SDLFileType.class]) { - return (SDLFileType *)obj; - } else { - return [SDLFileType valueOf:(NSString *)obj]; - } +- (SDLFileType)fileType { + return [parameters sdl_objectForName:SDLNameFileType]; } -- (void)setPersistentFile:(NSNumber *)persistentFile { - if (persistentFile != nil) { - [parameters setObject:persistentFile forKey:NAMES_persistentFile]; - } else { - [parameters removeObjectForKey:NAMES_persistentFile]; - } +- (void)setPersistentFile:(nullable NSNumber *)persistentFile { + [parameters sdl_setObject:persistentFile forName:SDLNamePersistentFile]; } -- (NSNumber *)persistentFile { - return [parameters objectForKey:NAMES_persistentFile]; +- (nullable NSNumber *)persistentFile { + return [parameters sdl_objectForName:SDLNamePersistentFile]; } -- (void)setSystemFile:(NSNumber *)systemFile { - if (systemFile != nil) { - [parameters setObject:systemFile forKey:NAMES_systemFile]; - } else { - [parameters removeObjectForKey:NAMES_systemFile]; - } +- (void)setSystemFile:(nullable NSNumber *)systemFile { + [parameters sdl_setObject:systemFile forName:SDLNameSystemFile]; } -- (NSNumber *)systemFile { - return [parameters objectForKey:NAMES_systemFile]; +- (nullable NSNumber *)systemFile { + return [parameters sdl_objectForName:SDLNameSystemFile]; } -- (void)setOffset:(NSNumber *)offset { - if (offset != nil) { - [parameters setObject:offset forKey:NAMES_offset]; - } else { - [parameters removeObjectForKey:NAMES_offset]; - } +- (void)setOffset:(nullable NSNumber *)offset { + [parameters sdl_setObject:offset forName:SDLNameOffset]; } -- (NSNumber *)offset { - return [parameters objectForKey:NAMES_offset]; +- (nullable NSNumber *)offset { + return [parameters sdl_objectForName:SDLNameOffset]; } -- (void)setLength:(NSNumber *)length { - if (length != nil) { - [parameters setObject:length forKey:NAMES_length]; - } else { - [parameters removeObjectForKey:NAMES_length]; - } +- (void)setLength:(nullable NSNumber *)length { + [parameters sdl_setObject:length forName:SDLNameLength]; } -- (NSNumber *)length { - return [parameters objectForKey:NAMES_length]; +- (nullable NSNumber *)length { + return [parameters sdl_objectForName:SDLNameLength]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPutFileResponse.h b/SmartDeviceLink/SDLPutFileResponse.h index 9857607ca..dfa7a74a7 100644 --- a/SmartDeviceLink/SDLPutFileResponse.h +++ b/SmartDeviceLink/SDLPutFileResponse.h @@ -9,16 +9,12 @@ * * Since SmartDeviceLink 2.0 */ -@interface SDLPutFileResponse : SDLRPCResponse { -} -/** - * @abstract Constructs a new SDLPutFileResponse object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLPutFileResponse object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; -@property (strong) NSNumber *spaceAvailable; + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLPutFileResponse : SDLRPCResponse + +@property (strong, nonatomic) NSNumber *spaceAvailable; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLPutFileResponse.m b/SmartDeviceLink/SDLPutFileResponse.m index 4a956cfbd..2d3de3352 100644 --- a/SmartDeviceLink/SDLPutFileResponse.m +++ b/SmartDeviceLink/SDLPutFileResponse.m @@ -4,32 +4,27 @@ #import "SDLPutFileResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLPutFileResponse - (instancetype)init { - if (self = [super initWithName:NAMES_PutFile]) { + if (self = [super initWithName:SDLNamePutFile]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (void)setSpaceAvailable:(NSNumber *)spaceAvailable { + [parameters sdl_setObject:spaceAvailable forName:SDLNameSpaceAvailable]; } -- (void)setSpaceAvailable:(NSNumber *)spaceAvailable { - if (spaceAvailable != nil) { - [parameters setObject:spaceAvailable forKey:NAMES_spaceAvailable]; - } else { - [parameters removeObjectForKey:NAMES_spaceAvailable]; - } -} - -- (NSNumber *)spaceAvailable { - return [parameters objectForKey:NAMES_spaceAvailable]; +- (NSNumber *)spaceAvailable { + return [parameters sdl_objectForName:SDLNameSpaceAvailable]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRAWH264Packetizer.h b/SmartDeviceLink/SDLRAWH264Packetizer.h new file mode 100644 index 000000000..df1a9baf7 --- /dev/null +++ b/SmartDeviceLink/SDLRAWH264Packetizer.h @@ -0,0 +1,18 @@ +// +// SDLRAWH264Packetizer +// SmartDeviceLink-iOS +// +// Created by Sho Amano on 4/11/17. +// Copyright © 2017 Xevo Inc. All rights reserved. +// + +#import + +#import "SDLH264Packetizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLRAWH264Packetizer : NSObject +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRAWH264Packetizer.m b/SmartDeviceLink/SDLRAWH264Packetizer.m new file mode 100644 index 000000000..a40acd345 --- /dev/null +++ b/SmartDeviceLink/SDLRAWH264Packetizer.m @@ -0,0 +1,52 @@ +// +// SDLRAWH264Packetizer +// SmartDeviceLink-iOS +// +// Created by Sho Amano on 4/11/17. +// Copyright © 2017 Xevo Inc. All rights reserved. +// + +#import +#import "SDLRAWH264Packetizer.h" +#import "SDLH264Packetizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLRAWH264Packetizer () +@property (nonatomic) NSData *startCode; +@end + +@implementation SDLRAWH264Packetizer + +- (instancetype)init { + self = [super init]; + if (!self) { + return nil; + } + + // This is the start code that we will write to the elementary stream before every NAL unit + UInt8 startCode[] = {0x00, 0x00, 0x00, 0x01}; + _startCode = [[NSData alloc] initWithBytes:startCode length:4]; + + return self; +} + +- (nullable NSArray *)createPackets:(NSArray *)nalUnits + presentationTimestamp:(double)presentationTimestamp { + NSMutableArray *array = [NSMutableArray arrayWithCapacity:1]; + NSMutableData *elementaryStream = [NSMutableData data]; + + // Note: this packetizer consolidates all NAL units into one NSData object + // to keep compatibility with previous implementation. + for (NSData *nalUnit in nalUnits) { + [elementaryStream appendData:self.startCode]; + [elementaryStream appendData:nalUnit]; + } + + [array addObject:elementaryStream]; + return [array copy]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRDSData.h b/SmartDeviceLink/SDLRDSData.h new file mode 100755 index 000000000..f734b45e5 --- /dev/null +++ b/SmartDeviceLink/SDLRDSData.h @@ -0,0 +1,78 @@ +// +// SDLRDSData.h +// + +#import "SDLRPCMessage.h" + +/** + * 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. + */ + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLRDSData : SDLRPCStruct + +- (instancetype)initWithProgramService:(nullable NSString *)programService radioText:(nullable NSString *)radioText clockText:(nullable NSString *)clockText programIdentification:(nullable NSString *)programIdentification programType:(nullable NSNumber *)programType trafficProgramIdentification:(nullable NSNumber *)trafficProgramIdentification trafficAnnouncementIdentification:(nullable NSNumber *)trafficAnnouncementIdentification region:(nullable NSString *)region; + +/** + * @abstract Program Service Name + * + * optional, 0-8 + */ +@property (nullable, strong, nonatomic) NSString *programService; + +/** + * @abstract Radio Text + * + * optional, 0-64 + */ +@property (nullable, strong, nonatomic) NSString *radioText; + +/** + * @abstract The clock text in UTC format as YYYY-MM-DDThh:mm:ss.sTZD + * + * optional, 0-24 + */ +@property (nullable, strong, nonatomic) NSString *clockText; + +/** + * @abstract Program Identification - the call sign for the radio station + * + * optional, 0-6 + */ +@property (nullable, strong, nonatomic) NSString *programIdentification; + +/** + * @abstract The program type - The region should be used to differentiate between EU + * and North America program types + * + * optional, 0-31 + */ +@property (nullable, strong, nonatomic) NSNumber *programType; + +/** + * @abstract Traffic Program Identification - Identifies a station that offers traffic + * + * optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *trafficProgramIdentification; + +/** + * @abstract Traffic Announcement Identification - Indicates an ongoing traffic announcement + * + * optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *trafficAnnouncementIdentification; + +/** + * @abstract Region + * + * optional, 0-8 + */ +@property (nullable, strong, nonatomic) NSString *region; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRDSData.m b/SmartDeviceLink/SDLRDSData.m new file mode 100755 index 000000000..9a8f5586f --- /dev/null +++ b/SmartDeviceLink/SDLRDSData.m @@ -0,0 +1,95 @@ +// +// SDLRDSData.m +// + +#import "SDLRDSData.h" +#include "SDLNames.h" +#import "NSMutableDictionary+Store.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLRDSData + +- (instancetype)initWithProgramService:(nullable NSString *)programService radioText:(nullable NSString *)radioText clockText:(nullable NSString *)clockText programIdentification:(nullable NSString *)programIdentification programType:(nullable NSNumber *)programType trafficProgramIdentification:(nullable NSNumber *)trafficProgramIdentification trafficAnnouncementIdentification:(nullable NSNumber *)trafficAnnouncementIdentification region:(nullable NSString *)region { + self = [self init]; + if (!self) { + return nil; + } + self.programService = programService; + self.radioText = radioText; + self.clockText = clockText; + self.programIdentification = programIdentification; + self.programType = programType; + self.trafficProgramIdentification = trafficProgramIdentification; + self.trafficAnnouncementIdentification = trafficAnnouncementIdentification; + self.region = region; + return self; +} + +- (void)setProgramService:(nullable NSString *)programService { + [store sdl_setObject:programService forName:SDLNameProgramService]; +} + +- (nullable NSString *)programService { + return [store sdl_objectForName:SDLNameProgramService]; +} + +- (void)setRadioText:(nullable NSString *)radioText { + [store sdl_setObject:radioText forName:SDLNameRadioText]; +} + +- (nullable NSString *)radioText { + return [store sdl_objectForName:SDLNameRadioText]; +} + +- (void)setClockText:(nullable NSString *)clockText { + [store sdl_setObject:clockText forName:SDLNameClockText]; +} + +- (nullable NSString *)clockText { + return [store sdl_objectForName:SDLNameClockText]; +} + +- (void)setProgramIdentification:(nullable NSString *)programIdentification { + [store sdl_setObject:programIdentification forName:SDLNameProgramIdentification]; +} + +- (nullable NSString *)programIdentification { + return [store sdl_objectForName:SDLNameProgramIdentification]; +} + +- (void)setProgramType:(nullable NSNumber *)programType { + [store sdl_setObject:programType forName:SDLNameProgramType]; +} + +- (nullable NSNumber *)programType { + return [store sdl_objectForName:SDLNameProgramType]; +} + +- (void)setTrafficProgramIdentification:(nullable NSNumber *)trafficProgramIdentification { + [store sdl_setObject:trafficProgramIdentification forName:SDLNameTrafficProgramIdentification]; +} + +- (nullable NSNumber *)trafficProgramIdentification { + return [store sdl_objectForName:SDLNameTrafficProgramIdentification]; +} + +- (void)setTrafficAnnouncementIdentification:(nullable NSNumber *)trafficAnnouncementIdentification { + [store sdl_setObject:trafficAnnouncementIdentification forName:SDLNameTrafficAnnouncementIdentification]; +} + +- (nullable NSNumber *)trafficAnnouncementIdentification { + return [store sdl_objectForName:SDLNameTrafficAnnouncementIdentification]; +} + +- (void)setRegion:(nullable NSString *)region { + [store sdl_setObject:region forName:SDLNameRegion]; +} + +- (nullable NSString *)region { + return [store sdl_objectForName:SDLNameRegion]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRPCMessage.h b/SmartDeviceLink/SDLRPCMessage.h index fc5f577ef..3612d15c0 100644 --- a/SmartDeviceLink/SDLRPCMessage.h +++ b/SmartDeviceLink/SDLRPCMessage.h @@ -5,21 +5,25 @@ #import "SDLRPCStruct.h" +NS_ASSUME_NONNULL_BEGIN + @interface SDLRPCMessage : SDLRPCStruct { - NSMutableDictionary *function; - NSMutableDictionary *parameters; + NSMutableDictionary *function; + NSMutableDictionary *parameters; NSString *messageType; } - (instancetype)initWithName:(NSString *)name; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; -- (NSString *)getFunctionName; -- (void)setFunctionName:(NSString *)functionName; -- (NSObject *)getParameters:(NSString *)functionName; -- (void)setParameters:(NSString *)functionName value:(NSObject *)value; +- (instancetype)initWithDictionary:(NSDictionary *)dict; +- (nullable NSString *)getFunctionName; +- (void)setFunctionName:(nullable NSString *)functionName; +- (nullable NSObject *)getParameters:(NSString *)functionName; +- (void)setParameters:(NSString *)functionName value:(nullable NSObject *)value; -@property (strong) NSData *bulkData; -@property (strong, readonly) NSString *name; -@property (strong, readonly) NSString *messageType; +@property (nullable, strong, nonatomic) NSData *bulkData; +@property (strong, nonatomic, readonly) NSString *name; +@property (strong, nonatomic, readonly) NSString *messageType; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRPCMessage.m b/SmartDeviceLink/SDLRPCMessage.m index be5f95334..140762dc2 100644 --- a/SmartDeviceLink/SDLRPCMessage.m +++ b/SmartDeviceLink/SDLRPCMessage.m @@ -4,8 +4,10 @@ #import "SDLRPCMessage.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLRPCMessage @@ -15,61 +17,50 @@ - (instancetype)initWithName:(NSString *)name { if (self = [super init]) { function = [[NSMutableDictionary alloc] initWithCapacity:3]; parameters = [[NSMutableDictionary alloc] init]; - messageType = NAMES_request; + messageType = SDLNameRequest; [store setObject:function forKey:messageType]; - [function setObject:parameters forKey:NAMES_parameters]; - [function setObject:name forKey:NAMES_operation_name]; + [function setObject:parameters forKey:SDLNameParameters]; + [function setObject:name forKey:SDLNameOperationName]; } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { +- (instancetype)initWithDictionary:(NSDictionary *)dict { if (self = [super initWithDictionary:dict]) { NSEnumerator *enumerator = [store keyEnumerator]; while (messageType = [enumerator nextObject]) { - if ([messageType isEqualToString:@"bulkData"] == FALSE) { + if (![messageType isEqualToString:SDLNameBulkData]) { break; } } - - function = [store objectForKey:messageType]; - parameters = [function objectForKey:NAMES_parameters]; - self.bulkData = [dict objectForKey:@"bulkData"]; + if (messageType != nil) { + function = [[store objectForKey:messageType] mutableCopy]; + parameters = [[function objectForKey:SDLNameParameters] mutableCopy]; + } + self.bulkData = [dict objectForKey:SDLNameBulkData]; } + return self; } -- (NSString *)getFunctionName { - return [function objectForKey:NAMES_operation_name]; +- (nullable NSString *)getFunctionName { + return [function sdl_objectForName:SDLNameOperationName]; } -- (void)setFunctionName:(NSString *)functionName { - if (functionName != nil) { - [function setObject:functionName forKey:NAMES_operation_name]; - } else { - [function removeObjectForKey:NAMES_operation_name]; - } +- (void)setFunctionName:(nullable NSString *)functionName { + [function sdl_setObject:functionName forName:SDLNameOperationName]; } -- (NSObject *)getParameters:(NSString *)functionName { - return [parameters objectForKey:functionName]; +- (nullable NSObject *)getParameters:(NSString *)functionName { + return [parameters sdl_objectForName:functionName]; } -- (void)setParameters:(NSString *)functionName value:(NSObject *)value { - if (value != nil) { - [parameters setObject:value forKey:functionName]; - } else { - [parameters removeObjectForKey:functionName]; - } -} - -- (void)dealloc { - function = nil; - parameters = nil; +- (void)setParameters:(NSString *)functionName value:(nullable NSObject *)value { + [parameters sdl_setObject:value forName:functionName]; } - (NSString *)name { - return [function objectForKey:NAMES_operation_name]; + return [self getFunctionName]; } - (NSString *)description { @@ -79,3 +70,5 @@ - (NSString *)description { } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRPCNotification.h b/SmartDeviceLink/SDLRPCNotification.h index 05f182b9b..cb5044d6c 100644 --- a/SmartDeviceLink/SDLRPCNotification.h +++ b/SmartDeviceLink/SDLRPCNotification.h @@ -4,10 +4,10 @@ #import "SDLRPCMessage.h" -@interface SDLRPCNotification : SDLRPCMessage { -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)initWithName:(NSString *)name; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLRPCNotification : SDLRPCMessage @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRPCNotification.m b/SmartDeviceLink/SDLRPCNotification.m index 5c2a063dd..f300a2148 100644 --- a/SmartDeviceLink/SDLRPCNotification.m +++ b/SmartDeviceLink/SDLRPCNotification.m @@ -4,8 +4,11 @@ #import "SDLRPCNotification.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLRPCNotification - (instancetype)initWithName:(NSString *)name { @@ -14,22 +17,24 @@ - (instancetype)initWithName:(NSString *)name { return nil; } - messageType = NAMES_notification; + messageType = SDLNameNotification; [store setObject:function forKey:messageType]; return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { +- (instancetype)initWithDictionary:(NSDictionary *)dict { self = [super initWithDictionary:dict]; if (!self) { return nil; } - messageType = NAMES_notification; + messageType = SDLNameNotification; [store setObject:function forKey:messageType]; return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRPCNotificationNotification.h b/SmartDeviceLink/SDLRPCNotificationNotification.h index 6c548812a..6b0060a9d 100644 --- a/SmartDeviceLink/SDLRPCNotificationNotification.h +++ b/SmartDeviceLink/SDLRPCNotificationNotification.h @@ -19,6 +19,21 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)initWithName:(NSString *)name object:(nullable id)object rpcNotification:(__kindof SDLRPCNotification *)notification; +/** + * Returns whether or not the containing notification is equal to a class, not including subclasses. + * + * @param aClass the class you are questioning + */ +- (BOOL)isNotificationMemberOfClass:(Class)aClass; + +/** + * Returns whether or not the containing notification is a kind of class, including subclasses. + * + * @param aClass the class you are questioning + */ +- (BOOL)isNotificationKindOfClass:(Class)aClass; + + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRPCNotificationNotification.m b/SmartDeviceLink/SDLRPCNotificationNotification.m index 898580654..78645c695 100644 --- a/SmartDeviceLink/SDLRPCNotificationNotification.m +++ b/SmartDeviceLink/SDLRPCNotificationNotification.m @@ -31,6 +31,16 @@ - (__kindof SDLRPCNotification *)notification { return _userInfo[SDLNotificationUserInfoObject]; } +- (BOOL)isNotificationMemberOfClass:(Class)aClass { + NSAssert([self.notification isMemberOfClass:aClass], @"A notification was sent with an unanticipated object"); + return [self.notification isMemberOfClass:aClass]; +} + +- (BOOL)isNotificationKindOfClass:(Class)aClass { + NSAssert([self.notification isKindOfClass:aClass], @"A notification was sent with an unanticipated object"); + return [self.notification isKindOfClass:aClass]; +} + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRPCPayload.h b/SmartDeviceLink/SDLRPCPayload.h index 1a490d956..5794cb5ea 100644 --- a/SmartDeviceLink/SDLRPCPayload.h +++ b/SmartDeviceLink/SDLRPCPayload.h @@ -6,16 +6,19 @@ #import "SDLRPCMessageType.h" +NS_ASSUME_NONNULL_BEGIN @interface SDLRPCPayload : NSObject -@property (assign) SDLRPCMessageType rpcType; -@property (assign) UInt32 functionID; -@property (assign) UInt32 correlationID; -@property (strong) NSData *jsonData; -@property (strong) NSData *binaryData; +@property (assign, nonatomic) SDLRPCMessageType rpcType; +@property (assign, nonatomic) UInt32 functionID; +@property (assign, nonatomic) UInt32 correlationID; +@property (nullable, strong, nonatomic) NSData *jsonData; +@property (nullable, strong, nonatomic) NSData *binaryData; - (NSData *)data; -+ (id)rpcPayloadWithData:(NSData *)data; ++ (nullable id)rpcPayloadWithData:(NSData *)data; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRPCPayload.m b/SmartDeviceLink/SDLRPCPayload.m index 2d47b6d1f..dc6facdf8 100644 --- a/SmartDeviceLink/SDLRPCPayload.m +++ b/SmartDeviceLink/SDLRPCPayload.m @@ -4,28 +4,24 @@ #import "SDLRPCPayload.h" -#import "SDLDebugTool.h" +#import "SDLLogMacros.h" const NSUInteger RPC_HEADER_SIZE = 12; -@implementation SDLRPCPayload +NS_ASSUME_NONNULL_BEGIN -- (instancetype)init { - if (self = [super init]) { - } - return self; -} +@implementation SDLRPCPayload -- (instancetype)initWithData:(NSData *)data { +- (nullable instancetype)initWithData:(NSData *)data { unsigned long dataLength = data.length; if (data == nil || dataLength == 0) { - [SDLDebugTool logInfo:@"Error: data is nil."]; + SDLLogW(@"RPC Payload data is nil"); return nil; } if (dataLength < RPC_HEADER_SIZE) { - [SDLDebugTool logInfo:@"Error: insfficient data to form RPC header."]; + SDLLogW(@"RPC Payload error: not enough data to form RPC header"); return nil; } @@ -67,8 +63,7 @@ - (instancetype)initWithData:(NSData *)data { self.binaryData = binaryData; } @catch (NSException *e) { - // Print exception information - [SDLDebugTool logFormat:@"NSException caught in SDLRPCPayload::initWithData\nName: %@\nReason: %@\nData: %@", e.name, e.reason, data.debugDescription]; + SDLLogW(@"SDLRPCPayload error: %@", e); return nil; } } @@ -114,7 +109,9 @@ - (NSString *)description { return description; } -+ (id)rpcPayloadWithData:(NSData *)data { ++ (nullable id)rpcPayloadWithData:(NSData *)data { return [[SDLRPCPayload alloc] initWithData:data]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRPCRequest.h b/SmartDeviceLink/SDLRPCRequest.h index e637eb4bc..b99449aef 100644 --- a/SmartDeviceLink/SDLRPCRequest.h +++ b/SmartDeviceLink/SDLRPCRequest.h @@ -4,9 +4,12 @@ #import "SDLRPCMessage.h" -@interface SDLRPCRequest : SDLRPCMessage { -} +NS_ASSUME_NONNULL_BEGIN -@property (strong) NSNumber *correlationID; +@interface SDLRPCRequest : SDLRPCMessage + +@property (strong, nonatomic) NSNumber *correlationID; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRPCRequest.m b/SmartDeviceLink/SDLRPCRequest.m index 48c568c9d..434c3e781 100644 --- a/SmartDeviceLink/SDLRPCRequest.m +++ b/SmartDeviceLink/SDLRPCRequest.m @@ -4,20 +4,21 @@ #import "SDLRPCRequest.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLRPCRequest -- (NSNumber *)correlationID { - return [function objectForKey:NAMES_correlationID]; +- (NSNumber *)correlationID { + return [function sdl_objectForName:SDLNameCorrelationId]; } -- (void)setCorrelationID:(NSNumber *)corrID { - if (corrID != nil) { - [function setObject:corrID forKey:NAMES_correlationID]; - } else { - [function removeObjectForKey:NAMES_correlationID]; - } +- (void)setCorrelationID:(NSNumber *)corrID { + [function sdl_setObject:corrID forName:SDLNameCorrelationId]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRPCRequestFactory.h b/SmartDeviceLink/SDLRPCRequestFactory.h deleted file mode 100644 index a080d689d..000000000 --- a/SmartDeviceLink/SDLRPCRequestFactory.h +++ /dev/null @@ -1,226 +0,0 @@ -// SDLRPCRequestFactory.h -// - -#import - -#import "SDLNotificationConstants.h" - -@class SDLAddCommand; -@class SDLAddSubMenu; -@class SDLAlert; -@class SDLAlertManeuver; -@class SDLAppHMIType; -@class SDLAudioType; -@class SDLBitsPerSample; -@class SDLButtonName; -@class SDLChangeRegistration; -@class SDLCreateInteractionChoiceSet; -@class SDLDeleteCommand; -@class SDLDeleteFile; -@class SDLDeleteInteractionChoiceSet; -@class SDLDeleteSubMenu; -@class SDLDialNumber; -@class SDLEndAudioPassThru; -@class SDLFileType; -@class SDLGetDTCs; -@class SDLGetVehicleData; -@class SDLImage; -@class SDLImageType; -@class SDLInteractionMode; -@class SDLLanguage; -@class SDLListFiles; -@class SDLPerformAudioPassThru; -@class SDLPerformInteraction; -@class SDLPutFile; -@class SDLReadDID; -@class SDLRegisterAppInterface; -@class SDLResetGlobalProperties; -@class SDLSamplingRate; -@class SDLScrollableMessage; -@class SDLSendLocation; -@class SDLSetAppIcon; -@class SDLSetDisplayLayout; -@class SDLSetGlobalProperties; -@class SDLSetMediaClockTimer; -@class SDLShow; -@class SDLShowConstantTBT; -@class SDLSlider; -@class SDLSoftButton; -@class SDLSoftButtonType; -@class SDLSpeak; -@class SDLSubscribeButton; -@class SDLSubscribeVehicleData; -@class SDLSystemAction; -@class SDLTextAlignment; -@class SDLTTSChunk; -@class SDLUnregisterAppInterface; -@class SDLUnsubscribeButton; -@class SDLUnsubscribeVehicleData; -@class SDLUpdateMode; -@class SDLUpdateTurnList; - - -__deprecated_msg("use class's initializers instead") @interface SDLRPCRequestFactory : NSObject { -} - -//***** AddCommand ***** -+ (SDLAddCommand *)buildAddCommandWithID:(NSNumber *)cmdID menuName:(NSString *)menuName parentID:(NSNumber *)parentID position:(NSNumber *)position vrCommands:(NSArray *)vrCommands iconValue:(NSString *)iconValue iconType:(SDLImageType *)iconType correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLAddCommand's buildAddCommandWithID:vrCommands:menuName:parentID:position:iconValue:iconType:handler: instead"); -; - -+ (SDLAddCommand *)buildAddCommandWithID:(NSNumber *)cmdID menuName:(NSString *)menuName vrCommands:(NSArray *)vrCommands correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLAddCommands's initWithId:vrCommands:menuName:handler: instead"); - -+ (SDLAddCommand *)buildAddCommandWithID:(NSNumber *)cmdID vrCommands:(NSArray *)vrCommands correlationID:(NSNumber *)correlationID __deprecated_msg("use buildAddCommandWithID:vrCommands:handler: with SDLManager instead"); - -+ (SDLAddCommand *)buildAddCommandWithID:(NSNumber *)cmdID menuName:(NSString *)menuName parentID:(NSNumber *)parentID position:(NSNumber *)position vrCommands:(NSArray *)vrCommands iconValue:(NSString *)iconValue iconType:(SDLImageType *)iconType handler:(SDLRPCNotificationHandler)handler __deprecated_msg("use SDLAddCommand's initWithId:vrCommands:menuName:parentId:position:iconValue:iconType:handler: instead"); - -+ (SDLAddCommand *)buildAddCommandWithID:(NSNumber *)cmdID menuName:(NSString *)menuName vrCommands:(NSArray *)vrCommands handler:(SDLRPCNotificationHandler)handler __deprecated_msg("use SDLAddCommand's initWithId:vrCommands:menuName:handler: instead"); - -+ (SDLAddCommand *)buildAddCommandWithID:(NSNumber *)cmdID vrCommands:(NSArray *)vrCommands handler:(SDLRPCNotificationHandler)handler __deprecated_msg("use SDLAddCommand's initWithId:vrCommands:handler: instead"); -//***** - - -//***** AddSubMenu ***** -+ (SDLAddSubMenu *)buildAddSubMenuWithID:(NSNumber *)menuID menuName:(NSString *)menuName position:(NSNumber *)position correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLAddSubMenu's initWithId:menuName:position: instead"); - -+ (SDLAddSubMenu *)buildAddSubMenuWithID:(NSNumber *)menuID menuName:(NSString *)menuName correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLAddSubMenu's initWithId:menuName: instead"); -//***** - - -//***** Alert ***** -+ (SDLAlert *)buildAlertWithTTS:(NSString *)ttsText alertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 alertText3:(NSString *)alertText3 playTone:(NSNumber *)playTone duration:(NSNumber *)duration correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLAlert's initWithTTS:alertText1:alertText2:alertText3:playTone:duration: instead"); - -+ (SDLAlert *)buildAlertWithTTS:(NSString *)ttsText alertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 playTone:(NSNumber *)playTone duration:(NSNumber *)duration correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLAlert's initWithTTS:alertText1:alertText2:playTone:duration: instead"); - -+ (SDLAlert *)buildAlertWithTTS:(NSString *)ttsText playTone:(NSNumber *)playTone correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLAlert's initWithTTS:playTone:duration: instead"); - -//*** -+ (SDLAlert *)buildAlertWithTTSChunks:(NSArray *)ttsChunks alertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 alertText3:(NSString *)alertText3 playTone:(NSNumber *)playTone duration:(NSNumber *)duration softButtons:(NSArray *)softButtons correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLAlert's initWithTTSChunks:alertText1:alertText2:alertText3:playTone:duration:softButtons: instead"); - -+ (SDLAlert *)buildAlertWithTTSChunks:(NSArray *)ttsChunks playTone:(NSNumber *)playTone correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLAlert's initWithTTSChunks:playTone: instead"); - -//*** -+ (SDLAlert *)buildAlertWithAlertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 alertText3:(NSString *)alertText3 duration:(NSNumber *)duration softButtons:(NSArray *)softButtons correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLAlert's initWithAlertText1:alertText2:alertText3:duration:softButtons: instead"); - -+ (SDLAlert *)buildAlertWithAlertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 alertText3:(NSString *)alertText3 duration:(NSNumber *)duration correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLAlert's initWithAlertText1:alertText2:alertText3:duration: instead"); - -+ (SDLAlert *)buildAlertWithAlertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 duration:(NSNumber *)duration correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLAlert's initWithAlertText1:alertText2:duration: instead"); -//***** - -+ (SDLAlertManeuver *)buildAlertManeuverwithTTSchunks:(NSMutableArray *)ttsChunks softButtons:(NSMutableArray *)softButtons correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLAlertManeuver's initWithTTSChunks:softButtons: instead"); - -+ (SDLChangeRegistration *)buildChangeRegistrationWithLanguage:(SDLLanguage *)language hmiDisplayLanguage:(SDLLanguage *)hmiDisplayLanguage correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLChangeRegistration's initWithLanguage:hmiDisplayLanguage: instead"); - -+ (SDLCreateInteractionChoiceSet *)buildCreateInteractionChoiceSetWithID:(NSNumber *)interactionChoiceSetID choiceSet:(NSArray *)choices correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLCreateInteractionChoiceSet's initWithId:choiceSet: instead"); - -+ (SDLDeleteCommand *)buildDeleteCommandWithID:(NSNumber *)cmdID correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLDeleteCommand's initWithId: instead"); - -+ (SDLDeleteFile *)buildDeleteFileWithName:(NSString *)syncFileName correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLDeleteFile's initWithFileName: instead"); - -+ (SDLDialNumber *)buildDialNumberWithNumber:(NSString *)phoneNumber __deprecated_msg("use SDLDialNumber's initWithNumber: instead"); - -+ (SDLListFiles *)buildListFilesWithCorrelationID:(NSNumber *)correlationID __deprecated_msg("use SDLListFiles's default initializer instead"); - -+ (SDLDeleteInteractionChoiceSet *)buildDeleteInteractionChoiceSetWithID:(NSNumber *)interactionChoiceSetID correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLDeleteInteractionChoiceSet's initWithId: instead"); - -+ (SDLDeleteSubMenu *)buildDeleteSubMenuWithID:(NSNumber *)menuID correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLDeleteSubMenu's initWithId: instead"); - -+ (SDLEndAudioPassThru *)buildEndAudioPassThruWithCorrelationID:(NSNumber *)correlationID __deprecated_msg("use SDLEndAudioPassThru's default initializer instead"); - -+ (SDLGetDTCs *)buildGetDTCsWithECUName:(NSNumber *)ecuName correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLGetDTCs's initWithECUName: instead"); - -+ (SDLGetVehicleData *)buildGetVehicleDataWithGPS:(NSNumber *)gps speed:(NSNumber *)speed rpm:(NSNumber *)rpm fuelLevel:(NSNumber *)fuelLevel fuelLevelState:(NSNumber *)fuelLevelState instantFuelConsumption:(NSNumber *)instantFuelConsumption externalTemperature:(NSNumber *)externalTemperature vin:(NSNumber *)vin prndl:(NSNumber *)prndl tirePressure:(NSNumber *)tirePressure odometer:(NSNumber *)odometer beltStatus:(NSNumber *)beltStatus bodyInformation:(NSNumber *)bodyInformation deviceStatus:(NSNumber *)deviceStatus driverBraking:(NSNumber *)driverBraking wiperStatus:(NSNumber *)wiperStatus headLampStatus:(NSNumber *)headLampStatus engineTorque:(NSNumber *)engineTorque accPedalPosition:(NSNumber *)accPedalPosition steeringWheelAngle:(NSNumber *)steeringWheelAngle correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLGetVehicleData's 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: instead"); - -+ (SDLPerformAudioPassThru *)buildPerformAudioPassThruWithInitialPrompt:(NSString *)initialPrompt audioPassThruDisplayText1:(NSString *)audioPassThruDisplayText1 audioPassThruDisplayText2:(NSString *)audioPassThruDisplayText2 samplingRate:(SDLSamplingRate *)samplingRate maxDuration:(NSNumber *)maxDuration bitsPerSample:(SDLBitsPerSample *)bitsPerSample audioType:(SDLAudioType *)audioType muteAudio:(NSNumber *)muteAudio correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLPerformAudioPassThru's initWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:bitsPerSample:audioType:maxDuration:muteAudio: instead"); - - -//***** PerformInteraction ***** -+ (SDLPerformInteraction *)buildPerformInteractionWithInitialChunks:(NSArray *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *)interactionChoiceSetIDList helpChunks:(NSArray *)helpChunks timeoutChunks:(NSArray *)timeoutChunks interactionMode:(SDLInteractionMode *)interactionMode timeout:(NSNumber *)timeout vrHelp:(NSArray *)vrHelp correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLPerformInteraction's initWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeoutChunks:interactionMode:timeout:vrHelp: instead"); - -//*** -+ (SDLPerformInteraction *)buildPerformInteractionWithInitialPrompt:(NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *)interactionChoiceSetIDList helpPrompt:(NSString *)helpPrompt timeoutPrompt:(NSString *)timeoutPrompt interactionMode:(SDLInteractionMode *)interactionMode timeout:(NSNumber *)timeout vrHelp:(NSArray *)vrHelp correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLPerformInteraction's initWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:vrHelp: instead"); - -+ (SDLPerformInteraction *)buildPerformInteractionWithInitialPrompt:(NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(NSNumber *)interactionChoiceSetID vrHelp:(NSArray *)vrHelp correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLPerformInteraction's initWithInitialPrompt:initialText:interactionChoiceSetID:vrHelp: instead"); - -+ (SDLPerformInteraction *)buildPerformInteractionWithInitialPrompt:(NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *)interactionChoiceSetIDList helpPrompt:(NSString *)helpPrompt timeoutPrompt:(NSString *)timeoutPrompt interactionMode:(SDLInteractionMode *)interactionMode timeout:(NSNumber *)timeout correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLPerformInteraction's initWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout: instead"); - -+ (SDLPerformInteraction *)buildPerformInteractionWithInitialPrompt:(NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(NSNumber *)interactionChoiceSetID correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLPerformInteraction's initWithInitialPrompt:initialText:interactionChoiceSetID: instead"); -//***** - -+ (SDLPutFile *)buildPutFileWithFileName:(NSString *)fileName fileType:(SDLFileType *)fileType persistentFile:(NSNumber *)persistentFile correlationId:(NSNumber *)correlationID __deprecated_msg("use SDLPutFile's initWithFileName:fileType: instead"); -+ (SDLPutFile *)buildPutFileWithFileName:(NSString *)syncFileName fileType:(SDLFileType *)fileType persisistentFile:(NSNumber *)persistentFile correlationID:(NSNumber *)correlationID __deprecated_msg("use buildPutFileWithFileName:fileType:persistentFile:correlationID: instead"); - -+ (SDLReadDID *)buildReadDIDWithECUName:(NSNumber *)ecuName didLocation:(NSArray *)didLocation correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLReadDID's initWithECUName:didLocation: instead"); - -//***** RegisterAppInterface ***** -+ (SDLRegisterAppInterface *)buildRegisterAppInterfaceWithAppName:(NSString *)appName ttsName:(NSMutableArray *)ttsName vrSynonyms:(NSMutableArray *)vrSynonyms isMediaApp:(NSNumber *)isMediaApp languageDesired:(SDLLanguage *)languageDesired hmiDisplayLanguageDesired:(SDLLanguage *)hmiDisplayLanguageDesired appID:(NSString *)appID __deprecated_msg("use SDLRegisterAppInterface's initWithAppName:appId:languageDesired:isMediaApp:appType:shortAppName:ttsName:vrSynonyms:hmiDisplayLanguageDesired:resumeHash: instead"); - -+ (SDLRegisterAppInterface *)buildRegisterAppInterfaceWithAppName:(NSString *)appName isMediaApp:(NSNumber *)isMediaApp languageDesired:(SDLLanguage *)languageDesired appID:(NSString *)appID __deprecated_msg("use SDLRegisterAppInterface's initWithAppName:appId:lanaugeDesired:isMediaApp:appType:shortAppName: instead"); - -+ (SDLRegisterAppInterface *)buildRegisterAppInterfaceWithAppName:(NSString *)appName languageDesired:(SDLLanguage *)laguageDesired appID:(NSString *)appID __deprecated_msg("use SDLRegisterAppInterface's initWithAppName:appId:lanaugeDesired: instead"); -//***** - -+ (SDLResetGlobalProperties *)buildResetGlobalPropertiesWithProperties:(NSArray *)properties correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLResetGlobalProperties's initWithProperties: instead"); - -+ (SDLSendLocation *)buildSendLocationWithLongitude:(NSNumber *)longitude latitude:(NSNumber *)latitude locationName:(NSString *)locationName locationDescription:(NSString *)locationDescription address:(NSArray *)address phoneNumber:(NSString *)phoneNumber image:(SDLImage *)image __deprecated_msg("use SDLSendLocation's initWithLongitude:latitude:locationName:locationDescription:address:phoneNumber:image: instead"); - -+ (SDLScrollableMessage *)buildScrollableMessage:(NSString *)scrollableMessageBody timeout:(NSNumber *)timeout softButtons:(NSArray *)softButtons correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLScrollableMessage's initWithMessage:timeout:softButtons: instead"); - -+ (SDLSetAppIcon *)buildSetAppIconWithFileName:(NSString *)syncFileName correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLSetAppIcon's initWithFileName: instead"); - -+ (SDLSetDisplayLayout *)buildSetDisplayLayout:(NSString *)displayLayout correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLSetAppIcon's initWithLayout: instead"); - - -//***** SetGlobalProperties ***** -+ (SDLSetGlobalProperties *)buildSetGlobalPropertiesWithHelpText:(NSString *)helpText timeoutText:(NSString *)timeoutText vrHelpTitle:(NSString *)vrHelpTitle vrHelp:(NSArray *)vrHelp correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLSetGlobalProperties's initWithHelpText:timeoutText:vrHelpTitle:vrHelp: instead"); - -+ (SDLSetGlobalProperties *)buildSetGlobalPropertiesWithHelpText:(NSString *)helpText timeoutText:(NSString *)timeoutText correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLSetGlobalProperties's initWithHelpText:timeoutText: instead"); -//***** - - -//***** SetMediaClockTimer ***** -+ (SDLSetMediaClockTimer *)buildSetMediaClockTimerWithHours:(NSNumber *)hours minutes:(NSNumber *)minutes seconds:(NSNumber *)seconds updateMode:(SDLUpdateMode *)updateMode correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLSetMediaClockTimer's initWithHours:minutes:seconds:updateMode: instead"); - -+ (SDLSetMediaClockTimer *)buildSetMediaClockTimerWithUpdateMode:(SDLUpdateMode *)updateMode correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLSetMediaClockTimer's initWithUpdateMode: instead"); -//***** - - -//***** Show ***** -+ (SDLShow *)buildShowWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack alignment:(SDLTextAlignment *)textAlignment graphic:(SDLImage *)graphic softButtons:(NSArray *)softButtons customPresets:(NSArray *)customPresets correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLShow's initWithMainField1:mainField2:mainField3:mainField4:alignment:statusBar:mediaClock:mediaTrack:graphic:softButtons:customPresets: instead"); - -+ (SDLShow *)buildShowWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack alignment:(SDLTextAlignment *)textAlignment correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLShow's initWithMainField1:mainField2:alignment:statusBar:mediaClock:mediaTrack: instead"); - -+ (SDLShow *)buildShowWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 alignment:(SDLTextAlignment *)alignment correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLShow's initWithMainField1:mainField2:alignment: instead"); -//***** - - -//***** Slider ***** -+ (SDLSlider *)buildSliderDynamicFooterWithNumTicks:(NSNumber *)numTicks position:(NSNumber *)position sliderHeader:(NSString *)sliderHeader sliderFooter:(NSArray *)sliderFooter timeout:(NSNumber *)timeout correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLSlider's initWithNumTicks:position:sliderHeader:sliderFooter:timeout: instead"); - -+ (SDLSlider *)buildSliderStaticFooterWithNumTicks:(NSNumber *)numTicks position:(NSNumber *)position sliderHeader:(NSString *)sliderHeader sliderFooter:(NSString *)sliderFooter timeout:(NSNumber *)timeout correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLSlider's initWithNumTicks:position:sliderHeader:sliderFooters:timeout: instead"); -//***** - -+ (SDLSoftButton *)buildSoftButtonWithType:(SDLSoftButtonType *)type text:(NSString *)text image:(SDLImage *)image highlighted:(BOOL)highlighted buttonID:(UInt16)buttonID systemAction:(SDLSystemAction *)systemAction handler:(SDLRPCNotificationHandler)handler __deprecated_msg("use SDLSoftButton's initWithType:text:image:highlighted:buttonId:systemAction:handler: instead"); - -//***** Speak ***** -+ (SDLSpeak *)buildSpeakWithTTSChunks:(NSArray *)ttsChunks correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLSpeak's initWithTTSChunks: instead"); - -//*** -+ (SDLSpeak *)buildSpeakWithTTS:(NSString *)ttsText correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLSpeak's initWithTTS: instead"); -//***** - -+ (SDLSubscribeButton *)buildSubscribeButtonWithName:(SDLButtonName *)buttonName correlationID:(NSNumber *)correlationID __deprecated_msg("use buildSubscribeButtonWithName:handler: with SDLManager instead"); - -+ (SDLSubscribeButton *)buildSubscribeButtonWithName:(SDLButtonName *)buttonName handler:(SDLRPCNotificationHandler)handler __deprecated_msg("use SDLSubscribeButton's initWithButtonName:handler: instead"); - -+ (SDLSubscribeVehicleData *)buildSubscribeVehicleDataWithGPS:(NSNumber *)gps speed:(NSNumber *)speed rpm:(NSNumber *)rpm fuelLevel:(NSNumber *)fuelLevel fuelLevelState:(NSNumber *)fuelLevelState instantFuelConsumption:(NSNumber *)instantFuelConsumption externalTemperature:(NSNumber *)externalTemperature prndl:(NSNumber *)prndl tirePressure:(NSNumber *)tirePressure odometer:(NSNumber *)odometer beltStatus:(NSNumber *)beltStatus bodyInformation:(NSNumber *)bodyInformation deviceStatus:(NSNumber *)deviceStatus driverBraking:(NSNumber *)driverBraking wiperStatus:(NSNumber *)wiperStatus headLampStatus:(NSNumber *)headLampStatus engineTorque:(NSNumber *)engineTorque accPedalPosition:(NSNumber *)accPedalPosition steeringWheelAngle:(NSNumber *)steeringWheelAngle correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLSubscribeVehicleData's initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus: instead"); - -+ (SDLShowConstantTBT *)buildShowConstantTBTWithString:(NSString *)navigationText1 navigationText2:(NSString *)navigationText2 eta:(NSString *)eta timeToDestination:(NSString *)timeToDestination totalDistance:(NSString *)totalDistance turnIcon:(SDLImage *)turnIcon nextTurnIcon:(SDLImage *)nextTurnIcon distanceToManeuver:(NSNumber *)distanceToManeuver distanceToManeuverScale:(NSNumber *)distanceToManeuverScale maneuverComplete:(NSNumber *)maneuverComplete softButtons:(NSMutableArray *)softButtons correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLShowConstantTBT's initWithNavigationText1:navigationText2:eta:timeToDestination:totalDistance:turnIcon:nextTurnIcon:distanceToManeuver:distanceToManeuverScale:maneuverComplete:softButtons: instead"); - -+ (SDLUnregisterAppInterface *)buildUnregisterAppInterfaceWithCorrelationID:(NSNumber *)correlationID __deprecated_msg("use SDLUnregisterAppInterface's default initializer instead"); - -+ (SDLUnsubscribeButton *)buildUnsubscribeButtonWithName:(SDLButtonName *)buttonName correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLUnsubscribeButton's initWithButtonName: instead"); - -+ (SDLUnsubscribeVehicleData *)buildUnsubscribeVehicleDataWithGPS:(NSNumber *)gps speed:(NSNumber *)speed rpm:(NSNumber *)rpm fuelLevel:(NSNumber *)fuelLevel fuelLevelState:(NSNumber *)fuelLevelState instantFuelConsumption:(NSNumber *)instantFuelConsumption externalTemperature:(NSNumber *)externalTemperature prndl:(NSNumber *)prndl tirePressure:(NSNumber *)tirePressure odometer:(NSNumber *)odometer beltStatus:(NSNumber *)beltStatus bodyInformation:(NSNumber *)bodyInformation deviceStatus:(NSNumber *)deviceStatus driverBraking:(NSNumber *)driverBraking wiperStatus:(NSNumber *)wiperStatus headLampStatus:(NSNumber *)headLampStatus engineTorque:(NSNumber *)engineTorque accPedalPosition:(NSNumber *)accPedalPosition steeringWheelAngle:(NSNumber *)steeringWheelAngle correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLSubscribeVehicleData's initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus: instead"); - -+ (SDLUpdateTurnList *)buildUpdateTurnListWithTurnList:(NSMutableArray *)turnList softButtons:(NSMutableArray *)softButtons correlationID:(NSNumber *)correlationID __deprecated_msg("use SDLUpdateTurnList initWithTurnList:softButtons: instead"); -@end diff --git a/SmartDeviceLink/SDLRPCRequestFactory.m b/SmartDeviceLink/SDLRPCRequestFactory.m deleted file mode 100644 index 7f0939bc3..000000000 --- a/SmartDeviceLink/SDLRPCRequestFactory.m +++ /dev/null @@ -1,754 +0,0 @@ -// SDLRPCRequestFactory.m -// - -#import "SDLRPCRequestFactory.h" -#import -#import -#import - -#import "SDLAddCommand.h" -#import "SDLAddSubMenu.h" -#import "SDLAlert.h" -#import "SDLAlertManeuver.h" -#import "SDLAppHMIType.h" -#import "SDLAppInfo.h" -#import "SDLChangeRegistration.h" -#import "SDLCreateInteractionChoiceSet.h" -#import "SDLDebugTool.h" -#import "SDLDeleteCommand.h" -#import "SDLDeleteFile.h" -#import "SDLDeleteInteractionChoiceSet.h" -#import "SDLDeleteSubMenu.h" -#import "SDLDeviceInfo.h" -#import "SDLDialNumber.h" -#import "SDLEndAudioPassThru.h" -#import "SDLFileType.h" -#import "SDLGetDTCs.h" -#import "SDLGetVehicleData.h" -#import "SDLImage.h" -#import "SDLInteractionMode.h" -#import "SDLListFiles.h" -#import "SDLMenuParams.h" -#import "SDLPerformAudioPassThru.h" -#import "SDLPerformInteraction.h" -#import "SDLPutFile.h" -#import "SDLReadDID.h" -#import "SDLRegisterAppInterface.h" -#import "SDLResetGlobalProperties.h" -#import "SDLScrollableMessage.h" -#import "SDLSendLocation.h" -#import "SDLSetAppIcon.h" -#import "SDLSetDisplayLayout.h" -#import "SDLSetGlobalProperties.h" -#import "SDLSetMediaClockTimer.h" -#import "SDLShow.h" -#import "SDLShowConstantTBT.h" -#import "SDLSlider.h" -#import "SDLSoftButton.h" -#import "SDLSpeak.h" -#import "SDLSpeechCapabilities.h" -#import "SDLStartTime.h" -#import "SDLSubscribeButton.h" -#import "SDLSubscribeVehicleData.h" -#import "SDLSyncMsgVersion.h" -#import "SDLTTSChunk.h" -#import "SDLTTSChunkFactory.h" -#import "SDLUnregisterAppInterface.h" -#import "SDLUnsubscribeButton.h" -#import "SDLUnsubscribeVehicleData.h" -#import "SDLUpdateTurnList.h" - -static NSString *const SDLBundleShortVersionStringKey = @"CFBundleShortVersionString"; - -@implementation SDLRPCRequestFactory - -//***** AddCommand ***** -+ (SDLAddCommand *)buildAddCommandWithID:(NSNumber *)cmdID menuName:(NSString *)menuName parentID:(NSNumber *)parentID position:(NSNumber *)position vrCommands:(NSArray *)vrCommands iconValue:(NSString *)iconValue iconType:(SDLImageType *)iconType correlationID:(NSNumber *)correlationID { - SDLAddCommand *msg = [[SDLAddCommand alloc] init]; - - msg.cmdID = cmdID; - - if (menuName != nil || parentID != nil || position != nil) { - SDLMenuParams *menuParams = [[SDLMenuParams alloc] init]; - menuParams.menuName = menuName; - menuParams.parentID = parentID; - menuParams.position = position; - msg.menuParams = menuParams; - } - msg.vrCommands = [vrCommands mutableCopy]; - - if (iconValue != nil || iconType != nil) { - SDLImage *icon = [[SDLImage alloc] init]; - icon.value = iconValue; - icon.imageType = iconType; - msg.cmdIcon = icon; - } - - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLAddCommand *)buildAddCommandWithID:(NSNumber *)cmdID menuName:(NSString *)menuName parentID:(NSNumber *)parentID position:(NSNumber *)position vrCommands:(NSArray *)vrCommands iconValue:(NSString *)iconValue iconType:(SDLImageType *)iconType handler:(SDLRPCNotificationHandler)handler { - SDLAddCommand *msg = [[SDLAddCommand alloc] initWithHandler:handler]; - - msg.cmdID = cmdID; - - if (menuName != nil || parentID != nil || position != nil) { - SDLMenuParams *menuParams = [[SDLMenuParams alloc] init]; - menuParams.menuName = menuName; - menuParams.parentID = parentID; - menuParams.position = position; - msg.menuParams = menuParams; - } - msg.vrCommands = [vrCommands mutableCopy]; - - if (iconValue != nil || iconType != nil) { - SDLImage *icon = [[SDLImage alloc] init]; - icon.value = iconValue; - icon.imageType = iconType; - msg.cmdIcon = icon; - } - - return msg; -} - -+ (SDLAddCommand *)buildAddCommandWithID:(NSNumber *)cmdID menuName:(NSString *)menuName vrCommands:(NSArray *)vrCommands correlationID:(NSNumber *)correlationID { - return [SDLRPCRequestFactory buildAddCommandWithID:cmdID menuName:menuName parentID:nil position:nil vrCommands:vrCommands iconValue:nil iconType:nil correlationID:correlationID]; -} - -+ (SDLAddCommand *)buildAddCommandWithID:(NSNumber *)cmdID menuName:(NSString *)menuName vrCommands:(NSArray *)vrCommands handler:(SDLRPCNotificationHandler)handler { - return [SDLRPCRequestFactory buildAddCommandWithID:cmdID menuName:menuName parentID:nil position:nil vrCommands:vrCommands iconValue:nil iconType:nil handler:handler]; -} - -+ (SDLAddCommand *)buildAddCommandWithID:(NSNumber *)cmdID vrCommands:(NSArray *)vrCommands correlationID:(NSNumber *)correlationID { - return [SDLRPCRequestFactory buildAddCommandWithID:cmdID menuName:nil vrCommands:vrCommands correlationID:correlationID]; -} - -+ (SDLAddCommand *)buildAddCommandWithID:(NSNumber *)cmdID vrCommands:(NSArray *)vrCommands handler:(SDLRPCNotificationHandler)handler { - return [SDLRPCRequestFactory buildAddCommandWithID:cmdID menuName:nil vrCommands:vrCommands handler:handler]; -} -//***** - - -//***** AddSubMenu ***** -+ (SDLAddSubMenu *)buildAddSubMenuWithID:(NSNumber *)menuID menuName:(NSString *)menuName position:(NSNumber *)position correlationID:(NSNumber *)correlationID { - SDLAddSubMenu *msg = [[SDLAddSubMenu alloc] init]; - msg.correlationID = correlationID; - msg.menuID = menuID; - msg.menuName = menuName; - msg.position = position; - return msg; -} - -+ (SDLAddSubMenu *)buildAddSubMenuWithID:(NSNumber *)menuID menuName:(NSString *)menuName correlationID:(NSNumber *)correlationID { - return [SDLRPCRequestFactory buildAddSubMenuWithID:menuID menuName:menuName position:nil correlationID:correlationID]; -} -//***** - - -//***** Alert ***** -+ (SDLAlert *)buildAlertWithTTS:(NSString *)ttsText alertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 alertText3:(NSString *)alertText3 playTone:(NSNumber *)playTone duration:(NSNumber *)duration correlationID:(NSNumber *)correlationID { - SDLTTSChunk *simpleChunk = [[SDLTTSChunk alloc] init]; - simpleChunk.text = ttsText; - simpleChunk.type = SDLSpeechCapabilities.TEXT; - NSArray *ttsChunks = [NSArray arrayWithObject:simpleChunk]; - - return [SDLRPCRequestFactory buildAlertWithTTSChunks:ttsChunks alertText1:alertText1 alertText2:alertText2 alertText3:alertText3 playTone:playTone duration:duration softButtons:nil correlationID:correlationID]; -} - -+ (SDLAlert *)buildAlertWithTTS:(NSString *)ttsText alertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 playTone:(NSNumber *)playTone duration:(NSNumber *)duration correlationID:(NSNumber *)correlationID { - return [SDLRPCRequestFactory buildAlertWithTTS:ttsText alertText1:alertText1 alertText2:alertText2 alertText3:nil playTone:playTone duration:duration correlationID:correlationID]; -} - -+ (SDLAlert *)buildAlertWithTTS:(NSString *)ttsText playTone:(NSNumber *)playTone correlationID:(NSNumber *)correlationID { - return [SDLRPCRequestFactory buildAlertWithTTS:ttsText alertText1:nil alertText2:nil alertText3:nil playTone:playTone duration:nil correlationID:correlationID]; -} - -//*** -+ (SDLAlert *)buildAlertWithTTSChunks:(NSArray *)ttsChunks alertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 alertText3:(NSString *)alertText3 playTone:(NSNumber *)playTone duration:(NSNumber *)duration softButtons:(NSArray *)softButtons correlationID:(NSNumber *)correlationID { - SDLAlert *msg = [[SDLAlert alloc] init]; - msg.correlationID = correlationID; - msg.alertText1 = alertText1; - msg.alertText2 = alertText2; - msg.alertText3 = alertText3; - msg.ttsChunks = [ttsChunks mutableCopy]; - msg.playTone = playTone; - msg.duration = duration; - msg.softButtons = [softButtons mutableCopy]; - return msg; -} - -+ (SDLAlert *)buildAlertWithTTSChunks:(NSArray *)ttsChunks playTone:(NSNumber *)playTone correlationID:(NSNumber *)correlationID { - return [SDLRPCRequestFactory buildAlertWithTTSChunks:ttsChunks alertText1:nil alertText2:nil alertText3:nil playTone:playTone duration:nil softButtons:nil correlationID:correlationID]; -} - -//*** -+ (SDLAlert *)buildAlertWithAlertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 alertText3:(NSString *)alertText3 duration:(NSNumber *)duration softButtons:(NSMutableArray *)softButtons correlationID:(NSNumber *)correlationID { - return [SDLRPCRequestFactory buildAlertWithTTSChunks:nil alertText1:alertText1 alertText2:alertText2 alertText3:alertText3 playTone:nil duration:duration softButtons:softButtons correlationID:correlationID]; -} - -+ (SDLAlert *)buildAlertWithAlertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 alertText3:(NSString *)alertText3 duration:(NSNumber *)duration correlationID:(NSNumber *)correlationID { - return [SDLRPCRequestFactory buildAlertWithTTSChunks:nil alertText1:alertText1 alertText2:alertText2 alertText3:alertText3 playTone:nil duration:duration softButtons:nil correlationID:correlationID]; -} - -+ (SDLAlert *)buildAlertWithAlertText1:(NSString *)alertText1 alertText2:(NSString *)alertText2 duration:(NSNumber *)duration correlationID:(NSNumber *)correlationID { - return [SDLRPCRequestFactory buildAlertWithTTSChunks:nil alertText1:alertText1 alertText2:alertText2 alertText3:nil playTone:nil duration:duration softButtons:nil correlationID:correlationID]; -} -//***** - - -+ (SDLAlertManeuver *)buildAlertManeuverwithTTSchunks:(NSMutableArray *)ttsChunks softButtons:(NSMutableArray *)softButtons correlationID:(NSNumber *)correlationID { - SDLAlertManeuver *msg = [[SDLAlertManeuver alloc] init]; - msg.ttsChunks = ttsChunks; - msg.softButtons = softButtons; - msg.correlationID = correlationID; - return msg; -} - -+ (SDLChangeRegistration *)buildChangeRegistrationWithLanguage:(SDLLanguage *)language hmiDisplayLanguage:(SDLLanguage *)hmiDisplayLanguage correlationID:(NSNumber *)correlationID { - SDLChangeRegistration *msg = [[SDLChangeRegistration alloc] init]; - msg.language = language; - msg.hmiDisplayLanguage = hmiDisplayLanguage; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLCreateInteractionChoiceSet *)buildCreateInteractionChoiceSetWithID:(NSNumber *)interactionChoiceSetID choiceSet:(NSArray *)choices correlationID:(NSNumber *)correlationID { - SDLCreateInteractionChoiceSet *msg = [[SDLCreateInteractionChoiceSet alloc] init]; - msg.interactionChoiceSetID = interactionChoiceSetID; - msg.choiceSet = [choices mutableCopy]; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLDeleteCommand *)buildDeleteCommandWithID:(NSNumber *)cmdID correlationID:(NSNumber *)correlationID { - SDLDeleteCommand *msg = [[SDLDeleteCommand alloc] init]; - msg.cmdID = cmdID; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLDeleteFile *)buildDeleteFileWithName:(NSString *)syncFileName correlationID:(NSNumber *)correlationID { - SDLDeleteFile *msg = [[SDLDeleteFile alloc] init]; - msg.syncFileName = syncFileName; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLDialNumber *)buildDialNumberWithNumber:(NSString *)phoneNumber { - SDLDialNumber *msg = [[SDLDialNumber alloc] init]; - msg.number = phoneNumber; - - return msg; -} - -+ (SDLListFiles *)buildListFilesWithCorrelationID:(NSNumber *)correlationID { - SDLListFiles *msg = [[SDLListFiles alloc] init]; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLDeleteInteractionChoiceSet *)buildDeleteInteractionChoiceSetWithID:(NSNumber *)interactionChoiceSetID correlationID:(NSNumber *)correlationID { - SDLDeleteInteractionChoiceSet *msg = [[SDLDeleteInteractionChoiceSet alloc] init]; - msg.interactionChoiceSetID = interactionChoiceSetID; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLDeleteSubMenu *)buildDeleteSubMenuWithID:(NSNumber *)menuID correlationID:(NSNumber *)correlationID { - SDLDeleteSubMenu *msg = [[SDLDeleteSubMenu alloc] init]; - msg.menuID = menuID; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLEndAudioPassThru *)buildEndAudioPassThruWithCorrelationID:(NSNumber *)correlationID { - SDLEndAudioPassThru *msg = [[SDLEndAudioPassThru alloc] init]; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLGetDTCs *)buildGetDTCsWithECUName:(NSNumber *)ecuName correlationID:(NSNumber *)correlationID { - SDLGetDTCs *msg = [[SDLGetDTCs alloc] init]; - msg.ecuName = ecuName; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLGetVehicleData *)buildGetVehicleDataWithGPS:(NSNumber *)gps speed:(NSNumber *)speed rpm:(NSNumber *)rpm fuelLevel:(NSNumber *)fuelLevel fuelLevelState:(NSNumber *)fuelLevelState instantFuelConsumption:(NSNumber *)instantFuelConsumption externalTemperature:(NSNumber *)externalTemperature vin:(NSNumber *)vin prndl:(NSNumber *)prndl tirePressure:(NSNumber *)tirePressure odometer:(NSNumber *)odometer beltStatus:(NSNumber *)beltStatus bodyInformation:(NSNumber *)bodyInformation deviceStatus:(NSNumber *)deviceStatus driverBraking:(NSNumber *)driverBraking wiperStatus:(NSNumber *)wiperStatus headLampStatus:(NSNumber *)headLampStatus engineTorque:(NSNumber *)engineTorque accPedalPosition:(NSNumber *)accPedalPosition steeringWheelAngle:(NSNumber *)steeringWheelAngle correlationID:(NSNumber *)correlationID { - SDLGetVehicleData *msg = [[SDLGetVehicleData alloc] init]; - msg.gps = gps; - msg.speed = speed; - msg.rpm = rpm; - msg.fuelLevel = fuelLevel; - msg.fuelLevel_State = fuelLevelState; - msg.instantFuelConsumption = instantFuelConsumption; - msg.externalTemperature = externalTemperature; - msg.vin = vin; - msg.prndl = prndl; - msg.tirePressure = tirePressure; - msg.odometer = odometer; - msg.beltStatus = beltStatus; - msg.bodyInformation = bodyInformation; - msg.deviceStatus = deviceStatus; - msg.driverBraking = driverBraking; - msg.wiperStatus = wiperStatus; - msg.headLampStatus = headLampStatus; - msg.engineTorque = engineTorque; - msg.accPedalPosition = accPedalPosition; - msg.steeringWheelAngle = steeringWheelAngle; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLPerformAudioPassThru *)buildPerformAudioPassThruWithInitialPrompt:(NSString *)initialPrompt audioPassThruDisplayText1:(NSString *)audioPassThruDisplayText1 audioPassThruDisplayText2:(NSString *)audioPassThruDisplayText2 samplingRate:(SDLSamplingRate *)samplingRate maxDuration:(NSNumber *)maxDuration bitsPerSample:(SDLBitsPerSample *)bitsPerSample audioType:(SDLAudioType *)audioType muteAudio:(NSNumber *)muteAudio correlationID:(NSNumber *)correlationID { - NSArray *initialChunks = [SDLTTSChunk textChunksFromString:initialPrompt]; - - SDLPerformAudioPassThru *msg = [[SDLPerformAudioPassThru alloc] init]; - msg.initialPrompt = [initialChunks mutableCopy]; - msg.audioPassThruDisplayText1 = audioPassThruDisplayText1; - msg.audioPassThruDisplayText2 = audioPassThruDisplayText2; - msg.samplingRate = samplingRate; - msg.maxDuration = maxDuration; - msg.bitsPerSample = bitsPerSample; - msg.audioType = audioType; - msg.muteAudio = muteAudio; - msg.correlationID = correlationID; - - return msg; -} - - -//***** PerformInteraction ***** -+ (SDLPerformInteraction *)buildPerformInteractionWithInitialChunks:(NSArray *)initialChunks initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *)interactionChoiceSetIDList helpChunks:(NSArray *)helpChunks timeoutChunks:(NSArray *)timeoutChunks interactionMode:(SDLInteractionMode *)interactionMode timeout:(NSNumber *)timeout vrHelp:(NSArray *)vrHelp correlationID:(NSNumber *)correlationID { - SDLPerformInteraction *msg = [[SDLPerformInteraction alloc] init]; - msg.initialPrompt = [initialChunks mutableCopy]; - msg.initialText = initialText; - msg.interactionChoiceSetIDList = [interactionChoiceSetIDList mutableCopy]; - msg.helpPrompt = [helpChunks mutableCopy]; - msg.timeoutPrompt = [timeoutChunks mutableCopy]; - msg.interactionMode = interactionMode; - msg.timeout = timeout; - msg.vrHelp = [vrHelp mutableCopy]; - msg.correlationID = correlationID; - - return msg; -} - -//*** -+ (SDLPerformInteraction *)buildPerformInteractionWithInitialPrompt:(NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *)interactionChoiceSetIDList helpPrompt:(NSString *)helpPrompt timeoutPrompt:(NSString *)timeoutPrompt interactionMode:(SDLInteractionMode *)interactionMode timeout:(NSNumber *)timeout vrHelp:(NSArray *)vrHelp correlationID:(NSNumber *)correlationID { - NSArray *initialChunks = [SDLTTSChunk textChunksFromString:initialPrompt]; - NSArray *helpChunks = [SDLTTSChunk textChunksFromString:helpPrompt]; - NSArray *timeoutChunks = [SDLTTSChunk textChunksFromString:timeoutPrompt]; - - return [SDLRPCRequestFactory buildPerformInteractionWithInitialChunks:initialChunks initialText:initialText interactionChoiceSetIDList:interactionChoiceSetIDList helpChunks:helpChunks timeoutChunks:timeoutChunks interactionMode:interactionMode timeout:timeout vrHelp:vrHelp correlationID:correlationID]; -} - -+ (SDLPerformInteraction *)buildPerformInteractionWithInitialPrompt:(NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(NSNumber *)interactionChoiceSetID vrHelp:(NSArray *)vrHelp correlationID:(NSNumber *)correlationID { - NSArray *interactionChoiceSetIDList = [NSArray arrayWithObject:interactionChoiceSetID]; - NSArray *initialChunks = [SDLTTSChunk textChunksFromString:initialPrompt]; - - return [SDLRPCRequestFactory buildPerformInteractionWithInitialChunks:initialChunks initialText:initialText interactionChoiceSetIDList:interactionChoiceSetIDList helpChunks:nil timeoutChunks:nil interactionMode:SDLInteractionMode.BOTH timeout:nil vrHelp:vrHelp correlationID:correlationID]; -} - -+ (SDLPerformInteraction *)buildPerformInteractionWithInitialPrompt:(NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetIDList:(NSArray *)interactionChoiceSetIDList helpPrompt:(NSString *)helpPrompt timeoutPrompt:(NSString *)timeoutPrompt interactionMode:(SDLInteractionMode *)interactionMode timeout:(NSNumber *)timeout correlationID:(NSNumber *)correlationID { - return [SDLRPCRequestFactory buildPerformInteractionWithInitialPrompt:initialPrompt initialText:initialText interactionChoiceSetIDList:interactionChoiceSetIDList helpPrompt:helpPrompt timeoutPrompt:timeoutPrompt interactionMode:interactionMode timeout:timeout vrHelp:nil correlationID:(NSNumber *)correlationID]; -} - -+ (SDLPerformInteraction *)buildPerformInteractionWithInitialPrompt:(NSString *)initialPrompt initialText:(NSString *)initialText interactionChoiceSetID:(NSNumber *)interactionChoiceSetID correlationID:(NSNumber *)correlationID { - return [SDLRPCRequestFactory buildPerformInteractionWithInitialPrompt:initialPrompt initialText:initialText interactionChoiceSetID:interactionChoiceSetID vrHelp:nil correlationID:correlationID]; -} -//***** - -+ (SDLPutFile *)buildPutFileWithFileName:(NSString *)fileName fileType:(SDLFileType *)fileType persistentFile:(NSNumber *)persistentFile correlationId:(NSNumber *)correlationID { - SDLPutFile *msg = [[SDLPutFile alloc] init]; - msg.syncFileName = fileName; - - msg.fileType = fileType; - msg.persistentFile = persistentFile; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLPutFile *)buildPutFileWithFileName:(NSString *)syncFileName fileType:(SDLFileType *)fileType persisistentFile:(NSNumber *)persistentFile correlationID:(NSNumber *)correlationID { - return [self buildPutFileWithFileName:syncFileName fileType:fileType persistentFile:persistentFile correlationId:correlationID]; -} - -+ (SDLReadDID *)buildReadDIDWithECUName:(NSNumber *)ecuName didLocation:(NSArray *)didLocation correlationID:(NSNumber *)correlationID { - SDLReadDID *msg = [[SDLReadDID alloc] init]; - msg.ecuName = ecuName; - msg.didLocation = [didLocation mutableCopy]; - msg.correlationID = correlationID; - - return msg; -} - -//***** RegisterAppInterface ***** -+ (SDLRegisterAppInterface *)buildRegisterAppInterfaceWithAppName:(NSString *)appName ttsName:(NSArray *)ttsName vrSynonyms:(NSArray *)vrSynonyms isMediaApp:(NSNumber *)isMediaApp languageDesired:(SDLLanguage *)languageDesired hmiDisplayLanguageDesired:(SDLLanguage *)hmiDisplayLanguageDesired appID:(NSString *)appID { - SDLRegisterAppInterface *msg = [[SDLRegisterAppInterface alloc] init]; - SDLSyncMsgVersion *version = [[SDLSyncMsgVersion alloc] init]; - version.majorVersion = [NSNumber numberWithInt:1]; - version.minorVersion = [NSNumber numberWithInt:0]; - msg.syncMsgVersion = version; - msg.appName = appName; - msg.ttsName = [ttsName mutableCopy]; - msg.ngnMediaScreenAppName = appName; - msg.vrSynonyms = [vrSynonyms mutableCopy]; - msg.isMediaApplication = isMediaApp; - msg.languageDesired = languageDesired; - msg.hmiDisplayLanguageDesired = hmiDisplayLanguageDesired; - msg.appID = appID; - msg.deviceInfo = [self sdl_buildDeviceInfo]; - msg.correlationID = [NSNumber numberWithInt:1]; - SDLAppInfo *appInfo = [self sdl_buildAppInfo]; - appInfo.appDisplayName = appName; - msg.appInfo = appInfo; - return msg; -} - -+ (SDLDeviceInfo *)sdl_buildDeviceInfo { - SDLDeviceInfo *deviceInfo = [[SDLDeviceInfo alloc] init]; - deviceInfo.hardware = [UIDevice currentDevice].model; - deviceInfo.os = [UIDevice currentDevice].systemName; - deviceInfo.osVersion = [UIDevice currentDevice].systemVersion; - CTTelephonyNetworkInfo *netinfo = [[CTTelephonyNetworkInfo alloc] init]; - CTCarrier *carrier = netinfo.subscriberCellularProvider; - NSString *carrierName = carrier.carrierName; - deviceInfo.carrier = carrierName; - - return deviceInfo; -} - -+ (SDLAppInfo *)sdl_buildAppInfo { - SDLAppInfo *appInfo = [[SDLAppInfo alloc] init]; - NSBundle *mainBundle = [NSBundle mainBundle]; - NSDictionary *bundleDictionary = mainBundle.infoDictionary; - appInfo.appVersion = bundleDictionary[SDLBundleShortVersionStringKey]; - appInfo.appBundleID = mainBundle.bundleIdentifier; - return appInfo; -} - -+ (SDLRegisterAppInterface *)buildRegisterAppInterfaceWithAppName:(NSString *)appName isMediaApp:(NSNumber *)isMediaApp languageDesired:(SDLLanguage *)languageDesired appID:(NSString *)appID { - NSMutableArray *syns = [NSMutableArray arrayWithObject:appName]; - return [SDLRPCRequestFactory buildRegisterAppInterfaceWithAppName:appName ttsName:nil vrSynonyms:syns isMediaApp:isMediaApp languageDesired:languageDesired hmiDisplayLanguageDesired:languageDesired appID:appID]; -} - -+ (SDLRegisterAppInterface *)buildRegisterAppInterfaceWithAppName:(NSString *)appName languageDesired:(SDLLanguage *)languageDesired appID:(NSString *)appID { - return [SDLRPCRequestFactory buildRegisterAppInterfaceWithAppName:appName isMediaApp:@NO languageDesired:languageDesired appID:appID]; -} -//***** - - -+ (SDLResetGlobalProperties *)buildResetGlobalPropertiesWithProperties:(NSArray *)properties correlationID:(NSNumber *)correlationID { - SDLResetGlobalProperties *msg = [[SDLResetGlobalProperties alloc] init]; - msg.properties = [properties mutableCopy]; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLScrollableMessage *)buildScrollableMessage:(NSString *)scrollableMessageBody timeout:(NSNumber *)timeout softButtons:(NSArray *)softButtons correlationID:(NSNumber *)correlationID { - SDLScrollableMessage *msg = [[SDLScrollableMessage alloc] init]; - msg.scrollableMessageBody = scrollableMessageBody; - msg.timeout = timeout; - msg.softButtons = [softButtons mutableCopy]; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLSendLocation *)buildSendLocationWithLongitude:(NSNumber *)longitude latitude:(NSNumber *)latitude locationName:(NSString *)locationName locationDescription:(NSString *)locationDescription address:(NSArray *)address phoneNumber:(NSString *)phoneNumber image:(SDLImage *)image { - SDLSendLocation *msg = [[SDLSendLocation alloc] init]; - msg.longitudeDegrees = longitude; - msg.latitudeDegrees = latitude; - msg.locationName = locationName; - msg.locationDescription = locationDescription; - msg.addressLines = address; - msg.phoneNumber = phoneNumber; - msg.locationImage = image; - - return msg; -} - -+ (SDLSetAppIcon *)buildSetAppIconWithFileName:(NSString *)syncFileName correlationID:(NSNumber *)correlationID { - SDLSetAppIcon *msg = [[SDLSetAppIcon alloc] init]; - msg.syncFileName = syncFileName; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLSetDisplayLayout *)buildSetDisplayLayout:(NSString *)displayLayout correlationID:(NSNumber *)correlationID { - SDLSetDisplayLayout *msg = [[SDLSetDisplayLayout alloc] init]; - msg.displayLayout = displayLayout; - msg.correlationID = correlationID; - - return msg; -} - - -//***** SetGlobalProperties ***** -+ (SDLSetGlobalProperties *)buildSetGlobalPropertiesWithHelpText:(NSString *)helpText timeoutText:(NSString *)timeoutText vrHelpTitle:(NSString *)vrHelpTitle vrHelp:(NSArray *)vrHelp correlationID:(NSNumber *)correlationID { - SDLSetGlobalProperties *msg = [[SDLSetGlobalProperties alloc] init]; - msg.helpPrompt = [SDLTTSChunk textChunksFromString:helpText]; - msg.timeoutPrompt = [SDLTTSChunk textChunksFromString:timeoutText]; - msg.vrHelpTitle = vrHelpTitle; - msg.vrHelp = [vrHelp mutableCopy]; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLSetGlobalProperties *)buildSetGlobalPropertiesWithHelpText:(NSString *)helpText timeoutText:(NSString *)timeoutText correlationID:(NSNumber *)correlationID { - SDLSetGlobalProperties *msg = [[SDLSetGlobalProperties alloc] init]; - msg.helpPrompt = [SDLTTSChunk textChunksFromString:helpText]; - msg.timeoutPrompt = [SDLTTSChunk textChunksFromString:timeoutText]; - msg.correlationID = correlationID; - - return msg; -} -//***** - - -//***** SetMediaClockTimer ***** -+ (SDLSetMediaClockTimer *)buildSetMediaClockTimerWithHours:(NSNumber *)hours minutes:(NSNumber *)minutes seconds:(NSNumber *)seconds updateMode:(SDLUpdateMode *)updateMode correlationID:(NSNumber *)correlationID { - SDLSetMediaClockTimer *msg = [[SDLSetMediaClockTimer alloc] init]; - SDLStartTime *startTime = [[SDLStartTime alloc] init]; - startTime.hours = hours; - startTime.minutes = minutes; - startTime.seconds = seconds; - msg.startTime = startTime; - msg.updateMode = updateMode; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLSetMediaClockTimer *)buildSetMediaClockTimerWithUpdateMode:(SDLUpdateMode *)updateMode correlationID:(NSNumber *)correlationID { - SDLSetMediaClockTimer *msg = [[SDLSetMediaClockTimer alloc] init]; - msg.updateMode = updateMode; - msg.correlationID = correlationID; - - return msg; -} -//***** - - -//***** Show ***** -+ (SDLShow *)buildShowWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack alignment:(SDLTextAlignment *)textAlignment graphic:(SDLImage *)graphic softButtons:(NSArray *)softButtons customPresets:(NSArray *)customPresets correlationID:(NSNumber *)correlationID { - SDLShow *msg = [[SDLShow alloc] init]; - msg.correlationID = correlationID; - msg.mainField1 = mainField1; - msg.mainField2 = mainField2; - msg.mainField3 = mainField3; - msg.mainField4 = mainField4; - msg.statusBar = statusBar; - msg.mediaClock = mediaClock; - msg.mediaTrack = mediaTrack; - msg.alignment = textAlignment; - msg.graphic = graphic; - msg.softButtons = [softButtons mutableCopy]; - msg.customPresets = [customPresets mutableCopy]; - - return msg; -} - -+ (SDLShow *)buildShowWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack alignment:(SDLTextAlignment *)textAlignment correlationID:(NSNumber *)correlationID { - SDLShow *msg = [[SDLShow alloc] init]; - msg.correlationID = correlationID; - msg.mainField1 = mainField1; - msg.mainField2 = mainField2; - msg.statusBar = statusBar; - msg.mediaClock = mediaClock; - msg.mediaTrack = mediaTrack; - msg.alignment = textAlignment; - - return msg; -} - -+ (SDLShow *)buildShowWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 alignment:(SDLTextAlignment *)alignment correlationID:(NSNumber *)correlationID { - return [SDLRPCRequestFactory buildShowWithMainField1:mainField1 mainField2:mainField2 statusBar:nil mediaClock:nil mediaTrack:nil alignment:alignment correlationID:correlationID]; -} - -+ (SDLShowConstantTBT *)buildShowConstantTBTWithString:(NSString *)navigationText1 navigationText2:(NSString *)navigationText2 eta:(NSString *)eta timeToDestination:(NSString *)timeToDestination totalDistance:(NSString *)totalDistance turnIcon:(SDLImage *)turnIcon nextTurnIcon:(SDLImage *)nextTurnIcon distanceToManeuver:(NSNumber *)distanceToManeuver distanceToManeuverScale:(NSNumber *)distanceToManeuverScale maneuverComplete:(NSNumber *)maneuverComplete softButtons:(NSMutableArray *)softButtons correlationID:(NSNumber *)correlationID { - SDLShowConstantTBT *msg = [[SDLShowConstantTBT alloc] init]; - msg.navigationText1 = navigationText1; - msg.navigationText2 = navigationText2; - msg.eta = eta; - msg.timeToDestination = timeToDestination; - msg.totalDistance = totalDistance; - msg.turnIcon = turnIcon; - msg.nextTurnIcon = nextTurnIcon; - msg.distanceToManeuver = distanceToManeuver; - msg.distanceToManeuverScale = distanceToManeuverScale; - msg.maneuverComplete = maneuverComplete; - msg.softButtons = [softButtons mutableCopy]; - msg.correlationID = correlationID; - - return msg; -} -//***** - - -//***** Slider ***** -+ (SDLSlider *)buildSliderDynamicFooterWithNumTicks:(NSNumber *)numTicks position:(NSNumber *)position sliderHeader:(NSString *)sliderHeader sliderFooter:(NSArray *)sliderFooter timeout:(NSNumber *)timeout correlationID:(NSNumber *)correlationID { - SDLSlider *msg = [[SDLSlider alloc] init]; - msg.correlationID = correlationID; - msg.numTicks = numTicks; - msg.position = position; - msg.sliderHeader = sliderHeader; - msg.sliderFooter = [sliderFooter mutableCopy]; - msg.timeout = timeout; - - return msg; -} - -+ (SDLSlider *)buildSliderStaticFooterWithNumTicks:(NSNumber *)numTicks position:(NSNumber *)position sliderHeader:(NSString *)sliderHeader sliderFooter:(NSString *)sliderFooter timeout:(NSNumber *)timeout correlationID:(NSNumber *)correlationID { - NSArray *sliderFooters = [NSArray arrayWithObject:sliderFooter]; - - // Populates array with the same footer value for each position - for (UInt32 i = 1; i < numTicks.unsignedIntegerValue; i++) { - sliderFooters = [sliderFooters arrayByAddingObject:sliderFooter]; - } - - return [SDLRPCRequestFactory buildSliderDynamicFooterWithNumTicks:numTicks position:position sliderHeader:sliderHeader sliderFooter:sliderFooters timeout:timeout correlationID:correlationID]; -} -//***** - -+ (SDLSoftButton *)buildSoftButtonWithType:(SDLSoftButtonType *)type text:(NSString *)text image:(SDLImage *)image highlighted:(BOOL)highlighted buttonID:(UInt16)buttonID systemAction:(SDLSystemAction *)systemAction handler:(SDLRPCNotificationHandler)handler { - SDLSoftButton *button = [[SDLSoftButton alloc] initWithHandler:handler]; - button.type = type; - button.text = text; - button.image = image; - button.isHighlighted = @(highlighted); - button.softButtonID = @(buttonID); - button.systemAction = systemAction; - - return button; -} - - -//***** Speak ***** -+ (SDLSpeak *)buildSpeakWithTTSChunks:(NSArray *)ttsChunks correlationID:(NSNumber *)correlationID { - SDLSpeak *msg = [[SDLSpeak alloc] init]; - msg.correlationID = correlationID; - msg.ttsChunks = [ttsChunks mutableCopy]; - - return msg; -} - -//*** -+ (SDLSpeak *)buildSpeakWithTTS:(NSString *)ttsText correlationID:(NSNumber *)correlationID { - SDLTTSChunk *simpleChunk = [[SDLTTSChunk alloc] init]; - simpleChunk.text = ttsText; - simpleChunk.type = SDLSpeechCapabilities.TEXT; - NSArray *ttsChunks = [NSMutableArray arrayWithObject:simpleChunk]; - - return [SDLRPCRequestFactory buildSpeakWithTTSChunks:ttsChunks correlationID:correlationID]; -} -//***** - -+ (SDLSubscribeButton *)buildSubscribeButtonWithName:(SDLButtonName *)buttonName correlationID:(NSNumber *)correlationID { - SDLSubscribeButton *msg = [[SDLSubscribeButton alloc] init]; - msg.buttonName = buttonName; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLSubscribeButton *)buildSubscribeButtonWithName:(SDLButtonName *)buttonName handler:(SDLRPCNotificationHandler)handler { - SDLSubscribeButton *msg = [[SDLSubscribeButton alloc] initWithHandler:handler]; - msg.buttonName = buttonName; - - return msg; -} - -+ (SDLSubscribeVehicleData *)buildSubscribeVehicleDataWithGPS:(NSNumber *)gps speed:(NSNumber *)speed rpm:(NSNumber *)rpm fuelLevel:(NSNumber *)fuelLevel fuelLevelState:(NSNumber *)fuelLevelState instantFuelConsumption:(NSNumber *)instantFuelConsumption externalTemperature:(NSNumber *)externalTemperature prndl:(NSNumber *)prndl tirePressure:(NSNumber *)tirePressure odometer:(NSNumber *)odometer beltStatus:(NSNumber *)beltStatus bodyInformation:(NSNumber *)bodyInformation deviceStatus:(NSNumber *)deviceStatus driverBraking:(NSNumber *)driverBraking wiperStatus:(NSNumber *)wiperStatus headLampStatus:(NSNumber *)headLampStatus engineTorque:(NSNumber *)engineTorque accPedalPosition:(NSNumber *)accPedalPosition steeringWheelAngle:(NSNumber *)steeringWheelAngle correlationID:(NSNumber *)correlationID { - SDLSubscribeVehicleData *msg = [[SDLSubscribeVehicleData alloc] init]; - msg.gps = gps; - msg.speed = speed; - msg.rpm = rpm; - msg.fuelLevel = fuelLevel; - msg.fuelLevel_State = fuelLevelState; - msg.instantFuelConsumption = instantFuelConsumption; - msg.externalTemperature = externalTemperature; - msg.prndl = prndl; - msg.tirePressure = tirePressure; - msg.odometer = odometer; - msg.beltStatus = beltStatus; - msg.bodyInformation = bodyInformation; - msg.deviceStatus = deviceStatus; - msg.driverBraking = driverBraking; - msg.wiperStatus = wiperStatus; - msg.headLampStatus = headLampStatus; - msg.engineTorque = engineTorque; - msg.accPedalPosition = accPedalPosition; - msg.steeringWheelAngle = steeringWheelAngle; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLUnregisterAppInterface *)buildUnregisterAppInterfaceWithCorrelationID:(NSNumber *)correlationID { - SDLUnregisterAppInterface *msg = [[SDLUnregisterAppInterface alloc] init]; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLUnsubscribeButton *)buildUnsubscribeButtonWithName:(SDLButtonName *)buttonName correlationID:(NSNumber *)correlationID { - SDLUnsubscribeButton *msg = [[SDLUnsubscribeButton alloc] init]; - msg.buttonName = buttonName; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLUnsubscribeVehicleData *)buildUnsubscribeVehicleDataWithGPS:(NSNumber *)gps speed:(NSNumber *)speed rpm:(NSNumber *)rpm fuelLevel:(NSNumber *)fuelLevel fuelLevelState:(NSNumber *)fuelLevelState instantFuelConsumption:(NSNumber *)instantFuelConsumption externalTemperature:(NSNumber *)externalTemperature prndl:(NSNumber *)prndl tirePressure:(NSNumber *)tirePressure odometer:(NSNumber *)odometer beltStatus:(NSNumber *)beltStatus bodyInformation:(NSNumber *)bodyInformation deviceStatus:(NSNumber *)deviceStatus driverBraking:(NSNumber *)driverBraking wiperStatus:(NSNumber *)wiperStatus headLampStatus:(NSNumber *)headLampStatus engineTorque:(NSNumber *)engineTorque accPedalPosition:(NSNumber *)accPedalPosition steeringWheelAngle:(NSNumber *)steeringWheelAngle correlationID:(NSNumber *)correlationID { - SDLUnsubscribeVehicleData *msg = [[SDLUnsubscribeVehicleData alloc] init]; - msg.gps = gps; - msg.speed = speed; - msg.rpm = rpm; - msg.fuelLevel = fuelLevel; - msg.fuelLevel_State = fuelLevelState; - msg.instantFuelConsumption = instantFuelConsumption; - msg.externalTemperature = externalTemperature; - msg.prndl = prndl; - msg.tirePressure = tirePressure; - msg.odometer = odometer; - msg.beltStatus = beltStatus; - msg.bodyInformation = bodyInformation; - msg.deviceStatus = deviceStatus; - msg.driverBraking = driverBraking; - msg.wiperStatus = wiperStatus; - msg.headLampStatus = headLampStatus; - msg.engineTorque = engineTorque; - msg.accPedalPosition = accPedalPosition; - msg.steeringWheelAngle = steeringWheelAngle; - msg.correlationID = correlationID; - - return msg; -} - -+ (SDLUpdateTurnList *)buildUpdateTurnListWithTurnList:(NSMutableArray *)turnList softButtons:(NSMutableArray *)softButtons correlationID:(NSNumber *)correlationID { - SDLUpdateTurnList *msg = [[SDLUpdateTurnList alloc] init]; - msg.turnList = [turnList mutableCopy]; - msg.softButtons = [softButtons mutableCopy]; - msg.correlationID = correlationID; - - return msg; -} - -@end diff --git a/SmartDeviceLink/SDLRPCResponse.h b/SmartDeviceLink/SDLRPCResponse.h index 57bd500f4..270217e4a 100644 --- a/SmartDeviceLink/SDLRPCResponse.h +++ b/SmartDeviceLink/SDLRPCResponse.h @@ -4,14 +4,17 @@ #import "SDLRPCMessage.h" -@class SDLResult; +#import "SDLResult.h" -@interface SDLRPCResponse : SDLRPCMessage { -} +NS_ASSUME_NONNULL_BEGIN -@property (strong) NSNumber *correlationID; -@property (strong) NSNumber *success; -@property (strong) SDLResult *resultCode; -@property (strong) NSString *info; +@interface SDLRPCResponse : SDLRPCMessage + +@property (strong, nonatomic) NSNumber *correlationID; +@property (strong, nonatomic) NSNumber *success; +@property (strong, nonatomic) SDLResult resultCode; +@property (nullable, strong, nonatomic) NSString *info; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRPCResponse.m b/SmartDeviceLink/SDLRPCResponse.m index 606781070..a7a839f54 100644 --- a/SmartDeviceLink/SDLRPCResponse.m +++ b/SmartDeviceLink/SDLRPCResponse.m @@ -4,9 +4,12 @@ #import "SDLRPCResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" #import "SDLResult.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLRPCResponse - (instancetype)initWithName:(NSString *)name { @@ -15,75 +18,56 @@ - (instancetype)initWithName:(NSString *)name { return nil; } - messageType = NAMES_response; - [store setObject:function forKey:messageType]; + messageType = SDLNameResponse; + [store sdl_setObject:function forName:messageType]; return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { +- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { self = [super initWithDictionary:dict]; if (!self) { return nil; } - messageType = NAMES_response; - [store setObject:function forKey:messageType]; - + messageType = SDLNameResponse; + [store sdl_setObject:function forName:messageType]; + return self; } -- (NSNumber *)correlationID { - return [function objectForKey:NAMES_correlationID]; +- (NSNumber *)correlationID { + return [function sdl_objectForName:SDLNameCorrelationId]; } -- (void)setCorrelationID:(NSNumber *)corrID { - if (corrID != nil) { - [function setObject:corrID forKey:NAMES_correlationID]; - } else { - [function removeObjectForKey:NAMES_correlationID]; - } +- (void)setCorrelationID:(NSNumber *)corrID { + [function sdl_setObject:corrID forName:SDLNameCorrelationId]; } -- (void)setSuccess:(NSNumber *)success { - if (success != nil) { - [parameters setObject:success forKey:NAMES_success]; - } else { - [parameters removeObjectForKey:NAMES_success]; - } +- (void)setSuccess:(NSNumber *)success { + [parameters sdl_setObject:success forName:SDLNameSuccess]; } -- (NSNumber *)success { - return [parameters objectForKey:NAMES_success]; +- (NSNumber *)success { + return [parameters sdl_objectForName:SDLNameSuccess]; } -- (void)setResultCode:(SDLResult *)resultCode { - if (resultCode != nil) { - [parameters setObject:resultCode forKey:NAMES_resultCode]; - } else { - [parameters removeObjectForKey:NAMES_resultCode]; - } +- (void)setResultCode:(SDLResult)resultCode { + [parameters sdl_setObject:resultCode forName:SDLNameResultCode]; } -- (SDLResult *)resultCode { - NSObject *obj = [parameters objectForKey:NAMES_resultCode]; - if (obj == nil || [obj isKindOfClass:SDLResult.class]) { - return (SDLResult *)obj; - } else { - return [SDLResult valueOf:(NSString *)obj]; - } +- (SDLResult)resultCode { + return [parameters sdl_objectForName:SDLNameResultCode]; } -- (void)setInfo:(NSString *)info { - if (info != nil) { - [parameters setObject:info forKey:NAMES_info]; - } else { - [parameters removeObjectForKey:NAMES_info]; - } +- (void)setInfo:(nullable NSString *)info { + [parameters sdl_setObject:info forName:SDLNameInfo]; } -- (NSString *)info { - return [parameters objectForKey:NAMES_info]; +- (nullable NSString *)info { + return [parameters sdl_objectForName:SDLNameInfo]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRPCResponseNotification.h b/SmartDeviceLink/SDLRPCResponseNotification.h index 118d1f532..42647897e 100644 --- a/SmartDeviceLink/SDLRPCResponseNotification.h +++ b/SmartDeviceLink/SDLRPCResponseNotification.h @@ -19,6 +19,20 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)initWithName:(NSString *)name object:(nullable id)object rpcResponse:(__kindof SDLRPCResponse *)response; +/** + * Returns whether or not the containing response is equal to a class, not including subclasses. + * + * @param aClass the class you are questioning + */ +- (BOOL)isResponseMemberOfClass:(Class)aClass; + +/** + * Returns whether or not the containing response is a kind of class, including subclasses. + * + * @param aClass the class you are questioning + */ +- (BOOL)isResponseKindOfClass:(Class)aClass; + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRPCResponseNotification.m b/SmartDeviceLink/SDLRPCResponseNotification.m index 6d4be548a..60e94cf8b 100644 --- a/SmartDeviceLink/SDLRPCResponseNotification.m +++ b/SmartDeviceLink/SDLRPCResponseNotification.m @@ -11,6 +11,7 @@ #import "SDLNotificationConstants.h" #import "SDLRPCResponse.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLRPCResponseNotification @@ -30,4 +31,16 @@ - (__kindof SDLRPCResponse *)response { return _userInfo[SDLNotificationUserInfoObject]; } +- (BOOL)isResponseMemberOfClass:(Class)aClass { + NSAssert([self.response isMemberOfClass:aClass], @"A notification was sent with an unanticipated object"); + return [self.response isMemberOfClass:aClass]; +} + +- (BOOL)isResponseKindOfClass:(Class)aClass { + NSAssert([self.response isKindOfClass:aClass], @"A notification was sent with an unanticipated object"); + return [self.response isKindOfClass:aClass]; +} + @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRPCStruct.h b/SmartDeviceLink/SDLRPCStruct.h index e0d0aacf4..224dfd30e 100644 --- a/SmartDeviceLink/SDLRPCStruct.h +++ b/SmartDeviceLink/SDLRPCStruct.h @@ -6,13 +6,17 @@ #import "NSNumber+NumberType.h" -@interface SDLRPCStruct : NSObject { - NSMutableDictionary *store; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLRPCStruct : NSObject { + NSMutableDictionary *store; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +- (instancetype)initWithDictionary:(NSDictionary *)dict; - (instancetype)init; -- (NSMutableDictionary *)serializeAsDictionary:(Byte)version; +- (NSDictionary *)serializeAsDictionary:(Byte)version; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRPCStruct.m b/SmartDeviceLink/SDLRPCStruct.m index cd0f4d481..b6a588823 100644 --- a/SmartDeviceLink/SDLRPCStruct.m +++ b/SmartDeviceLink/SDLRPCStruct.m @@ -7,14 +7,16 @@ #import "SDLEnum.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLRPCStruct -- (id)initWithDictionary:(NSMutableDictionary *)dict { +- (id)initWithDictionary:(NSDictionary *)dict { if (self = [super init]) { if (dict != nil) { - store = dict; + store = [dict mutableCopy]; } else { - store = [[NSMutableDictionary alloc] init]; + store = [NSMutableDictionary dictionary]; } } return self; @@ -22,39 +24,50 @@ - (id)initWithDictionary:(NSMutableDictionary *)dict { - (id)init { if (self = [super init]) { - store = [[NSMutableDictionary alloc] init]; + store = [NSMutableDictionary dictionary]; } return self; } -- (NSMutableDictionary *)serializeDictionary:(NSDictionary *)dict version:(Byte)version { - NSMutableDictionary *ret = [NSMutableDictionary dictionaryWithCapacity:dict.count]; +- (NSDictionary *)serializeAsDictionary:(Byte)version { + if (version >= 2) { + NSString *messageType = [[store keyEnumerator] nextObject]; + NSMutableDictionary *function = [store objectForKey:messageType]; + if ([function isKindOfClass:NSMutableDictionary.class]) { + NSMutableDictionary *parameters = [function objectForKey:SDLNameParameters]; + return [self.class sdl_serializeDictionary:parameters version:version]; + } else { + return [self.class sdl_serializeDictionary:store version:version]; + } + } else { + return [self.class sdl_serializeDictionary:store version:version]; + } +} + +- (NSString *)description { + return [store description]; +} + ++ (NSDictionary *)sdl_serializeDictionary:(NSDictionary *)dict version:(Byte)version { + NSMutableDictionary *ret = [NSMutableDictionary dictionaryWithCapacity:dict.count]; for (NSString *key in [dict keyEnumerator]) { NSObject *value = [dict objectForKey:key]; if ([value isKindOfClass:SDLRPCStruct.class]) { [ret setObject:[(SDLRPCStruct *)value serializeAsDictionary:version] forKey:key]; } else if ([value isKindOfClass:NSDictionary.class]) { - [ret setObject:[self serializeDictionary:(NSDictionary *)value version:version] forKey:key]; + [ret setObject:[self sdl_serializeDictionary:(NSDictionary *)value version:version] forKey:key]; } else if ([value isKindOfClass:NSArray.class]) { - NSArray *arrayVal = (NSArray *)value; - + NSArray *arrayVal = (NSArray *)value; + if (arrayVal.count > 0 && ([[arrayVal objectAtIndex:0] isKindOfClass:SDLRPCStruct.class])) { - NSMutableArray *serializedList = [NSMutableArray arrayWithCapacity:arrayVal.count]; + NSMutableArray *> *serializedList = [NSMutableArray arrayWithCapacity:arrayVal.count]; for (SDLRPCStruct *serializeable in arrayVal) { [serializedList addObject:[serializeable serializeAsDictionary:version]]; } [ret setObject:serializedList forKey:key]; - } else if (arrayVal.count > 0 && ([[arrayVal objectAtIndex:0] isKindOfClass:SDLEnum.class])) { - NSMutableArray *serializedList = [NSMutableArray arrayWithCapacity:arrayVal.count]; - for (SDLEnum *anEnum in arrayVal) { - [serializedList addObject:anEnum.value]; - } - [ret setObject:serializedList forKey:key]; } else { [ret setObject:value forKey:key]; } - } else if ([value isKindOfClass:SDLEnum.class]) { - [ret setObject:((SDLEnum *)value).value forKey:key]; } else { [ret setObject:value forKey:key]; } @@ -62,27 +75,29 @@ - (NSMutableDictionary *)serializeDictionary:(NSDictionary *)dict version:(Byte) return ret; } -- (NSMutableDictionary *)serializeAsDictionary:(Byte)version { - if (version >= 2) { - NSString *messageType = [[store keyEnumerator] nextObject]; - NSMutableDictionary *function = [store objectForKey:messageType]; - if ([function isKindOfClass:NSMutableDictionary.class]) { - NSMutableDictionary *parameters = [function objectForKey:NAMES_parameters]; - return [self serializeDictionary:parameters version:version]; - } else { - return [self serializeDictionary:store version:version]; - } - } else { - return [self serializeDictionary:store version:version]; - } +-(id)copyWithZone:(nullable NSZone *)zone { + SDLRPCStruct *newStruct = [[[self class] allocWithZone:zone] init]; + newStruct->store = [self->store copy]; + + return newStruct; } -- (NSString *)description { - return [store description]; +- (BOOL)isEqualToRPC:(SDLRPCStruct *)rpc { + return [rpc->store isEqualToDictionary:self->store]; } -- (void)dealloc { - store = nil; +- (BOOL)isEqual:(id)object { + if (self == object) { + return YES; + } + + if (![object isMemberOfClass:self.class]) { + return NO; + } + + return [self isEqualToRPC:(SDLRPCStruct *)object]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRTPH264Packetizer.h b/SmartDeviceLink/SDLRTPH264Packetizer.h new file mode 100644 index 000000000..b909fa1d1 --- /dev/null +++ b/SmartDeviceLink/SDLRTPH264Packetizer.h @@ -0,0 +1,43 @@ +// +// SDLRTPH264Packetizer.h +// SmartDeviceLink-iOS +// +// Created by Sho Amano on 4/11/17. +// Copyright © 2017 Xevo Inc. All rights reserved. +// + +#import +#import "SDLH264Packetizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLRTPH264Packetizer : NSObject + +/** + * Payload Type (PT) of RTP header field. + * + * PT field identifies the format of the RTP payload ([5.1] in RFC 3550). + * RFC 6184 doesn’t specify this value and says it "has to be performed + * either through the profile used or in a dynamic way" in [5.1]. + * + * In our spec, this value is chosen from range 96-127 (which are for + * dynamic assignment) and will be ignored by HMI. Refer to the proposal: + * https://github.com/smartdevicelink/sdl_evolution/blob/master/proposals/0048-H264-over-RTP-support-for-video-streaming.md + * + * @note Default value is 96. + */ +@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; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRTPH264Packetizer.m b/SmartDeviceLink/SDLRTPH264Packetizer.m new file mode 100644 index 000000000..06fc645ad --- /dev/null +++ b/SmartDeviceLink/SDLRTPH264Packetizer.m @@ -0,0 +1,246 @@ +// +// SDLRTPH264Packetizer.m +// SmartDeviceLink-iOS +// +// Created by Sho Amano on 4/11/17. +// Copyright © 2017 Xevo Inc. All rights reserved. +// + +/* + * Note for testing. + * The RTP stream generated by this packetizer can be tested with GStreamer (1.4 or later). + * Assuming that "VideoStreamPort" is configured as 5050 in smartDeviceLink.ini, here is the + * GStreamer pipeline that receives the stream, decode it and render it: + * + * $ gst-launch-1.0 souphttpsrc location=http://127.0.0.1:5050 ! "application/x-rtp-stream" ! rtpstreamdepay ! "application/x-rtp,media=(string)video,clock-rate=90000,encoding-name=(string)H264" ! rtph264depay ! "video/x-h264, stream-format=(string)avc, alignment=(string)au" ! avdec_h264 ! videoconvert ! ximagesink sync=false + */ + +#import +#import "SDLRTPH264Packetizer.h" +#import "SDLLogMacros.h" + +const NSUInteger FrameLengthLen = 2; +const NSUInteger MaxRTPPacketSize = 65535; // because length field is two bytes (RFC 4571) +const NSUInteger RTPHeaderLen = 12; +const UInt8 DefaultPayloadType = 96; +const NSUInteger FragmentationUnitIndicatorLen = 1; +const NSUInteger FragmentationUnitHeaderLen = 1; +const UInt8 FragmentationUnitVersionA = 0x1C; +const NSUInteger ClockRate = 90000; // we use 90 kHz clock rate ([5.1] in RFC 6184) + +/** + * write 2-byte value into buffer in network byte order + * + * @param buffer buffer to write the value + * @param value value to write + */ +static inline void sdl_writeShortInNetworkByteOrder(UInt8 *buffer, UInt16 value) { + buffer[0] = (value >> 8) & 0xFF; + buffer[1] = value & 0xFF; +} + +/** + * write 4-byte value into buffer in network byte order + * + * @param buffer buffer to write the value + * @param value value to write + */ +static inline void sdl_writeLongInNetworkByteOrder(UInt8 *buffer, UInt32 value) { + buffer[0] = (value >> 24) & 0xFF; + buffer[1] = (value >> 16) & 0xFF; + buffer[2] = (value >> 8) & 0xFF; + buffer[3] = value & 0xFF; +} + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLRTPH264Packetizer () +@property (assign, nonatomic) UInt32 initialTimestamp; +@property (assign, nonatomic) UInt16 sequenceNum; +@end + +@implementation SDLRTPH264Packetizer + +- (instancetype)init { + self = [super init]; + if (!self) { + return nil; + } + + _payloadType = DefaultPayloadType; + // 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; +} + +- (void)setPayloadType:(UInt8)payloadType { + if (payloadType <= 127) { + _payloadType = payloadType; + } else { + _payloadType = DefaultPayloadType; + } +} + +- (nullable NSArray *)createPackets:(NSArray *)nalUnits + presentationTimestamp:(double)presentationTimestamp { + NSMutableArray *rtpFrames = [NSMutableArray array]; + NSUInteger nalUnitsCount = nalUnits.count; + + for (NSUInteger i = 0; i < nalUnitsCount; i++) { + NSData *nalUnit = nalUnits[i]; + BOOL isLast = ((i + 1) == nalUnitsCount); + + if (RTPHeaderLen + nalUnit.length > MaxRTPPacketSize) { + // Split into multiple Fragmentation Units ([5.8] in RFC 6184) + if (![self sdl_addRTPFramesWithFragmentationUnits:rtpFrames nalUnit:nalUnit presentationTimestamp:presentationTimestamp isLast:isLast]) { + return nil; + } + } else { + // Use Single NAL Unit Packet ([5.6] in RFC 6184) + if (![self sdl_addRTPFrameWithSingleNALUnit:rtpFrames nalUnit:nalUnit presentationTimestamp:presentationTimestamp isLast:isLast]) { + return nil; + } + } + } + + return [rtpFrames copy]; +} + +/** + * Create and add a RTP frame from a NAL unit without splitting + * + * @param rtpFrames the array to which created RTP frame is added + * @param nalUnit NAL unit to create RTP frame from + * @param presentationTimestamp presentation timestamp in seconds + * @param isLast mark YES if this is the last NAL unit of a video frame + * + * @return YES if successful, NO if memory error occurred + */ +- (BOOL)sdl_addRTPFrameWithSingleNALUnit:(NSMutableArray *)rtpFrames + nalUnit:(NSData *)nalUnit + presentationTimestamp:(double)presentationTimestamp + isLast:(BOOL)isLast { + NSUInteger nalUnitLength = nalUnit.length; + NSUInteger packetSize = RTPHeaderLen + nalUnitLength; + NSUInteger frameSize = FrameLengthLen + packetSize; + + NSAssert(RTPHeaderLen + nalUnitLength <= MaxRTPPacketSize, @"This NAL unit doesn't fit into single RTP packet"); + + UInt8 *buffer = malloc(frameSize); + if (buffer == NULL) { + SDLLogE(@"malloc() error"); + return NO; + } + UInt8 *writePointer = buffer; + + writePointer += [self sdl_writeFrameHeader:writePointer packetSize:packetSize]; + writePointer += [self sdl_writeRTPHeader:writePointer marker:isLast presentationTimestamp:presentationTimestamp]; + [nalUnit getBytes:writePointer length:nalUnitLength]; + + NSData *rtpFrame = [NSData dataWithBytesNoCopy:buffer length:frameSize]; + [rtpFrames addObject:rtpFrame]; + + return YES; +} + +/** + * Create and add a RTP frames by splitting a NAL unit into multiple Fragmentation Units + * + * @param rtpFrames the array to which created RTP frames are added + * @param nalUnit NAL unit to create RTP frames from + * @param presentationTimestamp presentation timestamp in seconds + * @param isLast mark YES if this is the last NAL unit of a video frame + * + * @return YES if successful, NO if memory error occurred + */ +- (BOOL)sdl_addRTPFramesWithFragmentationUnits:(NSMutableArray *)rtpFrames + nalUnit:(NSData *)nalUnit + presentationTimestamp:(double)presentationTimestamp + isLast:(BOOL)isLast { + UInt8 firstByte; + [nalUnit getBytes:&firstByte length:1]; + BOOL isFirstFragment = YES; + BOOL isLastFragment = NO; + NSUInteger nalUnitLength = nalUnit.length; + NSUInteger offset = 1; // we have already read the first byte + + while (offset < nalUnitLength) { + NSUInteger payloadLength = MaxRTPPacketSize - (RTPHeaderLen + FragmentationUnitIndicatorLen + FragmentationUnitHeaderLen); + if (nalUnitLength - offset <= payloadLength) { + payloadLength = nalUnitLength - offset; + isLastFragment = YES; + } + NSUInteger packetSize = RTPHeaderLen + FragmentationUnitIndicatorLen + FragmentationUnitHeaderLen + payloadLength; + NSUInteger frameSize = FrameLengthLen + packetSize; + + UInt8 *buffer = malloc(frameSize); + if (buffer == NULL) { + SDLLogE(@"malloc() error"); + return NO; + } + UInt8 *writePointer = buffer; + + writePointer += [self sdl_writeFrameHeader:writePointer packetSize:packetSize]; + writePointer += [self sdl_writeRTPHeader:writePointer marker:isLast presentationTimestamp:presentationTimestamp]; + + // Fragmentation Unit indicator + *writePointer++ = (firstByte & 0xE0) | FragmentationUnitVersionA; + // Fragmentation Unit header + *writePointer++ = (isFirstFragment ? 0x80 : isLastFragment ? 0x40 : 0) | (firstByte & 0x1F); + // Fragmentation Unit payload + [nalUnit getBytes:writePointer range:NSMakeRange(offset, payloadLength)]; + offset += payloadLength; + + NSData *rtpFrame = [NSData dataWithBytesNoCopy:buffer length:frameSize]; + [rtpFrames addObject:rtpFrame]; + + isFirstFragment = NO; + } + + return YES; +} + +/** + * Write RTP Frame header (length field) to supplied buffer. + * + * @param frameHeaderBuffer the buffer in which a header is written. + * @param packetSize size of a RTP packet that follows to this frame header. + * + * @return number of bytes written, which is always 2. + */ +- (NSUInteger)sdl_writeFrameHeader:(UInt8 *)frameHeaderBuffer packetSize:(NSUInteger)packetSize { + NSAssert(packetSize <= MaxRTPPacketSize, @"RTP packet is too big"); + sdl_writeShortInNetworkByteOrder(frameHeaderBuffer, (UInt16)packetSize); + return FrameLengthLen; +} + +/** + * Write RTP header to supplied buffer. + * + * @param rtpHeaderBuffer the buffer in which a header is written. + * @param isLast whether this is the last packet of an access unit. + * @param presentationTimestamp presentation timestamp in seconds. + * + * @return number of bytes written, which is always 12. + */ +- (NSUInteger)sdl_writeRTPHeader:(UInt8 *)rtpHeaderBuffer marker:(BOOL)isLast presentationTimestamp:(double)presentationTimestamp { + UInt32 presentationTimestampIn90kHz = presentationTimestamp * ClockRate; + + // Version = 2, Padding = 0, Extension = 0, CSRC count = 0 + rtpHeaderBuffer[0] = 0x80; + // Marker = isLast, Payload type = self.payloadType + rtpHeaderBuffer[1] = (isLast ? 0x80 : 0) | (self.payloadType & 0x7F); + sdl_writeShortInNetworkByteOrder(rtpHeaderBuffer + 2, self.sequenceNum); + sdl_writeLongInNetworkByteOrder(rtpHeaderBuffer + 4, self.initialTimestamp + presentationTimestampIn90kHz); + sdl_writeLongInNetworkByteOrder(rtpHeaderBuffer + 8, self.ssrc); + + self.sequenceNum++; + return RTPHeaderLen; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRadioBand.h b/SmartDeviceLink/SDLRadioBand.h new file mode 100644 index 000000000..86d2c5b27 --- /dev/null +++ b/SmartDeviceLink/SDLRadioBand.h @@ -0,0 +1,26 @@ +// +// SDLRadioBand.h +// + +#import "SDLEnum.h" + + +typedef SDLEnum SDLRadioBand SDL_SWIFT_ENUM; + +/** + * @abstract Represents AM radio band + * + */ +extern SDLRadioBand const SDLRadioBandAM NS_SWIFT_NAME(am); + +/** + * @abstract Represents FM radio band + * + */ +extern SDLRadioBand const SDLRadioBandFM NS_SWIFT_NAME(fm); + +/** + * @abstract Represents XM radio band + * + */ +extern SDLRadioBand const SDLRadioBandXM NS_SWIFT_NAME(xm); diff --git a/SmartDeviceLink/SDLRadioBand.m b/SmartDeviceLink/SDLRadioBand.m new file mode 100644 index 000000000..1aa03e70f --- /dev/null +++ b/SmartDeviceLink/SDLRadioBand.m @@ -0,0 +1,9 @@ +// +// SDLRadioBand.m +// + +#import "SDLRadioBand.h" + +SDLRadioBand const SDLRadioBandAM = @"AM"; +SDLRadioBand const SDLRadioBandFM = @"FM"; +SDLRadioBand const SDLRadioBandXM = @"XM"; diff --git a/SmartDeviceLink/SDLRadioControlCapabilities.h b/SmartDeviceLink/SDLRadioControlCapabilities.h new file mode 100644 index 000000000..38f347807 --- /dev/null +++ b/SmartDeviceLink/SDLRadioControlCapabilities.h @@ -0,0 +1,98 @@ +// +// SDLRadioControlCapabilities.h +// + +#import "SDLRPCMessage.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Contains information about a radio control module's capabilities. + */ +@interface SDLRadioControlCapabilities : SDLRPCStruct + +- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable; + +/** + * @abstract The short friendly name of the climate control module. + * It should not be used to identify a module by mobile application. + * + * Max string length 100 chars + */ +@property (strong, nonatomic) NSString *moduleName; + +/** + * @abstract Availability of the control of enable/disable radio. + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *radioEnableAvailable; + +/** + * @abstract Availability of the control of radio band. + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *radioBandAvailable; + +/** + * @abstract Availability of the control of radio frequency. + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *radioFrequencyAvailable; + +/** + * @abstract Availability of the control of HD radio channel. + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *hdChannelAvailable; + +/** + * @abstract Availability of the getting Radio Data System (RDS) data. + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *rdsDataAvailable; + +/** + * @abstract Availability of the getting the number of available HD channels. + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *availableHDsAvailable; + +/** + * @abstract Availability of the getting the Radio state. + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *stateAvailable; + +/** + * @abstract Availability of the getting the signal strength. + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *signalStrengthAvailable; + +/** + * @abstract Availability of the getting the signal Change Threshold + * True: Available, False: Not Available, Not present: Not Available. + * + * Optional, Boolean + */ +@property (nullable, strong, nonatomic) NSNumber *signalChangeThresholdAvailable; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRadioControlCapabilities.m b/SmartDeviceLink/SDLRadioControlCapabilities.m new file mode 100644 index 000000000..775178a9b --- /dev/null +++ b/SmartDeviceLink/SDLRadioControlCapabilities.m @@ -0,0 +1,116 @@ +// +// SDLRadioControlCapabilities.m +// + +#import "SDLRadioControlCapabilities.h" +#import "SDLNames.h" +#import "NSMutableDictionary+Store.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLRadioControlCapabilities + +- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable { + self = [self init]; + if(!self){ + return nil; + } + + self.moduleName = moduleName; + self.radioEnableAvailable = @(radioEnableAvailable); + self.radioBandAvailable = @(radioBandAvailable); + self.radioFrequencyAvailable = @(radioFrequencyAvailable); + self.hdChannelAvailable = @(hdChannelAvailable); + self.rdsDataAvailable = @(rdsDataAvailable); + self.availableHDsAvailable = @(availableHDsAvailable); + self.stateAvailable = @(stateAvailable); + self.signalStrengthAvailable = @(signalStrengthAvailable); + self.signalChangeThresholdAvailable = @(signalChangeThresholdAvailable); + + return self; +} + +- (void)setModuleName:(NSString *)moduleName { + [store sdl_setObject:moduleName forName:SDLNameModuleName]; +} + +- (NSString *)moduleName { + return [store sdl_objectForName:SDLNameModuleName]; +} + +- (void)setRadioEnableAvailable:(nullable NSNumber *)radioEnableAvailable { + [store sdl_setObject:radioEnableAvailable forName:SDLNameRadioEnableAvailable]; +} + +- (nullable NSNumber *)radioEnableAvailable { + return [store sdl_objectForName:SDLNameRadioEnableAvailable]; +} + +- (void)setRadioBandAvailable:(nullable NSNumber *)radioBandAvailable { + [store sdl_setObject:radioBandAvailable forName:SDLNameRadioBandAvailable]; +} + +- (nullable NSNumber *)radioBandAvailable { + return [store sdl_objectForName:SDLNameRadioBandAvailable]; +} + +- (void)setRadioFrequencyAvailable:(nullable NSNumber *)radioFrequencyAvailable { + [store sdl_setObject:radioFrequencyAvailable forName:SDLNameRadioFrequencyAvailable]; +} + +- (nullable NSNumber *)radioFrequencyAvailable { + return [store sdl_objectForName:SDLNameRadioFrequencyAvailable]; +} + +- (void)setHdChannelAvailable:(nullable NSNumber *)hdChannelAvailable { + [store sdl_setObject:hdChannelAvailable forName:SDLNameHDChannelAvailable]; +} + +- (nullable NSNumber *)hdChannelAvailable { + return [store sdl_objectForName:SDLNameHDChannelAvailable]; +} + +- (void)setRdsDataAvailable:(nullable NSNumber *)rdsDataAvailable { + [store sdl_setObject:rdsDataAvailable forName:SDLNameRDSDataAvailable]; + +} + +- (nullable NSNumber *)rdsDataAvailable { + return [store sdl_objectForName:SDLNameRDSDataAvailable]; +} + +- (void)setAvailableHDsAvailable:(nullable NSNumber *)availableHDsAvailable { + [store sdl_setObject:availableHDsAvailable forName:SDLNameAvailableHDsAvailable]; +} + +- (nullable NSNumber *)availableHDsAvailable { + return [store sdl_objectForName:SDLNameAvailableHDsAvailable]; +} + +- (void)setStateAvailable:(nullable NSNumber *)stateAvailable { + [store sdl_setObject:stateAvailable forName:SDLNameStateAvailable]; +} + +- (nullable NSNumber *)stateAvailable { + return [store sdl_objectForName:SDLNameStateAvailable]; +} + +- (void)setSignalStrengthAvailable:(nullable NSNumber *)signalStrengthAvailable { + [store sdl_setObject:signalStrengthAvailable forName:SDLNameSignalStrengthAvailable]; +} + +- (nullable NSNumber *)signalStrengthAvailable { + return [store sdl_objectForName:SDLNameSignalStrengthAvailable]; +} + +- (void)setSignalChangeThresholdAvailable:(nullable NSNumber *)signalChangeThresholdAvailable { + [store sdl_setObject:signalChangeThresholdAvailable forName:SDLNameSignalChangeThresholdAvailable]; +} + +- (nullable NSNumber *)signalChangeThresholdAvailable { + return [store sdl_objectForName:SDLNameSignalChangeThresholdAvailable]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRadioControlData.h b/SmartDeviceLink/SDLRadioControlData.h new file mode 100644 index 000000000..f9ff2fd28 --- /dev/null +++ b/SmartDeviceLink/SDLRadioControlData.h @@ -0,0 +1,103 @@ +// +// SDLRadioControlData.h +// + +#import "SDLRPCMessage.h" +#import "SDLRadioBand.h" +#import "SDLRadioState.h" + +@class SDLRDSData; + +/** + * Include information (both read-only and changeable data) about a remote control radio module. + */ + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLRadioControlData : SDLRPCStruct + +- (instancetype)initWithFrequencyInteger:(nullable NSNumber *)frequencyInteger frequencyFraction:(nullable NSNumber *)frequencyFraction band:(nullable SDLRadioBand)band hdChannel:(nullable NSNumber *)hdChannel radioEnable:(nullable NSNumber *)radioEnable; + +/** + * @abstract The integer part of the frequency ie for 101.7 this value should be 101 + * + * Integer + */ +@property (nullable, strong, nonatomic) NSNumber *frequencyInteger; + +/** + * @abstract The fractional part of the frequency for 101.7 is 7 + * + * Integer + */ +@property (nullable, strong, nonatomic) NSNumber *frequencyFraction; + +/** + * @abstract Radio band value + * + * SDLRadioBand + */ +@property (nullable, strong, nonatomic) SDLRadioBand band; + +/** + * @abstract Read only parameter. See RDSData data type for details. + * + * @warning This property is readonly and cannot be set on the module. + * + *SDLRDSData + */ +@property (nullable, strong, nonatomic) SDLRDSData *rdsData; + +/** + * @abstract number of HD sub-channels if available + * + * @warning This property is readonly and cannot be set on the module. + * + * Integer value Min Value - 1 Max Value -3 + */ +@property (nullable, strong, nonatomic) NSNumber *availableHDs; + +/** + * @abstract Current HD sub-channel if available + * + * Integer value Min Value - 1 Max Value -3 + */ +@property (nullable, strong, nonatomic) NSNumber *hdChannel; + +/** + * @abstract Signal Strength Value + * + * @warning This property is readonly and cannot be set on the module. + * + * Integer value Min Value - 0 Max Value - 100 + */ +@property (nullable, strong, nonatomic) NSNumber *signalStrength; + +/** + * @abstract If the signal strength falls below the set value for this parameter, the radio will tune to an alternative frequency + * + * @warning This property is readonly and cannot be set on the module. + * + * Integer value Min Value - 0 Max Value - 100 + */ +@property (nullable, strong, nonatomic) NSNumber *signalChangeThreshold; + +/** + * @abstract 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 + * + * Boolean value + */ +@property (nullable, strong, nonatomic) NSNumber *radioEnable; + +/** + * Read only parameter. See RadioState data type for details. + * + * @warning This property is readonly and cannot be set on the module. + * + * SDLRadioState + */ +@property (nullable, strong, nonatomic) SDLRadioState state; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRadioControlData.m b/SmartDeviceLink/SDLRadioControlData.m new file mode 100644 index 000000000..d996a8c87 --- /dev/null +++ b/SmartDeviceLink/SDLRadioControlData.m @@ -0,0 +1,111 @@ +// +// SDLRadioControlData.m +// + +#import "SDLRadioControlData.h" +#import "SDLNames.h" +#import "SDLRDSData.h" +#import "NSMutableDictionary+Store.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLRadioControlData + +- (instancetype)initWithFrequencyInteger:(nullable NSNumber *)frequencyInteger frequencyFraction:(nullable NSNumber *)frequencyFraction band:(nullable SDLRadioBand)band hdChannel:(nullable NSNumber *)hdChannel radioEnable:(nullable NSNumber *)radioEnable { + self = [self init]; + if(!self) { + return nil; + } + + self.frequencyInteger = frequencyInteger; + self.frequencyFraction = frequencyFraction; + self.band = band; + self.hdChannel = hdChannel; + self.radioEnable = radioEnable; + + return self; +} + +- (void)setFrequencyInteger:(nullable NSNumber *)frequencyInteger { + [store sdl_setObject:frequencyInteger forName:SDLNameFrequencyInteger]; +} + +- (nullable NSNumber *)frequencyInteger { + return [store sdl_objectForName:SDLNameFrequencyInteger]; +} + +- (void)setFrequencyFraction:(nullable NSNumber *)frequencyFraction { + [store sdl_setObject:frequencyFraction forName:SDLNameFrequencyFraction]; +} + +- (nullable NSNumber *)frequencyFraction { + return [store sdl_objectForName:SDLNameFrequencyFraction]; +} + +- (void)setBand:(nullable SDLRadioBand)band { + [store sdl_setObject:band forName:SDLNameBand]; +} + +- (nullable SDLRadioBand)band{ + return [store sdl_objectForName:SDLNameBand]; +} + +- (void)setRdsData:(nullable SDLRDSData *)rdsData { + [store sdl_setObject:rdsData forName:SDLNameRDSData]; +} + +- (nullable SDLRDSData *)rdsData { + return [store sdl_objectForName:SDLNameRDSData ofClass:SDLRDSData.class]; +} + +- (void)setAvailableHDs:(nullable NSNumber *)availableHDs { + [store sdl_setObject:availableHDs forName:SDLNameAvailableHDs]; +} + +- (nullable NSNumber *)availableHDs { + return [store sdl_objectForName:SDLNameAvailableHDs]; +} + +- (void)setHdChannel:(nullable NSNumber *)hdChannel { + [store sdl_setObject:hdChannel forName:SDLNameHDChannel]; +} + +- (nullable NSNumber *)hdChannel { + return [store sdl_objectForName:SDLNameHDChannel]; +} + +- (void)setSignalStrength:(nullable NSNumber *)signalStrength { + [store sdl_setObject:signalStrength forName:SDLNameSignalStrength]; +} + +- (nullable NSNumber *)signalStrength { + return [store sdl_objectForName:SDLNameSignalStrength]; +} + +- (void)setSignalChangeThreshold:(nullable NSNumber *)signalChangeThreshold { + [store sdl_setObject:signalChangeThreshold forName:SDLNameSignalChangeThreshold]; +} + +- (nullable NSNumber *)signalChangeThreshold { + return [store sdl_objectForName:SDLNameSignalChangeThreshold]; +} + +- (void)setRadioEnable:(nullable NSNumber *)radioEnable { + [store sdl_setObject:radioEnable forName:SDLNameRadioEnable]; +} + +- (nullable NSNumber *)radioEnable { + return [store sdl_objectForName:SDLNameRadioEnable]; +} + +- (void)setState:(nullable SDLRadioState)state { + [store sdl_setObject:state forName:SDLNameState]; +} + +- (nullable SDLRadioState)state { + return [store sdl_objectForName:SDLNameState]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRadioState.h b/SmartDeviceLink/SDLRadioState.h new file mode 100644 index 000000000..ceecab086 --- /dev/null +++ b/SmartDeviceLink/SDLRadioState.h @@ -0,0 +1,35 @@ +// +// SDLRadioState.h +// + +#import "SDLEnum.h" + +/** + * List possible states of a remote control radio module. + */ + +typedef SDLEnum SDLRadioState SDL_SWIFT_ENUM; + +/** + * @abstract Represents Radio state as ACQUIRING + * + */ +extern SDLRadioState const SDLRadioStateAcquiring; + +/** + * @abstract Represents Radio state as ACQUIRED + * + */ +extern SDLRadioState const SDLRadioStateAcquired; + +/** + * @abstract Represents Radio state as MULTICAST + * + */ +extern SDLRadioState const SDLRadioStateMulticast; + +/** + * @abstract Represents Radio state as NOT_FOUND + * + */ +extern SDLRadioState const SDLRadioStateNotFound; diff --git a/SmartDeviceLink/SDLRadioState.m b/SmartDeviceLink/SDLRadioState.m new file mode 100644 index 000000000..e14aebeed --- /dev/null +++ b/SmartDeviceLink/SDLRadioState.m @@ -0,0 +1,10 @@ +// +// SDLRadioState.m +// + +#import "SDLRadioState.h" + +SDLRadioState const SDLRadioStateAcquiring = @"ACQUIRING"; +SDLRadioState const SDLRadioStateAcquired = @"ACQUIRED"; +SDLRadioState const SDLRadioStateMulticast = @"MULTICAST"; +SDLRadioState const SDLRadioStateNotFound = @"NOT_FOUND"; diff --git a/SmartDeviceLink/SDLReadDID.h b/SmartDeviceLink/SDLReadDID.h index db05a7c3c..153ea6a59 100644 --- a/SmartDeviceLink/SDLReadDID.h +++ b/SmartDeviceLink/SDLReadDID.h @@ -16,19 +16,10 @@ * * Since SmartDeviceLink 2.0 */ -@interface SDLReadDID : SDLRPCRequest { -} -/** - * @abstract Constructs a new SDLReadDID object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a new SDLReadDID object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLReadDID : SDLRPCRequest - (instancetype)initWithECUName:(UInt16)ecuNumber didLocation:(NSArray *> *)didLocation; @@ -36,7 +27,7 @@ * @abstract An ID of the vehicle module *
    Notes: Minvalue:0; Maxvalue:65535 */ -@property (strong) NSNumber *ecuName; +@property (strong, nonatomic) NSNumber *ecuName; /** * @abstract Raw data from vehicle data DID location(s) @@ -49,6 +40,8 @@ *

  • ArrayMin:0; ArrayMax:1000
  • * */ -@property (strong) NSMutableArray *didLocation; +@property (strong, nonatomic) NSArray *> *didLocation; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLReadDID.m b/SmartDeviceLink/SDLReadDID.m index c62ccf36d..9e2a906fd 100644 --- a/SmartDeviceLink/SDLReadDID.m +++ b/SmartDeviceLink/SDLReadDID.m @@ -4,23 +4,20 @@ #import "SDLReadDID.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLReadDID - (instancetype)init { - if (self = [super initWithName:NAMES_ReadDID]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameReadDID]) { } return self; } -- (instancetype)initWithECUName:(UInt16)ecuName didLocation:(NSArray *> *)didLocation { +- (instancetype)initWithECUName:(UInt16)ecuName didLocation:(NSArray *> *)didLocation { self = [self init]; if (!self) { return nil; @@ -32,28 +29,22 @@ - (instancetype)initWithECUName:(UInt16)ecuName didLocation:(NSArray *)ecuName { + [parameters sdl_setObject:ecuName forName:SDLNameECUName]; } -- (NSNumber *)ecuName { - return [parameters objectForKey:NAMES_ecuName]; +- (NSNumber *)ecuName { + return [parameters sdl_objectForName:SDLNameECUName]; } -- (void)setDidLocation:(NSMutableArray *)didLocation { - if (didLocation != nil) { - [parameters setObject:didLocation forKey:NAMES_didLocation]; - } else { - [parameters removeObjectForKey:NAMES_didLocation]; - } +- (void)setDidLocation:(NSArray *> *)didLocation { + [parameters sdl_setObject:didLocation forName:SDLNameDIDLocation]; } -- (NSMutableArray *)didLocation { - return [parameters objectForKey:NAMES_didLocation]; +- (NSArray *> *)didLocation { + return [parameters sdl_objectForName:SDLNameDIDLocation]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLReadDIDResponse.h b/SmartDeviceLink/SDLReadDIDResponse.h index da1c81573..850940944 100644 --- a/SmartDeviceLink/SDLReadDIDResponse.h +++ b/SmartDeviceLink/SDLReadDIDResponse.h @@ -4,17 +4,20 @@ #import "SDLRPCResponse.h" +@class SDLDIDResult; + /** * Read DID Response is sent, when ReadDID has been called * * Since SmartDeviceLink 2.0 */ -@interface SDLReadDIDResponse : SDLRPCResponse { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLReadDIDResponse : SDLRPCResponse -@property (strong) NSMutableArray *didResult; +@property (nullable, strong, nonatomic) NSArray *didResult; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLReadDIDResponse.m b/SmartDeviceLink/SDLReadDIDResponse.m index 9ac45b146..5b3901950 100644 --- a/SmartDeviceLink/SDLReadDIDResponse.m +++ b/SmartDeviceLink/SDLReadDIDResponse.m @@ -4,44 +4,28 @@ #import "SDLReadDIDResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLDIDResult.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLReadDIDResponse - (instancetype)init { - if (self = [super initWithName:NAMES_ReadDID]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameReadDID]) { } return self; } -- (void)setDidResult:(NSMutableArray *)didResult { - if (didResult != nil) { - [parameters setObject:didResult forKey:NAMES_didResult]; - } else { - [parameters removeObjectForKey:NAMES_didResult]; - } +- (void)setDidResult:(nullable NSArray *)didResult { + [parameters sdl_setObject:didResult forName:SDLNameDIDResult]; } -- (NSMutableArray *)didResult { - NSMutableArray *array = [parameters objectForKey:NAMES_didResult]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLDIDResult.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLDIDResult alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (nullable NSArray *)didResult { + return [parameters sdl_objectsForName:SDLNameDIDResult ofClass:SDLDIDResult.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRectangle.h b/SmartDeviceLink/SDLRectangle.h index 8d0fd44ad..78f87b148 100644 --- a/SmartDeviceLink/SDLRectangle.h +++ b/SmartDeviceLink/SDLRectangle.h @@ -6,23 +6,14 @@ // Copyright © 2017 smartdevicelink. All rights reserved. // -#import +#import +#import +#import "NSNumber+NumberType.h" #import "SDLRPCStruct.h" @interface SDLRectangle : SDLRPCStruct -/** - * @abstract Constructs a newly allocated SDLRectangle object - */ -- (instancetype)init; - -/** - * @abstract Constructs a newly allocated SDLRectangle object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - /** Create a Rectangle @@ -32,7 +23,7 @@ @param height The height @return An new SDLRectangle object */ -- (instancetype)initWithX:(NSNumber *)x y:(NSNumber *)y width:(NSNumber *)width height:(NSNumber *)height; +- (instancetype)initWithX:(float)x y:(float)y width:(float)width height:(float)height; /** Create a Rectangle from a CGRect @@ -43,28 +34,27 @@ - (instancetype)initWithCGRect:(CGRect)rect; /** - * The upper left X-coordinate of the rectangle + * The X-coordinate of the user control * Required, Float */ -@property (strong, nonatomic) NSNumber *x; +@property (strong, nonatomic) NSNumber *x; /** - * The upper left Y-coordinate of the rectangle + * The Y-coordinate of the user control * Required, Float */ -@property (strong, nonatomic) NSNumber *y; +@property (strong, nonatomic) NSNumber *y; /** - * The width of the rectangle + * The width of the user control's bounding rectangle * Required, Float */ -@property (strong, nonatomic) NSNumber *width; +@property (strong, nonatomic) NSNumber *width; /** - * The height of the rectangle + * The height of the user control's bounding rectangle * Required, Float */ -@property (strong, nonatomic) NSNumber *height; - +@property (strong, nonatomic) NSNumber *height; @end diff --git a/SmartDeviceLink/SDLRectangle.m b/SmartDeviceLink/SDLRectangle.m index ce877c385..6a82312b9 100644 --- a/SmartDeviceLink/SDLRectangle.m +++ b/SmartDeviceLink/SDLRectangle.m @@ -6,98 +6,58 @@ // Copyright © 2017 smartdevicelink. All rights reserved. // +#import "NSMutableDictionary+Store.h" #import "SDLRectangle.h" - #import "SDLNames.h" @implementation SDLRectangle -- (instancetype)init { - if (self = [super init]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (instancetype)initWithX:(NSNumber *)x y:(NSNumber *)y width:(NSNumber *)width height:(NSNumber *)height { +- (instancetype)initWithX:(float)x y:(float)y width:(float)width height:(float)height { self = [self init]; - if (!self) { - return nil; - } + if (!self) { return nil; } - self.x = x; - self.y = y; - self.width = width; - self.height = height; + self.x = @(x); + self.y = @(y); + self.width = @(width); + self.height = @(height); return self; } - (instancetype)initWithCGRect:(CGRect)rect { - self = [self init]; - if (!self) { - return nil; - } - - self.x = @((float)rect.origin.x); - self.y = @((float)rect.origin.y); - self.width = @((float)rect.size.width); - self.height = @((float)rect.size.height); - - return self; + return [self initWithX:rect.origin.x y:rect.origin.y width:rect.size.width height:rect.size.height]; } -- (void)setX:(NSNumber *)x { - if (x != nil) { - [store setObject:x forKey:NAMES_x]; - } else { - [store removeObjectForKey:NAMES_x]; - } +- (void)setX:(NSNumber *)x { + [store sdl_setObject:x forName:SDLNameX]; } -- (NSNumber *)x { - return [store objectForKey:NAMES_x]; +- (NSNumber *)x { + return [store sdl_objectForName:SDLNameX]; } -- (void)setY:(NSNumber *)y { - if (y != nil) { - [store setObject:y forKey:NAMES_y]; - } else { - [store removeObjectForKey:NAMES_y]; - } +- (void)setY:(NSNumber *)y { + [store sdl_setObject:y forName:SDLNameY]; } -- (NSNumber *)y { - return [store objectForKey:NAMES_y]; +- (NSNumber *)y { + return [store sdl_objectForName:SDLNameY]; } -- (void)setWidth:(NSNumber *)width { - if (width != nil) { - [store setObject:width forKey:NAMES_width]; - } else { - [store removeObjectForKey:NAMES_width]; - } +- (void)setWidth:(NSNumber *)width { + [store sdl_setObject:width forName:SDLNameWidth]; } -- (NSNumber *)width { - return [store objectForKey:NAMES_width]; +- (NSNumber *)width { + return [store sdl_objectForName:SDLNameWidth]; } -- (void)setHeight:(NSNumber *)height { - if (height != nil) { - [store setObject:height forKey:NAMES_height]; - } else { - [store removeObjectForKey:NAMES_height]; - } +- (void)setHeight:(NSNumber *)height { + [store sdl_setObject:height forName:SDLNameHeight]; } -- (NSNumber *)height { - return [store objectForKey:NAMES_height]; +- (NSNumber *)height { + return [store sdl_objectForName:SDLNameHeight]; } @end diff --git a/SmartDeviceLink/SDLRegisterAppInterface.h b/SmartDeviceLink/SDLRegisterAppInterface.h index 694554747..6201dfbfe 100644 --- a/SmartDeviceLink/SDLRegisterAppInterface.h +++ b/SmartDeviceLink/SDLRegisterAppInterface.h @@ -3,10 +3,11 @@ #import "SDLRPCRequest.h" +#import "SDLAppHMIType.h" +#import "SDLLanguage.h" + @class SDLAppInfo; -@class SDLAppHMIType; @class SDLDeviceInfo; -@class SDLLanguage; @class SDLLifecycleConfiguration; @class SDLSyncMsgVersion; @class SDLTTSChunk; @@ -82,35 +83,25 @@ * * @see SDLUnregisterAppInterface SDLOnAppInterfaceUnregistered */ -@interface SDLRegisterAppInterface : SDLRPCRequest { -} -/** - * @abstract Constructs a new SDLRegisterAppInterface object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a new SDLRegisterAppInterface object indicated by the dictionary parameter - * - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLRegisterAppInterface : SDLRPCRequest - (instancetype)initWithLifecycleConfiguration:(SDLLifecycleConfiguration *)lifecycleConfiguration; -- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage *)languageDesired; +- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired; -- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage *)languageDesired isMediaApp:(BOOL)isMediaApp appType:(SDLAppHMIType *)appType shortAppName:(NSString *)shortAppName; +- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appType:(SDLAppHMIType)appType shortAppName:(nullable NSString *)shortAppName; -- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage *)languageDesired isMediaApp:(BOOL)isMediaApp appType:(SDLAppHMIType *)appType shortAppName:(NSString *)shortAppName ttsName:(NSArray *)ttsName vrSynonyms:(NSArray *)vrSynonyms hmiDisplayLanguageDesired:(SDLLanguage *)hmiDisplayLanguageDesired resumeHash:(NSString *)resumeHash; +- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appType:(SDLAppHMIType)appType shortAppName:(nullable NSString *)shortAppName ttsName:(nullable NSArray *)ttsName vrSynonyms:(nullable NSArray *)vrSynonyms hmiDisplayLanguageDesired:(SDLLanguage)hmiDisplayLanguageDesired resumeHash:(nullable NSString *)resumeHash; /** * @abstract The version of the SDL interface * * Required */ -@property (strong) SDLSyncMsgVersion *syncMsgVersion; +@property (strong, nonatomic) SDLSyncMsgVersion *syncMsgVersion; /** * @abstract 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 @@ -124,7 +115,7 @@ * * Required, Max length 100 chars */ -@property (strong) NSString *appName; +@property (strong, nonatomic) NSString *appName; /** * @abstract TTS string for VR recognition of the mobile application name. @@ -139,7 +130,7 @@ * @since SDL 2.0 * @see SDLTTSChunk */ -@property (strong) NSMutableArray *ttsName; +@property (nullable, strong, nonatomic) NSArray *ttsName; /** * @abstract A String representing an abbreviated version of the mobile application's name (if necessary) that will be displayed on the media screen @@ -148,7 +139,7 @@ * * Optional, Max length 100 chars */ -@property (strong) NSString *ngnMediaScreenAppName; +@property (nullable, strong, nonatomic) NSString *ngnMediaScreenAppName; /** * @abstract Defines a additional voice recognition commands @@ -157,7 +148,7 @@ * * Optional, Array of Strings, Array length 1 - 100, Max String length 40 */ -@property (strong) NSMutableArray *vrSynonyms; +@property (nullable, strong, nonatomic) NSArray *vrSynonyms; /** * @abstract Indicates if the application is a media or a non-media application. @@ -166,7 +157,7 @@ * * Required, Boolean */ -@property (strong) NSNumber *isMediaApplication; +@property (strong, nonatomic) NSNumber *isMediaApplication; /** * @abstract A Language enumeration indicating what language the application intends to use for user interaction (TTS and VR). @@ -175,7 +166,7 @@ * * Required */ -@property (strong) SDLLanguage *languageDesired; +@property (strong, nonatomic) SDLLanguage languageDesired; /** * @abstract An enumeration indicating what language the application intends to use for user interaction (Display). @@ -186,7 +177,7 @@ * * @since SDL 2.0 */ -@property (strong) SDLLanguage *hmiDisplayLanguageDesired; +@property (strong, nonatomic) SDLLanguage hmiDisplayLanguageDesired; /** * @abstract A list of all applicable app types stating which classifications to be given to the app. @@ -196,7 +187,7 @@ * @since SDL 2.0 * @see SDLAppHMIType */ -@property (strong) NSMutableArray *appHMIType; +@property (nullable, strong, nonatomic) NSArray *appHMIType; /** * @abstract ID used to uniquely identify current state of all app data that can persist through connection cycles (e.g. ignition cycles). @@ -207,14 +198,14 @@ * * Optional, max length 100 chars */ -@property (strong) NSString *hashID; +@property (nullable, strong, nonatomic) NSString *hashID; /** * @abstract Information about the connecting device * * Optional */ -@property (strong) SDLDeviceInfo *deviceInfo; +@property (nullable, strong, nonatomic) SDLDeviceInfo *deviceInfo; /** * @abstract ID used to validate app with policy table entries @@ -223,13 +214,15 @@ * * @since SDL 2.0 */ -@property (strong) NSString *appID; +@property (strong, nonatomic) NSString *appID; /** * @abstract Information about the application running * * Optional */ -@property (strong) SDLAppInfo *appInfo; +@property (nullable, strong, nonatomic) SDLAppInfo *appInfo; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRegisterAppInterface.m b/SmartDeviceLink/SDLRegisterAppInterface.m index c9e6850d7..12aab2283 100644 --- a/SmartDeviceLink/SDLRegisterAppInterface.m +++ b/SmartDeviceLink/SDLRegisterAppInterface.m @@ -4,6 +4,7 @@ #import "SDLRegisterAppInterface.h" +#import "NSMutableDictionary+Store.h" #import "SDLAppHMIType.h" #import "SDLAppInfo.h" #import "SDLDeviceInfo.h" @@ -13,17 +14,12 @@ #import "SDLSyncMsgVersion.h" #import "SDLTTSChunk.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLRegisterAppInterface - (instancetype)init { - if (self = [super initWithName:NAMES_RegisterAppInterface]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameRegisterAppInterface]) { } return self; } @@ -32,243 +28,160 @@ - (instancetype)initWithLifecycleConfiguration:(SDLLifecycleConfiguration *)life return [self initWithAppName:lifecycleConfiguration.appName appId:lifecycleConfiguration.appId languageDesired:lifecycleConfiguration.language isMediaApp:lifecycleConfiguration.isMedia appType:lifecycleConfiguration.appType shortAppName:lifecycleConfiguration.shortAppName ttsName:lifecycleConfiguration.ttsName vrSynonyms:lifecycleConfiguration.voiceRecognitionCommandNames hmiDisplayLanguageDesired:lifecycleConfiguration.language resumeHash:lifecycleConfiguration.resumeHash]; } -- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage *)languageDesired { - return [self initWithAppName:appName appId:appId languageDesired:languageDesired isMediaApp:NO appType:nil shortAppName:nil]; -} - -- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage *)languageDesired isMediaApp:(BOOL)isMediaApp appType:(SDLAppHMIType *)appType shortAppName:(NSString *)shortAppName { - return [self initWithAppName:appName appId:appId languageDesired:languageDesired isMediaApp:isMediaApp appType:appType shortAppName:shortAppName ttsName:nil vrSynonyms:nil hmiDisplayLanguageDesired:languageDesired resumeHash:nil]; +- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired { + self = [self init]; + if (!self) { + return nil; + } + + self.appName = appName; + self.appID = appId; + self.languageDesired = languageDesired; + + self.syncMsgVersion = [[SDLSyncMsgVersion alloc] initWithMajorVersion:1 minorVersion:0 patchVersion:0]; + self.appInfo = [SDLAppInfo currentAppInfo]; + self.deviceInfo = [SDLDeviceInfo currentDevice]; + self.correlationID = @1; + + return self; + } -- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage *)languageDesired isMediaApp:(BOOL)isMediaApp appType:(SDLAppHMIType *)appType shortAppName:(NSString *)shortAppName ttsName:(NSArray *)ttsName vrSynonyms:(NSArray *)vrSynonyms hmiDisplayLanguageDesired:(SDLLanguage *)hmiDisplayLanguageDesired resumeHash:(NSString *)resumeHash { - self = [self init]; +- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appType:(SDLAppHMIType)appType shortAppName:(nullable NSString *)shortAppName { + self = [self initWithAppName:appName appId:appId languageDesired:languageDesired]; if (!self) { return nil; } + + self.isMediaApplication = @(isMediaApp); - self.appID = appId; - self.appName = appName; + if (appType != nil) { + self.appHMIType = [NSArray arrayWithObject:appType]; + } + self.ngnMediaScreenAppName = shortAppName; + + return self; +} - if (appType != nil) { - self.appHMIType = [NSMutableArray arrayWithObject:appType]; +- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appType:(SDLAppHMIType)appType shortAppName:(nullable NSString *)shortAppName ttsName:(nullable NSArray *)ttsName vrSynonyms:(nullable NSArray *)vrSynonyms hmiDisplayLanguageDesired:(SDLLanguage)hmiDisplayLanguageDesired resumeHash:(nullable NSString *)resumeHash { + self = [self initWithAppName:appName appId:appId languageDesired:languageDesired isMediaApp:isMediaApp appType:appType shortAppName:shortAppName]; + if (!self) { + return nil; } - self.languageDesired = languageDesired; - self.hmiDisplayLanguageDesired = hmiDisplayLanguageDesired; - self.isMediaApplication = @(isMediaApp); self.ttsName = [ttsName copy]; self.vrSynonyms = [vrSynonyms copy]; - self.syncMsgVersion = [[SDLSyncMsgVersion alloc] initWithMajorVersion:1 minorVersion:0 patchVersion:0]; - self.appInfo = [SDLAppInfo currentAppInfo]; - self.deviceInfo = [SDLDeviceInfo currentDevice]; + self.hmiDisplayLanguageDesired = hmiDisplayLanguageDesired; self.hashID = resumeHash; - self.correlationID = @1; return self; } - (void)setSyncMsgVersion:(SDLSyncMsgVersion *)syncMsgVersion { - if (syncMsgVersion != nil) { - [parameters setObject:syncMsgVersion forKey:NAMES_syncMsgVersion]; - } else { - [parameters removeObjectForKey:NAMES_syncMsgVersion]; - } + [parameters sdl_setObject:syncMsgVersion forName:SDLNameSyncMessageVersion]; } - (SDLSyncMsgVersion *)syncMsgVersion { - NSObject *obj = [parameters objectForKey:NAMES_syncMsgVersion]; - if (obj == nil || [obj isKindOfClass:SDLSyncMsgVersion.class]) { - return (SDLSyncMsgVersion *)obj; - } else { - return [[SDLSyncMsgVersion alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } + return [parameters sdl_objectForName:SDLNameSyncMessageVersion ofClass:SDLSyncMsgVersion.class]; } - (void)setAppName:(NSString *)appName { - if (appName != nil) { - [parameters setObject:appName forKey:NAMES_appName]; - } else { - [parameters removeObjectForKey:NAMES_appName]; - } + [parameters sdl_setObject:appName forName:SDLNameAppName]; } - (NSString *)appName { - return [parameters objectForKey:NAMES_appName]; + return [parameters sdl_objectForName:SDLNameAppName]; } -- (void)setTtsName:(NSMutableArray *)ttsName { - if (ttsName != nil) { - [parameters setObject:ttsName forKey:NAMES_ttsName]; - } else { - [parameters removeObjectForKey:NAMES_ttsName]; - } +- (void)setTtsName:(nullable NSArray *)ttsName { + [parameters sdl_setObject:ttsName forName:SDLNameTTSName]; } -- (NSMutableArray *)ttsName { - NSMutableArray *array = [parameters objectForKey:NAMES_ttsName]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTTSChunk.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLTTSChunk alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (nullable NSArray *)ttsName { + return [parameters sdl_objectsForName:SDLNameTTSName ofClass:SDLTTSChunk.class]; } -- (void)setNgnMediaScreenAppName:(NSString *)ngnMediaScreenAppName { - if (ngnMediaScreenAppName != nil) { - [parameters setObject:ngnMediaScreenAppName forKey:NAMES_ngnMediaScreenAppName]; - } else { - [parameters removeObjectForKey:NAMES_ngnMediaScreenAppName]; - } +- (void)setNgnMediaScreenAppName:(nullable NSString *)ngnMediaScreenAppName { + [parameters sdl_setObject:ngnMediaScreenAppName forName:SDLNameNGNMediaScreenAppName]; } -- (NSString *)ngnMediaScreenAppName { - return [parameters objectForKey:NAMES_ngnMediaScreenAppName]; +- (nullable NSString *)ngnMediaScreenAppName { + return [parameters sdl_objectForName:SDLNameNGNMediaScreenAppName]; } -- (void)setVrSynonyms:(NSMutableArray *)vrSynonyms { - if (vrSynonyms != nil) { - [parameters setObject:vrSynonyms forKey:NAMES_vrSynonyms]; - } else { - [parameters removeObjectForKey:NAMES_vrSynonyms]; - } +- (void)setVrSynonyms:(nullable NSArray *)vrSynonyms { + [parameters sdl_setObject:vrSynonyms forName:SDLNameVRSynonyms]; } -- (NSMutableArray *)vrSynonyms { - return [parameters objectForKey:NAMES_vrSynonyms]; +- (nullable NSArray *)vrSynonyms { + return [parameters sdl_objectForName:SDLNameVRSynonyms]; } -- (void)setIsMediaApplication:(NSNumber *)isMediaApplication { - if (isMediaApplication != nil) { - [parameters setObject:isMediaApplication forKey:NAMES_isMediaApplication]; - } else { - [parameters removeObjectForKey:NAMES_isMediaApplication]; - } +- (void)setIsMediaApplication:(NSNumber *)isMediaApplication { + [parameters sdl_setObject:isMediaApplication forName:SDLNameIsMediaApplication]; } -- (NSNumber *)isMediaApplication { - return [parameters objectForKey:NAMES_isMediaApplication]; +- (NSNumber *)isMediaApplication { + return [parameters sdl_objectForName:SDLNameIsMediaApplication]; } -- (void)setLanguageDesired:(SDLLanguage *)languageDesired { - if (languageDesired != nil) { - [parameters setObject:languageDesired forKey:NAMES_languageDesired]; - } else { - [parameters removeObjectForKey:NAMES_languageDesired]; - } +- (void)setLanguageDesired:(SDLLanguage)languageDesired { + [parameters sdl_setObject:languageDesired forName:SDLNameLanguageDesired]; } -- (SDLLanguage *)languageDesired { - NSObject *obj = [parameters objectForKey:NAMES_languageDesired]; - if (obj == nil || [obj isKindOfClass:SDLLanguage.class]) { - return (SDLLanguage *)obj; - } else { - return [SDLLanguage valueOf:(NSString *)obj]; - } +- (SDLLanguage)languageDesired { + return [parameters sdl_objectForName:SDLNameLanguageDesired]; } -- (void)setHmiDisplayLanguageDesired:(SDLLanguage *)hmiDisplayLanguageDesired { - if (hmiDisplayLanguageDesired != nil) { - [parameters setObject:hmiDisplayLanguageDesired forKey:NAMES_hmiDisplayLanguageDesired]; - } else { - [parameters removeObjectForKey:NAMES_hmiDisplayLanguageDesired]; - } +- (void)setHmiDisplayLanguageDesired:(SDLLanguage)hmiDisplayLanguageDesired { + [parameters sdl_setObject:hmiDisplayLanguageDesired forName:SDLNameHMIDisplayLanguageDesired]; } -- (SDLLanguage *)hmiDisplayLanguageDesired { - NSObject *obj = [parameters objectForKey:NAMES_hmiDisplayLanguageDesired]; - if (obj == nil || [obj isKindOfClass:SDLLanguage.class]) { - return (SDLLanguage *)obj; - } else { - return [SDLLanguage valueOf:(NSString *)obj]; - } +- (SDLLanguage)hmiDisplayLanguageDesired { + return [parameters sdl_objectForName:SDLNameHMIDisplayLanguageDesired]; } -- (void)setAppHMIType:(NSMutableArray *)appHMIType { - if (appHMIType != nil) { - [parameters setObject:appHMIType forKey:NAMES_appHMIType]; - } else { - [parameters removeObjectForKey:NAMES_appHMIType]; - } +- (void)setAppHMIType:(nullable NSArray *)appHMIType { + [parameters sdl_setObject:appHMIType forName:SDLNameAppHMIType]; } -- (NSMutableArray *)appHMIType { - NSMutableArray *array = [parameters objectForKey:NAMES_appHMIType]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLAppHMIType.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSString *enumString in array) { - [newList addObject:[SDLAppHMIType valueOf:enumString]]; - } - return newList; - } +- (nullable NSArray *)appHMIType { + return [parameters sdl_objectForName:SDLNameAppHMIType]; } -- (void)setHashID:(NSString *)hashID { - if (hashID != nil) { - [parameters setObject:hashID forKey:NAMES_hashID]; - } else { - [parameters removeObjectForKey:NAMES_hashID]; - } +- (void)setHashID:(nullable NSString *)hashID { + [parameters sdl_setObject:hashID forName:SDLNameHashId]; } -- (NSString *)hashID { - return [parameters objectForKey:NAMES_hashID]; +- (nullable NSString *)hashID { + return [parameters sdl_objectForName:SDLNameHashId]; } -- (void)setDeviceInfo:(SDLDeviceInfo *)deviceInfo { - if (deviceInfo != nil) { - [parameters setObject:deviceInfo forKey:NAMES_deviceInfo]; - } else { - [parameters removeObjectForKey:NAMES_deviceInfo]; - } +- (void)setDeviceInfo:(nullable SDLDeviceInfo *)deviceInfo { + [parameters sdl_setObject:deviceInfo forName:SDLNameDeviceInfo]; } -- (SDLDeviceInfo *)deviceInfo { - NSObject *obj = [parameters objectForKey:NAMES_deviceInfo]; - if (obj == nil || [obj isKindOfClass:SDLDeviceInfo.class]) { - return (SDLDeviceInfo *)obj; - } else { - return [[SDLDeviceInfo alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLDeviceInfo *)deviceInfo { + return [parameters sdl_objectForName:SDLNameDeviceInfo ofClass:SDLDeviceInfo.class]; } - (void)setAppID:(NSString *)appID { - if (appID != nil) { - [parameters setObject:appID forKey:NAMES_appID]; - } else { - [parameters removeObjectForKey:NAMES_appID]; - } + [parameters sdl_setObject:appID forName:SDLNameAppId]; } - (NSString *)appID { - return [parameters objectForKey:NAMES_appID]; + return [parameters sdl_objectForName:SDLNameAppId]; } -- (void)setAppInfo:(SDLAppInfo *)appInfo { - if (appInfo != nil) { - [parameters setObject:appInfo forKey:NAMES_appInfo]; - } else { - [parameters removeObjectForKey:NAMES_appInfo]; - } +- (void)setAppInfo:(nullable SDLAppInfo *)appInfo { + [parameters sdl_setObject:appInfo forName:SDLNameAppInfo]; } -- (SDLAppInfo *)appInfo { - NSObject *obj = [parameters objectForKey:NAMES_appInfo]; - if (obj == nil || [obj isKindOfClass:SDLAppInfo.class]) { - return (SDLAppInfo *)obj; - } else { - return [[SDLAppInfo alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLAppInfo *)appInfo { + return [parameters sdl_objectForName:SDLNameAppInfo ofClass:SDLAppInfo.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRegisterAppInterfaceResponse.h b/SmartDeviceLink/SDLRegisterAppInterfaceResponse.h index 9bfc0a16a..89096598e 100644 --- a/SmartDeviceLink/SDLRegisterAppInterfaceResponse.h +++ b/SmartDeviceLink/SDLRegisterAppInterfaceResponse.h @@ -4,10 +4,18 @@ #import "SDLRPCResponse.h" -@class SDLLanguage; +#import "SDLHMIZoneCapabilities.h" +#import "SDLLanguage.h" +#import "SDLPrerecordedSpeech.h" +#import "SDLSpeechCapabilities.h" +#import "SDLVrCapabilities.h" + +@class SDLAudioPassThruCapabilities; +@class SDLButtonCapabilities; @class SDLDisplayCapabilities; @class SDLHMICapabilities; @class SDLPresetBankCapabilities; +@class SDLSoftButtonCapabilities; @class SDLSyncMsgVersion; @class SDLVehicleType; @@ -17,27 +25,17 @@ * * Since SmartDeviceLink 1.0 */ -@interface SDLRegisterAppInterfaceResponse : SDLRPCResponse { -} -/** - * @abstract Constructs a new SDLRegisterAppInterfaceResponse object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * Constructs a new SDLRegisterAppInterfaceResponse object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLRegisterAppInterfaceResponse : SDLRPCResponse /** * @see SDLSyncMsgVersion * * Optional */ -@property (strong) SDLSyncMsgVersion *syncMsgVersion; +@property (nullable, strong, nonatomic) SDLSyncMsgVersion *syncMsgVersion; /** * The currently active VR+TTS language on Sync. @@ -46,7 +44,7 @@ * * Optional */ -@property (strong) SDLLanguage *language; +@property (nullable, strong, nonatomic) SDLLanguage language; /** * The currently active display language on Sync @@ -56,21 +54,21 @@ * * Optional */ -@property (strong) SDLLanguage *hmiDisplayLanguage; +@property (nullable, strong, nonatomic) SDLLanguage hmiDisplayLanguage; /** * @see SDLDisplayCapabilities * * Optional */ -@property (strong) SDLDisplayCapabilities *displayCapabilities; +@property (nullable, strong, nonatomic) SDLDisplayCapabilities *displayCapabilities; /** * @see SDLButtonCapabilities * * Optional, Array of length 1 - 100, of SDLButtonCapabilities */ -@property (strong) NSMutableArray *buttonCapabilities; +@property (nullable, strong, nonatomic) NSArray *buttonCapabilities; /** * If returned, the platform supports on-screen SoftButtons @@ -79,7 +77,7 @@ * * Optional, Array of length 1 - 100, of SDLSoftButtonCapabilities */ -@property (strong) NSMutableArray *softButtonCapabilities; +@property (nullable, strong, nonatomic) NSArray *softButtonCapabilities; /** * If returned, the platform supports custom on-screen Presets @@ -88,42 +86,47 @@ * * Optional */ -@property (strong) SDLPresetBankCapabilities *presetBankCapabilities; +@property (nullable, strong, nonatomic) SDLPresetBankCapabilities *presetBankCapabilities; /** * @see SDLHMIZoneCapabilities * * Optional, Array of length 1 - 100, of SDLHMIZoneCapabilities */ -@property (strong) NSMutableArray *hmiZoneCapabilities; +@property (nullable, strong, nonatomic) NSArray *hmiZoneCapabilities; /** * @see SDLSpeechCapabilities * * Optional, Array of length 1 - 100, of SDLSpeechCapabilities */ -@property (strong) NSMutableArray *speechCapabilities; +@property (nullable, strong, nonatomic) NSArray *speechCapabilities; /** * @see SDLPrerecordedSpeech * * Optional, Array of length 1 - 100, of SDLPrerecordedSpeech */ -@property (strong) NSMutableArray *prerecordedSpeech; +@property (nullable, strong, nonatomic) NSArray *prerecordedSpeech; /** * @see SDLVRCapabilities * * Optional, Array of length 1 - 100, of SDLVRCapabilities */ -@property (strong) NSMutableArray *vrCapabilities; +@property (nullable, strong, nonatomic) NSArray *vrCapabilities; /** * @see SDLAudioPassThruCapabilities * * Optional, Array of length 1 - 100, of SDLAudioPassThruCapabilities */ -@property (strong) NSMutableArray *audioPassThruCapabilities; +@property (nullable, strong, nonatomic) NSArray *audioPassThruCapabilities; + +/** + @see SDLAudioPassThruCapabilities + */ +@property (nullable, strong, nonatomic) SDLAudioPassThruCapabilities *pcmStreamCapabilities; /** * Specifies the vehicle's type @@ -132,35 +135,37 @@ * * Optional, Array of length 1 - 100, of SDLVehicleType */ -@property (strong) SDLVehicleType *vehicleType; +@property (nullable, strong, nonatomic) SDLVehicleType *vehicleType; /** * 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. * * Optional, Array of length 1 - 100, Integer 0 - 255 */ -@property (strong) NSMutableArray *supportedDiagModes; +@property (nullable, strong, nonatomic) NSArray *> *supportedDiagModes; /** * @see SDLHMICapabilities * * Optional */ -@property (strong) SDLHMICapabilities *hmiCapabilities; +@property (nullable, strong, nonatomic) SDLHMICapabilities *hmiCapabilities; /** * The SmartDeviceLink version * * Optional, String max length 100 */ -@property (strong) NSString *sdlVersion; +@property (nullable, strong, nonatomic) NSString *sdlVersion; /** * The software version of the system that implements the SmartDeviceLink core * * Optional, String max length 100 */ -@property (strong) NSString *systemSoftwareVersion; +@property (nullable, strong, nonatomic) NSString *systemSoftwareVersion; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRegisterAppInterfaceResponse.m b/SmartDeviceLink/SDLRegisterAppInterfaceResponse.m index 4b553dfe2..f8017f898 100644 --- a/SmartDeviceLink/SDLRegisterAppInterfaceResponse.m +++ b/SmartDeviceLink/SDLRegisterAppInterfaceResponse.m @@ -4,350 +4,172 @@ #import "SDLRegisterAppInterfaceResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLAudioPassThruCapabilities.h" #import "SDLButtonCapabilities.h" #import "SDLDisplayCapabilities.h" #import "SDLHMICapabilities.h" -#import "SDLHMIZoneCapabilities.h" -#import "SDLLanguage.h" #import "SDLNames.h" -#import "SDLPrerecordedSpeech.h" #import "SDLPresetBankCapabilities.h" #import "SDLSoftButtonCapabilities.h" -#import "SDLSpeechCapabilities.h" #import "SDLSyncMsgVersion.h" #import "SDLVehicleType.h" #import "SDLVrCapabilities.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLRegisterAppInterfaceResponse - (instancetype)init { - if (self = [super initWithName:NAMES_RegisterAppInterface]) { + if (self = [super initWithName:SDLNameRegisterAppInterface]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (void)setSyncMsgVersion:(nullable SDLSyncMsgVersion *)syncMsgVersion { + [parameters sdl_setObject:syncMsgVersion forName:SDLNameSyncMessageVersion]; } -- (void)setSyncMsgVersion:(SDLSyncMsgVersion *)syncMsgVersion { - if (syncMsgVersion != nil) { - [parameters setObject:syncMsgVersion forKey:NAMES_syncMsgVersion]; - } else { - [parameters removeObjectForKey:NAMES_syncMsgVersion]; - } +- (nullable SDLSyncMsgVersion *)syncMsgVersion { + return [parameters sdl_objectForName:SDLNameSyncMessageVersion ofClass:SDLSyncMsgVersion.class]; } -- (SDLSyncMsgVersion *)syncMsgVersion { - NSObject *obj = [parameters objectForKey:NAMES_syncMsgVersion]; - if (obj == nil || [obj isKindOfClass:SDLSyncMsgVersion.class]) { - return (SDLSyncMsgVersion *)obj; - } else { - return [[SDLSyncMsgVersion alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setLanguage:(nullable SDLLanguage)language { + [parameters sdl_setObject:language forName:SDLNameLanguage]; } -- (void)setLanguage:(SDLLanguage *)language { - if (language != nil) { - [parameters setObject:language forKey:NAMES_language]; - } else { - [parameters removeObjectForKey:NAMES_language]; - } +- (nullable SDLLanguage)language { + return [parameters sdl_objectForName:SDLNameLanguage]; } -- (SDLLanguage *)language { - NSObject *obj = [parameters objectForKey:NAMES_language]; - if (obj == nil || [obj isKindOfClass:SDLLanguage.class]) { - return (SDLLanguage *)obj; - } else { - return [SDLLanguage valueOf:(NSString *)obj]; - } +- (void)setHmiDisplayLanguage:(nullable SDLLanguage)hmiDisplayLanguage { + [parameters sdl_setObject:hmiDisplayLanguage forName:SDLNameHMIDisplayLanguage]; } -- (void)setHmiDisplayLanguage:(SDLLanguage *)hmiDisplayLanguage { - if (hmiDisplayLanguage != nil) { - [parameters setObject:hmiDisplayLanguage forKey:NAMES_hmiDisplayLanguage]; - } else { - [parameters removeObjectForKey:NAMES_hmiDisplayLanguage]; - } +- (nullable SDLLanguage)hmiDisplayLanguage { + return [parameters sdl_objectForName:SDLNameHMIDisplayLanguage]; } -- (SDLLanguage *)hmiDisplayLanguage { - NSObject *obj = [parameters objectForKey:NAMES_hmiDisplayLanguage]; - if (obj == nil || [obj isKindOfClass:SDLLanguage.class]) { - return (SDLLanguage *)obj; - } else { - return [SDLLanguage valueOf:(NSString *)obj]; - } +- (void)setDisplayCapabilities:(nullable SDLDisplayCapabilities *)displayCapabilities { + [parameters sdl_setObject:displayCapabilities forName:SDLNameDisplayCapabilities]; } -- (void)setDisplayCapabilities:(SDLDisplayCapabilities *)displayCapabilities { - if (displayCapabilities != nil) { - [parameters setObject:displayCapabilities forKey:NAMES_displayCapabilities]; - } else { - [parameters removeObjectForKey:NAMES_displayCapabilities]; - } +- (nullable SDLDisplayCapabilities *)displayCapabilities { + return [parameters sdl_objectForName:SDLNameDisplayCapabilities ofClass:SDLDisplayCapabilities.class]; } -- (SDLDisplayCapabilities *)displayCapabilities { - NSObject *obj = [parameters objectForKey:NAMES_displayCapabilities]; - if (obj == nil || [obj isKindOfClass:SDLDisplayCapabilities.class]) { - return (SDLDisplayCapabilities *)obj; - } else { - return [[SDLDisplayCapabilities alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setButtonCapabilities:(nullable NSArray *)buttonCapabilities { + [parameters sdl_setObject:buttonCapabilities forName:SDLNameButtonCapabilities]; } -- (void)setButtonCapabilities:(NSMutableArray *)buttonCapabilities { - if (buttonCapabilities != nil) { - [parameters setObject:buttonCapabilities forKey:NAMES_buttonCapabilities]; - } else { - [parameters removeObjectForKey:NAMES_buttonCapabilities]; - } +- (nullable NSArray *)buttonCapabilities { + return [parameters sdl_objectsForName:SDLNameButtonCapabilities ofClass:SDLButtonCapabilities.class]; } -- (NSMutableArray *)buttonCapabilities { - NSMutableArray *array = [parameters objectForKey:NAMES_buttonCapabilities]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLButtonCapabilities.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLButtonCapabilities alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (void)setSoftButtonCapabilities:(nullable NSArray *)softButtonCapabilities { + [parameters sdl_setObject:softButtonCapabilities forName:SDLNameSoftButtonCapabilities]; } -- (void)setSoftButtonCapabilities:(NSMutableArray *)softButtonCapabilities { - if (softButtonCapabilities != nil) { - [parameters setObject:softButtonCapabilities forKey:NAMES_softButtonCapabilities]; - } else { - [parameters removeObjectForKey:NAMES_softButtonCapabilities]; - } +- (nullable NSArray *)softButtonCapabilities { + return [parameters sdl_objectsForName:SDLNameSoftButtonCapabilities ofClass:SDLSoftButtonCapabilities.class]; } -- (NSMutableArray *)softButtonCapabilities { - NSMutableArray *array = [parameters objectForKey:NAMES_softButtonCapabilities]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLSoftButtonCapabilities.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLSoftButtonCapabilities alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (void)setPresetBankCapabilities:(nullable SDLPresetBankCapabilities *)presetBankCapabilities { + [parameters sdl_setObject:presetBankCapabilities forName:SDLNamePresetBankCapabilities]; } -- (void)setPresetBankCapabilities:(SDLPresetBankCapabilities *)presetBankCapabilities { - if (presetBankCapabilities != nil) { - [parameters setObject:presetBankCapabilities forKey:NAMES_presetBankCapabilities]; - } else { - [parameters removeObjectForKey:NAMES_presetBankCapabilities]; - } +- (nullable SDLPresetBankCapabilities *)presetBankCapabilities { + return [parameters sdl_objectForName:SDLNamePresetBankCapabilities ofClass:SDLPresetBankCapabilities.class]; } -- (SDLPresetBankCapabilities *)presetBankCapabilities { - NSObject *obj = [parameters objectForKey:NAMES_presetBankCapabilities]; - if (obj == nil || [obj isKindOfClass:SDLPresetBankCapabilities.class]) { - return (SDLPresetBankCapabilities *)obj; - } else { - return [[SDLPresetBankCapabilities alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setHmiZoneCapabilities:(nullable NSArray *)hmiZoneCapabilities { + [parameters sdl_setObject:hmiZoneCapabilities forName:SDLNameHMIZoneCapabilities]; } -- (void)setHmiZoneCapabilities:(NSMutableArray *)hmiZoneCapabilities { - if (hmiZoneCapabilities != nil) { - [parameters setObject:hmiZoneCapabilities forKey:NAMES_hmiZoneCapabilities]; - } else { - [parameters removeObjectForKey:NAMES_hmiZoneCapabilities]; - } +- (nullable NSArray *)hmiZoneCapabilities { + return [parameters sdl_objectForName:SDLNameHMIZoneCapabilities]; } -- (NSMutableArray *)hmiZoneCapabilities { - NSMutableArray *array = [parameters objectForKey:NAMES_hmiZoneCapabilities]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLHMIZoneCapabilities.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSString *enumString in array) { - [newList addObject:[SDLHMIZoneCapabilities valueOf:enumString]]; - } - return newList; - } +- (void)setSpeechCapabilities:(nullable NSArray *)speechCapabilities { + [parameters sdl_setObject:speechCapabilities forName:SDLNameSpeechCapabilities]; } -- (void)setSpeechCapabilities:(NSMutableArray *)speechCapabilities { - if (speechCapabilities != nil) { - [parameters setObject:speechCapabilities forKey:NAMES_speechCapabilities]; - } else { - [parameters removeObjectForKey:NAMES_speechCapabilities]; - } +- (nullable NSArray *)speechCapabilities { + return [parameters sdl_objectForName:SDLNameSpeechCapabilities]; } -- (NSMutableArray *)speechCapabilities { - NSMutableArray *array = [parameters objectForKey:NAMES_speechCapabilities]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLSpeechCapabilities.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSString *enumString in array) { - [newList addObject:[SDLSpeechCapabilities valueOf:enumString]]; - } - return newList; - } +- (void)setPrerecordedSpeech:(nullable NSArray *)prerecordedSpeech { + [parameters sdl_setObject:prerecordedSpeech forName:SDLNamePrerecordedSpeech]; } -- (void)setPrerecordedSpeech:(NSMutableArray *)prerecordedSpeech { - if (prerecordedSpeech != nil) { - [parameters setObject:prerecordedSpeech forKey:NAMES_prerecordedSpeech]; - } else { - [parameters removeObjectForKey:NAMES_prerecordedSpeech]; - } +- (nullable NSArray *)prerecordedSpeech { + return [parameters sdl_objectForName:SDLNamePrerecordedSpeech]; } -- (NSMutableArray *)prerecordedSpeech { - NSMutableArray *array = [parameters objectForKey:NAMES_prerecordedSpeech]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLPrerecordedSpeech.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSString *enumString in array) { - [newList addObject:[SDLPrerecordedSpeech valueOf:enumString]]; - } - return newList; - } +- (void)setVrCapabilities:(nullable NSArray *)vrCapabilities { + [parameters sdl_setObject:vrCapabilities forName:SDLNameVRCapabilities]; } -- (void)setVrCapabilities:(NSMutableArray *)vrCapabilities { - if (vrCapabilities != nil) { - [parameters setObject:vrCapabilities forKey:NAMES_vrCapabilities]; - } else { - [parameters removeObjectForKey:NAMES_vrCapabilities]; - } +- (nullable NSArray *)vrCapabilities { + return [parameters sdl_objectForName:SDLNameVRCapabilities]; } -- (NSMutableArray *)vrCapabilities { - NSMutableArray *array = [parameters objectForKey:NAMES_vrCapabilities]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLVRCapabilities.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSString *enumString in array) { - [newList addObject:[SDLVRCapabilities valueOf:enumString]]; - } - return newList; - } +- (void)setAudioPassThruCapabilities:(nullable NSArray *)audioPassThruCapabilities { + [parameters sdl_setObject:audioPassThruCapabilities forName:SDLNameAudioPassThruCapabilities]; } -- (void)setAudioPassThruCapabilities:(NSMutableArray *)audioPassThruCapabilities { - if (audioPassThruCapabilities != nil) { - [parameters setObject:audioPassThruCapabilities forKey:NAMES_audioPassThruCapabilities]; - } else { - [parameters removeObjectForKey:NAMES_audioPassThruCapabilities]; - } +- (nullable NSArray *)audioPassThruCapabilities { + return [parameters sdl_objectsForName:SDLNameAudioPassThruCapabilities ofClass:SDLAudioPassThruCapabilities.class]; } -- (NSMutableArray *)audioPassThruCapabilities { - NSMutableArray *array = [parameters objectForKey:NAMES_audioPassThruCapabilities]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLAudioPassThruCapabilities.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLAudioPassThruCapabilities alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (void)setPcmStreamCapabilities:(nullable SDLAudioPassThruCapabilities *)pcmStreamCapabilities { + [parameters sdl_setObject:pcmStreamCapabilities forName:SDLNamePCMStreamCapabilities]; } -- (void)setVehicleType:(SDLVehicleType *)vehicleType { - if (vehicleType != nil) { - [parameters setObject:vehicleType forKey:NAMES_vehicleType]; - } else { - [parameters removeObjectForKey:NAMES_vehicleType]; - } +- (nullable SDLAudioPassThruCapabilities *)pcmStreamCapabilities { + return [parameters sdl_objectForName:SDLNamePCMStreamCapabilities ofClass:SDLAudioPassThruCapabilities.class]; } -- (SDLVehicleType *)vehicleType { - NSObject *obj = [parameters objectForKey:NAMES_vehicleType]; - if (obj == nil || [obj isKindOfClass:SDLVehicleType.class]) { - return (SDLVehicleType *)obj; - } else { - return [[SDLVehicleType alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setVehicleType:(nullable SDLVehicleType *)vehicleType { + [parameters sdl_setObject:vehicleType forName:SDLNameVehicleType]; } -- (void)setSupportedDiagModes:(NSMutableArray *)supportedDiagModes { - if (supportedDiagModes != nil) { - [parameters setObject:supportedDiagModes forKey:NAMES_supportedDiagModes]; - } else { - [parameters removeObjectForKey:NAMES_supportedDiagModes]; - } +- (nullable SDLVehicleType *)vehicleType { + return [parameters sdl_objectForName:SDLNameVehicleType ofClass:SDLVehicleType.class]; } -- (NSMutableArray *)supportedDiagModes { - return [parameters objectForKey:NAMES_supportedDiagModes]; +- (void)setSupportedDiagModes:(nullable NSArray *> *)supportedDiagModes { + [parameters sdl_setObject:supportedDiagModes forName:SDLNameSupportedDiagnosticModes]; } -- (void)setHmiCapabilities:(SDLHMICapabilities *)hmiCapabilities { - if (hmiCapabilities != nil) { - [parameters setObject:hmiCapabilities forKey:NAMES_hmiCapabilities]; - } else { - [parameters removeObjectForKey:NAMES_hmiCapabilities]; - } +- (nullable NSArray *> *)supportedDiagModes { + return [parameters sdl_objectForName:SDLNameSupportedDiagnosticModes]; } -- (SDLHMICapabilities *)hmiCapabilities { - NSObject *obj = [parameters objectForKey:NAMES_hmiCapabilities]; - if (obj == nil || [obj isKindOfClass:[SDLHMICapabilities class]]) { - return (SDLHMICapabilities *)obj; - } else { - return [[SDLHMICapabilities alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setHmiCapabilities:(nullable SDLHMICapabilities *)hmiCapabilities { + [parameters sdl_setObject:hmiCapabilities forName:SDLNameHMICapabilities]; } -- (void)setSdlVersion:(NSString *)sdlVersion { - if (sdlVersion != nil) { - parameters[NAMES_sdlVersion] = sdlVersion; - } else { - [parameters removeObjectForKey:NAMES_sdlVersion]; - } +- (nullable SDLHMICapabilities *)hmiCapabilities { + return [parameters sdl_objectForName:SDLNameHMICapabilities ofClass:SDLHMICapabilities.class]; } -- (NSString *)sdlVersion { - return parameters[NAMES_sdlVersion]; +- (void)setSdlVersion:(nullable NSString *)sdlVersion { + [parameters sdl_setObject:sdlVersion forName:SDLNameSDLVersion]; } -- (void)setSystemSoftwareVersion:(NSString *)systemSoftwareVersion { - if (systemSoftwareVersion != nil) { - parameters[NAMES_systemSoftwareVersion] = systemSoftwareVersion; - } else { - [parameters removeObjectForKey:NAMES_systemSoftwareVersion]; - } +- (nullable NSString *)sdlVersion { + return [parameters sdl_objectForName:SDLNameSDLVersion]; +} + +- (void)setSystemSoftwareVersion:(nullable NSString *)systemSoftwareVersion { + [parameters sdl_setObject:systemSoftwareVersion forName:SDLNameSystemSoftwareVersion]; } -- (NSString *)systemSoftwareVersion { - return parameters[NAMES_systemSoftwareVersion]; +- (nullable NSString *)systemSoftwareVersion { + return [parameters sdl_objectForName:SDLNameSystemSoftwareVersion]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRemoteControlCapabilities.h b/SmartDeviceLink/SDLRemoteControlCapabilities.h new file mode 100644 index 000000000..6ccda961e --- /dev/null +++ b/SmartDeviceLink/SDLRemoteControlCapabilities.h @@ -0,0 +1,42 @@ +// +// SDLRemoteControlCapabilities.h +// + +#import "SDLRPCMessage.h" + +@class SDLClimateControlCapabilities; +@class SDLRadioControlCapabilities; +@class SDLButtonCapabilities; + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLRemoteControlCapabilities : SDLRPCStruct + +- (instancetype)initWithClimateControlCapabilities:(nullable NSArray *)climateControlCapabilities radioControlCapabilities:(nullable NSArray *)radioControlCapabilities buttonCapabilities:(nullable NSArray *)buttonCapabilities; + +/** + * @abstract If included, the platform supports RC climate controls. + * For this baseline version, maxsize=1. i.e. only one climate control module is supported. + * + * Optional, Array of SDLClimateControlCapabilities, Array length 1 - 100 + */ +@property (nullable, strong, nonatomic) NSArray *climateControlCapabilities; + +/** + * @abstract If included, the platform supports RC radio controls. + * For this baseline version, maxsize=1. i.e. only one radio control module is supported. + * + * Optional, Array of SDLRadioControlCapabilities, Array length 1 - 100 + */ +@property (nullable, strong, nonatomic) NSArray *radioControlCapabilities; + +/** + * @abstract If included, the platform supports RC button controls with the included button names. + * + * Optional, Array of SDLButtonCapabilities, Array length 1 - 100 + */ +@property (nullable, strong, nonatomic) NSArray *buttonCapabilities; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRemoteControlCapabilities.m b/SmartDeviceLink/SDLRemoteControlCapabilities.m new file mode 100644 index 000000000..1a12d7c5c --- /dev/null +++ b/SmartDeviceLink/SDLRemoteControlCapabilities.m @@ -0,0 +1,54 @@ +// +// SDLRemoteControlCapabilities.m +// + +#import "SDLRemoteControlCapabilities.h" +#import "SDLClimateControlCapabilities.h" +#import "SDLRadioControlCapabilities.h" +#import "SDLButtonCapabilities.h" +#import "NSMutableDictionary+Store.h" +#import "SDLNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLRemoteControlCapabilities + +- (instancetype)initWithClimateControlCapabilities:(nullable NSArray *)climateControlCapabilities radioControlCapabilities:(nullable NSArray *)radioControlCapabilities buttonCapabilities:(nullable NSArray *)buttonCapabilities { + self = [super init]; + if (!self) { + return nil; + } + + self.climateControlCapabilities = climateControlCapabilities; + self.radioControlCapabilities = radioControlCapabilities; + self.buttonCapabilities = buttonCapabilities; + + return self; +} + +- (void)setClimateControlCapabilities:(nullable NSArray *)climateControlCapabilities { + [store sdl_setObject:climateControlCapabilities forName:SDLNameClimateControlCapabilities]; +} + +- (nullable NSArray *)climateControlCapabilities { + return [store sdl_objectsForName:SDLNameClimateControlCapabilities ofClass:SDLClimateControlCapabilities.class]; +} + +-(void)setRadioControlCapabilities:(nullable NSArray *)radioControlCapabilities { + [store sdl_setObject:radioControlCapabilities forName:SDLNameRadioControlCapabilities ]; +} + +- (nullable NSArray *)radioControlCapabilities { + return [store sdl_objectsForName:SDLNameRadioControlCapabilities ofClass:SDLRadioControlCapabilities.class]; +} + +- (void)setButtonCapabilities:(nullable NSArray *)buttonCapabilities { + [store sdl_setObject:buttonCapabilities forName:SDLNameButtonCapabilities];} + +- (nullable NSArray *)buttonCapabilities { + return [store sdl_objectsForName:SDLNameButtonCapabilities ofClass:SDLButtonCapabilities.class]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRequestHandler.h b/SmartDeviceLink/SDLRequestHandler.h deleted file mode 100644 index d05cdfd38..000000000 --- a/SmartDeviceLink/SDLRequestHandler.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// SDLRequestHandler.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 10/6/15. -// Copyright © 2015 smartdevicelink. All rights reserved. -// - -#import - -#import "SDLNotificationConstants.h" - -NS_ASSUME_NONNULL_BEGIN - -@protocol SDLRequestHandler - -/** - * The handler that is added to any RPC implementing this protocol. - */ -@property (copy, nonatomic) SDLRPCNotificationHandler handler; - -/** - * A special init function on any RPC implementing this protocol. - * - * @param handler The handler to be called at specified times, such as events for buttons. - * - * @return An instance of the class implementing this protocol. - */ -- (instancetype)initWithHandler:(SDLRPCNotificationHandler)handler; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLRequestType.h b/SmartDeviceLink/SDLRequestType.h index a8d631234..3a3140d3f 100644 --- a/SmartDeviceLink/SDLRequestType.h +++ b/SmartDeviceLink/SDLRequestType.h @@ -4,31 +4,25 @@ #import "SDLEnum.h" -@interface SDLRequestType : SDLEnum { -} +typedef SDLEnum SDLRequestType SDL_SWIFT_ENUM; -+ (SDLRequestType *)valueOf:(NSString *)value; -+ (NSArray *)values; - -+ (SDLRequestType *)HTTP; -+ (SDLRequestType *)FILE_RESUME; -+ (SDLRequestType *)AUTH_REQUEST; -+ (SDLRequestType *)AUTH_CHALLENGE; -+ (SDLRequestType *)AUTH_ACK; -+ (SDLRequestType *)PROPRIETARY; -+ (SDLRequestType *)QUERY_APPS; -+ (SDLRequestType *)LAUNCH_APP; -+ (SDLRequestType *)LOCK_SCREEN_ICON_URL; -+ (SDLRequestType *)TRAFFIC_MESSAGE_CHANNEL; -+ (SDLRequestType *)DRIVER_PROFILE; -+ (SDLRequestType *)VOICE_SEARCH; -+ (SDLRequestType *)NAVIGATION; -+ (SDLRequestType *)PHONE; -+ (SDLRequestType *)CLIMATE; -+ (SDLRequestType *)SETTINGS; -+ (SDLRequestType *)VEHICLE_DIAGNOSTICS; -+ (SDLRequestType *)EMERGENCY; -+ (SDLRequestType *)MEDIA; -+ (SDLRequestType *)FOTA; - -@end +extern SDLRequestType const SDLRequestTypeHTTP; +extern SDLRequestType const SDLRequestTypeFileResume; +extern SDLRequestType const SDLRequestTypeAuthenticationRequest; +extern SDLRequestType const SDLRequestTypeAuthenticationChallenge; +extern SDLRequestType const SDLRequestTypeAuthenticationAck; +extern SDLRequestType const SDLRequestTypeProprietary; +extern SDLRequestType const SDLRequestTypeQueryApps; +extern SDLRequestType const SDLRequestTypeLaunchApp; +extern SDLRequestType const SDLRequestTypeLockScreenIconURL; +extern SDLRequestType const SDLRequestTypeTrafficMessageChannel; +extern SDLRequestType const SDLRequestTypeDriverProfile; +extern SDLRequestType const SDLRequestTypeVoiceSearch; +extern SDLRequestType const SDLRequestTypeNavigation; +extern SDLRequestType const SDLRequestTypePhone; +extern SDLRequestType const SDLRequestTypeClimate; +extern SDLRequestType const SDLRequestTypeSettings; +extern SDLRequestType const SDLRequestTypeVehicleDiagnostics; +extern SDLRequestType const SDLRequestTypeEmergency; +extern SDLRequestType const SDLRequestTypeMedia; +extern SDLRequestType const SDLRequestTypeFOTA; diff --git a/SmartDeviceLink/SDLRequestType.m b/SmartDeviceLink/SDLRequestType.m index 7332b9843..ba3d2d91e 100644 --- a/SmartDeviceLink/SDLRequestType.m +++ b/SmartDeviceLink/SDLRequestType.m @@ -4,207 +4,23 @@ #import "SDLRequestType.h" -SDLRequestType *SDLRequestType_HTTP = nil; -SDLRequestType *SDLRequestType_FILE_RESUME = nil; -SDLRequestType *SDLRequestType_AUTH_REQUEST = nil; -SDLRequestType *SDLRequestType_AUTH_CHALLENGE = nil; -SDLRequestType *SDLRequestType_AUTH_ACK = nil; -SDLRequestType *SDLRequestType_PROPRIETARY = nil; -SDLRequestType *SDLRequestType_QUERY_APPS = nil; -SDLRequestType *SDLRequestType_LAUNCH_APP = nil; -SDLRequestType *SDLRequestType_LOCK_SCREEN_ICON_URL = nil; -SDLRequestType *SDLRequestType_TRAFFIC_MESSAGE_CHANNEL = nil; -SDLRequestType *SDLRequestType_DRIVER_PROFILE = nil; -SDLRequestType *SDLRequestType_VOICE_SEARCH = nil; -SDLRequestType *SDLRequestType_NAVIGATION = nil; -SDLRequestType *SDLRequestType_PHONE = nil; -SDLRequestType *SDLRequestType_CLIMATE = nil; -SDLRequestType *SDLRequestType_SETTINGS = nil; -SDLRequestType *SDLRequestType_VEHICLE_DIAGNOSTICS = nil; -SDLRequestType *SDLRequestType_EMERGENCY = nil; -SDLRequestType *SDLRequestType_MEDIA = nil; -SDLRequestType *SDLRequestType_FOTA = nil; - -NSArray *SDLRequestType_values = nil; - - -@implementation SDLRequestType - -+ (SDLRequestType *)valueOf:(NSString *)value { - for (SDLRequestType *item in SDLRequestType.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLRequestType_values == nil) { - SDLRequestType_values = @[ - [SDLRequestType HTTP], - [SDLRequestType FILE_RESUME], - [SDLRequestType AUTH_REQUEST], - [SDLRequestType AUTH_CHALLENGE], - [SDLRequestType AUTH_ACK], - [SDLRequestType PROPRIETARY], - [SDLRequestType QUERY_APPS], - [SDLRequestType LAUNCH_APP], - [SDLRequestType LOCK_SCREEN_ICON_URL], - [SDLRequestType TRAFFIC_MESSAGE_CHANNEL], - [SDLRequestType DRIVER_PROFILE], - [SDLRequestType VOICE_SEARCH], - [SDLRequestType NAVIGATION], - [SDLRequestType PHONE], - [SDLRequestType CLIMATE], - [SDLRequestType SETTINGS], - [SDLRequestType VEHICLE_DIAGNOSTICS], - [SDLRequestType EMERGENCY], - [SDLRequestType MEDIA], - [SDLRequestType FOTA], - ]; - } - return SDLRequestType_values; -} - -+ (SDLRequestType *)HTTP { - if (SDLRequestType_HTTP == nil) { - SDLRequestType_HTTP = [[SDLRequestType alloc] initWithValue:@"HTTP"]; - } - return SDLRequestType_HTTP; -} - -+ (SDLRequestType *)FILE_RESUME { - if (SDLRequestType_FILE_RESUME == nil) { - SDLRequestType_FILE_RESUME = [[SDLRequestType alloc] initWithValue:@"FILE_RESUME"]; - } - return SDLRequestType_FILE_RESUME; -} - -+ (SDLRequestType *)AUTH_REQUEST { - if (SDLRequestType_AUTH_REQUEST == nil) { - SDLRequestType_AUTH_REQUEST = [[SDLRequestType alloc] initWithValue:@"AUTH_REQUEST"]; - } - return SDLRequestType_AUTH_REQUEST; -} - -+ (SDLRequestType *)AUTH_CHALLENGE { - if (SDLRequestType_AUTH_CHALLENGE == nil) { - SDLRequestType_AUTH_CHALLENGE = [[SDLRequestType alloc] initWithValue:@"AUTH_CHALLENGE"]; - } - return SDLRequestType_AUTH_CHALLENGE; -} - -+ (SDLRequestType *)AUTH_ACK { - if (SDLRequestType_AUTH_ACK == nil) { - SDLRequestType_AUTH_ACK = [[SDLRequestType alloc] initWithValue:@"AUTH_ACK"]; - } - return SDLRequestType_AUTH_ACK; -} - -+ (SDLRequestType *)PROPRIETARY { - if (SDLRequestType_PROPRIETARY == nil) { - SDLRequestType_PROPRIETARY = [[SDLRequestType alloc] initWithValue:@"PROPRIETARY"]; - } - return SDLRequestType_PROPRIETARY; -} - -+ (SDLRequestType *)QUERY_APPS { - if (SDLRequestType_QUERY_APPS == nil) { - SDLRequestType_QUERY_APPS = [[SDLRequestType alloc] initWithValue:@"QUERY_APPS"]; - } - return SDLRequestType_QUERY_APPS; -} - -+ (SDLRequestType *)LAUNCH_APP { - if (SDLRequestType_LAUNCH_APP == nil) { - SDLRequestType_LAUNCH_APP = [[SDLRequestType alloc] initWithValue:@"LAUNCH_APP"]; - } - return SDLRequestType_LAUNCH_APP; -} - -+ (SDLRequestType *)LOCK_SCREEN_ICON_URL { - if (SDLRequestType_LOCK_SCREEN_ICON_URL == nil) { - SDLRequestType_LOCK_SCREEN_ICON_URL = [[SDLRequestType alloc] initWithValue:@"LOCK_SCREEN_ICON_URL"]; - } - return SDLRequestType_LOCK_SCREEN_ICON_URL; -} - -+ (SDLRequestType *)TRAFFIC_MESSAGE_CHANNEL { - if (SDLRequestType_TRAFFIC_MESSAGE_CHANNEL == nil) { - SDLRequestType_TRAFFIC_MESSAGE_CHANNEL = [[SDLRequestType alloc] initWithValue:@"TRAFFIC_MESSAGE_CHANNEL"]; - } - return SDLRequestType_TRAFFIC_MESSAGE_CHANNEL; -} - -+ (SDLRequestType *)DRIVER_PROFILE { - if (SDLRequestType_DRIVER_PROFILE == nil) { - SDLRequestType_DRIVER_PROFILE = [[SDLRequestType alloc] initWithValue:@"DRIVER_PROFILE"]; - } - return SDLRequestType_DRIVER_PROFILE; -} - -+ (SDLRequestType *)VOICE_SEARCH { - if (SDLRequestType_VOICE_SEARCH == nil) { - SDLRequestType_VOICE_SEARCH = [[SDLRequestType alloc] initWithValue:@"VOICE_SEARCH"]; - } - return SDLRequestType_VOICE_SEARCH; -} - -+ (SDLRequestType *)NAVIGATION { - if (SDLRequestType_NAVIGATION == nil) { - SDLRequestType_NAVIGATION = [[SDLRequestType alloc] initWithValue:@"NAVIGATION"]; - } - return SDLRequestType_NAVIGATION; -} - -+ (SDLRequestType *)PHONE { - if (SDLRequestType_PHONE == nil) { - SDLRequestType_PHONE = [[SDLRequestType alloc] initWithValue:@"PHONE"]; - } - return SDLRequestType_PHONE; -} - -+ (SDLRequestType *)CLIMATE { - if (SDLRequestType_CLIMATE == nil) { - SDLRequestType_CLIMATE = [[SDLRequestType alloc] initWithValue:@"CLIMATE"]; - } - return SDLRequestType_CLIMATE; -} - -+ (SDLRequestType *)SETTINGS { - if (SDLRequestType_SETTINGS == nil) { - SDLRequestType_SETTINGS = [[SDLRequestType alloc] initWithValue:@"SETTINGS"]; - } - return SDLRequestType_SETTINGS; -} - -+ (SDLRequestType *)VEHICLE_DIAGNOSTICS { - if (SDLRequestType_VEHICLE_DIAGNOSTICS == nil) { - SDLRequestType_VEHICLE_DIAGNOSTICS = [[SDLRequestType alloc] initWithValue:@"VEHICLE_DIAGNOSTICS"]; - } - return SDLRequestType_VEHICLE_DIAGNOSTICS; -} - -+ (SDLRequestType *)EMERGENCY { - if (SDLRequestType_EMERGENCY == nil) { - SDLRequestType_EMERGENCY = [[SDLRequestType alloc] initWithValue:@"EMERGENCY"]; - } - return SDLRequestType_EMERGENCY; -} - -+ (SDLRequestType *)MEDIA { - if (SDLRequestType_MEDIA == nil) { - SDLRequestType_MEDIA = [[SDLRequestType alloc] initWithValue:@"MEDIA"]; - } - return SDLRequestType_MEDIA; -} - -+ (SDLRequestType *)FOTA { - if (SDLRequestType_FOTA == nil) { - SDLRequestType_FOTA = [[SDLRequestType alloc] initWithValue:@"FOTA"]; - } - return SDLRequestType_FOTA; -} - -@end +SDLRequestType const SDLRequestTypeHTTP = @"HTTP"; +SDLRequestType const SDLRequestTypeFileResume = @"FILE_RESUME"; +SDLRequestType const SDLRequestTypeAuthenticationRequest = @"AUTH_REQUEST"; +SDLRequestType const SDLRequestTypeAuthenticationChallenge = @"AUTH_CHALLENGE"; +SDLRequestType const SDLRequestTypeAuthenticationAck = @"AUTH_ACK"; +SDLRequestType const SDLRequestTypeProprietary = @"PROPRIETARY"; +SDLRequestType const SDLRequestTypeQueryApps = @"QUERY_APPS"; +SDLRequestType const SDLRequestTypeLaunchApp = @"LAUNCH_APP"; +SDLRequestType const SDLRequestTypeLockScreenIconURL = @"LOCK_SCREEN_ICON_URL"; +SDLRequestType const SDLRequestTypeTrafficMessageChannel = @"TRAFFIC_MESSAGE_CHANNEL"; +SDLRequestType const SDLRequestTypeDriverProfile = @"DRIVER_PROFILE"; +SDLRequestType const SDLRequestTypeVoiceSearch = @"VOICE_SEARCH"; +SDLRequestType const SDLRequestTypeNavigation = @"NAVIGATION"; +SDLRequestType const SDLRequestTypePhone = @"PHONE"; +SDLRequestType const SDLRequestTypeClimate = @"CLIMATE"; +SDLRequestType const SDLRequestTypeSettings = @"SETTINGS"; +SDLRequestType const SDLRequestTypeVehicleDiagnostics = @"VEHICLE_DIAGNOSTICS"; +SDLRequestType const SDLRequestTypeEmergency = @"EMERGENCY"; +SDLRequestType const SDLRequestTypeMedia = @"MEDIA"; +SDLRequestType const SDLRequestTypeFOTA = @"FOTA"; diff --git a/SmartDeviceLink/SDLResetGlobalProperties.h b/SmartDeviceLink/SDLResetGlobalProperties.h index b0080c422..1b77b8edc 100644 --- a/SmartDeviceLink/SDLResetGlobalProperties.h +++ b/SmartDeviceLink/SDLResetGlobalProperties.h @@ -4,7 +4,7 @@ #import "SDLRPCRequest.h" -@class SDLGlobalProperty; +#import "SDLGlobalProperty.h" /** * Resets the passed global properties to their default values as defined by @@ -22,26 +22,19 @@ * Since SmartDeviceLink 1.0 * See SetGlobalProperties */ -@interface SDLResetGlobalProperties : SDLRPCRequest { -} -/** - * @abstract Constructs a new SDLResetGlobalProperties object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLResetGlobalProperties object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLResetGlobalProperties : SDLRPCRequest -- (instancetype)initWithProperties:(NSArray *)properties; +- (instancetype)initWithProperties:(NSArray *)properties; /** * @abstract An array of one or more GlobalProperty enumeration elements * indicating which global properties to reset to their default value */ -@property (strong) NSMutableArray *properties; +@property (strong, nonatomic) NSArray *properties; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLResetGlobalProperties.m b/SmartDeviceLink/SDLResetGlobalProperties.m index 93af24f97..21242cbab 100644 --- a/SmartDeviceLink/SDLResetGlobalProperties.m +++ b/SmartDeviceLink/SDLResetGlobalProperties.m @@ -4,24 +4,21 @@ #import "SDLResetGlobalProperties.h" +#import "NSMutableDictionary+Store.h" #import "SDLGlobalProperty.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLResetGlobalProperties - (instancetype)init { - if (self = [super initWithName:NAMES_ResetGlobalProperties]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameResetGlobalProperties]) { } return self; } -- (instancetype)initWithProperties:(NSArray *)properties { +- (instancetype)initWithProperties:(NSArray *)properties { self = [self init]; if (!self) { return nil; @@ -32,27 +29,14 @@ - (instancetype)initWithProperties:(NSArray *)properties { return self; } -- (void)setProperties:(NSMutableArray *)properties { - if (properties != nil) { - [parameters setObject:properties forKey:NAMES_properties]; - } else { - [parameters removeObjectForKey:NAMES_properties]; - } +- (void)setProperties:(NSArray *)properties { + [parameters sdl_setObject:properties forName:SDLNameProperties]; } -- (NSMutableArray *)properties { - NSMutableArray *array = [parameters objectForKey:NAMES_properties]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLGlobalProperty.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSString *enumString in array) { - [newList addObject:[SDLGlobalProperty valueOf:enumString]]; - } - return newList; - } +- (NSArray *)properties { + return [parameters sdl_objectForName:SDLNameProperties]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLResetGlobalPropertiesResponse.h b/SmartDeviceLink/SDLResetGlobalPropertiesResponse.h index 5e576445a..23a043cd6 100644 --- a/SmartDeviceLink/SDLResetGlobalPropertiesResponse.h +++ b/SmartDeviceLink/SDLResetGlobalPropertiesResponse.h @@ -9,18 +9,11 @@ * * Since SmartDeviceLink 1.0 */ -@interface SDLResetGlobalPropertiesResponse : SDLRPCResponse { -} -/** - * @abstract Constructs a new SDLResetGlobalPropertiesResponse object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLResetGlobalPropertiesResponse object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLResetGlobalPropertiesResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLResetGlobalPropertiesResponse.m b/SmartDeviceLink/SDLResetGlobalPropertiesResponse.m index e43b61a40..4db428b7b 100644 --- a/SmartDeviceLink/SDLResetGlobalPropertiesResponse.m +++ b/SmartDeviceLink/SDLResetGlobalPropertiesResponse.m @@ -4,20 +4,19 @@ #import "SDLResetGlobalPropertiesResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLResetGlobalPropertiesResponse - (instancetype)init { - if (self = [super initWithName:NAMES_ResetGlobalProperties]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameResetGlobalProperties]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLResponseDispatcher.h b/SmartDeviceLink/SDLResponseDispatcher.h index f89c5cc59..dae3e64a2 100644 --- a/SmartDeviceLink/SDLResponseDispatcher.h +++ b/SmartDeviceLink/SDLResponseDispatcher.h @@ -38,18 +38,23 @@ NS_ASSUME_NONNULL_BEGIN /** * Holds a map of command ids and their corresponding blocks. */ -@property (strong, nonatomic, readonly) NSMapTable *commandHandlerMap; +@property (strong, nonatomic, readonly) NSMapTable *commandHandlerMap; /** * Holds a map of button names and their corresponding blocks. */ -@property (strong, nonatomic, readonly) NSMapTable *buttonHandlerMap; +@property (strong, nonatomic, readonly) NSMapTable *buttonHandlerMap; /** * Holds a map of soft button ids and their corresponding blocks. */ -@property (strong, nonatomic, readonly) NSMapTable *customButtonHandlerMap; +@property (strong, nonatomic, readonly) NSMapTable *customButtonHandlerMap; +/** + * Holds an audio pass thru block. + */ +@property (strong, nonatomic, readonly, nullable) SDLAudioPassThruHandler audioPassThruHandler; + /** * Create a new response dispatcher. * diff --git a/SmartDeviceLink/SDLResponseDispatcher.m b/SmartDeviceLink/SDLResponseDispatcher.m index b5bd9f915..ede7e51fb 100644 --- a/SmartDeviceLink/SDLResponseDispatcher.m +++ b/SmartDeviceLink/SDLResponseDispatcher.m @@ -15,11 +15,16 @@ #import "SDLDeleteCommand.h" #import "SDLDeleteCommandResponse.h" #import "SDLError.h" +#import "SDLOnAudioPassThru.h" #import "SDLOnButtonEvent.h" #import "SDLOnButtonPress.h" #import "SDLOnCommand.h" +#import "SDLPerformAudioPassThru.h" +#import "SDLPerformAudioPassThruResponse.h" #import "SDLRPCResponse.h" #import "SDLResult.h" +#import "SDLRPCNotificationNotification.h" +#import "SDLRPCResponseNotification.h" #import "SDLScrollableMessage.h" #import "SDLShow.h" #import "SDLSoftButton.h" @@ -30,6 +35,13 @@ NS_ASSUME_NONNULL_BEGIN +@interface SDLResponseDispatcher () + +@property (strong, nonatomic, readwrite, nullable) SDLAudioPassThruHandler audioPassThruHandler; + +@end + + @implementation SDLResponseDispatcher - (instancetype)init { @@ -60,6 +72,9 @@ - (instancetype)initWithNotificationDispatcher:(nullable id)dispatcher { // Commands [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_runHandlerForCommand:) name:SDLDidReceiveCommandNotification object:dispatcher]; + + // Audio Pass Thru + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_runHandlerForAudioPassThru:) name:SDLDidReceiveAudioPassThruNotification object:dispatcher]; return self; } @@ -82,7 +97,7 @@ - (void)storeRequest:(SDLRPCRequest *)request handler:(nullable SDLResponseHandl } else if ([request isKindOfClass:[SDLSubscribeButton class]]) { // Convert SDLButtonName to NSString, since it doesn't conform to SDLSubscribeButton *subscribeButton = (SDLSubscribeButton *)request; - NSString *buttonName = subscribeButton.buttonName.value; + SDLButtonName buttonName = subscribeButton.buttonName; if (!buttonName) { @throw [NSException sdl_missingIdException]; } @@ -98,6 +113,9 @@ - (void)storeRequest:(SDLRPCRequest *)request handler:(nullable SDLResponseHandl } else if ([request isKindOfClass:[SDLShow class]]) { SDLShow *show = (SDLShow *)request; [self sdl_addToCustomButtonHandlerMap:show.softButtons]; + } else if ([request isKindOfClass:[SDLPerformAudioPassThru class]]) { + SDLPerformAudioPassThru *performAudioPassThru = (SDLPerformAudioPassThru *)request; + self.audioPassThruHandler = performAudioPassThru.audioDataHandler; } // Always store the request, it's needed in some cases whether or not there was a handler (e.g. DeleteCommand). @@ -118,9 +136,10 @@ - (void)clear { [self.commandHandlerMap removeAllObjects]; [self.buttonHandlerMap removeAllObjects]; [self.customButtonHandlerMap removeAllObjects]; + _audioPassThruHandler = nil; } -- (void)sdl_addToCustomButtonHandlerMap:(NSMutableArray *)softButtons { +- (void)sdl_addToCustomButtonHandlerMap:(NSArray *)softButtons { for (SDLSoftButton *sb in softButtons) { if (!sb.softButtonID) { @throw [NSException sdl_missingIdException]; @@ -135,17 +154,16 @@ - (void)sdl_addToCustomButtonHandlerMap:(NSMutableArray *)softB #pragma mark - Notification Handler // Called by notifications -- (void)sdl_runHandlersForResponse:(NSNotification *)notification { - NSAssert([notification.userInfo[SDLNotificationUserInfoObject] isKindOfClass:[SDLRPCResponse class]], @"A notification was sent with an unanticipated object"); - if (![notification.userInfo[SDLNotificationUserInfoObject] isKindOfClass:[SDLRPCResponse class]]) { +- (void)sdl_runHandlersForResponse:(SDLRPCResponseNotification *)notification { + if (![notification isResponseKindOfClass:[SDLRPCResponse class]]) { return; } - __kindof SDLRPCResponse *response = notification.userInfo[SDLNotificationUserInfoObject]; + __kindof SDLRPCResponse *response = notification.response; NSError *error = nil; if (![response.success boolValue]) { - error = [NSError sdl_lifecycle_rpcErrorWithDescription:response.resultCode.value andReason:response.info]; + error = [NSError sdl_lifecycle_rpcErrorWithDescription:response.resultCode andReason:response.info]; } // Find the appropriate request completion handler, remove the request and response handler @@ -164,25 +182,26 @@ - (void)sdl_runHandlersForResponse:(NSNotification *)notification { return; } - // If it's a DeleteCommand or UnsubscribeButton, we need to remove handlers for the corresponding commands / buttons + // If it's a DeleteCommand, UnsubscribeButton, or PerformAudioPassThru we need to remove handlers for the corresponding RPCs if ([response isKindOfClass:[SDLDeleteCommandResponse class]]) { SDLDeleteCommand *deleteCommandRequest = (SDLDeleteCommand *)request; NSNumber *deleteCommandId = deleteCommandRequest.cmdID; [self.commandHandlerMap safeRemoveObjectForKey:deleteCommandId]; } else if ([response isKindOfClass:[SDLUnsubscribeButtonResponse class]]) { SDLUnsubscribeButton *unsubscribeButtonRequest = (SDLUnsubscribeButton *)request; - NSString *unsubscribeButtonName = unsubscribeButtonRequest.buttonName.value; + SDLButtonName unsubscribeButtonName = unsubscribeButtonRequest.buttonName; [self.buttonHandlerMap safeRemoveObjectForKey:unsubscribeButtonName]; + } else if ([response isKindOfClass:[SDLPerformAudioPassThruResponse class]]) { + _audioPassThruHandler = nil; } } #pragma mark Command -- (void)sdl_runHandlerForCommand:(NSNotification *)notification { - SDLOnCommand *onCommandNotification = notification.userInfo[SDLNotificationUserInfoObject]; - SDLRPCNotificationHandler handler = nil; +- (void)sdl_runHandlerForCommand:(SDLRPCNotificationNotification *)notification { + SDLOnCommand *onCommandNotification = notification.notification; + SDLRPCCommandNotificationHandler handler = self.commandHandlerMap[onCommandNotification.cmdID]; - handler = self.commandHandlerMap[onCommandNotification.cmdID]; if (handler) { handler(onCommandNotification); } @@ -190,29 +209,43 @@ - (void)sdl_runHandlerForCommand:(NSNotification *)notification { #pragma mark Button -- (void)sdl_runHandlerForButton:(NSNotification *)notification { - __kindof SDLRPCNotification *rpcNotification = notification.userInfo[SDLNotificationUserInfoObject]; +- (void)sdl_runHandlerForButton:(SDLRPCNotificationNotification *)notification { + __kindof SDLRPCNotification *rpcNotification = notification.notification; - SDLRPCNotificationHandler handler = nil; - SDLButtonName *name = nil; + SDLRPCButtonNotificationHandler handler = nil; + SDLButtonName name = nil; NSNumber *customID = nil; - if ([rpcNotification isKindOfClass:[SDLOnButtonEvent class]]) { + if ([rpcNotification isMemberOfClass:[SDLOnButtonEvent class]]) { name = ((SDLOnButtonEvent *)rpcNotification).buttonName; customID = ((SDLOnButtonEvent *)rpcNotification).customButtonID; - } else if ([rpcNotification isKindOfClass:[SDLOnButtonPress class]]) { + } else if ([rpcNotification isMemberOfClass:[SDLOnButtonPress class]]) { name = ((SDLOnButtonPress *)rpcNotification).buttonName; customID = ((SDLOnButtonPress *)rpcNotification).customButtonID; } - if ([name isEqualToEnum:[SDLButtonName CUSTOM_BUTTON]]) { + if ([name isEqualToEnum:SDLButtonNameCustomButton]) { handler = self.customButtonHandlerMap[customID]; } else { - handler = self.buttonHandlerMap[name.value]; + handler = self.buttonHandlerMap[name]; } if (handler) { - handler(rpcNotification); + if ([rpcNotification isMemberOfClass:[SDLOnButtonEvent class]]) { + handler(nil, rpcNotification); + } else if ([rpcNotification isMemberOfClass:[SDLOnButtonPress class]]) { + handler(rpcNotification, nil); + } + } +} + +#pragma mark Audio Pass Thru + +- (void)sdl_runHandlerForAudioPassThru:(SDLRPCNotificationNotification *)notification { + SDLOnAudioPassThru *onAudioPassThruNotification = notification.notification; + + if (self.audioPassThruHandler) { + self.audioPassThruHandler(onAudioPassThruNotification.bulkData); } } diff --git a/SmartDeviceLink/SDLResult.h b/SmartDeviceLink/SDLResult.h index f11404c5a..dadc0bec2 100644 --- a/SmartDeviceLink/SDLResult.h +++ b/SmartDeviceLink/SDLResult.h @@ -9,26 +9,12 @@ * * @since SDL 1.0 */ -@interface SDLResult : SDLEnum { -} - -/** - * @abstract get SDLResult according value string - * @param value The value of the string to get an object for - * @return SDLResult object - */ -+ (SDLResult *)valueOf:(NSString *)value; - -/** - @abstract declare an array to store all possible SDLResult values - @return the array - */ -+ (NSArray *)values; +typedef SDLEnum SDLResult SDL_SWIFT_ENUM; /** * @abstract The request succeeded */ -+ (SDLResult *)SUCCESS; +extern SDLResult const SDLResultSuccess; /** * @abstract Result code : Invalid Data @@ -41,26 +27,26 @@ *
  • Invalid characters
  • *
  • Empty string
  • */ -+ (SDLResult *)INVALID_DATA; +extern SDLResult const SDLResultInvalidData; -+ (SDLResult *)CHAR_LIMIT_EXCEEDED; +extern SDLResult const SDLResultCharacterLimitExceeded; /** * @abstract The request is not supported by SDL */ -+ (SDLResult *)UNSUPPORTED_REQUEST; +extern SDLResult const SDLResultUnsupportedRequest; /** * @abstract The system could not process the request because the necessary memory couldn't be allocated */ -+ (SDLResult *)OUT_OF_MEMORY; +extern SDLResult const SDLResultOutOfMemory; /** * @abstract There are too many requests pending (means that the response has not been delivered yet). * * @discussion There is a limit of 1000 pending requests at a time. */ -+ (SDLResult *)TOO_MANY_PENDING_REQUESTS; +extern SDLResult const SDLResultTooManyPendingRequests; /** * @abstract One of the provided IDs is not valid. @@ -69,136 +55,143 @@ *
  • CommandID
  • *
  • MenuID
  • */ -+ (SDLResult *)INVALID_ID; +extern SDLResult const SDLResultInvalidId; /** * @abstract The provided name or synonym is a duplicate of some already-defined name or synonym. */ -+ (SDLResult *)DUPLICATE_NAME; +extern SDLResult const SDLResultDuplicateName; /** * There are already too many registered applications. */ -+ (SDLResult *)TOO_MANY_APPLICATIONS; +extern SDLResult const SDLResultTooManyApplications; /** * RegisterApplication has been called again, after a RegisterApplication was successful before. */ -+ (SDLResult *)APPLICATION_REGISTERED_ALREADY; +extern SDLResult const SDLResultApplicationRegisteredAlready; /** * The Head Unit doesn't support the protocol that is requested by the mobile application. */ -+ (SDLResult *)UNSUPPORTED_VERSION; +extern SDLResult const SDLResultUnsupportedVersion; /** * The requested language is currently not supported. Might be because of a mismatch of the currently active language on the head unit and the requested language. */ -+ (SDLResult *)WRONG_LANGUAGE; +extern SDLResult const SDLResultWrongLanguage; /** * A command can not be executed because no application has been registered with RegisterApplication. */ -+ (SDLResult *)APPLICATION_NOT_REGISTERED; +extern SDLResult const SDLResultApplicationNotRegistered; /** * The data may not be changed, because it is currently in use. For example when trying to delete a command set that is currently involved in an interaction. */ -+ (SDLResult *)IN_USE; +extern SDLResult const SDLResultInUse; /** * The user has turned off access to vehicle data, and it is globally unavailable to mobile applications. */ -+ (SDLResult *)VEHICLE_DATA_NOT_ALLOWED; +extern SDLResult const SDLResultVehicleDataNotAllowed; /** * The requested vehicle data is not available on this vehicle or is not published. */ -+ (SDLResult *)VEHICLE_DATA_NOT_AVAILABLE; +extern SDLResult const SDLResultVehicleDataNotAvailable; /** * The requested command was rejected, e.g. because 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. */ -+ (SDLResult *)REJECTED; +extern SDLResult const SDLResultRejected; /** * A command was aborted, for example due to user interaction (e.g. user pressed button). Or an HMI command (e.g. Speak) is aborted because a higher priority HMI command (e.g. Alert) was requested. */ -+ (SDLResult *)ABORTED; +extern SDLResult const SDLResultAborted; /** * 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. */ -+ (SDLResult *)IGNORED; +extern SDLResult const SDLResultIgnored; /** * A button that was requested for subscription is not supported under the current system. */ -+ (SDLResult *)UNSUPPORTED_RESOURCE; +extern SDLResult const SDLResultUnsupportedResource; /** * A specified file could not be found on the head unit. */ -+ (SDLResult *)FILE_NOT_FOUND; +extern SDLResult const SDLResultFileNotFound; /** * Provided data is valid but something went wrong in the lower layers. */ -+ (SDLResult *)GENERIC_ERROR; +extern SDLResult const SDLResultGenericError; /** * RPC is not authorized in local policy table. */ -+ (SDLResult *)DISALLOWED; +extern SDLResult const SDLResultDisallowed; /** * RPC is included in a functional group explicitly blocked by the user. */ -+ (SDLResult *)USER_DISALLOWED; +extern SDLResult const SDLResultUserDisallowed; /** * Overlay reached the maximum timeout and closed. */ -+ (SDLResult *)TIMED_OUT; +extern SDLResult const SDLResultTimedOut; /** * User selected to Cancel Route. */ -+ (SDLResult *)CANCEL_ROUTE; +extern SDLResult const SDLResultCancelRoute; /** * The RPC (e.g. ReadDID) executed successfully but the data exceeded the platform maximum threshold and thus, only part of the data is available. */ -+ (SDLResult *)TRUNCATED_DATA; - +extern SDLResult const SDLResultTruncatedData; /** * The user interrupted the RPC (e.g. PerformAudioPassThru) and indicated to start over. Note, the app must issue the new RPC. */ -+ (SDLResult *)RETRY; +extern SDLResult const SDLResultRetry; /** * The RPC (e.g. SubscribeVehicleData) executed successfully but one or more items have a warning or failure. */ -+ (SDLResult *)WARNINGS; +extern SDLResult const SDLResultWarnings; /** * The RPC (e.g. Slider) executed successfully and the user elected to save the current position / value. */ -+ (SDLResult *)SAVED; +extern SDLResult const SDLResultSaved; /** * The certificate provided during authentication is invalid. */ -+ (SDLResult *)INVALID_CERT; +extern SDLResult const SDLResultInvalidCertificate; /** * The certificate provided during authentication is expired. */ -+ (SDLResult *)EXPIRED_CERT; +extern SDLResult const SDLResultExpiredCertificate; /** * 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. */ -+ (SDLResult *)RESUME_FAILED; +extern SDLResult const SDLResultResumeFailed; + +/** + * The requested data is not available on this vehicle or is not published for the connected app. + */ +extern SDLResult const SDLResultDataNotAvailable; -@end +/** + * The requested data is read only thus cannot be change via remote control . + */ +extern SDLResult const SDLResultReadOnly; diff --git a/SmartDeviceLink/SDLResult.m b/SmartDeviceLink/SDLResult.m index 1ef2806c3..77c8c5529 100644 --- a/SmartDeviceLink/SDLResult.m +++ b/SmartDeviceLink/SDLResult.m @@ -4,324 +4,39 @@ #import "SDLResult.h" -SDLResult *SDLResult_SUCCESS = nil; -SDLResult *SDLResult_INVALID_DATA = nil; -SDLResult *SDLResult_CHAR_LIMIT_EXCEEDED = nil; -SDLResult *SDLResult_UNSUPPORTED_REQUEST = nil; -SDLResult *SDLResult_OUT_OF_MEMORY = nil; -SDLResult *SDLResult_TOO_MANY_PENDING_REQUESTS = nil; -SDLResult *SDLResult_INVALID_ID = nil; -SDLResult *SDLResult_DUPLICATE_NAME = nil; -SDLResult *SDLResult_TOO_MANY_APPLICATIONS = nil; -SDLResult *SDLResult_APPLICATION_REGISTERED_ALREADY = nil; -SDLResult *SDLResult_UNSUPPORTED_VERSION = nil; -SDLResult *SDLResult_WRONG_LANGUAGE = nil; -SDLResult *SDLResult_APPLICATION_NOT_REGISTERED = nil; -SDLResult *SDLResult_IN_USE = nil; -SDLResult *SDLResult_VEHICLE_DATA_NOT_ALLOWED = nil; -SDLResult *SDLResult_VEHICLE_DATA_NOT_AVAILABLE = nil; -SDLResult *SDLResult_REJECTED = nil; -SDLResult *SDLResult_ABORTED = nil; -SDLResult *SDLResult_IGNORED = nil; -SDLResult *SDLResult_UNSUPPORTED_RESOURCE = nil; -SDLResult *SDLResult_FILE_NOT_FOUND = nil; -SDLResult *SDLResult_GENERIC_ERROR = nil; -SDLResult *SDLResult_DISALLOWED = nil; -SDLResult *SDLResult_USER_DISALLOWED = nil; -SDLResult *SDLResult_TIMED_OUT = nil; -SDLResult *SDLResult_CANCEL_ROUTE = nil; -SDLResult *SDLResult_TRUNCATED_DATA = nil; -SDLResult *SDLResult_RETRY = nil; -SDLResult *SDLResult_WARNINGS = nil; -SDLResult *SDLResult_SAVED = nil; -SDLResult *SDLResult_INVALID_CERT = nil; -SDLResult *SDLResult_EXPIRED_CERT = nil; -SDLResult *SDLResult_RESUME_FAILED = nil; +SDLResult const SDLResultSuccess = @"SUCCESS"; +SDLResult const SDLResultInvalidData = @"INVALID_DATA"; +SDLResult const SDLResultCharacterLimitExceeded = @"CHAR_LIMIT_EXCEEDED"; +SDLResult const SDLResultUnsupportedRequest = @"UNSUPPORTED_REQUEST"; +SDLResult const SDLResultOutOfMemory = @"OUT_OF_MEMORY"; +SDLResult const SDLResultTooManyPendingRequests = @"TOO_MANY_PENDING_REQUESTS"; +SDLResult const SDLResultInvalidId = @"INVALID_ID"; +SDLResult const SDLResultDuplicateName = @"DUPLICATE_NAME"; +SDLResult const SDLResultTooManyApplications = @"TOO_MANY_APPLICATIONS"; +SDLResult const SDLResultApplicationRegisteredAlready = @"APPLICATION_REGISTERED_ALREADY"; +SDLResult const SDLResultUnsupportedVersion = @"UNSUPPORTED_VERSION"; +SDLResult const SDLResultWrongLanguage = @"WRONG_LANGUAGE"; +SDLResult const SDLResultApplicationNotRegistered = @"APPLICATION_NOT_REGISTERED"; +SDLResult const SDLResultInUse = @"IN_USE"; +SDLResult const SDLResultVehicleDataNotAllowed = @"VEHICLE_DATA_NOT_ALLOWED"; +SDLResult const SDLResultVehicleDataNotAvailable = @"VEHICLE_DATA_NOT_AVAILABLE"; +SDLResult const SDLResultRejected = @"REJECTED"; +SDLResult const SDLResultAborted = @"ABORTED"; +SDLResult const SDLResultIgnored = @"IGNORED"; +SDLResult const SDLResultUnsupportedResource = @"UNSUPPORTED_RESOURCE"; +SDLResult const SDLResultFileNotFound = @"FILE_NOT_FOUND"; +SDLResult const SDLResultGenericError = @"GENERIC_ERROR"; +SDLResult const SDLResultDisallowed = @"DISALLOWED"; +SDLResult const SDLResultUserDisallowed = @"USER_DISALLOWED"; +SDLResult const SDLResultTimedOut = @"TIMED_OUT"; +SDLResult const SDLResultCancelRoute = @"CANCEL_ROUTE"; +SDLResult const SDLResultTruncatedData = @"TRUNCATED_DATA"; +SDLResult const SDLResultRetry = @"RETRY"; +SDLResult const SDLResultWarnings = @"WARNINGS"; +SDLResult const SDLResultSaved = @"SAVED"; +SDLResult const SDLResultInvalidCertificate = @"INVALID_CERT"; +SDLResult const SDLResultExpiredCertificate = @"EXPIRED_CERT"; +SDLResult const SDLResultResumeFailed = @"RESUME_FAILED"; +SDLResult const SDLResultDataNotAvailable = @"DATA_NOT_AVAILABLE"; +SDLResult const SDLResultReadOnly = @"READ_ONLY"; -NSArray *SDLResult_values = nil; - -@implementation SDLResult - -+ (SDLResult *)valueOf:(NSString *)value { - for (SDLResult *item in SDLResult.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLResult_values == nil) { - SDLResult_values = @[ - [SDLResult SUCCESS], - [SDLResult INVALID_DATA], - [SDLResult CHAR_LIMIT_EXCEEDED], - [SDLResult UNSUPPORTED_REQUEST], - [SDLResult OUT_OF_MEMORY], - [SDLResult TOO_MANY_PENDING_REQUESTS], - [SDLResult INVALID_ID], - [SDLResult DUPLICATE_NAME], - [SDLResult TOO_MANY_APPLICATIONS], - [SDLResult APPLICATION_REGISTERED_ALREADY], - [SDLResult UNSUPPORTED_VERSION], - [SDLResult WRONG_LANGUAGE], - [SDLResult APPLICATION_NOT_REGISTERED], - [SDLResult IN_USE], - [SDLResult VEHICLE_DATA_NOT_ALLOWED], - [SDLResult VEHICLE_DATA_NOT_AVAILABLE], - [SDLResult REJECTED], - [SDLResult ABORTED], - [SDLResult IGNORED], - [SDLResult UNSUPPORTED_RESOURCE], - [SDLResult FILE_NOT_FOUND], - [SDLResult GENERIC_ERROR], - [SDLResult DISALLOWED], - [SDLResult USER_DISALLOWED], - [SDLResult TIMED_OUT], - [SDLResult CANCEL_ROUTE], - [SDLResult TRUNCATED_DATA], - [SDLResult RETRY], - [SDLResult WARNINGS], - [SDLResult SAVED], - [SDLResult INVALID_CERT], - [SDLResult EXPIRED_CERT], - [SDLResult RESUME_FAILED], - ]; - } - return SDLResult_values; -} - -+ (SDLResult *)SUCCESS { - if (SDLResult_SUCCESS == nil) { - SDLResult_SUCCESS = [[SDLResult alloc] initWithValue:@"SUCCESS"]; - } - return SDLResult_SUCCESS; -} - -+ (SDLResult *)INVALID_DATA { - if (SDLResult_INVALID_DATA == nil) { - SDLResult_INVALID_DATA = [[SDLResult alloc] initWithValue:@"INVALID_DATA"]; - } - return SDLResult_INVALID_DATA; -} - -+ (SDLResult *)CHAR_LIMIT_EXCEEDED { - if (SDLResult_CHAR_LIMIT_EXCEEDED == nil) { - SDLResult_CHAR_LIMIT_EXCEEDED = [[SDLResult alloc] initWithValue:@"CHAR_LIMIT_EXCEEDED"]; - } - - return SDLResult_CHAR_LIMIT_EXCEEDED; -} - -+ (SDLResult *)UNSUPPORTED_REQUEST { - if (SDLResult_UNSUPPORTED_REQUEST == nil) { - SDLResult_UNSUPPORTED_REQUEST = [[SDLResult alloc] initWithValue:@"UNSUPPORTED_REQUEST"]; - } - return SDLResult_UNSUPPORTED_REQUEST; -} - -+ (SDLResult *)OUT_OF_MEMORY { - if (SDLResult_OUT_OF_MEMORY == nil) { - SDLResult_OUT_OF_MEMORY = [[SDLResult alloc] initWithValue:@"OUT_OF_MEMORY"]; - } - return SDLResult_OUT_OF_MEMORY; -} - -+ (SDLResult *)TOO_MANY_PENDING_REQUESTS { - if (SDLResult_TOO_MANY_PENDING_REQUESTS == nil) { - SDLResult_TOO_MANY_PENDING_REQUESTS = [[SDLResult alloc] initWithValue:@"TOO_MANY_PENDING_REQUESTS"]; - } - return SDLResult_TOO_MANY_PENDING_REQUESTS; -} - -+ (SDLResult *)INVALID_ID { - if (SDLResult_INVALID_ID == nil) { - SDLResult_INVALID_ID = [[SDLResult alloc] initWithValue:@"INVALID_ID"]; - } - return SDLResult_INVALID_ID; -} - -+ (SDLResult *)DUPLICATE_NAME { - if (SDLResult_DUPLICATE_NAME == nil) { - SDLResult_DUPLICATE_NAME = [[SDLResult alloc] initWithValue:@"DUPLICATE_NAME"]; - } - return SDLResult_DUPLICATE_NAME; -} - -+ (SDLResult *)TOO_MANY_APPLICATIONS { - if (SDLResult_TOO_MANY_APPLICATIONS == nil) { - SDLResult_TOO_MANY_APPLICATIONS = [[SDLResult alloc] initWithValue:@"TOO_MANY_APPLICATIONS"]; - } - return SDLResult_TOO_MANY_APPLICATIONS; -} - -+ (SDLResult *)APPLICATION_REGISTERED_ALREADY { - if (SDLResult_APPLICATION_REGISTERED_ALREADY == nil) { - SDLResult_APPLICATION_REGISTERED_ALREADY = [[SDLResult alloc] initWithValue:@"APPLICATION_REGISTERED_ALREADY"]; - } - return SDLResult_APPLICATION_REGISTERED_ALREADY; -} - -+ (SDLResult *)UNSUPPORTED_VERSION { - if (SDLResult_UNSUPPORTED_VERSION == nil) { - SDLResult_UNSUPPORTED_VERSION = [[SDLResult alloc] initWithValue:@"UNSUPPORTED_VERSION"]; - } - return SDLResult_UNSUPPORTED_VERSION; -} - -+ (SDLResult *)WRONG_LANGUAGE { - if (SDLResult_WRONG_LANGUAGE == nil) { - SDLResult_WRONG_LANGUAGE = [[SDLResult alloc] initWithValue:@"WRONG_LANGUAGE"]; - } - return SDLResult_WRONG_LANGUAGE; -} - -+ (SDLResult *)APPLICATION_NOT_REGISTERED { - if (SDLResult_APPLICATION_NOT_REGISTERED == nil) { - SDLResult_APPLICATION_NOT_REGISTERED = [[SDLResult alloc] initWithValue:@"APPLICATION_NOT_REGISTERED"]; - } - return SDLResult_APPLICATION_NOT_REGISTERED; -} - -+ (SDLResult *)IN_USE { - if (SDLResult_IN_USE == nil) { - SDLResult_IN_USE = [[SDLResult alloc] initWithValue:@"IN_USE"]; - } - return SDLResult_IN_USE; -} - -+ (SDLResult *)VEHICLE_DATA_NOT_ALLOWED { - if (SDLResult_VEHICLE_DATA_NOT_ALLOWED == nil) { - SDLResult_VEHICLE_DATA_NOT_ALLOWED = [[SDLResult alloc] initWithValue:@"VEHICLE_DATA_NOT_ALLOWED"]; - } - return SDLResult_VEHICLE_DATA_NOT_ALLOWED; -} - -+ (SDLResult *)VEHICLE_DATA_NOT_AVAILABLE { - if (SDLResult_VEHICLE_DATA_NOT_AVAILABLE == nil) { - SDLResult_VEHICLE_DATA_NOT_AVAILABLE = [[SDLResult alloc] initWithValue:@"VEHICLE_DATA_NOT_AVAILABLE"]; - } - return SDLResult_VEHICLE_DATA_NOT_AVAILABLE; -} - -+ (SDLResult *)REJECTED { - if (SDLResult_REJECTED == nil) { - SDLResult_REJECTED = [[SDLResult alloc] initWithValue:@"REJECTED"]; - } - return SDLResult_REJECTED; -} - -+ (SDLResult *)ABORTED { - if (SDLResult_ABORTED == nil) { - SDLResult_ABORTED = [[SDLResult alloc] initWithValue:@"ABORTED"]; - } - return SDLResult_ABORTED; -} - -+ (SDLResult *)IGNORED { - if (SDLResult_IGNORED == nil) { - SDLResult_IGNORED = [[SDLResult alloc] initWithValue:@"IGNORED"]; - } - return SDLResult_IGNORED; -} - -+ (SDLResult *)UNSUPPORTED_RESOURCE { - if (SDLResult_UNSUPPORTED_RESOURCE == nil) { - SDLResult_UNSUPPORTED_RESOURCE = [[SDLResult alloc] initWithValue:@"UNSUPPORTED_RESOURCE"]; - } - return SDLResult_UNSUPPORTED_RESOURCE; -} - -+ (SDLResult *)FILE_NOT_FOUND { - if (SDLResult_FILE_NOT_FOUND == nil) { - SDLResult_FILE_NOT_FOUND = [[SDLResult alloc] initWithValue:@"FILE_NOT_FOUND"]; - } - return SDLResult_FILE_NOT_FOUND; -} - -+ (SDLResult *)GENERIC_ERROR { - if (SDLResult_GENERIC_ERROR == nil) { - SDLResult_GENERIC_ERROR = [[SDLResult alloc] initWithValue:@"GENERIC_ERROR"]; - } - return SDLResult_GENERIC_ERROR; -} - -+ (SDLResult *)DISALLOWED { - if (SDLResult_DISALLOWED == nil) { - SDLResult_DISALLOWED = [[SDLResult alloc] initWithValue:@"DISALLOWED"]; - } - return SDLResult_DISALLOWED; -} - -+ (SDLResult *)USER_DISALLOWED { - if (SDLResult_USER_DISALLOWED == nil) { - SDLResult_USER_DISALLOWED = [[SDLResult alloc] initWithValue:@"USER_DISALLOWED"]; - } - return SDLResult_USER_DISALLOWED; -} - -+ (SDLResult *)TIMED_OUT { - if (SDLResult_TIMED_OUT == nil) { - SDLResult_TIMED_OUT = [[SDLResult alloc] initWithValue:@"TIMED_OUT"]; - } - return SDLResult_TIMED_OUT; -} - -+ (SDLResult *)CANCEL_ROUTE { - if (SDLResult_CANCEL_ROUTE == nil) { - SDLResult_CANCEL_ROUTE = [[SDLResult alloc] initWithValue:@"CANCEL_ROUTE"]; - } - return SDLResult_CANCEL_ROUTE; -} - -+ (SDLResult *)TRUNCATED_DATA { - if (SDLResult_TRUNCATED_DATA == nil) { - SDLResult_TRUNCATED_DATA = [[SDLResult alloc] initWithValue:@"TRUNCATED_DATA"]; - } - return SDLResult_TRUNCATED_DATA; -} - -+ (SDLResult *)RETRY { - if (SDLResult_RETRY == nil) { - SDLResult_RETRY = [[SDLResult alloc] initWithValue:@"RETRY"]; - } - return SDLResult_RETRY; -} - -+ (SDLResult *)WARNINGS { - if (SDLResult_WARNINGS == nil) { - SDLResult_WARNINGS = [[SDLResult alloc] initWithValue:@"WARNINGS"]; - } - return SDLResult_WARNINGS; -} - -+ (SDLResult *)SAVED { - if (SDLResult_SAVED == nil) { - SDLResult_SAVED = [[SDLResult alloc] initWithValue:@"SAVED"]; - } - return SDLResult_SAVED; -} - -+ (SDLResult *)INVALID_CERT { - if (SDLResult_INVALID_CERT == nil) { - SDLResult_INVALID_CERT = [[SDLResult alloc] initWithValue:@"INVALID_CERT"]; - } - return SDLResult_INVALID_CERT; -} - -+ (SDLResult *)EXPIRED_CERT { - if (SDLResult_EXPIRED_CERT == nil) { - SDLResult_EXPIRED_CERT = [[SDLResult alloc] initWithValue:@"EXPIRED_CERT"]; - } - return SDLResult_EXPIRED_CERT; -} - -+ (SDLResult *)RESUME_FAILED { - if (SDLResult_RESUME_FAILED == nil) { - SDLResult_RESUME_FAILED = [[SDLResult alloc] initWithValue:@"RESUME_FAILED"]; - } - return SDLResult_RESUME_FAILED; -} - -@end diff --git a/SmartDeviceLink/SDLSamplingRate.h b/SmartDeviceLink/SDLSamplingRate.h index 28d3d35dc..36f03961e 100644 --- a/SmartDeviceLink/SDLSamplingRate.h +++ b/SmartDeviceLink/SDLSamplingRate.h @@ -9,48 +9,24 @@ * * @since SDL 2.0 */ -@interface SDLSamplingRate : SDLEnum { -} - -/** - * @abstract get SDLSamplingRate according value string - * - * @param value The value of the string to get an object for - * - * @return SDLSamplingRate object - */ -+ (SDLSamplingRate *)valueOf:(NSString *)value; - -/** - * @abstract declare an array to store all possible SDLSamplingRate values - * - * @return the array - */ -+ (NSArray *)values; +typedef SDLEnum SDLSamplingRate SDL_SWIFT_ENUM; /** * @abstract Sampling rate of 8 kHz - * - * @return SamplingRate of *8KHZ* */ -+ (SDLSamplingRate *)_8KHZ; +extern SDLSamplingRate const SDLSamplingRate8KHZ; + /** * @abstract Sampling rate of 16 kHz - * - * @return SamplingRate of *16KHZ* */ -+ (SDLSamplingRate *)_16KHZ; +extern SDLSamplingRate const SDLSamplingRate16KHZ; + /** * @abstract Sampling rate of 22 kHz - * - * @return SamplingRate of *22KHZ* */ -+ (SDLSamplingRate *)_22KHZ; +extern SDLSamplingRate const SDLSamplingRate22KHZ; + /** * @abstract Sampling rate of 44 kHz - * - * @return SamplingRate of *44KHZ* */ -+ (SDLSamplingRate *)_44KHZ; - -@end +extern SDLSamplingRate const SDLSamplingRate44KHZ; diff --git a/SmartDeviceLink/SDLSamplingRate.m b/SmartDeviceLink/SDLSamplingRate.m index d0a36d730..6858e6e77 100644 --- a/SmartDeviceLink/SDLSamplingRate.m +++ b/SmartDeviceLink/SDLSamplingRate.m @@ -4,62 +4,7 @@ #import "SDLSamplingRate.h" -SDLSamplingRate *SDLSamplingRate_8KHZ = nil; -SDLSamplingRate *SDLSamplingRate_16KHZ = nil; -SDLSamplingRate *SDLSamplingRate_22KHZ = nil; -SDLSamplingRate *SDLSamplingRate_44KHZ = nil; - -NSArray *SDLSamplingRate_values = nil; - -@implementation SDLSamplingRate - -+ (SDLSamplingRate *)valueOf:(NSString *)value { - for (SDLSamplingRate *item in SDLSamplingRate.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLSamplingRate_values == nil) { - SDLSamplingRate_values = @[ - SDLSamplingRate._8KHZ, - SDLSamplingRate._16KHZ, - SDLSamplingRate._22KHZ, - SDLSamplingRate._44KHZ, - ]; - } - return SDLSamplingRate_values; -} - -+ (SDLSamplingRate *)_8KHZ { - if (SDLSamplingRate_8KHZ == nil) { - SDLSamplingRate_8KHZ = [[SDLSamplingRate alloc] initWithValue:@"8KHZ"]; - } - return SDLSamplingRate_8KHZ; -} - -+ (SDLSamplingRate *)_16KHZ { - if (SDLSamplingRate_16KHZ == nil) { - SDLSamplingRate_16KHZ = [[SDLSamplingRate alloc] initWithValue:@"16KHZ"]; - } - return SDLSamplingRate_16KHZ; -} - -+ (SDLSamplingRate *)_22KHZ { - if (SDLSamplingRate_22KHZ == nil) { - SDLSamplingRate_22KHZ = [[SDLSamplingRate alloc] initWithValue:@"22KHZ"]; - } - return SDLSamplingRate_22KHZ; -} - -+ (SDLSamplingRate *)_44KHZ { - if (SDLSamplingRate_44KHZ == nil) { - SDLSamplingRate_44KHZ = [[SDLSamplingRate alloc] initWithValue:@"44KHZ"]; - } - return SDLSamplingRate_44KHZ; -} - -@end +SDLSamplingRate const SDLSamplingRate8KHZ = @"8KHZ"; +SDLSamplingRate const SDLSamplingRate16KHZ = @"16KHZ"; +SDLSamplingRate const SDLSamplingRate22KHZ = @"22KHZ"; +SDLSamplingRate const SDLSamplingRate44KHZ = @"44KHZ"; diff --git a/SmartDeviceLink/SDLScreenParams.h b/SmartDeviceLink/SDLScreenParams.h index c60f6f1d6..23c7a16a6 100644 --- a/SmartDeviceLink/SDLScreenParams.h +++ b/SmartDeviceLink/SDLScreenParams.h @@ -6,14 +6,13 @@ @class SDLImageResolution; @class SDLTouchEventCapabilities; +NS_ASSUME_NONNULL_BEGIN -@interface SDLScreenParams : SDLRPCStruct { -} +@interface SDLScreenParams : SDLRPCStruct -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -@property (strong) SDLImageResolution *resolution; -@property (strong) SDLTouchEventCapabilities *touchEventAvailable; +@property (strong, nonatomic) SDLImageResolution *resolution; +@property (nullable, strong, nonatomic) SDLTouchEventCapabilities *touchEventAvailable; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLScreenParams.m b/SmartDeviceLink/SDLScreenParams.m index 1debff302..d531dfadd 100644 --- a/SmartDeviceLink/SDLScreenParams.m +++ b/SmartDeviceLink/SDLScreenParams.m @@ -3,57 +3,31 @@ #import "SDLScreenParams.h" +#import "NSMutableDictionary+Store.h" #import "SDLImageResolution.h" #import "SDLNames.h" #import "SDLTouchEventCapabilities.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLScreenParams -- (instancetype)init { - if (self = [super init]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - - (void)setResolution:(SDLImageResolution *)resolution { - if (resolution != nil) { - [store setObject:resolution forKey:NAMES_resolution]; - } else { - [store removeObjectForKey:NAMES_resolution]; - } + [store sdl_setObject:resolution forName:SDLNameResolution]; } - (SDLImageResolution *)resolution { - NSObject *obj = [store objectForKey:NAMES_resolution]; - if (obj == nil || [obj isKindOfClass:SDLImageResolution.class]) { - return (SDLImageResolution *)obj; - } else { - return [[SDLImageResolution alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } + return [store sdl_objectForName:SDLNameResolution ofClass:SDLImageResolution.class]; } -- (void)setTouchEventAvailable:(SDLTouchEventCapabilities *)touchEventAvailable { - if (touchEventAvailable != nil) { - [store setObject:touchEventAvailable forKey:NAMES_touchEventAvailable]; - } else { - [store removeObjectForKey:NAMES_touchEventAvailable]; - } +- (void)setTouchEventAvailable:(nullable SDLTouchEventCapabilities *)touchEventAvailable { + [store sdl_setObject:touchEventAvailable forName:SDLNameTouchEventAvailable]; } -- (SDLTouchEventCapabilities *)touchEventAvailable { - NSObject *obj = [store objectForKey:NAMES_touchEventAvailable]; - if (obj == nil || [obj isKindOfClass:SDLTouchEventCapabilities.class]) { - return (SDLTouchEventCapabilities *)obj; - } else { - return [[SDLTouchEventCapabilities alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLTouchEventCapabilities *)touchEventAvailable { + return [store sdl_objectForName:SDLNameTouchEventAvailable ofClass:SDLTouchEventCapabilities.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLScrollableMessage.h b/SmartDeviceLink/SDLScrollableMessage.h index 3a1fe8415..a74aa5c27 100644 --- a/SmartDeviceLink/SDLScrollableMessage.h +++ b/SmartDeviceLink/SDLScrollableMessage.h @@ -15,23 +15,14 @@ * HMILevel needs to be FULL *

    */ -@interface SDLScrollableMessage : SDLRPCRequest { -} -/** - * @abstract Constructs a new SDLScrollableMessage object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLScrollableMessage object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLScrollableMessage : SDLRPCRequest - (instancetype)initWithMessage:(NSString *)message; -- (instancetype)initWithMessage:(NSString *)message timeout:(UInt16)timeout softButtons:(NSArray *)softButtons; +- (instancetype)initWithMessage:(NSString *)message timeout:(UInt16)timeout softButtons:(nullable NSArray *)softButtons; /** * @abstract A Body of text that can include newlines and tabs @@ -40,7 +31,7 @@ *

    * Notes: Maxlength=500 */ -@property (strong) NSString *scrollableMessageBody; +@property (strong, nonatomic) NSString *scrollableMessageBody; /** * @abstract Gets/Sets an App defined timeout. Indicates how long of a timeout in milliseconds from the * last action @@ -48,7 +39,7 @@ *

    * Notes:Minval=0; Maxval=65535;Default=30000 */ -@property (strong) NSNumber *timeout; +@property (nullable, strong, nonatomic) NSNumber *timeout; /** * @abstract Gets/Sets App defined SoftButtons.If omitted on supported displays, only the * system defined "Close" SoftButton will be displayed @@ -57,6 +48,8 @@ *

    * Notes: Minsize=0, Maxsize=8 */ -@property (strong) NSMutableArray *softButtons; +@property (nullable, strong, nonatomic) NSArray *softButtons; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLScrollableMessage.m b/SmartDeviceLink/SDLScrollableMessage.m index 1110cd087..f9c92c796 100644 --- a/SmartDeviceLink/SDLScrollableMessage.m +++ b/SmartDeviceLink/SDLScrollableMessage.m @@ -4,24 +4,21 @@ #import "SDLScrollableMessage.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" #import "SDLSoftButton.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLScrollableMessage - (instancetype)init { - if (self = [super initWithName:NAMES_ScrollableMessage]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameScrollableMessage]) { } return self; } -- (instancetype)initWithMessage:(NSString *)message timeout:(UInt16)timeout softButtons:(NSArray *)softButtons { +- (instancetype)initWithMessage:(NSString *)message timeout:(UInt16)timeout softButtons:(nullable NSArray *)softButtons { self = [self initWithMessage:message]; if (!self) { return nil; @@ -45,50 +42,29 @@ - (instancetype)initWithMessage:(NSString *)message { } - (void)setScrollableMessageBody:(NSString *)scrollableMessageBody { - if (scrollableMessageBody != nil) { - [parameters setObject:scrollableMessageBody forKey:NAMES_scrollableMessageBody]; - } else { - [parameters removeObjectForKey:NAMES_scrollableMessageBody]; - } + [parameters sdl_setObject:scrollableMessageBody forName:SDLNameScrollableMessageBody]; } - (NSString *)scrollableMessageBody { - return [parameters objectForKey:NAMES_scrollableMessageBody]; + return [parameters sdl_objectForName:SDLNameScrollableMessageBody]; } -- (void)setTimeout:(NSNumber *)timeout { - if (timeout != nil) { - [parameters setObject:timeout forKey:NAMES_timeout]; - } else { - [parameters removeObjectForKey:NAMES_timeout]; - } +- (void)setTimeout:(nullable NSNumber *)timeout { + [parameters sdl_setObject:timeout forName:SDLNameTimeout]; } -- (NSNumber *)timeout { - return [parameters objectForKey:NAMES_timeout]; +- (nullable NSNumber *)timeout { + return [parameters sdl_objectForName:SDLNameTimeout]; } -- (void)setSoftButtons:(NSMutableArray *)softButtons { - if (softButtons != nil) { - [parameters setObject:softButtons forKey:NAMES_softButtons]; - } else { - [parameters removeObjectForKey:NAMES_softButtons]; - } +- (void)setSoftButtons:(nullable NSArray *)softButtons { + [parameters sdl_setObject:softButtons forName:SDLNameSoftButtons]; } -- (NSMutableArray *)softButtons { - NSMutableArray *array = [parameters objectForKey:NAMES_softButtons]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLSoftButton.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLSoftButton alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (nullable NSArray *)softButtons { + return [parameters sdl_objectsForName:SDLNameSoftButtons ofClass:SDLSoftButton.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLScrollableMessageResponse.h b/SmartDeviceLink/SDLScrollableMessageResponse.h index e75b157ec..4f6d17a8a 100644 --- a/SmartDeviceLink/SDLScrollableMessageResponse.h +++ b/SmartDeviceLink/SDLScrollableMessageResponse.h @@ -9,18 +9,11 @@ * * Since SmartDeviceLink 2.0 */ -@interface SDLScrollableMessageResponse : SDLRPCResponse { -} -/** - * @abstract Constructs a new SDLScrollableMessageResponse object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLScrollableMessageResponse object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLScrollableMessageResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLScrollableMessageResponse.m b/SmartDeviceLink/SDLScrollableMessageResponse.m index 77473f07e..0777c3de2 100644 --- a/SmartDeviceLink/SDLScrollableMessageResponse.m +++ b/SmartDeviceLink/SDLScrollableMessageResponse.m @@ -4,18 +4,13 @@ #import "SDLScrollableMessageResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" @implementation SDLScrollableMessageResponse - (instancetype)init { - if (self = [super initWithName:NAMES_ScrollableMessage]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameScrollableMessage]) { } return self; } diff --git a/SmartDeviceLink/SDLSendHapticData.h b/SmartDeviceLink/SDLSendHapticData.h index 47536e3e2..c4c0f237c 100644 --- a/SmartDeviceLink/SDLSendHapticData.h +++ b/SmartDeviceLink/SDLSendHapticData.h @@ -2,43 +2,36 @@ // SDLSendHapticData.h // SmartDeviceLink-iOS // -// Created by Nicole on 8/2/17. +// Created by Nicole on 8/3/17. // Copyright © 2017 smartdevicelink. All rights reserved. // #import #import "SDLRPCRequest.h" -/** - * 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. - */ -@interface SDLSendHapticData : SDLRPCRequest +@class SDLHapticRect; -/** - * Constructs a new SDLSendHapticData object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN /** - * Constructs a new SDLSendHapticData object indicated by the dictionary parameter - * - * - * @param dict The dictionary to use + * 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. */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLSendHapticData : SDLRPCRequest /** * Constructs a new SDLSendHapticData object indicated by the hapticSpatialData parameter * - * @param hapticSpatialData Array of spatial data structures + * @param hapticRectData Array of spatial data structures */ -- (instancetype)initWithHapticRectData:(NSMutableArray *)hapticSpatialData; +- (instancetype)initWithHapticRectData:(NSArray *)hapticRectData; /** * 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 * * Optional, Array of SDLHapticRect, Array size 0 - 1,000 */ -@property (strong) NSMutableArray *hapticRectData; +@property (strong, nonatomic, nullable) NSArray *hapticRectData; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSendHapticData.m b/SmartDeviceLink/SDLSendHapticData.m index a486eac84..e428e6f51 100644 --- a/SmartDeviceLink/SDLSendHapticData.m +++ b/SmartDeviceLink/SDLSendHapticData.m @@ -2,29 +2,26 @@ // SDLSendHapticData.m // SmartDeviceLink-iOS // -// Created by Nicole on 8/2/17. +// Created by Nicole on 8/3/17. // Copyright © 2017 smartdevicelink. All rights reserved. // +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" #import "SDLSendHapticData.h" #import "SDLHapticRect.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLSendHapticData - (instancetype)init { - if (self = [super initWithName:NAMES_SendHapticData]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameSendHapticData]) { } return self; } -- (instancetype)initWithHapticRectData:(NSMutableArray *)hapticRectData { +- (instancetype)initWithHapticRectData:(NSArray *)hapticRectData { self = [self init]; if (!self) { return nil; @@ -35,27 +32,14 @@ - (instancetype)initWithHapticRectData:(NSMutableArray *)hapticRectData { return self; } -- (void)setHapticRectData:(NSMutableArray *)hapticRectData { - if (hapticRectData != nil) { - [parameters setObject:hapticRectData forKey:NAMES_hapticRectData]; - } else { - [parameters removeObjectForKey:NAMES_hapticRectData]; - } +- (void)setHapticRectData:(nullable NSArray *)hapticRectData { + [parameters sdl_setObject:hapticRectData forName:SDLNameHapticRectData]; } -- (NSMutableArray *)hapticRectData { - NSMutableArray *array = [parameters objectForKey:NAMES_hapticRectData]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLHapticRect.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLHapticRect alloc] initWithDictionary:(NSMutableDictionary *) dict]]; - } - return newList; - } +- (nullable NSArray *)hapticRectData { + return [parameters sdl_objectsForName:SDLNameHapticRectData ofClass:SDLHapticRect.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSendHapticDataResponse.h b/SmartDeviceLink/SDLSendHapticDataResponse.h index 31fc9bced..c811c0e22 100644 --- a/SmartDeviceLink/SDLSendHapticDataResponse.h +++ b/SmartDeviceLink/SDLSendHapticDataResponse.h @@ -2,16 +2,18 @@ // SDLSendHapticDataResponse.h // SmartDeviceLink-iOS // -// Created by Nicole on 8/2/17. +// Created by Nicole on 8/4/17. // Copyright © 2017 smartdevicelink. All rights reserved. // -#import #import "SDLRPCResponse.h" +NS_ASSUME_NONNULL_BEGIN +/** + * SDLSendHapticDataResponse is sent when SDLSendHapticData has been called + */ @interface SDLSendHapticDataResponse : SDLRPCResponse -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSendHapticDataResponse.m b/SmartDeviceLink/SDLSendHapticDataResponse.m index f3c1c18be..b1fa03607 100644 --- a/SmartDeviceLink/SDLSendHapticDataResponse.m +++ b/SmartDeviceLink/SDLSendHapticDataResponse.m @@ -1,26 +1,25 @@ + // // SDLSendHapticDataResponse.m // SmartDeviceLink-iOS // -// Created by Nicole on 8/2/17. +// Created by Nicole on 8/4/17. // Copyright © 2017 smartdevicelink. All rights reserved. // #import "SDLNames.h" #import "SDLSendHapticDataResponse.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLSendHapticDataResponse - (instancetype)init { - if (self = [super initWithName:NAMES_SendHapticDataResponse]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameSendHapticDataResponse]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSendLocation.h b/SmartDeviceLink/SDLSendLocation.h index 521174237..c2d007604 100644 --- a/SmartDeviceLink/SDLSendLocation.h +++ b/SmartDeviceLink/SDLSendLocation.h @@ -11,80 +11,84 @@ #import "SDLImage.h" #import "SDLOasisAddress.h" +NS_ASSUME_NONNULL_BEGIN + @interface SDLSendLocation : SDLRPCRequest -- (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(NSString *)locationName locationDescription:(NSString *)locationDescription address:(NSArray *)address phoneNumber:(NSString *)phoneNumber image:(SDLImage *)image; +- (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription address:(nullable NSArray *)address phoneNumber:(nullable NSString *)phoneNumber image:(nullable SDLImage *)image; -- (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(NSString *)locationName locationDescription:(NSString *)locationDescription displayAddressLines:(NSArray *)displayAddressLines phoneNumber:(NSString *)phoneNumber image:(SDLImage *)image deliveryMode:(SDLDeliveryMode *)deliveryMode timeStamp:(SDLDateTime *)timeStamp address:(SDLOasisAddress *)address; +- (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription displayAddressLines:(nullable NSArray *)displayAddressLines phoneNumber:(nullable NSString *)phoneNumber image:(nullable SDLImage *)image deliveryMode:(nullable SDLDeliveryMode)deliveryMode timeStamp:(nullable SDLDateTime *)timeStamp address:(nullable SDLOasisAddress *)address; /** * The longitudinal coordinate of the location. * * Float, Required, -180.0 - 180.0 */ -@property (copy, nonatomic) NSNumber *longitudeDegrees; +@property (nullable, copy, nonatomic) NSNumber *longitudeDegrees; /** * The latitudinal coordinate of the location. * * Float, Required, -90.0 - 90.0 */ -@property (copy, nonatomic) NSNumber *latitudeDegrees; +@property (nullable, copy, nonatomic) NSNumber *latitudeDegrees; /** * Name / title of intended location * * Optional, Maxlength = 500 char */ -@property (copy, nonatomic) NSString *locationName; +@property (nullable, copy, nonatomic) NSString *locationName; /** * Description of the intended location / establishment * * Optional, MaxLength = 500 char */ -@property (copy, nonatomic) NSString *locationDescription; +@property (nullable, copy, nonatomic) NSString *locationDescription; /** * Location address for display purposes only * * Contains String, Optional, Max Array Length = 4, Max String Length = 500 */ -@property (copy, nonatomic) NSArray *addressLines; +@property (nullable, copy, nonatomic) NSArray *addressLines; /** * Phone number of intended location / establishment * * Optional, Max Length = 500 */ -@property (copy, nonatomic) NSString *phoneNumber; +@property (nullable, copy, nonatomic) NSString *phoneNumber; /** * Image / icon of intended location * * Optional */ -@property (strong, nonatomic) SDLImage *locationImage; +@property (nullable, strong, nonatomic) SDLImage *locationImage; /** * Mode in which the sendLocation request is sent * * Optional */ -@property (strong, nonatomic) SDLDeliveryMode *deliveryMode; +@property (nullable, strong, nonatomic) SDLDeliveryMode deliveryMode; /** * Arrival time of Location. If multiple SendLocations are sent, this will be used for sorting as well. * * Optional */ -@property (strong, nonatomic) SDLDateTime *timeStamp; +@property (nullable, strong, nonatomic) SDLDateTime *timeStamp; /** * Address to be used for setting destination * * Optional */ -@property (strong, nonatomic) SDLOasisAddress *address; +@property (nullable, strong, nonatomic) SDLOasisAddress *address; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSendLocation.m b/SmartDeviceLink/SDLSendLocation.m index d94c3cbaa..115c30a34 100644 --- a/SmartDeviceLink/SDLSendLocation.m +++ b/SmartDeviceLink/SDLSendLocation.m @@ -4,13 +4,15 @@ #import "SDLSendLocation.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLSendLocation - (instancetype)init { - self = [super initWithName:NAMES_SendLocation]; + self = [super initWithName:SDLNameSendLocation]; if (!self) { return nil; } @@ -18,11 +20,11 @@ - (instancetype)init { return self; } -- (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(NSString *)locationName locationDescription:(NSString *)locationDescription address:(NSArray *)address phoneNumber:(NSString *)phoneNumber image:(SDLImage *)image { +- (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription address:(nullable NSArray *)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]; } -- (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(NSString *)locationName locationDescription:(NSString *)locationDescription displayAddressLines:(NSArray *)displayAddressLines phoneNumber:(NSString *)phoneNumber image:(SDLImage *)image deliveryMode:(SDLDeliveryMode *)deliveryMode timeStamp:(SDLDateTime *)timeStamp address:(SDLOasisAddress *)address { +- (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(nullable NSString *)locationName locationDescription:(nullable NSString *)locationDescription displayAddressLines:(nullable NSArray *)displayAddressLines phoneNumber:(nullable NSString *)phoneNumber image:(nullable SDLImage *)image deliveryMode:(nullable SDLDeliveryMode)deliveryMode timeStamp:(nullable SDLDateTime *)timeStamp address:(nullable SDLOasisAddress *)address { self = [self init]; if (!self) { return nil; @@ -42,144 +44,86 @@ - (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude lo return self; } -- (void)setLongitudeDegrees:(NSNumber *)longitudeDegrees { - if (longitudeDegrees != nil) { - parameters[NAMES_longitudeDegrees] = longitudeDegrees; - } else { - [parameters removeObjectForKey:NAMES_longitudeDegrees]; - } +- (void)setLongitudeDegrees:(nullable NSNumber *)longitudeDegrees { + [parameters sdl_setObject:longitudeDegrees forName:SDLNameLongitudeDegrees]; } -- (NSNumber *)longitudeDegrees { - return parameters[NAMES_longitudeDegrees]; +- (nullable NSNumber *)longitudeDegrees { + return [parameters sdl_objectForName:SDLNameLongitudeDegrees]; } -- (void)setLatitudeDegrees:(NSNumber *)latitudeDegrees { - if (latitudeDegrees != nil) { - parameters[NAMES_latitudeDegrees] = latitudeDegrees; - } else { - [parameters removeObjectForKey:NAMES_latitudeDegrees]; - } +- (void)setLatitudeDegrees:(nullable NSNumber *)latitudeDegrees { + [parameters sdl_setObject:latitudeDegrees forName:SDLNameLatitudeDegrees]; } -- (NSNumber *)latitudeDegrees { - return parameters[NAMES_latitudeDegrees]; +- (nullable NSNumber *)latitudeDegrees { + return [parameters sdl_objectForName:SDLNameLatitudeDegrees]; } -- (void)setLocationName:(NSString *)locationName { - if (locationName != nil) { - parameters[NAMES_locationName] = locationName; - } else { - [parameters removeObjectForKey:NAMES_locationName]; - } +- (void)setLocationName:(nullable NSString *)locationName { + [parameters sdl_setObject:locationName forName:SDLNameLocationName]; } -- (NSString *)locationName { - return parameters[NAMES_locationName]; +- (nullable NSString *)locationName { + return [parameters sdl_objectForName:SDLNameLocationName]; } -- (void)setAddressLines:(NSArray *)addressLines { - if (addressLines != nil) { - parameters[NAMES_addressLines] = addressLines; - } else { - [parameters removeObjectForKey:NAMES_addressLines]; - } +- (void)setAddressLines:(nullable NSArray *)addressLines { + [parameters sdl_setObject:addressLines forName:SDLNameAddressLines]; } -- (NSString *)locationDescription { - return parameters[NAMES_locationDescription]; +- (nullable NSString *)locationDescription { + return [parameters sdl_objectForName:SDLNameLocationDescription]; } -- (void)setLocationDescription:(NSString *)locationDescription { - if (locationDescription != nil) { - parameters[NAMES_locationDescription] = locationDescription; - } else { - [parameters removeObjectForKey:NAMES_locationDescription]; - } +- (void)setLocationDescription:(nullable NSString *)locationDescription { + [parameters sdl_setObject:locationDescription forName:SDLNameLocationDescription]; } -- (NSArray *)addressLines { - return parameters[NAMES_addressLines]; +- (nullable NSArray *)addressLines { + return [parameters sdl_objectForName:SDLNameAddressLines]; } -- (void)setPhoneNumber:(NSString *)phoneNumber { - if (phoneNumber != nil) { - parameters[NAMES_phoneNumber] = phoneNumber; - } else { - [parameters removeObjectForKey:NAMES_phoneNumber]; - } +- (void)setPhoneNumber:(nullable NSString *)phoneNumber { + [parameters sdl_setObject:phoneNumber forName:SDLNamePhoneNumber]; } -- (NSString *)phoneNumber { - return parameters[NAMES_phoneNumber]; +- (nullable NSString *)phoneNumber { + return [parameters sdl_objectForName:SDLNamePhoneNumber]; } -- (void)setLocationImage:(SDLImage *)locationImage { - if (locationImage != nil) { - parameters[NAMES_locationImage] = locationImage; - } else { - [parameters removeObjectForKey:NAMES_locationImage]; - } +- (void)setLocationImage:(nullable SDLImage *)locationImage { + [parameters sdl_setObject:locationImage forName:SDLNameLocationImage]; } -- (SDLImage *)locationImage { - id obj = parameters[NAMES_locationImage]; - if (obj == nil || [obj isKindOfClass:[SDLImage class]]) { - return (SDLImage *)obj; - } else { - return [[SDLImage alloc] initWithDictionary:obj]; - } +- (nullable SDLImage *)locationImage { + return [parameters sdl_objectForName:SDLNameLocationImage ofClass:SDLImage.class]; } -- (void)setDeliveryMode:(SDLDeliveryMode *)deliveryMode { - if (deliveryMode != nil) { - parameters[NAMES_deliveryMode] = deliveryMode; - } else { - [parameters removeObjectForKey:NAMES_deliveryMode]; - } +- (void)setDeliveryMode:(nullable SDLDeliveryMode)deliveryMode { + [parameters sdl_setObject:deliveryMode forName:SDLNameDeliveryMode]; } -- (SDLDeliveryMode *)deliveryMode { - NSObject *obj = [parameters objectForKey:NAMES_deliveryMode]; - if (obj == nil || [obj isKindOfClass:SDLDeliveryMode.class]) { - return (SDLDeliveryMode *)obj; - } else { - return [SDLDeliveryMode valueOf:(NSString *)obj]; - } +- (nullable SDLDeliveryMode)deliveryMode { + return [parameters sdl_objectForName:SDLNameDeliveryMode]; } -- (void)setTimeStamp:(SDLDateTime *)timeStamp { - if (timeStamp != nil) { - parameters[NAMES_timeStamp] = timeStamp; - } else { - [parameters removeObjectForKey:NAMES_timeStamp]; - } +- (void)setTimeStamp:(nullable SDLDateTime *)timeStamp { + [parameters sdl_setObject:timeStamp forName:SDLNameLocationTimeStamp]; } -- (SDLDateTime *)timeStamp { - id obj = parameters[NAMES_timeStamp]; - if (obj == nil || [obj isKindOfClass:[SDLDateTime class]]) { - return (SDLDateTime *)obj; - } else { - return [[SDLDateTime alloc] initWithDictionary:obj]; - } +- (nullable SDLDateTime *)timeStamp { + return [parameters sdl_objectForName:SDLNameLocationTimeStamp ofClass:SDLDateTime.class]; } -- (void)setAddress:(SDLOasisAddress *)address { - if (address != nil) { - parameters[NAMES_address] = address; - } else { - [parameters removeObjectForKey:NAMES_address]; - } +- (void)setAddress:(nullable SDLOasisAddress *)address { + [parameters sdl_setObject:address forName:SDLNameAddress]; } -- (SDLOasisAddress *)address { - id obj = [parameters objectForKey:NAMES_address]; - if (obj == nil || [obj isKindOfClass:[SDLOasisAddress class]]) { - return (SDLOasisAddress *)obj; - } else { - return [[SDLOasisAddress alloc] initWithDictionary:obj]; - } +- (nullable SDLOasisAddress *)address { + return [parameters sdl_objectForName:SDLNameAddress ofClass:SDLOasisAddress.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSendLocationResponse.h b/SmartDeviceLink/SDLSendLocationResponse.h index 39d8a4ba2..8059bc1b2 100644 --- a/SmartDeviceLink/SDLSendLocationResponse.h +++ b/SmartDeviceLink/SDLSendLocationResponse.h @@ -4,9 +4,10 @@ #import "SDLRPCResponse.h" -@interface SDLSendLocationResponse : SDLRPCResponse +NS_ASSUME_NONNULL_BEGIN -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLSendLocationResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSendLocationResponse.m b/SmartDeviceLink/SDLSendLocationResponse.m index 83cde8118..3b03a5a67 100644 --- a/SmartDeviceLink/SDLSendLocationResponse.m +++ b/SmartDeviceLink/SDLSendLocationResponse.m @@ -4,22 +4,15 @@ #import "SDLSendLocationResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLSendLocationResponse - (instancetype)init { - self = [super initWithName:NAMES_SendLocation]; - if (!self) { - return nil; - } - - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - self = [super initWithDictionary:dict]; + self = [super initWithName:SDLNameSendLocation]; if (!self) { return nil; } @@ -28,3 +21,5 @@ - (instancetype)initWithDictionary:(NSMutableDictionary *)dict { } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetAppIcon.h b/SmartDeviceLink/SDLSetAppIcon.h index 17b30ad00..2b99843c6 100644 --- a/SmartDeviceLink/SDLSetAppIcon.h +++ b/SmartDeviceLink/SDLSetAppIcon.h @@ -11,18 +11,10 @@ * * Since SmartDeviceLink 2.0 */ -@interface SDLSetAppIcon : SDLRPCRequest { -} -/** - * @abstract Constructs a new SDLSetAppIcon object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLSetAppIcon object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLSetAppIcon : SDLRPCRequest - (instancetype)initWithFileName:(NSString *)fileName; @@ -33,6 +25,8 @@ *

    * Notes: Maxlength=500 */ -@property (strong) NSString *syncFileName; +@property (strong, nonatomic) NSString *syncFileName; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetAppIcon.m b/SmartDeviceLink/SDLSetAppIcon.m index 011579575..8287d18e8 100644 --- a/SmartDeviceLink/SDLSetAppIcon.m +++ b/SmartDeviceLink/SDLSetAppIcon.m @@ -4,18 +4,13 @@ #import "SDLSetAppIcon.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" @implementation SDLSetAppIcon - (instancetype)init { - if (self = [super initWithName:NAMES_SetAppIcon]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameSetAppIcon]) { } return self; } @@ -32,15 +27,11 @@ - (instancetype)initWithFileName:(NSString *)fileName { } - (void)setSyncFileName:(NSString *)syncFileName { - if (syncFileName != nil) { - [parameters setObject:syncFileName forKey:NAMES_syncFileName]; - } else { - [parameters removeObjectForKey:NAMES_syncFileName]; - } + [parameters sdl_setObject:syncFileName forName:SDLNameSyncFileName]; } - (NSString *)syncFileName { - return [parameters objectForKey:NAMES_syncFileName]; + return [parameters sdl_objectForName:SDLNameSyncFileName]; } @end diff --git a/SmartDeviceLink/SDLSetAppIconResponse.h b/SmartDeviceLink/SDLSetAppIconResponse.h index 31dd1e6c9..ba189dc4d 100644 --- a/SmartDeviceLink/SDLSetAppIconResponse.h +++ b/SmartDeviceLink/SDLSetAppIconResponse.h @@ -7,10 +7,11 @@ /** SDLSetAppIconResponse is sent, when SDLSetAppIcon has been called. * SinceSmartDeviceLink 2.0 */ -@interface SDLSetAppIconResponse : SDLRPCResponse { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLSetAppIconResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetAppIconResponse.m b/SmartDeviceLink/SDLSetAppIconResponse.m index 64c10600f..2a0b72793 100644 --- a/SmartDeviceLink/SDLSetAppIconResponse.m +++ b/SmartDeviceLink/SDLSetAppIconResponse.m @@ -4,20 +4,19 @@ #import "SDLSetAppIconResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLSetAppIconResponse - (instancetype)init { - if (self = [super initWithName:NAMES_SetAppIcon]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameSetAppIcon]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetDisplayLayout.h b/SmartDeviceLink/SDLSetDisplayLayout.h index eae57de46..c2097d804 100644 --- a/SmartDeviceLink/SDLSetDisplayLayout.h +++ b/SmartDeviceLink/SDLSetDisplayLayout.h @@ -4,7 +4,7 @@ #import "SDLRPCRequest.h" -@class SDLPredefinedLayout; +#import "SDLPredefinedLayout.h" /** * Used to set an alternate display layout. If not sent, default screen for @@ -12,21 +12,12 @@ * * Since SmartDeviceLink 2.0 */ -@interface SDLSetDisplayLayout : SDLRPCRequest { -} -/** - * @abstract Constructs a new SDLSetDisplayLayout object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLSetDisplayLayout object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLSetDisplayLayout : SDLRPCRequest -- (instancetype)initWithPredefinedLayout:(SDLPredefinedLayout *)predefinedLayout; +- (instancetype)initWithPredefinedLayout:(SDLPredefinedLayout)predefinedLayout; - (instancetype)initWithLayout:(NSString *)displayLayout; @@ -37,6 +28,8 @@ * include: "ONSCREEN_PRESETS" Custom screen containing app-defined onscreen * presets. Currently defined for GEN2 */ -@property (strong) NSString *displayLayout; +@property (strong, nonatomic) NSString *displayLayout; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetDisplayLayout.m b/SmartDeviceLink/SDLSetDisplayLayout.m index 21c0eebfc..21c8627f1 100644 --- a/SmartDeviceLink/SDLSetDisplayLayout.m +++ b/SmartDeviceLink/SDLSetDisplayLayout.m @@ -4,25 +4,21 @@ #import "SDLSetDisplayLayout.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -#import "SDLPredefinedLayout.h" + +NS_ASSUME_NONNULL_BEGIN @implementation SDLSetDisplayLayout - (instancetype)init { - if (self = [super initWithName:NAMES_SetDisplayLayout]) { + if (self = [super initWithName:SDLNameSetDisplayLayout]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (instancetype)initWithPredefinedLayout:(SDLPredefinedLayout *)predefinedLayout { - return [self initWithLayout:predefinedLayout.value]; +- (instancetype)initWithPredefinedLayout:(SDLPredefinedLayout)predefinedLayout { + return [self initWithLayout:predefinedLayout]; } - (instancetype)initWithLayout:(NSString *)displayLayout { @@ -37,15 +33,13 @@ - (instancetype)initWithLayout:(NSString *)displayLayout { } - (void)setDisplayLayout:(NSString *)displayLayout { - if (displayLayout != nil) { - [parameters setObject:displayLayout forKey:NAMES_displayLayout]; - } else { - [parameters removeObjectForKey:NAMES_displayLayout]; - } + [parameters sdl_setObject:displayLayout forName:SDLNameDisplayLayout]; } - (NSString *)displayLayout { - return [parameters objectForKey:NAMES_displayLayout]; + return [parameters sdl_objectForName:SDLNameDisplayLayout]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetDisplayLayoutResponse.h b/SmartDeviceLink/SDLSetDisplayLayoutResponse.h index 7838ae0a6..e1e88138d 100644 --- a/SmartDeviceLink/SDLSetDisplayLayoutResponse.h +++ b/SmartDeviceLink/SDLSetDisplayLayoutResponse.h @@ -3,27 +3,26 @@ #import "SDLRPCResponse.h" +@class SDLButtonCapabilities; @class SDLDisplayCapabilities; @class SDLPresetBankCapabilities; - +@class SDLSoftButtonCapabilities; /** * Set Display Layout Response is sent, when SetDisplayLayout has been called * * Since SmartDeviceLink 2.0 */ -@interface SDLSetDisplayLayoutResponse : SDLRPCResponse { -} -/** - * @abstract Constructs a new SDLSetDisplayLayoutResponse object - */ -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN -@property (strong) SDLDisplayCapabilities *displayCapabilities; -@property (strong) NSMutableArray *buttonCapabilities; -@property (strong) NSMutableArray *softButtonCapabilities; -@property (strong) SDLPresetBankCapabilities *presetBankCapabilities; +@interface SDLSetDisplayLayoutResponse : SDLRPCResponse + +@property (nullable, strong, nonatomic) SDLDisplayCapabilities *displayCapabilities; +@property (nullable, strong, nonatomic) NSArray *buttonCapabilities; +@property (nullable, strong, nonatomic) NSArray *softButtonCapabilities; +@property (nullable, strong, nonatomic) SDLPresetBankCapabilities *presetBankCapabilities; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetDisplayLayoutResponse.m b/SmartDeviceLink/SDLSetDisplayLayoutResponse.m index 2cdad4734..c37086684 100644 --- a/SmartDeviceLink/SDLSetDisplayLayoutResponse.m +++ b/SmartDeviceLink/SDLSetDisplayLayoutResponse.m @@ -4,105 +4,55 @@ #import "SDLSetDisplayLayoutResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLButtonCapabilities.h" #import "SDLDisplayCapabilities.h" #import "SDLNames.h" #import "SDLPresetBankCapabilities.h" #import "SDLSoftButtonCapabilities.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLSetDisplayLayoutResponse - (instancetype)init { - if (self = [super initWithName:NAMES_SetDisplayLayout]) { + if (self = [super initWithName:SDLNameSetDisplayLayout]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (void)setDisplayCapabilities:(nullable SDLDisplayCapabilities *)displayCapabilities { + [parameters sdl_setObject:displayCapabilities forName:SDLNameDisplayCapabilities]; } -- (void)setDisplayCapabilities:(SDLDisplayCapabilities *)displayCapabilities { - if (displayCapabilities != nil) { - [parameters setObject:displayCapabilities forKey:NAMES_displayCapabilities]; - } else { - [parameters removeObjectForKey:NAMES_displayCapabilities]; - } +- (nullable SDLDisplayCapabilities *)displayCapabilities { + return [parameters sdl_objectForName:SDLNameDisplayCapabilities ofClass:SDLDisplayCapabilities.class]; } -- (SDLDisplayCapabilities *)displayCapabilities { - NSObject *obj = [parameters objectForKey:NAMES_displayCapabilities]; - if (obj == nil || [obj isKindOfClass:SDLDisplayCapabilities.class]) { - return (SDLDisplayCapabilities *)obj; - } else { - return [[SDLDisplayCapabilities alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setButtonCapabilities:(nullable NSArray *)buttonCapabilities { + [parameters sdl_setObject:buttonCapabilities forName:SDLNameButtonCapabilities]; } -- (void)setButtonCapabilities:(NSMutableArray *)buttonCapabilities { - if (buttonCapabilities != nil) { - [parameters setObject:buttonCapabilities forKey:NAMES_buttonCapabilities]; - } else { - [parameters removeObjectForKey:NAMES_buttonCapabilities]; - } +- (nullable NSArray *)buttonCapabilities { + return [parameters sdl_objectsForName:SDLNameButtonCapabilities ofClass:SDLButtonCapabilities.class]; } -- (NSMutableArray *)buttonCapabilities { - NSMutableArray *array = [parameters objectForKey:NAMES_buttonCapabilities]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLButtonCapabilities.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLButtonCapabilities alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (void)setSoftButtonCapabilities:(nullable NSArray *)softButtonCapabilities { + [parameters sdl_setObject:softButtonCapabilities forName:SDLNameSoftButtonCapabilities]; } -- (void)setSoftButtonCapabilities:(NSMutableArray *)softButtonCapabilities { - if (softButtonCapabilities != nil) { - [parameters setObject:softButtonCapabilities forKey:NAMES_softButtonCapabilities]; - } else { - [parameters removeObjectForKey:NAMES_softButtonCapabilities]; - } +- (nullable NSArray *)softButtonCapabilities { + return [parameters sdl_objectsForName:SDLNameSoftButtonCapabilities ofClass:SDLSoftButtonCapabilities.class]; } -- (NSMutableArray *)softButtonCapabilities { - NSMutableArray *array = [parameters objectForKey:NAMES_softButtonCapabilities]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLSoftButtonCapabilities.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLSoftButtonCapabilities alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } -} - -- (void)setPresetBankCapabilities:(SDLPresetBankCapabilities *)presetBankCapabilities { - if (presetBankCapabilities != nil) { - [parameters setObject:presetBankCapabilities forKey:NAMES_presetBankCapabilities]; - } else { - [parameters removeObjectForKey:NAMES_presetBankCapabilities]; - } +- (void)setPresetBankCapabilities:(nullable SDLPresetBankCapabilities *)presetBankCapabilities { + [parameters sdl_setObject:presetBankCapabilities forName:SDLNamePresetBankCapabilities]; } -- (SDLPresetBankCapabilities *)presetBankCapabilities { - NSObject *obj = [parameters objectForKey:NAMES_presetBankCapabilities]; - if (obj == nil || [obj isKindOfClass:SDLPresetBankCapabilities.class]) { - return (SDLPresetBankCapabilities *)obj; - } else { - return [[SDLPresetBankCapabilities alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLPresetBankCapabilities *)presetBankCapabilities { + return [parameters sdl_objectForName:SDLNamePresetBankCapabilities ofClass:SDLPresetBankCapabilities.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetGlobalProperties.h b/SmartDeviceLink/SDLSetGlobalProperties.h index 9f0982ff1..f6ac19b36 100644 --- a/SmartDeviceLink/SDLSetGlobalProperties.h +++ b/SmartDeviceLink/SDLSetGlobalProperties.h @@ -5,6 +5,7 @@ @class SDLImage; @class SDLKeyboardProperties; +@class SDLTTSChunk; @class SDLVRHelpItem; /** @@ -17,27 +18,16 @@ * Since SmartDeviceLink 1.0 * See SDLResetGlobalProperties */ -@interface SDLSetGlobalProperties : SDLRPCRequest { -} -/** - * @abstract Constructs a new SDLSetGlobalProperties object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLSetGlobalProperties object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLSetGlobalProperties : SDLRPCRequest -- (instancetype)initWithHelpText:(NSString *)helpText timeoutText:(NSString *)timeoutText; +- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText; -// TODO: (Alex M.)[2016-12-1] Add missing generic -- (instancetype)initWithHelpText:(NSString *)helpText timeoutText:(NSString *)timeoutText vrHelpTitle:(NSString *)vrHelpTitle vrHelp:(NSArray *)vrHelp; +- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText vrHelpTitle:(nullable NSString *)vrHelpTitle vrHelp:(nullable NSArray *)vrHelp; -// TODO: (Alex M.)[2016-12-1] Add missing generic -- (instancetype)initWithHelpText:(NSString *)helpText timeoutText:(NSString *)timeoutText vrHelpTitle:(NSString *)vrHelpTitle vrHelp:(NSArray *)vrHelp menuTitle:(NSString *)menuTitle menuIcon:(SDLImage *)menuIcon keyboardProperties:(SDLKeyboardProperties *)keyboardProperties; +- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText vrHelpTitle:(nullable NSString *)vrHelpTitle vrHelp:(nullable NSArray *)vrHelp menuTitle:(nullable NSString *)menuTitle menuIcon:(nullable SDLImage *)menuIcon keyboardProperties:(nullable SDLKeyboardProperties *)keyboardProperties; /** * @abstract Sets a Vector for Help Prompt that Array of one or more @@ -52,14 +42,14 @@ *

  • Only optional it timeoutPrompt has been specified
  • * */ -@property (strong) NSMutableArray *helpPrompt; +@property (strong, nonatomic, nullable) NSArray *helpPrompt; /** * @abstract A Vector for Timeout Prompt representing Array of one or * more TTSChunk elements specifying the help prompt used in an interaction * started by PTT * */ -@property (strong) NSMutableArray *timeoutPrompt; +@property (strong, nonatomic, nullable) NSArray *timeoutPrompt; /** * @abstract Sets a voice recognition Help Title * @@ -75,7 +65,7 @@ * * @since SmartDeviceLink 2.0 */ -@property (strong) NSString *vrHelpTitle; +@property (strong, nonatomic, nullable) NSString *vrHelpTitle; /** * @abstract Sets the items listed in the VR help screen used in an interaction * started by PTT @@ -96,9 +86,11 @@ * * @since SmartDeviceLink 2.0 */ -@property (strong) NSMutableArray *vrHelp; -@property (strong) NSString *menuTitle; -@property (strong) SDLImage *menuIcon; -@property (strong) SDLKeyboardProperties *keyboardProperties; +@property (strong, nonatomic, nullable) NSArray *vrHelp; +@property (strong, nonatomic, nullable) NSString *menuTitle; +@property (strong, nonatomic, nullable) SDLImage *menuIcon; +@property (strong, nonatomic, nullable) SDLKeyboardProperties *keyboardProperties; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetGlobalProperties.m b/SmartDeviceLink/SDLSetGlobalProperties.m index 21d5fbc67..d7ae65c2e 100644 --- a/SmartDeviceLink/SDLSetGlobalProperties.m +++ b/SmartDeviceLink/SDLSetGlobalProperties.m @@ -4,37 +4,32 @@ #import "SDLSetGlobalProperties.h" +#import "NSMutableDictionary+Store.h" #import "SDLImage.h" #import "SDLKeyboardProperties.h" #import "SDLNames.h" #import "SDLTTSChunk.h" -#import "SDLTTSChunkFactory.h" #import "SDLVrHelpItem.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLSetGlobalProperties - (instancetype)init { - if (self = [super initWithName:NAMES_SetGlobalProperties]) { + if (self = [super initWithName:SDLNameSetGlobalProperties]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (instancetype)initWithHelpText:(NSString *)helpText timeoutText:(NSString *)timeoutText { +- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText { return [self initWithHelpText:helpText timeoutText:timeoutText vrHelpTitle:nil vrHelp:nil]; } -- (instancetype)initWithHelpText:(NSString *)helpText timeoutText:(NSString *)timeoutText vrHelpTitle:(NSString *)vrHelpTitle vrHelp:(NSArray *)vrHelp { +- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText vrHelpTitle:(nullable NSString *)vrHelpTitle vrHelp:(nullable NSArray *)vrHelp { return [self initWithHelpText:helpText timeoutText:timeoutText vrHelpTitle:vrHelpTitle vrHelp:vrHelp menuTitle:nil menuIcon:nil keyboardProperties:nil]; } -- (instancetype)initWithHelpText:(NSString *)helpText timeoutText:(NSString *)timeoutText vrHelpTitle:(NSString *)vrHelpTitle vrHelp:(NSArray *)vrHelp menuTitle:(NSString *)menuTitle menuIcon:(SDLImage *)menuIcon keyboardProperties:(SDLKeyboardProperties *)keyboardProperties { +- (instancetype)initWithHelpText:(nullable NSString *)helpText timeoutText:(nullable NSString *)timeoutText vrHelpTitle:(nullable NSString *)vrHelpTitle vrHelp:(nullable NSArray *)vrHelp menuTitle:(nullable NSString *)menuTitle menuIcon:(nullable SDLImage *)menuIcon keyboardProperties:(nullable SDLKeyboardProperties *)keyboardProperties { self = [self init]; if (!self) { return nil; @@ -51,132 +46,62 @@ - (instancetype)initWithHelpText:(NSString *)helpText timeoutText:(NSString *)ti return self; } - -- (void)setHelpPrompt:(NSMutableArray *)helpPrompt { - if (helpPrompt != nil) { - [parameters setObject:helpPrompt forKey:NAMES_helpPrompt]; - } else { - [parameters removeObjectForKey:NAMES_helpPrompt]; - } +- (void)setHelpPrompt:(nullable NSArray *)helpPrompt { + [parameters sdl_setObject:helpPrompt forName:SDLNameHelpPrompt]; } -- (NSMutableArray *)helpPrompt { - NSMutableArray *array = [parameters objectForKey:NAMES_helpPrompt]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTTSChunk.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLTTSChunk alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (nullable NSArray *)helpPrompt { + return [parameters sdl_objectsForName:SDLNameHelpPrompt ofClass:SDLTTSChunk.class]; } -- (void)setTimeoutPrompt:(NSMutableArray *)timeoutPrompt { - if (timeoutPrompt != nil) { - [parameters setObject:timeoutPrompt forKey:NAMES_timeoutPrompt]; - } else { - [parameters removeObjectForKey:NAMES_timeoutPrompt]; - } +- (void)setTimeoutPrompt:(nullable NSArray *)timeoutPrompt { + [parameters sdl_setObject:timeoutPrompt forName:SDLNameTimeoutPrompt]; } -- (NSMutableArray *)timeoutPrompt { - NSMutableArray *array = [parameters objectForKey:NAMES_timeoutPrompt]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTTSChunk.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLTTSChunk alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (nullable NSArray *)timeoutPrompt { + return [parameters sdl_objectsForName:SDLNameTimeoutPrompt ofClass:SDLTTSChunk.class]; } -- (void)setVrHelpTitle:(NSString *)vrHelpTitle { - if (vrHelpTitle != nil) { - [parameters setObject:vrHelpTitle forKey:NAMES_vrHelpTitle]; - } else { - [parameters removeObjectForKey:NAMES_vrHelpTitle]; - } +- (void)setVrHelpTitle:(nullable NSString *)vrHelpTitle { + [parameters sdl_setObject:vrHelpTitle forName:SDLNameVRHelpTitle]; } -- (NSString *)vrHelpTitle { - return [parameters objectForKey:NAMES_vrHelpTitle]; +- (nullable NSString *)vrHelpTitle { + return [parameters sdl_objectForName:SDLNameVRHelpTitle]; } -- (void)setVrHelp:(NSMutableArray *)vrHelp { - if (vrHelp != nil) { - [parameters setObject:vrHelp forKey:NAMES_vrHelp]; - } else { - [parameters removeObjectForKey:NAMES_vrHelp]; - } +- (void)setVrHelp:(nullable NSArray *)vrHelp { + [parameters sdl_setObject:vrHelp forName:SDLNameVRHelp]; } -- (NSMutableArray *)vrHelp { - NSMutableArray *array = [parameters objectForKey:NAMES_vrHelp]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLVRHelpItem.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLVRHelpItem alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (nullable NSArray *)vrHelp { + return [parameters sdl_objectsForName:SDLNameVRHelp ofClass:SDLVRHelpItem.class]; } -- (void)setMenuTitle:(NSString *)menuTitle { - if (menuTitle != nil) { - [parameters setObject:menuTitle forKey:NAMES_menuTitle]; - } else { - [parameters removeObjectForKey:NAMES_menuTitle]; - } +- (void)setMenuTitle:(nullable NSString *)menuTitle { + [parameters sdl_setObject:menuTitle forName:SDLNameMenuTitle]; } -- (NSString *)menuTitle { - return [parameters objectForKey:NAMES_menuTitle]; +- (nullable NSString *)menuTitle { + return [parameters sdl_objectForName:SDLNameMenuTitle]; } -- (void)setMenuIcon:(SDLImage *)menuIcon { - if (menuIcon != nil) { - [parameters setObject:menuIcon forKey:NAMES_menuIcon]; - } else { - [parameters removeObjectForKey:NAMES_menuIcon]; - } +- (void)setMenuIcon:(nullable SDLImage *)menuIcon { + [parameters sdl_setObject:menuIcon forName:SDLNameMenuIcon]; } -- (SDLImage *)menuIcon { - NSObject *obj = [parameters objectForKey:NAMES_menuIcon]; - if (obj == nil || [obj isKindOfClass:SDLImage.class]) { - return (SDLImage *)obj; - } else { - return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLImage *)menuIcon { + return [parameters sdl_objectForName:SDLNameMenuIcon ofClass:SDLImage.class]; } -- (void)setKeyboardProperties:(SDLKeyboardProperties *)keyboardProperties { - if (keyboardProperties != nil) { - [parameters setObject:keyboardProperties forKey:NAMES_keyboardProperties]; - } else { - [parameters removeObjectForKey:NAMES_keyboardProperties]; - } +- (void)setKeyboardProperties:(nullable SDLKeyboardProperties *)keyboardProperties { + [parameters sdl_setObject:keyboardProperties forName:SDLNameKeyboardProperties]; } -- (SDLKeyboardProperties *)keyboardProperties { - NSObject *obj = [parameters objectForKey:NAMES_keyboardProperties]; - if (obj == nil || [obj isKindOfClass:SDLKeyboardProperties.class]) { - return (SDLKeyboardProperties *)obj; - } else { - return [[SDLKeyboardProperties alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLKeyboardProperties *)keyboardProperties { + return [parameters sdl_objectForName:SDLNameKeyboardProperties ofClass:SDLKeyboardProperties.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetGlobalPropertiesResponse.h b/SmartDeviceLink/SDLSetGlobalPropertiesResponse.h index 131700137..f41991d53 100644 --- a/SmartDeviceLink/SDLSetGlobalPropertiesResponse.h +++ b/SmartDeviceLink/SDLSetGlobalPropertiesResponse.h @@ -9,18 +9,11 @@ * * Since SmartDeviceLink 1.0 */ -@interface SDLSetGlobalPropertiesResponse : SDLRPCResponse { -} -/** - * @abstract Constructs a new SDLSetGlobalPropertiesResponse object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLSetGlobalPropertiesResponse object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLSetGlobalPropertiesResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetGlobalPropertiesResponse.m b/SmartDeviceLink/SDLSetGlobalPropertiesResponse.m index ff4db22c8..9da9719cc 100644 --- a/SmartDeviceLink/SDLSetGlobalPropertiesResponse.m +++ b/SmartDeviceLink/SDLSetGlobalPropertiesResponse.m @@ -4,20 +4,19 @@ #import "SDLSetGlobalPropertiesResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLSetGlobalPropertiesResponse - (instancetype)init { - if (self = [super initWithName:NAMES_SetGlobalProperties]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameSetGlobalProperties]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetInteriorVehicleData.h b/SmartDeviceLink/SDLSetInteriorVehicleData.h new file mode 100644 index 000000000..cf7e876a0 --- /dev/null +++ b/SmartDeviceLink/SDLSetInteriorVehicleData.h @@ -0,0 +1,28 @@ +// +// SDLSetInteriorVehicleData.h +// + +#import "SDLRPCRequest.h" + +@class SDLModuleData; + +/** + * This RPC allows a remote control type mobile application to + * change the settings of a specific remote control module. + */ + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLSetInteriorVehicleData : SDLRPCRequest + +- (instancetype)initWithModuleData:(SDLModuleData *)moduleData; + +/** + * The module data to set for the requested RC module. + * + */ +@property (strong, nonatomic) SDLModuleData *moduleData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetInteriorVehicleData.m b/SmartDeviceLink/SDLSetInteriorVehicleData.m new file mode 100644 index 000000000..cb0836ec8 --- /dev/null +++ b/SmartDeviceLink/SDLSetInteriorVehicleData.m @@ -0,0 +1,41 @@ +// +// SDLSetInteriorVehicleData.m +// + +#import "SDLSetInteriorVehicleData.h" +#import "SDLNames.h" +#import "NSMutableDictionary+Store.h" +#import "SDLModuleData.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLSetInteriorVehicleData + +- (instancetype)init { + if (self = [super initWithName:SDLNameSetInteriorVehicleData]) { + } + return self; +} + +- (instancetype)initWithModuleData:(SDLModuleData *)moduleData { + self = [self init]; + if (!self) { + return nil; + } + + self.moduleData = moduleData; + + return self; +} + +- (void)setModuleData:(SDLModuleData *)moduleData { + [parameters sdl_setObject:moduleData forName:SDLNameModuleData]; +} + +- (SDLModuleData *)moduleData { + return [parameters sdl_objectForName:SDLNameModuleData ofClass:SDLModuleData.class]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h b/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h new file mode 100644 index 000000000..fd44ce317 --- /dev/null +++ b/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.h @@ -0,0 +1,24 @@ +// +// SDLSetInteriorVehicleDataResponse.h +// + +#import "SDLRPCResponse.h" +@class SDLModuleData; + +NS_ASSUME_NONNULL_BEGIN + +/** + * Used to set the values of one remote control module + * + */ +@interface SDLSetInteriorVehicleDataResponse : SDLRPCResponse + +/** + * The module data to set for the requested remote control module. + * + */ +@property (strong, nonatomic) SDLModuleData *moduleData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m b/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m new file mode 100644 index 000000000..ccb59ff55 --- /dev/null +++ b/SmartDeviceLink/SDLSetInteriorVehicleDataResponse.m @@ -0,0 +1,30 @@ +// +// SDLSetInteriorVehicleDataResponse.m +// + +#import "SDLSetInteriorVehicleDataResponse.h" +#import "SDLNames.h" +#import "SDLModuleData.h" +#import "NSMutableDictionary+Store.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLSetInteriorVehicleDataResponse + +- (instancetype)init { + if (self = [super initWithName:SDLNameSetInteriorVehicleData]) { + } + return self; +} + +- (void)setModuleData:(SDLModuleData *)moduleData { + [parameters sdl_setObject:moduleData forName:SDLNameModuleData]; +} + +- (SDLModuleData *)moduleData { + return [parameters sdl_objectForName:SDLNameModuleData ofClass:SDLModuleData.class]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetMediaClockTimer.h b/SmartDeviceLink/SDLSetMediaClockTimer.h index f4117007b..f561299f5 100644 --- a/SmartDeviceLink/SDLSetMediaClockTimer.h +++ b/SmartDeviceLink/SDLSetMediaClockTimer.h @@ -3,9 +3,9 @@ #import "SDLRPCRequest.h" -@class SDLStartTime; -@class SDLUpdateMode; +#import "SDLUpdateMode.h" +@class SDLStartTime; /** * Sets the media clock/timer value and the update method (e.g.count-up, @@ -17,24 +17,14 @@ * * Since SmartDeviceLink 1.0 */ -@interface SDLSetMediaClockTimer : SDLRPCRequest { -} -/** - * @abstract Constructs a new SDLSetMediaClockTimer object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLSetMediaClockTimer object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN -// TODO: (Alex M.)[2016-12-1] Change NSInteger to UInt8 -- (instancetype)initWithUpdateMode:(SDLUpdateMode *)updateMode hours:(NSInteger)hours minutes:(NSInteger)minutes seconds:(NSInteger)seconds; +@interface SDLSetMediaClockTimer : SDLRPCRequest -- (instancetype)initWithUpdateMode:(SDLUpdateMode *)updateMode; +- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode hours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds; + +- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode; /** * @abstract A Start Time with specifying hour, minute, second values @@ -48,13 +38,13 @@ *
  • Will be ignored for PAUSE/RESUME and CLEAR
  • * */ -@property (strong) SDLStartTime *startTime; +@property (strong, nonatomic, nullable) SDLStartTime *startTime; /** * @abstract An END time of type SDLStartTime, specifying hour, minute, second values * * @discussion An SDLStartTime object with specifying hour, minute, second values */ -@property (strong) SDLStartTime *endTime; +@property (strong, nonatomic, nullable) SDLStartTime *endTime; /** * @abstract The media clock/timer update mode (COUNTUP/COUNTDOWN/PAUSE/RESUME) * @@ -68,6 +58,8 @@ * the timer's value when it was paused * */ -@property (strong) SDLUpdateMode *updateMode; +@property (strong, nonatomic) SDLUpdateMode updateMode; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetMediaClockTimer.m b/SmartDeviceLink/SDLSetMediaClockTimer.m index 61953c912..793fd1493 100644 --- a/SmartDeviceLink/SDLSetMediaClockTimer.m +++ b/SmartDeviceLink/SDLSetMediaClockTimer.m @@ -4,27 +4,22 @@ #import "SDLSetMediaClockTimer.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" #import "SDLStartTime.h" -#import "SDLUpdateMode.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLSetMediaClockTimer - (instancetype)init { - if (self = [super initWithName:NAMES_SetMediaClockTimer]) { + if (self = [super initWithName:SDLNameSetMediaClockTimer]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (instancetype)initWithUpdateMode:(SDLUpdateMode *)updateMode hours:(NSInteger)hours minutes:(NSInteger)minutes seconds:(NSInteger)seconds { +- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode hours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds { self = [self initWithUpdateMode:updateMode]; if (!self) { return nil; @@ -35,7 +30,7 @@ - (instancetype)initWithUpdateMode:(SDLUpdateMode *)updateMode hours:(NSInteger) return self; } -- (instancetype)initWithUpdateMode:(SDLUpdateMode *)updateMode { +- (instancetype)initWithUpdateMode:(SDLUpdateMode)updateMode { self = [self init]; if (!self) { return nil; @@ -46,55 +41,30 @@ - (instancetype)initWithUpdateMode:(SDLUpdateMode *)updateMode { return self; } -- (void)setStartTime:(SDLStartTime *)startTime { - if (startTime != nil) { - [parameters setObject:startTime forKey:NAMES_startTime]; - } else { - [parameters removeObjectForKey:NAMES_startTime]; - } +- (void)setStartTime:(nullable SDLStartTime *)startTime { + [parameters sdl_setObject:startTime forName:SDLNameStartTime]; } -- (SDLStartTime *)startTime { - NSObject *obj = [parameters objectForKey:NAMES_startTime]; - if (obj == nil || [obj isKindOfClass:SDLStartTime.class]) { - return (SDLStartTime *)obj; - } else { - return [[SDLStartTime alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLStartTime *)startTime { + return [parameters sdl_objectForName:SDLNameStartTime ofClass:SDLStartTime.class]; } -- (void)setEndTime:(SDLStartTime *)endTime { - if (endTime != nil) { - [parameters setObject:endTime forKey:NAMES_endTime]; - } else { - [parameters removeObjectForKey:NAMES_endTime]; - } +- (void)setEndTime:(nullable SDLStartTime *)endTime { + [parameters sdl_setObject:endTime forName:SDLNameEndTime]; } -- (SDLStartTime *)endTime { - NSObject *obj = [parameters objectForKey:NAMES_endTime]; - if (obj == nil || [obj isKindOfClass:SDLStartTime.class]) { - return (SDLStartTime *)obj; - } else { - return [[SDLStartTime alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLStartTime *)endTime { + return [parameters sdl_objectForName:SDLNameEndTime ofClass:SDLStartTime.class]; } -- (void)setUpdateMode:(SDLUpdateMode *)updateMode { - if (updateMode != nil) { - [parameters setObject:updateMode forKey:NAMES_updateMode]; - } else { - [parameters removeObjectForKey:NAMES_updateMode]; - } +- (void)setUpdateMode:(SDLUpdateMode)updateMode { + [parameters sdl_setObject:updateMode forName:SDLNameUpdateMode]; } -- (SDLUpdateMode *)updateMode { - NSObject *obj = [parameters objectForKey:NAMES_updateMode]; - if (obj == nil || [obj isKindOfClass:SDLUpdateMode.class]) { - return (SDLUpdateMode *)obj; - } else { - return [SDLUpdateMode valueOf:(NSString *)obj]; - } +- (SDLUpdateMode)updateMode { + return [parameters sdl_objectForName:SDLNameUpdateMode]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetMediaClockTimerResponse.h b/SmartDeviceLink/SDLSetMediaClockTimerResponse.h index ffa6a77ae..54a599821 100644 --- a/SmartDeviceLink/SDLSetMediaClockTimerResponse.h +++ b/SmartDeviceLink/SDLSetMediaClockTimerResponse.h @@ -9,20 +9,11 @@ * * Since SmartDeviceLink 1.0 */ -@interface SDLSetMediaClockTimerResponse : SDLRPCResponse { -} -/** - * @abstract Constructs a new SDLSetMediaClockTimerResponse object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLSetMediaClockTimerResponse object indicated by the NSMutableDictionary - * parameter - *

    - * - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLSetMediaClockTimerResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSetMediaClockTimerResponse.m b/SmartDeviceLink/SDLSetMediaClockTimerResponse.m index 098522fbd..f293e7d79 100644 --- a/SmartDeviceLink/SDLSetMediaClockTimerResponse.m +++ b/SmartDeviceLink/SDLSetMediaClockTimerResponse.m @@ -4,20 +4,19 @@ #import "SDLSetMediaClockTimerResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLSetMediaClockTimerResponse - (instancetype)init { - if (self = [super initWithName:NAMES_SetMediaClockTimer]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameSetMediaClockTimer]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLShow.h b/SmartDeviceLink/SDLShow.h index b941d1625..8eef691a6 100644 --- a/SmartDeviceLink/SDLShow.h +++ b/SmartDeviceLink/SDLShow.h @@ -3,11 +3,12 @@ #import "SDLRPCRequest.h" +#import "SDLTextAlignment.h" +#import "SDLMetadataType.h" + @class SDLImage; @class SDLSoftButton; @class SDLMetadataTags; -@class SDLTextAlignment; -@class SDLMetadataType; /** @@ -32,33 +33,22 @@ * Since SmartDeviceLink 1.0 * See SDLAlert SDLSetMediaClockTimer */ -@interface SDLShow : SDLRPCRequest { -} -/** - * @abstract Constructs a new SDLShow object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLShow object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 alignment:(SDLTextAlignment *)alignment; +NS_ASSUME_NONNULL_BEGIN -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField1Type:(SDLMetadataType *)mainField1Type mainField2:(NSString *)mainField2 mainField2Type:(SDLMetadataType *)mainField2Type alignment:(SDLTextAlignment *)alignment; +@interface SDLShow : SDLRPCRequest -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment; +- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 alignment:(nullable SDLTextAlignment)alignment; -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField1Type:(SDLMetadataType *)mainField1Type mainField2:(NSString *)mainField2 mainField2Type:(SDLMetadataType *)mainField2Type mainField3:(NSString *)mainField3 mainField3Type:(SDLMetadataType *)mainField3Type mainField4:(NSString *)mainField4 mainField4Type:(SDLMetadataType *)mainField4Type alignment:(SDLTextAlignment *)alignment; +- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField1Type:(nullable SDLMetadataType)mainField1Type mainField2:(nullable NSString *)mainField2 mainField2Type:(nullable SDLMetadataType)mainField2Type alignment:(nullable SDLTextAlignment)alignment; -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack; +- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 mainField3:(nullable NSString *)mainField3 mainField4:(nullable NSString *)mainField4 alignment:(nullable SDLTextAlignment)alignment; -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack graphic:(SDLImage *)graphic softButtons:(NSArray *)softButtons customPresets:(NSArray *)customPresets __deprecated_msg(("Use initWithMainField1:(NSString *)mainField1 (NSString *)mainField2 (NSString *)mainField3 (NSString *)mainField4 (SDLTextAlignment *)alignment (NSString *)statusBar (NSString *)mediaClock (NSString *)mediaTrack (SDLImage *)graphic (NSArray *)softButtons (NSArray *)customPresets (SDLMetadataStruct *)metadata instead")); +- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField1Type:(nullable SDLMetadataType)mainField1Type mainField2:(nullable NSString *)mainField2 mainField2Type:(nullable SDLMetadataType)mainField2Type mainField3:(nullable NSString *)mainField3 mainField3Type:(nullable SDLMetadataType)mainField3Type mainField4:(nullable NSString *)mainField4 mainField4Type:(nullable SDLMetadataType)mainField4Type alignment:(nullable SDLTextAlignment)alignment; -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack graphic:(SDLImage *)graphic softButtons:(NSArray *)softButtons customPresets:(NSArray *)customPresets textFieldMetadata:(SDLMetadataTags *)metadata; +- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 alignment:(nullable SDLTextAlignment)alignment statusBar:(nullable NSString *)statusBar mediaClock:(nullable NSString *)mediaClock mediaTrack:(nullable NSString *)mediaTrack; +- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 mainField3:(nullable NSString *)mainField3 mainField4:(nullable NSString *)mainField4 alignment:(nullable SDLTextAlignment)alignment statusBar:(nullable NSString *)statusBar mediaClock:(nullable NSString *)mediaClock mediaTrack:(nullable NSString *)mediaTrack graphic:(nullable SDLImage *)graphic softButtons:(nullable NSArray *)softButtons customPresets:(nullable NSArray *)customPresets textFieldMetadata:(nullable SDLMetadataTags *)metadata; /** * @abstract The text displayed in a single-line display, or in the upper display @@ -75,7 +65,7 @@ * cleared * */ -@property (strong) NSString *mainField1; +@property (strong, nonatomic, nullable) NSString *mainField1; /** * @abstract The text displayed on the second display line of a two-line display * @@ -93,7 +83,7 @@ *

  • Maxlength = 500
  • * */ -@property (strong) NSString *mainField2; +@property (strong, nonatomic, nullable) NSString *mainField2; /** * @abstract The text displayed on the first display line of the second page * @@ -112,7 +102,7 @@ * * @since SmartDeviceLink 2.0 */ -@property (strong) NSString *mainField3; +@property (strong, nonatomic, nullable) NSString *mainField3; /** * @abstract The text displayed on the second display line of the second page * @@ -131,7 +121,7 @@ * * @since SmartDeviceLink 2.0 */ -@property (strong) NSString *mainField4; +@property (strong, nonatomic, nullable) NSString *mainField4; /** * @abstract The alignment that Specifies how mainField1 and mainField2 text * should be aligned on display @@ -147,7 +137,7 @@ *
  • Has no effect with navigation display
  • * */ -@property (strong) SDLTextAlignment *alignment; +@property (strong, nonatomic, nullable) SDLTextAlignment alignment; /** * @abstract Text in the Status Bar * @@ -165,7 +155,7 @@ * parameter is ignored * */ -@property (strong) NSString *statusBar; +@property (strong, nonatomic, nullable) NSString *statusBar; /** * @abstract This property is deprecated use SetMediaClockTimer instead. *

    The value for the MediaClock field using a format described in the @@ -182,7 +172,7 @@ * will not display anything) * */ -@property (strong) NSString *mediaClock; +@property (strong, nonatomic, nullable) NSString *mediaClock; /** * @abstract The text in the track field * @@ -195,7 +185,7 @@ *

  • This field is only valid for media applications on navigation displays
  • * */ -@property (strong) NSString *mediaTrack; +@property (strong, nonatomic, nullable) NSString *mediaTrack; /** * @abstract An image to be shown on supported displays * @@ -205,7 +195,7 @@ * graphic shall not change
    * @since SmartDeviceLink 2.0 */ -@property (strong) SDLImage *graphic; +@property (strong, nonatomic, nullable) SDLImage *graphic; /** * @abstract An image to be shown on supported displays * @@ -215,7 +205,7 @@ * graphic shall not change
    * @since SmartDeviceLink 2.0 */ -@property (strong) SDLImage *secondaryGraphic; +@property (strong, nonatomic, nullable) SDLImage *secondaryGraphic; /** * @abstract The the Soft buttons defined by the App * @@ -232,7 +222,7 @@ * * @since SmartDeviceLink 2.0 */ -@property (strong) NSMutableArray *softButtons; +@property (strong, nonatomic, nullable) NSArray *softButtons; /** * @abstract The Custom Presets defined by the App * @@ -246,7 +236,7 @@ * * @since SmartDeviceLink 2.0 */ -@property (strong) NSMutableArray *customPresets; +@property (strong, nonatomic, nullable) NSArray *customPresets; /** * @abstract Text Field Metadata @@ -259,6 +249,8 @@ * If any text field contains no tags or the none tag, the metadata tag for that textfield should be removed. * @since SmartDeviceLink 2.0 */ -@property (strong) SDLMetadataTags *metadataTags; +@property (strong, nonatomic, nullable) SDLMetadataTags *metadataTags; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLShow.m b/SmartDeviceLink/SDLShow.m index 0a7949b3e..388865d24 100644 --- a/SmartDeviceLink/SDLShow.m +++ b/SmartDeviceLink/SDLShow.m @@ -4,101 +4,76 @@ #import "SDLShow.h" +#import "NSMutableDictionary+Store.h" #import "SDLImage.h" #import "SDLMetadataTags.h" +#import "SDLMetadataType.h" #import "SDLNames.h" #import "SDLSoftButton.h" -#import "SDLTextAlignment.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLShow - (instancetype)init { - if (self = [super initWithName:NAMES_Show]) { + if (self = [super initWithName:SDLNameShow]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 alignment:(SDLTextAlignment *)alignment { +- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 alignment:(nullable SDLTextAlignment)alignment { return [self initWithMainField1:mainField1 mainField2:mainField2 mainField3:nil mainField4:nil alignment:alignment]; } -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField1Type:(SDLMetadataType *)mainField1Type mainField2:(NSString *)mainField2 mainField2Type:(SDLMetadataType *)mainField2Type alignment:(SDLTextAlignment *)alignment { +- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField1Type:(nullable SDLMetadataType)mainField1Type mainField2:(nullable NSString *)mainField2 mainField2Type:(nullable SDLMetadataType)mainField2Type alignment:(nullable SDLTextAlignment)alignment { self = [self init]; if (!self) { return nil; } - NSArray *field1Array = @[mainField1Type]; - NSArray *field2Array = @[mainField2Type]; - SDLMetadataTags* fieldsStruct = [[SDLMetadataTags alloc] initWithTextFieldTypes:field1Array mainField2:field2Array]; + NSArray *field1Array = @[mainField1Type]; + NSArray *field2Array = @[mainField2Type]; + SDLMetadataTags* metadataTags = [[SDLMetadataTags alloc] initWithTextFieldTypes:field1Array mainField2:field2Array]; self.mainField1 = mainField1; self.mainField2 = mainField2; self.alignment = alignment; - self.metadataTags = fieldsStruct; + self.metadataTags = metadataTags; return self; } -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack { - return [self initWithMainField1:mainField1 mainField2:mainField2 mainField3:nil mainField4:nil alignment:alignment statusBar:statusBar mediaClock:mediaClock mediaTrack:mediaTrack graphic:nil softButtons:nil customPresets:nil textFieldMetadata:nil]; -} - -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment { +- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 mainField3:(nullable NSString *)mainField3 mainField4:(nullable NSString *)mainField4 alignment:(nullable SDLTextAlignment)alignment { return [self initWithMainField1:mainField1 mainField2:mainField2 mainField3:mainField3 mainField4:mainField4 alignment:alignment statusBar:nil mediaClock:nil mediaTrack:nil graphic:nil softButtons:nil customPresets:nil textFieldMetadata:nil]; } -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField1Type:(SDLMetadataType *)mainField1Type mainField2:(NSString *)mainField2 mainField2Type:(SDLMetadataType *)mainField2Type mainField3:(NSString *)mainField3 mainField3Type:(SDLMetadataType *)mainField3Type mainField4:(NSString *)mainField4 mainField4Type:(SDLMetadataType *)mainField4Type alignment:(SDLTextAlignment *)alignment{ +- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField1Type:(nullable SDLMetadataType)mainField1Type mainField2:(nullable NSString *)mainField2 mainField2Type:(nullable SDLMetadataType)mainField2Type mainField3:(nullable NSString *)mainField3 mainField3Type:(nullable SDLMetadataType)mainField3Type mainField4:(nullable NSString *)mainField4 mainField4Type:(nullable SDLMetadataType)mainField4Type alignment:(nullable SDLTextAlignment)alignment{ self = [self init]; if (!self) { return nil; } - NSArray *field1Array = @[mainField1Type]; - NSArray *field2Array = @[mainField2Type]; - NSArray *field3Array = @[mainField3Type]; - NSArray *field4Array = @[mainField4Type]; - SDLMetadataTags* fieldsStruct = [[SDLMetadataTags alloc] initWithTextFieldTypes:field1Array mainField2:field2Array mainField3:field3Array mainField4:field4Array]; + NSArray *field1Array = @[mainField1Type]; + NSArray *field2Array = @[mainField2Type]; + NSArray *field3Array = @[mainField3Type]; + NSArray *field4Array = @[mainField4Type]; + SDLMetadataTags* metadataTags = [[SDLMetadataTags alloc] initWithTextFieldTypes:field1Array mainField2:field2Array mainField3:field3Array mainField4:field4Array]; self.mainField1 = mainField1; self.mainField2 = mainField2; self.mainField3 = mainField3; self.mainField4 = mainField4; self.alignment = alignment; - self.metadataTags = fieldsStruct; + self.metadataTags = metadataTags; return self; } -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack graphic:(SDLImage *)graphic softButtons:(NSArray *)softButtons customPresets:(NSArray *)customPresets { - self = [self init]; - if (!self) { - return nil; - } - - self.mainField1 = mainField1; - self.mainField2 = mainField2; - self.mainField3 = mainField3; - self.mainField4 = mainField4; - self.statusBar = statusBar; - self.mediaClock = mediaClock; - self.mediaTrack = mediaTrack; - self.alignment = alignment; - self.graphic = graphic; - self.softButtons = [softButtons mutableCopy]; - self.customPresets = [customPresets mutableCopy]; - - return self; +- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 alignment:(nullable SDLTextAlignment)alignment statusBar:(nullable NSString *)statusBar mediaClock:(nullable NSString *)mediaClock mediaTrack:(nullable NSString *)mediaTrack { + return [self initWithMainField1:mainField1 mainField2:mainField2 mainField3:nil mainField4:nil alignment:alignment statusBar:statusBar mediaClock:mediaClock mediaTrack:mediaTrack graphic:nil softButtons:nil customPresets:nil textFieldMetadata:nil]; } -- (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString *)mainField2 mainField3:(NSString *)mainField3 mainField4:(NSString *)mainField4 alignment:(SDLTextAlignment *)alignment statusBar:(NSString *)statusBar mediaClock:(NSString *)mediaClock mediaTrack:(NSString *)mediaTrack graphic:(SDLImage *)graphic softButtons:(NSArray *)softButtons customPresets:(NSArray *)customPresets textFieldMetadata:(SDLMetadataTags *)metadata { +- (instancetype)initWithMainField1:(nullable NSString *)mainField1 mainField2:(nullable NSString *)mainField2 mainField3:(nullable NSString *)mainField3 mainField4:(nullable NSString *)mainField4 alignment:(nullable SDLTextAlignment)alignment statusBar:(nullable NSString *)statusBar mediaClock:(nullable NSString *)mediaClock mediaTrack:(nullable NSString *)mediaTrack graphic:(nullable SDLImage *)graphic softButtons:(nullable NSArray *)softButtons customPresets:(nullable NSArray *)customPresets textFieldMetadata:(nullable SDLMetadataTags *)metadata { self = [self init]; if (!self) { return nil; @@ -121,191 +96,110 @@ - (instancetype)initWithMainField1:(NSString *)mainField1 mainField2:(NSString * } -- (void)setMainField1:(NSString *)mainField1 { - if (mainField1 != nil) { - [parameters setObject:mainField1 forKey:NAMES_mainField1]; - } else { - [parameters removeObjectForKey:NAMES_mainField1]; - } +- (void)setMainField1:(nullable NSString *)mainField1 { + [parameters sdl_setObject:mainField1 forName:SDLNameMainField1]; } -- (NSString *)mainField1 { - return [parameters objectForKey:NAMES_mainField1]; +- (nullable NSString *)mainField1 { + return [parameters sdl_objectForName:SDLNameMainField1]; } -- (void)setMainField2:(NSString *)mainField2 { - if (mainField2 != nil) { - [parameters setObject:mainField2 forKey:NAMES_mainField2]; - } else { - [parameters removeObjectForKey:NAMES_mainField2]; - } +- (void)setMainField2:(nullable NSString *)mainField2 { + [parameters sdl_setObject:mainField2 forName:SDLNameMainField2]; } -- (NSString *)mainField2 { - return [parameters objectForKey:NAMES_mainField2]; +- (nullable NSString *)mainField2 { + return [parameters sdl_objectForName:SDLNameMainField2]; } -- (void)setMainField3:(NSString *)mainField3 { - if (mainField3 != nil) { - [parameters setObject:mainField3 forKey:NAMES_mainField3]; - } else { - [parameters removeObjectForKey:NAMES_mainField3]; - } +- (void)setMainField3:(nullable NSString *)mainField3 { + [parameters sdl_setObject:mainField3 forName:SDLNameMainField3]; } -- (NSString *)mainField3 { - return [parameters objectForKey:NAMES_mainField3]; +- (nullable NSString *)mainField3 { + return [parameters sdl_objectForName:SDLNameMainField3]; } -- (void)setMainField4:(NSString *)mainField4 { - if (mainField4 != nil) { - [parameters setObject:mainField4 forKey:NAMES_mainField4]; - } else { - [parameters removeObjectForKey:NAMES_mainField4]; - } +- (void)setMainField4:(nullable NSString *)mainField4 { + [parameters sdl_setObject:mainField4 forName:SDLNameMainField4]; } -- (NSString *)mainField4 { - return [parameters objectForKey:NAMES_mainField4]; +- (nullable NSString *)mainField4 { + return [parameters sdl_objectForName:SDLNameMainField4]; } -- (void)setAlignment:(SDLTextAlignment *)alignment { - if (alignment != nil) { - [parameters setObject:alignment forKey:NAMES_alignment]; - } else { - [parameters removeObjectForKey:NAMES_alignment]; - } +- (void)setAlignment:(nullable SDLTextAlignment)alignment { + [parameters sdl_setObject:alignment forName:SDLNameAlignment]; } -- (SDLTextAlignment *)alignment { - NSObject *obj = [parameters objectForKey:NAMES_alignment]; - if (obj == nil || [obj isKindOfClass:SDLTextAlignment.class]) { - return (SDLTextAlignment *)obj; - } else { - return [SDLTextAlignment valueOf:(NSString *)obj]; - } +- (nullable SDLTextAlignment)alignment { + return [parameters sdl_objectForName:SDLNameAlignment]; } -- (void)setStatusBar:(NSString *)statusBar { - if (statusBar != nil) { - [parameters setObject:statusBar forKey:NAMES_statusBar]; - } else { - [parameters removeObjectForKey:NAMES_statusBar]; - } +- (void)setStatusBar:(nullable NSString *)statusBar { + [parameters sdl_setObject:statusBar forName:SDLNameStatusBar]; } -- (NSString *)statusBar { - return [parameters objectForKey:NAMES_statusBar]; +- (nullable NSString *)statusBar { + return [parameters sdl_objectForName:SDLNameStatusBar]; } -- (void)setMediaClock:(NSString *)mediaClock { - if (mediaClock != nil) { - [parameters setObject:mediaClock forKey:NAMES_mediaClock]; - } else { - [parameters removeObjectForKey:NAMES_mediaClock]; - } +- (void)setMediaClock:(nullable NSString *)mediaClock { + [parameters sdl_setObject:mediaClock forName:SDLNameMediaClock]; } -- (NSString *)mediaClock { - return [parameters objectForKey:NAMES_mediaClock]; +- (nullable NSString *)mediaClock { + return [parameters sdl_objectForName:SDLNameMediaClock]; } -- (void)setMediaTrack:(NSString *)mediaTrack { - if (mediaTrack != nil) { - [parameters setObject:mediaTrack forKey:NAMES_mediaTrack]; - } else { - [parameters removeObjectForKey:NAMES_mediaTrack]; - } +- (void)setMediaTrack:(nullable NSString *)mediaTrack { + [parameters sdl_setObject:mediaTrack forName:SDLNameMediaTrack]; } -- (NSString *)mediaTrack { - return [parameters objectForKey:NAMES_mediaTrack]; +- (nullable NSString *)mediaTrack { + return [parameters sdl_objectForName:SDLNameMediaTrack]; } -- (void)setGraphic:(SDLImage *)graphic { - if (graphic != nil) { - [parameters setObject:graphic forKey:NAMES_graphic]; - } else { - [parameters removeObjectForKey:NAMES_graphic]; - } +- (void)setGraphic:(nullable SDLImage *)graphic { + [parameters sdl_setObject:graphic forName:SDLNameGraphic]; } -- (SDLImage *)graphic { - NSObject *obj = [parameters objectForKey:NAMES_graphic]; - if (obj == nil || [obj isKindOfClass:SDLImage.class]) { - return (SDLImage *)obj; - } else { - return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLImage *)graphic { + return [parameters sdl_objectForName:SDLNameGraphic ofClass:SDLImage.class]; } -- (void)setSecondaryGraphic:(SDLImage *)secondaryGraphic { - if (secondaryGraphic != nil) { - [parameters setObject:secondaryGraphic forKey:NAMES_secondaryGraphic]; - } else { - [parameters removeObjectForKey:NAMES_secondaryGraphic]; - } +- (void)setSecondaryGraphic:(nullable SDLImage *)secondaryGraphic { + [parameters sdl_setObject:secondaryGraphic forName:SDLNameSecondaryGraphic]; } -- (SDLImage *)secondaryGraphic { - NSObject *obj = [parameters objectForKey:NAMES_secondaryGraphic]; - if (obj == nil || [obj isKindOfClass:SDLImage.class]) { - return (SDLImage *)obj; - } else { - return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLImage *)secondaryGraphic { + return [parameters sdl_objectForName:SDLNameSecondaryGraphic ofClass:SDLImage.class]; } -- (void)setSoftButtons:(NSMutableArray *)softButtons { - if (softButtons != nil) { - [parameters setObject:softButtons forKey:NAMES_softButtons]; - } else { - [parameters removeObjectForKey:NAMES_softButtons]; - } +- (void)setSoftButtons:(nullable NSArray *)softButtons { + [parameters sdl_setObject:softButtons forName:SDLNameSoftButtons]; } -- (NSMutableArray *)softButtons { - NSMutableArray *array = [parameters objectForKey:NAMES_softButtons]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLSoftButton.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLSoftButton alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (nullable NSArray *)softButtons { + return [parameters sdl_objectsForName:SDLNameSoftButtons ofClass:SDLSoftButton.class]; } -- (void)setCustomPresets:(NSMutableArray *)customPresets { - if (customPresets != nil) { - [parameters setObject:customPresets forKey:NAMES_customPresets]; - } else { - [parameters removeObjectForKey:NAMES_customPresets]; - } +- (void)setCustomPresets:(nullable NSArray *)customPresets { + [parameters sdl_setObject:customPresets forName:SDLNameCustomPresets]; } -- (NSMutableArray *)customPresets { - return [parameters objectForKey:NAMES_customPresets]; +- (nullable NSArray *)customPresets { + return [parameters sdl_objectForName:SDLNameCustomPresets]; } -- (void)setMetadataTags:(SDLMetadataTags *)metadataTags { - if (metadataTags != nil) { - [parameters setObject:metadataTags forKey:NAMES_metadataTags]; - } else { - [parameters removeObjectForKey:NAMES_metadataTags]; - } +- (void)setMetadataTags:(nullable SDLMetadataTags *)metadataTags { + [parameters sdl_setObject:metadataTags forName:SDLNameMetadataTags]; } -- (SDLMetadataTags *)metadataTags { - NSObject *obj = [parameters objectForKey:NAMES_metadataTags]; - if (obj == nil || [obj isKindOfClass:SDLMetadataTags.class]) { - return (SDLMetadataTags *)obj; - } else { - return [[SDLMetadataTags alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLMetadataTags *)metadataTags { + return [parameters sdl_objectForName:SDLNameMetadataTags ofClass:SDLMetadataTags.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLShowConstantTBT.h b/SmartDeviceLink/SDLShowConstantTBT.h index 9051384ff..8d25893bc 100644 --- a/SmartDeviceLink/SDLShowConstantTBT.h +++ b/SmartDeviceLink/SDLShowConstantTBT.h @@ -6,31 +6,31 @@ @class SDLImage; @class SDLSoftButton; - /** This RPC is used to update the user with navigation information
    * for the constantly shown screen (base screen),but also for the
    * alert type screen. *

    * @since SmartDeviceLink 2.0 */ -@interface SDLShowConstantTBT : SDLRPCRequest { -} - -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -- (instancetype)initWithNavigationText1:(NSString *)navigationText1 navigationText2:(NSString *)navigationText2 eta:(NSString *)eta timeToDestination:(NSString *)timeToDestination totalDistance:(NSString *)totalDistance turnIcon:(SDLImage *)turnIcon nextTurnIcon:(SDLImage *)nextTurnIcon distanceToManeuver:(double)distanceToManeuver distanceToManeuverScale:(double)distanceToManeuverScale maneuverComplete:(BOOL)maneuverComplete softButtons:(NSArray *)softButtons; - -@property (strong) NSString *navigationText1; -@property (strong) NSString *navigationText2; -@property (strong) NSString *eta; -@property (strong) NSString *timeToDestination; -@property (strong) NSString *totalDistance; -@property (strong) SDLImage *turnIcon; -@property (strong) SDLImage *nextTurnIcon; -@property (strong) NSNumber *distanceToManeuver; -@property (strong) NSNumber *distanceToManeuverScale; -@property (strong) NSNumber *maneuverComplete; -@property (strong) NSMutableArray *softButtons; + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLShowConstantTBT : SDLRPCRequest + +- (instancetype)initWithNavigationText1:(nullable NSString *)navigationText1 navigationText2:(nullable NSString *)navigationText2 eta:(nullable NSString *)eta timeToDestination:(nullable NSString *)timeToDestination totalDistance:(nullable NSString *)totalDistance turnIcon:(nullable SDLImage *)turnIcon nextTurnIcon:(nullable SDLImage *)nextTurnIcon distanceToManeuver:(double)distanceToManeuver distanceToManeuverScale:(double)distanceToManeuverScale maneuverComplete:(BOOL)maneuverComplete softButtons:(nullable NSArray *)softButtons; + +@property (strong, nonatomic, nullable) NSString *navigationText1; +@property (strong, nonatomic, nullable) NSString *navigationText2; +@property (strong, nonatomic, nullable) NSString *eta; +@property (strong, nonatomic, nullable) NSString *timeToDestination; +@property (strong, nonatomic, nullable) NSString *totalDistance; +@property (strong, nonatomic, nullable) SDLImage *turnIcon; +@property (strong, nonatomic, nullable) SDLImage *nextTurnIcon; +@property (strong, nonatomic, nullable) NSNumber *distanceToManeuver; +@property (strong, nonatomic, nullable) NSNumber *distanceToManeuverScale; +@property (strong, nonatomic, nullable) NSNumber *maneuverComplete; +@property (strong, nonatomic, nullable) NSArray *softButtons; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLShowConstantTBT.m b/SmartDeviceLink/SDLShowConstantTBT.m index c890c707b..f4565d923 100644 --- a/SmartDeviceLink/SDLShowConstantTBT.m +++ b/SmartDeviceLink/SDLShowConstantTBT.m @@ -4,26 +4,22 @@ #import "SDLShowConstantTBT.h" +#import "NSMutableDictionary+Store.h" #import "SDLImage.h" #import "SDLNames.h" #import "SDLSoftButton.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLShowConstantTBT - (instancetype)init { - if (self = [super initWithName:NAMES_ShowConstantTBT]) { + if (self = [super initWithName:SDLNameShowConstantTBT]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (instancetype)initWithNavigationText1:(NSString *)navigationText1 navigationText2:(NSString *)navigationText2 eta:(NSString *)eta timeToDestination:(NSString *)timeToDestination totalDistance:(NSString *)totalDistance turnIcon:(SDLImage *)turnIcon nextTurnIcon:(SDLImage *)nextTurnIcon distanceToManeuver:(double)distanceToManeuver distanceToManeuverScale:(double)distanceToManeuverScale maneuverComplete:(BOOL)maneuverComplete softButtons:(NSArray *)softButtons { +- (instancetype)initWithNavigationText1:(nullable NSString *)navigationText1 navigationText2:(nullable NSString *)navigationText2 eta:(nullable NSString *)eta timeToDestination:(nullable NSString *)timeToDestination totalDistance:(nullable NSString *)totalDistance turnIcon:(nullable SDLImage *)turnIcon nextTurnIcon:(nullable SDLImage *)nextTurnIcon distanceToManeuver:(double)distanceToManeuver distanceToManeuverScale:(double)distanceToManeuverScale maneuverComplete:(BOOL)maneuverComplete softButtons:(nullable NSArray *)softButtons { self = [self init]; if (!self) { return nil; @@ -44,157 +40,94 @@ - (instancetype)initWithNavigationText1:(NSString *)navigationText1 navigationTe return self; } -- (void)setNavigationText1:(NSString *)navigationText1 { - if (navigationText1 != nil) { - [parameters setObject:navigationText1 forKey:NAMES_navigationText1]; - } else { - [parameters removeObjectForKey:NAMES_navigationText1]; - } +- (void)setNavigationText1:(nullable NSString *)navigationText1 { + [parameters sdl_setObject:navigationText1 forName:SDLNameNavigationText1]; } -- (NSString *)navigationText1 { - return [parameters objectForKey:NAMES_navigationText1]; +- (nullable NSString *)navigationText1 { + return [parameters sdl_objectForName:SDLNameNavigationText1]; } -- (void)setNavigationText2:(NSString *)navigationText2 { - if (navigationText2 != nil) { - [parameters setObject:navigationText2 forKey:NAMES_navigationText2]; - } else { - [parameters removeObjectForKey:NAMES_navigationText2]; - } +- (void)setNavigationText2:(nullable NSString *)navigationText2 { + [parameters sdl_setObject:navigationText2 forName:SDLNameNavigationText2]; } -- (NSString *)navigationText2 { - return [parameters objectForKey:NAMES_navigationText2]; +- (nullable NSString *)navigationText2 { + return [parameters sdl_objectForName:SDLNameNavigationText2]; } -- (void)setEta:(NSString *)eta { - if (eta != nil) { - [parameters setObject:eta forKey:NAMES_eta]; - } else { - [parameters removeObjectForKey:NAMES_eta]; - } +- (void)setEta:(nullable NSString *)eta { + [parameters sdl_setObject:eta forName:SDLNameETA]; } -- (NSString *)eta { - return [parameters objectForKey:NAMES_eta]; +- (nullable NSString *)eta { + return [parameters sdl_objectForName:SDLNameETA]; } -- (void)setTimeToDestination:(NSString *)timeToDestination { - if (timeToDestination != nil) { - [parameters setObject:timeToDestination forKey:NAMES_timeToDestination]; - } else { - [parameters removeObjectForKey:NAMES_timeToDestination]; - } +- (void)setTimeToDestination:(nullable NSString *)timeToDestination { + [parameters sdl_setObject:timeToDestination forName:SDLNameTimeToDestination]; } -- (NSString *)timeToDestination { - return [parameters objectForKey:NAMES_timeToDestination]; +- (nullable NSString *)timeToDestination { + return [parameters sdl_objectForName:SDLNameTimeToDestination]; } -- (void)setTotalDistance:(NSString *)totalDistance { - if (totalDistance != nil) { - [parameters setObject:totalDistance forKey:NAMES_totalDistance]; - } else { - [parameters removeObjectForKey:NAMES_totalDistance]; - } +- (void)setTotalDistance:(nullable NSString *)totalDistance { + [parameters sdl_setObject:totalDistance forName:SDLNameTotalDistance]; } -- (NSString *)totalDistance { - return [parameters objectForKey:NAMES_totalDistance]; +- (nullable NSString *)totalDistance { + return [parameters sdl_objectForName:SDLNameTotalDistance]; } -- (void)setTurnIcon:(SDLImage *)turnIcon { - if (turnIcon != nil) { - [parameters setObject:turnIcon forKey:NAMES_turnIcon]; - } else { - [parameters removeObjectForKey:NAMES_turnIcon]; - } +- (void)setTurnIcon:(nullable SDLImage *)turnIcon { + [parameters sdl_setObject:turnIcon forName:SDLNameTurnIcon]; } -- (SDLImage *)turnIcon { - NSObject *obj = [parameters objectForKey:NAMES_turnIcon]; - if (obj == nil || [obj isKindOfClass:SDLImage.class]) { - return (SDLImage *)obj; - } else { - return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLImage *)turnIcon { + return [parameters sdl_objectForName:SDLNameTurnIcon ofClass:SDLImage.class]; } -- (void)setNextTurnIcon:(SDLImage *)nextTurnIcon { - if (nextTurnIcon != nil) { - [parameters setObject:nextTurnIcon forKey:NAMES_nextTurnIcon]; - } else { - [parameters removeObjectForKey:NAMES_nextTurnIcon]; - } +- (void)setNextTurnIcon:(nullable SDLImage *)nextTurnIcon { + [parameters sdl_setObject:nextTurnIcon forName:SDLNameNextTurnIcon]; } -- (SDLImage *)nextTurnIcon { - NSObject *obj = [parameters objectForKey:NAMES_nextTurnIcon]; - if (obj == nil || [obj isKindOfClass:SDLImage.class]) { - return (SDLImage *)obj; - } else { - return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLImage *)nextTurnIcon { + return [parameters sdl_objectForName:SDLNameNextTurnIcon ofClass:SDLImage.class]; } -- (void)setDistanceToManeuver:(NSNumber *)distanceToManeuver { - if (distanceToManeuver != nil) { - [parameters setObject:distanceToManeuver forKey:NAMES_distanceToManeuver]; - } else { - [parameters removeObjectForKey:NAMES_distanceToManeuver]; - } +- (void)setDistanceToManeuver:(nullable NSNumber *)distanceToManeuver { + [parameters sdl_setObject:distanceToManeuver forName:SDLNameDistanceToManeuver]; } -- (NSNumber *)distanceToManeuver { - return [parameters objectForKey:NAMES_distanceToManeuver]; +- (nullable NSNumber *)distanceToManeuver { + return [parameters sdl_objectForName:SDLNameDistanceToManeuver]; } -- (void)setDistanceToManeuverScale:(NSNumber *)distanceToManeuverScale { - if (distanceToManeuverScale != nil) { - [parameters setObject:distanceToManeuverScale forKey:NAMES_distanceToManeuverScale]; - } else { - [parameters removeObjectForKey:NAMES_distanceToManeuverScale]; - } +- (void)setDistanceToManeuverScale:(nullable NSNumber *)distanceToManeuverScale { + [parameters sdl_setObject:distanceToManeuverScale forName:SDLNameDistanceToManeuverScale]; } -- (NSNumber *)distanceToManeuverScale { - return [parameters objectForKey:NAMES_distanceToManeuverScale]; +- (nullable NSNumber *)distanceToManeuverScale { + return [parameters sdl_objectForName:SDLNameDistanceToManeuverScale]; } -- (void)setManeuverComplete:(NSNumber *)maneuverComplete { - if (maneuverComplete != nil) { - [parameters setObject:maneuverComplete forKey:NAMES_maneuverComplete]; - } else { - [parameters removeObjectForKey:NAMES_maneuverComplete]; - } +- (void)setManeuverComplete:(nullable NSNumber *)maneuverComplete { + [parameters sdl_setObject:maneuverComplete forName:SDLNameManeuverComplete]; } -- (NSNumber *)maneuverComplete { - return [parameters objectForKey:NAMES_maneuverComplete]; +- (nullable NSNumber *)maneuverComplete { + return [parameters sdl_objectForName:SDLNameManeuverComplete]; } -- (void)setSoftButtons:(NSMutableArray *)softButtons { - if (softButtons != nil) { - [parameters setObject:softButtons forKey:NAMES_softButtons]; - } else { - [parameters removeObjectForKey:NAMES_softButtons]; - } +- (void)setSoftButtons:(nullable NSArray *)softButtons { + [parameters sdl_setObject:softButtons forName:SDLNameSoftButtons]; } -- (NSMutableArray *)softButtons { - NSMutableArray *array = [parameters objectForKey:NAMES_softButtons]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLSoftButton.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLSoftButton alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (nullable NSArray *)softButtons { + return [parameters sdl_objectsForName:SDLNameSoftButtons ofClass:SDLSoftButton.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLShowConstantTBTResponse.h b/SmartDeviceLink/SDLShowConstantTBTResponse.h index 8396f17a1..b6c196734 100644 --- a/SmartDeviceLink/SDLShowConstantTBTResponse.h +++ b/SmartDeviceLink/SDLShowConstantTBTResponse.h @@ -7,10 +7,11 @@ /** SDLShowConstantTBTResponse is sent, when SDLShowConstantTBT has been called. * SinceSmartDeviceLink 2.0 */ -@interface SDLShowConstantTBTResponse : SDLRPCResponse { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLShowConstantTBTResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLShowConstantTBTResponse.m b/SmartDeviceLink/SDLShowConstantTBTResponse.m index 995b16e1c..40a9c9bd9 100644 --- a/SmartDeviceLink/SDLShowConstantTBTResponse.m +++ b/SmartDeviceLink/SDLShowConstantTBTResponse.m @@ -4,20 +4,19 @@ #import "SDLShowConstantTBTResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLShowConstantTBTResponse - (instancetype)init { - if (self = [super initWithName:NAMES_ShowConstantTBT]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameShowConstantTBT]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLShowResponse.h b/SmartDeviceLink/SDLShowResponse.h index b0d558633..0cb87e942 100644 --- a/SmartDeviceLink/SDLShowResponse.h +++ b/SmartDeviceLink/SDLShowResponse.h @@ -9,18 +9,11 @@ * * Since SmartDeviceLink 1.0 */ -@interface SDLShowResponse : SDLRPCResponse { -} -/** - * @abstract Constructs a new SDLShowResponse object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLShowResponse object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLShowResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLShowResponse.m b/SmartDeviceLink/SDLShowResponse.m index 1ebb5dea9..cca46c426 100644 --- a/SmartDeviceLink/SDLShowResponse.m +++ b/SmartDeviceLink/SDLShowResponse.m @@ -4,20 +4,19 @@ #import "SDLShowResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLShowResponse - (instancetype)init { - if (self = [super initWithName:NAMES_Show]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameShow]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSingleTireStatus.h b/SmartDeviceLink/SDLSingleTireStatus.h index 897ba1bf8..da8e71077 100644 --- a/SmartDeviceLink/SDLSingleTireStatus.h +++ b/SmartDeviceLink/SDLSingleTireStatus.h @@ -3,31 +3,23 @@ #import "SDLRPCMessage.h" -@class SDLComponentVolumeStatus; - +#import "SDLComponentVolumeStatus.h" /** * Tire pressure status of a single tire. * * @since SmartDeviceLink 2.0 */ -@interface SDLSingleTireStatus : SDLRPCStruct { -} -/** - * @abstract Constructs a newly allocated SDLSingleTireStatus object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a newly allocated SDLSingleTireStatus object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLSingleTireStatus : SDLRPCStruct /** * @abstract The volume status of a single tire */ -@property (strong) SDLComponentVolumeStatus *status; +@property (strong, nonatomic) SDLComponentVolumeStatus status; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSingleTireStatus.m b/SmartDeviceLink/SDLSingleTireStatus.m index 87826f32b..a43be45b9 100644 --- a/SmartDeviceLink/SDLSingleTireStatus.m +++ b/SmartDeviceLink/SDLSingleTireStatus.m @@ -3,39 +3,17 @@ #import "SDLSingleTireStatus.h" -#import "SDLComponentVolumeStatus.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" - @implementation SDLSingleTireStatus -- (instancetype)init { - if (self = [super init]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (void)setStatus:(SDLComponentVolumeStatus *)status { - if (status != nil) { - [store setObject:status forKey:NAMES_status]; - } else { - [store removeObjectForKey:NAMES_status]; - } +- (void)setStatus:(SDLComponentVolumeStatus)status { + [store sdl_setObject:status forName:SDLNameStatus]; } -- (SDLComponentVolumeStatus *)status { - NSObject *obj = [store objectForKey:NAMES_status]; - if (obj == nil || [obj isKindOfClass:SDLComponentVolumeStatus.class]) { - return (SDLComponentVolumeStatus *)obj; - } else { - return [SDLComponentVolumeStatus valueOf:(NSString *)obj]; - } +- (SDLComponentVolumeStatus)status { + return [store sdl_objectForName:SDLNameStatus]; } @end diff --git a/SmartDeviceLink/SDLSiphonServer.h b/SmartDeviceLink/SDLSiphonServer.h deleted file mode 100644 index 31033e7eb..000000000 --- a/SmartDeviceLink/SDLSiphonServer.h +++ /dev/null @@ -1,20 +0,0 @@ -// SDLSiphonServer.h -// - - -#import - -@interface SDLSiphonServer : NSObject { -} - -+ (void)enableSiphonDebug; -+ (void)disableSiphonDebug; -+ (bool)_siphonRawTransportDataFromApp:(const void *)msgBytes msgBytesLength:(int)msgBytesLength; -+ (bool)_siphonRawTransportDataFromSDL:(const void *)msgBytes msgBytesLength:(int)msgBytesLength; -+ (bool)_siphonNSLogData:(NSString *)textToLog; -+ (bool)_siphonFormattedTraceData:(NSString *)traceData; -+ (bool)_siphonIsActive; -+ (void)init; -+ (void)dealloc; - -@end diff --git a/SmartDeviceLink/SDLSiphonServer.m b/SmartDeviceLink/SDLSiphonServer.m deleted file mode 100644 index 15367be41..000000000 --- a/SmartDeviceLink/SDLSiphonServer.m +++ /dev/null @@ -1,452 +0,0 @@ -// SDLSiphonServer.m -// - - -/******************************* - * Description: - * This class opens a socket on port 7474. - * The 'sendSiphonData' Function will - * write to the socket that the SDL Relay Sniffer is - * listening on. - ******************************/ - -//#define ZERO_CONFIG //Uncomment when implementing zero-config. -//#define DEBUG_SIPHON //Uncomment to have output to SDLDebugTool. - -#import "SDLSiphonServer.h" -#import "SDLDebugTool.h" -#include -#include -#include -#include -#include -#include - -typedef enum { - fromApp = 0x01, - fromSDL = 0x00, - appLog = 0x02, - formattedTrace = 0x03 -} SiphonDataType; - -const Byte siphonMsgVersionNumber = 1; -volatile int siphonSocket = 0; -NSObject *siphonLock = nil; -CFSocketRef _listeningSocket; -NSNetService *netService = nil; -volatile bool initStarted = false; -bool siphonServerEnabled = false; -bool sendingFormattedTrace = false; -NSDate *startTimeStamp; -int FIRST_PORT_TO_ATTEMPT_CONNECTION = 7474; - -void _closeSiphonSocket(); -bool _sendDataToSiphonSocket(int soc, const void *pData, int dataLength); -bool _sendSiphonData(const void *dataBytes, int dataBytesLength, SiphonDataType siphonDataType); -void _startServerOnPort(int port); -void _stopServer(NSString *reason); - - -@implementation SDLSiphonServer - -// Model currently counts on init being called before any apps call _siphonNSLogData() -// The following is not thread safe (i.e. two threads could create siphon lock), -// but will assume for now that we won't have two transports created in the same proxy. -+ (void)init { - if (initStarted) { - return; - } // end-if - - if (!siphonLock) { - siphonLock = [NSData alloc]; - } // end-if - - @synchronized(siphonLock) { - if (initStarted) { - return; - } - - initStarted = true; - - startTimeStamp = [NSDate date]; - - _closeSiphonSocket(); - - _startServerOnPort(FIRST_PORT_TO_ATTEMPT_CONNECTION); - } -} - -+ (void)enableSiphonDebug { - siphonServerEnabled = true; -} - -+ (void)disableSiphonDebug { - siphonServerEnabled = false; -} - -void _closeSiphonSocket() { -#ifdef DEBUG_SIPHON - [SDLDebugTool logInfo:@"siphon: Resetting siphon socket ..."]; -#endif - if (siphonLock) { - @synchronized(siphonLock) { - if (siphonSocket) { - close(siphonSocket); - siphonSocket = 0; - } // end-if - } // end-lock - } // end-if -#ifdef DEBUG_SIPHON - [SDLDebugTool logInfo:@"siphon: siphon socket reset complete"]; -#endif -} // end-method - -+ (void)dealloc { -#ifdef ZERO_CONFIG - _stopServer(@"Shutting Down"); -#endif -} - -+ (bool)_siphonIsActive { - if (siphonSocket == 0) { - return NO; - } - return YES; -} - - -+ (bool)_siphonFormattedTraceData:(NSString *)traceData { - if ((traceData == NULL) || (traceData.length == 0)) { - return NO; - } // end-if - - NSData *traceBytes = [traceData dataUsingEncoding:NSUTF8StringEncoding]; - - if (traceBytes == nil) { - return NO; - } // end-if - - bool dataSent = NO; - - sendingFormattedTrace = true; - - dataSent = _sendSiphonData(traceBytes.bytes, (int)traceBytes.length, formattedTrace); - - return dataSent; -} // end-method - -+ (bool)_siphonNSLogData:(NSString *)textToLog { - if ((textToLog == NULL) || (textToLog.length == 0)) { - return NO; - } // end-if - - NSData *textBytes = [textToLog dataUsingEncoding:NSUTF8StringEncoding]; - - if (textBytes == nil) { - return NO; - } // end-if - - bool dataSent = NO; - - dataSent = _sendSiphonData(textBytes.bytes, (int)textBytes.length, appLog); - - return dataSent; -} // end-method - -+ (bool)_siphonRawTransportDataFromApp:(const void *)msgBytes msgBytesLength:(int)msgBytesLength { - if (sendingFormattedTrace) { - return false; - } // end-if - - if (msgBytes == NULL || msgBytesLength == 0) { - return false; - } // end-if - - return _sendSiphonData(msgBytes, msgBytesLength, fromApp); -} - -+ (bool)_siphonRawTransportDataFromSDL:(const void *)msgBytes msgBytesLength:(int)msgBytesLength { - if (sendingFormattedTrace) { - return false; - } // end-if - - if (msgBytes == NULL || msgBytesLength == 0) { - return false; - } // end-if - - return _sendSiphonData(msgBytes, msgBytesLength, fromSDL); -} - -bool _sendSiphonData(const void *dataBytes, int dataBytesLength, SiphonDataType siphonDataType) { - bool wasSent = NO; - - if (dataBytes == NULL || dataBytesLength == 0 || !siphonServerEnabled) { - return false; - } // end-if - - NSDate *currentTime = [NSDate date]; - NSTimeInterval deltaTimeMillis = ([currentTime timeIntervalSinceDate:startTimeStamp] * 1000.0); - uint32_t integerDeltaTimeMillis = ((uint32_t)deltaTimeMillis); - - integerDeltaTimeMillis = htonl(integerDeltaTimeMillis); - - if (siphonLock) { - @synchronized(siphonLock) { - if (siphonSocket) { - Byte sdt = (Byte)siphonDataType; - sdt = (Byte)0x80 | sdt; - uint32_t sizeBytes = htonl(dataBytesLength + sizeof(sdt) + sizeof(integerDeltaTimeMillis) + sizeof(siphonMsgVersionNumber)); - - wasSent = _sendDataToSiphonSocket(siphonSocket, &sizeBytes, sizeof(sizeBytes)); - - if (wasSent) { - wasSent = _sendDataToSiphonSocket(siphonSocket, &sdt, sizeof(sdt)); - } - - if (wasSent) { - wasSent = _sendDataToSiphonSocket(siphonSocket, &siphonMsgVersionNumber, sizeof(siphonMsgVersionNumber)); - } - - if (wasSent) { - wasSent = _sendDataToSiphonSocket(siphonSocket, &integerDeltaTimeMillis, sizeof(integerDeltaTimeMillis)); - } - - if (wasSent) { - wasSent = _sendDataToSiphonSocket(siphonSocket, dataBytes, dataBytesLength); - } - - if (wasSent) { - return YES; - } else { -#ifdef DEBUG_SIPHON - [SDLDebugTool logInfo:@"siphon: failure sending to siphon socket"]; -#endif - _closeSiphonSocket(); - return NO; - } // end-if - } else { -#ifdef DEBUG_SIPHON - [SDLDebugTool logInfo:@"siphon: siphon socket is NULL"]; -#endif - } // end-if - } //end Synchronized - } // end-if - return NO; - -} // end-method - -bool _sendDataToSiphonSocket(int soc, const void *pData, int dataLength) { - int bytesRemainingToSend = dataLength; - ssize_t bytesSent = 0; - const UInt8 *pd = pData; - - if (pData == NULL || dataLength == 0) { - return false; - } // end-if - - while (bytesRemainingToSend > 0) { - if (soc) { - bytesSent = send(soc, pd, bytesRemainingToSend, 0); - - if (bytesSent == -1) { -#ifdef DEBUG_SIPHON - [SDLDebugTool logInfo:@"siphon: got bytesSent==-1 on send(siphonSocket)"]; -#endif - return NO; - } // end-if - - bytesRemainingToSend -= bytesSent; - pd += bytesSent; - } // end-if - - } // end-while - - return YES; - -} // end-method - - -void _serverDidStartOnPort(int port) { -#ifdef DEBUG_SIPHON - [SDLDebugTool logInfo:@"siphon: server started on port: %d", port]; -#endif -} - -#ifdef ZERO_CONFIG - -#pragma mark -#pragma mark Server - -- (void)_didSendData:(NSData *)data { -} - -void _serverDidStopWithReason(NSString *reason) { -} - -- (void)_updateStatus:(NSString *)statusString { - [SDLDebugTool logFormat:@"siphon: %@", statusString]; -} - -- (void)_SendDidStopWithStatus:(NSString *)statusString { - [SDLDebugTool logInfo:@"siphon: server configured for output"]; -} - -- (BOOL)isStarted { - return (netService != nil); -} -#endif - - -void _acceptConnection(int fd) { - if (siphonLock) { - @synchronized(siphonLock) { - int socketOps = 1; - - _closeSiphonSocket(); -#ifdef DEBUG_SIPHON - [SDLDebugTool logFormat:@"siphon: storing newly accepted siphon socket handle %08x ...", fd]; -#endif - siphonSocket = fd; - - setsockopt(siphonSocket, SOL_SOCKET, SO_NOSIGPIPE, (void *)&socketOps, sizeof(int)); - [SDLDebugTool logInfo:@"Siphon connected." withType:SDLDebugType_Debug]; - - } // end-lock - } // end-if - return; -} - -static void AcceptCallback(CFSocketRef s, CFSocketCallBackType type, CFDataRef address, const void *data, void *info) { -#ifdef DEBUG_SIPHON - [SDLDebugTool logInfo:@"siphon: accepted siphon connection ..."]; -#endif - -#pragma unused(type) - assert(type == kCFSocketAcceptCallBack); -#pragma unused(address) - assert(data != NULL); - -#pragma unused(s) - assert(s == _listeningSocket); - - _acceptConnection(*(int *)data); -} - - -#ifdef ZERO_CONFIG -- (void)netService:(NSNetService *)sender didNotPublish:(NSDictionary *)errorDict { -#pragma unused(sender) - assert(sender == netService); -#pragma unused(errorDict) - - _stopServer(@"Registration failed"); -} -#endif - -void _startServerOnPort(int port) { - BOOL success; - int err; - int fd; - struct sockaddr_in addr; - int const retryLimit = 1000; - - fd = socket(AF_INET, SOCK_STREAM, 0); - success = (fd != -1); - - if (success) { - memset(&addr, 0, sizeof(addr)); - addr.sin_len = sizeof(addr); - addr.sin_family = AF_INET; - - addr.sin_addr.s_addr = INADDR_ANY; - - bool openPortFound = false; - short bindPort = (short)port; - success = false; - for (int retryCount = 0; retryCount < retryLimit && !openPortFound; retryCount++) { - addr.sin_port = htons(bindPort); - err = bind(fd, (const struct sockaddr *)&addr, sizeof(addr)); - if (err == 0) { - openPortFound = true; - success = (err == 0); - // port = bindPort; - } else { - bindPort++; - } - } // end-for - } - if (success) { - err = listen(fd, 5); - success = (err == 0); - } - if (success) { - socklen_t addrLen; - - addrLen = sizeof(addr); - err = getsockname(fd, (struct sockaddr *)&addr, &addrLen); - success = (err == 0); - - if (success) { - assert(addrLen == sizeof(addr)); - // port = ntohs(addr.sin_port); - } -#ifdef DEBUG_SIPHON - [SDLDebugTool logFormat:@"siphon: my port is %d ", port]; -#endif - } - if (success) { - _listeningSocket = CFSocketCreateWithNative( - NULL, - fd, - kCFSocketAcceptCallBack, - AcceptCallback, - NULL); - success = (_listeningSocket != NULL); - - if (success) { - CFRunLoopSourceRef rls; - // fd = -1; - rls = CFSocketCreateRunLoopSource(NULL, _listeningSocket, 0); - assert(rls != NULL); - CFRunLoopAddSource(CFRunLoopGetCurrent(), rls, kCFRunLoopDefaultMode); - CFRelease(rls); - } - } - -#ifdef ZERO_CONFIG - - if (success) { - UIDevice *device = [UIDevice currentDevice]; - ; - NSString *serviceName = [NSString stringWithFormat:@"%@_%d ", device.name, port]; - netService = [[[NSNetService alloc] initWithDomain:@"local." type:@"_sync._tcp." name:serviceName port:port] autorelease]; - success = (netService != nil); - } - if (success) { - [netService publishWithOptions:NSNetServiceNoAutoRename]; - } - - if (success) { - assert(port != 0); - _serverDidStartOnPort(port); - } else { - _stopServer(@"Start failed"); - if (fd != -1) { - assert(startFailed == 0); - } - } - -#endif -} - -void _stopServer(NSString *reason) { -#ifdef ZERO_CONFIG - if (netService != nil) { - [netService stop]; - netService = nil; - } - _serverDidStopWithReason(reason); -#endif -} - -@end diff --git a/SmartDeviceLink/SDLSlider.h b/SmartDeviceLink/SDLSlider.h index 7651bd57f..fa1dc7acc 100644 --- a/SmartDeviceLink/SDLSlider.h +++ b/SmartDeviceLink/SDLSlider.h @@ -11,46 +11,37 @@ * * Since SmartDeviceLink 2.0 */ -@interface SDLSlider : SDLRPCRequest { -} -/** - * @abstract Constructs a new SDLSlider object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a new SDLSlider object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLSlider : SDLRPCRequest - (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position; -- (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(NSString *)sliderHeader sliderFooter:(NSString *)sliderFooter timeout:(UInt16)timeout; +- (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(NSString *)sliderHeader sliderFooter:(nullable NSString *)sliderFooter timeout:(UInt16)timeout; -- (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(NSString *)sliderHeader sliderFooters:(NSArray *)sliderFooters timeout:(UInt16)timeout; +- (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(NSString *)sliderHeader sliderFooters:(nullable NSArray *)sliderFooters timeout:(UInt16)timeout; /** * @abstract Represents a number of selectable items on a horizontal axis * * Required, Integer, 2 - 26 */ -@property (strong) NSNumber *numTicks; +@property (strong, nonatomic) NSNumber *numTicks; /** * @abstract An Initial position of slider control * * Required, Integer, 1 - 26 */ -@property (strong) NSNumber *position; +@property (strong, nonatomic) NSNumber *position; /** * @abstract A text header to display * * Rquired, Max length 500 chars */ -@property (strong) NSString *sliderHeader; +@property (strong, nonatomic) NSString *sliderHeader; /** * @abstract A text footer to display @@ -65,7 +56,7 @@ * * Optional, Array of Strings, Array length 1 - 26, Max string length 500 chars */ -@property (strong) NSMutableArray *sliderFooter; +@property (strong, nonatomic, nullable) NSArray *sliderFooter; /** * @abstract An App defined timeout @@ -76,6 +67,8 @@ * * Optional, Integer, 1000 - 65535 */ -@property (strong) NSNumber *timeout; +@property (strong, nonatomic, nullable) NSNumber *timeout; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSlider.m b/SmartDeviceLink/SDLSlider.m index 38226ffdf..cf2f9519c 100644 --- a/SmartDeviceLink/SDLSlider.m +++ b/SmartDeviceLink/SDLSlider.m @@ -4,23 +4,20 @@ #import "SDLSlider.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLSlider - (instancetype)init { - if (self = [super initWithName:NAMES_Slider]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameSlider]) { } return self; } -- (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(NSString *)sliderHeader sliderFooter:(NSString *)sliderFooter timeout:(UInt16)timeout { +- (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(NSString *)sliderHeader sliderFooter:(nullable NSString *)sliderFooter timeout:(UInt16)timeout { NSMutableArray *sliderFooters = [NSMutableArray arrayWithCapacity:numTicks]; // Populates array with the same footer value for each position @@ -31,7 +28,7 @@ - (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position slider return [self initWithNumTicks:numTicks position:position sliderHeader:sliderHeader sliderFooter:[sliderFooters copy] timeout:timeout]; } -- (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(NSString *)sliderHeader sliderFooters:(NSArray *)sliderFooters timeout:(UInt16)timeout { +- (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position sliderHeader:(NSString *)sliderHeader sliderFooters:(nullable NSArray *)sliderFooters timeout:(UInt16)timeout { self = [self initWithNumTicks:numTicks position:position]; if (!self) { return nil; @@ -56,64 +53,46 @@ - (instancetype)initWithNumTicks:(UInt8)numTicks position:(UInt8)position { return self; } -- (void)setNumTicks:(NSNumber *)numTicks { - if (numTicks != nil) { - [parameters setObject:numTicks forKey:NAMES_numTicks]; - } else { - [parameters removeObjectForKey:NAMES_numTicks]; - } +- (void)setNumTicks:(NSNumber *)numTicks { + [parameters sdl_setObject:numTicks forName:SDLNameNumberTicks]; } -- (NSNumber *)numTicks { - return [parameters objectForKey:NAMES_numTicks]; +- (NSNumber *)numTicks { + return [parameters sdl_objectForName:SDLNameNumberTicks]; } -- (void)setPosition:(NSNumber *)position { - if (position != nil) { - [parameters setObject:position forKey:NAMES_position]; - } else { - [parameters removeObjectForKey:NAMES_position]; - } +- (void)setPosition:(NSNumber *)position { + [parameters sdl_setObject:position forName:SDLNamePosition]; } -- (NSNumber *)position { - return [parameters objectForKey:NAMES_position]; +- (NSNumber *)position { + return [parameters sdl_objectForName:SDLNamePosition]; } - (void)setSliderHeader:(NSString *)sliderHeader { - if (sliderHeader != nil) { - [parameters setObject:sliderHeader forKey:NAMES_sliderHeader]; - } else { - [parameters removeObjectForKey:NAMES_sliderHeader]; - } + [parameters sdl_setObject:sliderHeader forName:SDLNameSliderHeader]; } - (NSString *)sliderHeader { - return [parameters objectForKey:NAMES_sliderHeader]; + return [parameters sdl_objectForName:SDLNameSliderHeader]; } -- (void)setSliderFooter:(NSMutableArray *)sliderFooter { - if (sliderFooter != nil) { - [parameters setObject:sliderFooter forKey:NAMES_sliderFooter]; - } else { - [parameters removeObjectForKey:NAMES_sliderFooter]; - } +- (void)setSliderFooter:(nullable NSArray *)sliderFooter { + [parameters sdl_setObject:sliderFooter forName:SDLNameSliderFooter]; } -- (NSMutableArray *)sliderFooter { - return [parameters objectForKey:NAMES_sliderFooter]; +- (nullable NSArray *)sliderFooter { + return [parameters sdl_objectForName:SDLNameSliderFooter]; } -- (void)setTimeout:(NSNumber *)timeout { - if (timeout != nil) { - [parameters setObject:timeout forKey:NAMES_timeout]; - } else { - [parameters removeObjectForKey:NAMES_timeout]; - } +- (void)setTimeout:(nullable NSNumber *)timeout { + [parameters sdl_setObject:timeout forName:SDLNameTimeout]; } -- (NSNumber *)timeout { - return [parameters objectForKey:NAMES_timeout]; +- (nullable NSNumber *)timeout { + return [parameters sdl_objectForName:SDLNameTimeout]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSliderResponse.h b/SmartDeviceLink/SDLSliderResponse.h index 5b38b7f0f..1dd4232b4 100644 --- a/SmartDeviceLink/SDLSliderResponse.h +++ b/SmartDeviceLink/SDLSliderResponse.h @@ -9,23 +9,16 @@ * * Since SmartDeviceLink 2.0 */ -@interface SDLSliderResponse : SDLRPCResponse { -} -/** - * @abstract Constructs a new SDLSliderResponse object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLSliderResponse object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLSliderResponse : SDLRPCResponse /** * @abstract The selected position of the slider. */ -@property (strong) NSNumber *sliderPosition; +@property (strong, nonatomic, nullable) NSNumber *sliderPosition; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSliderResponse.m b/SmartDeviceLink/SDLSliderResponse.m index 927ad569d..a21661b91 100644 --- a/SmartDeviceLink/SDLSliderResponse.m +++ b/SmartDeviceLink/SDLSliderResponse.m @@ -4,32 +4,27 @@ #import "SDLSliderResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLSliderResponse - (instancetype)init { - if (self = [super initWithName:NAMES_Slider]) { + if (self = [super initWithName:SDLNameSlider]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (void)setSliderPosition:(nullable NSNumber *)sliderPosition { + [parameters sdl_setObject:sliderPosition forName:SDLNameSliderPosition]; } -- (void)setSliderPosition:(NSNumber *)sliderPosition { - if (sliderPosition != nil) { - [parameters setObject:sliderPosition forKey:NAMES_sliderPosition]; - } else { - [parameters removeObjectForKey:NAMES_sliderPosition]; - } -} - -- (NSNumber *)sliderPosition { - return [parameters objectForKey:NAMES_sliderPosition]; +- (nullable NSNumber *)sliderPosition { + return [parameters sdl_objectForName:SDLNameSliderPosition]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSoftButton.h b/SmartDeviceLink/SDLSoftButton.h index 6bb5ff2e5..398bf8053 100644 --- a/SmartDeviceLink/SDLSoftButton.h +++ b/SmartDeviceLink/SDLSoftButton.h @@ -4,29 +4,28 @@ #import "SDLRPCMessage.h" #import "SDLNotificationConstants.h" -#import "SDLRequestHandler.h" +#import "SDLSoftButtonType.h" +#import "SDLSystemAction.h" @class SDLImage; -@class SDLSoftButtonType; -@class SDLSystemAction; +NS_ASSUME_NONNULL_BEGIN -@interface SDLSoftButton : SDLRPCStruct { -} +@interface SDLSoftButton : SDLRPCStruct -- (instancetype)init; -- (instancetype)initWithHandler:(SDLRPCNotificationHandler)handler; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +- (instancetype)initWithHandler:(nullable SDLRPCButtonNotificationHandler)handler; -- (instancetype)initWithType:(SDLSoftButtonType *)type text:(NSString *)text image:(SDLImage *)image highlighted:(BOOL)highlighted buttonId:(UInt16)buttonId systemAction:(SDLSystemAction *)systemAction handler:(SDLRPCNotificationHandler)handler; +- (instancetype)initWithType:(SDLSoftButtonType)type text:(nullable NSString *)text image:(nullable SDLImage *)image highlighted:(BOOL)highlighted buttonId:(UInt16)buttonId systemAction:(nullable SDLSystemAction)systemAction handler:(nullable SDLRPCButtonNotificationHandler)handler; -@property (copy, nonatomic) SDLRPCNotificationHandler handler; +@property (copy, nonatomic) SDLRPCButtonNotificationHandler handler; -@property (strong) SDLSoftButtonType *type; -@property (strong) NSString *text; -@property (strong) SDLImage *image; -@property (strong) NSNumber *isHighlighted; -@property (strong) NSNumber *softButtonID; -@property (strong) SDLSystemAction *systemAction; +@property (strong, nonatomic) SDLSoftButtonType type; +@property (strong, nonatomic, nullable) NSString *text; +@property (strong, nonatomic, nullable) SDLImage *image; +@property (strong, nonatomic, nullable) NSNumber *isHighlighted; +@property (strong, nonatomic) NSNumber *softButtonID; +@property (strong, nonatomic, nullable) SDLSystemAction systemAction; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSoftButton.m b/SmartDeviceLink/SDLSoftButton.m index b6b5cb484..a50bb4bcd 100644 --- a/SmartDeviceLink/SDLSoftButton.m +++ b/SmartDeviceLink/SDLSoftButton.m @@ -3,21 +3,15 @@ #import "SDLSoftButton.h" +#import "NSMutableDictionary+Store.h" #import "SDLImage.h" #import "SDLNames.h" -#import "SDLSoftButtonType.h" -#import "SDLSystemAction.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLSoftButton -- (instancetype)init { - if (self = [super init]) { - } - return self; -} - -- (instancetype)initWithHandler:(SDLRPCNotificationHandler)handler { +- (instancetype)initWithHandler:(nullable SDLRPCButtonNotificationHandler)handler { self = [self init]; if (!self) { return nil; @@ -28,13 +22,7 @@ - (instancetype)initWithHandler:(SDLRPCNotificationHandler)handler { return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (instancetype)initWithType:(SDLSoftButtonType *)type text:(NSString *)text image:(SDLImage *)image highlighted:(BOOL)highlighted buttonId:(UInt16)buttonId systemAction:(SDLSystemAction *)systemAction handler:(SDLRPCNotificationHandler)handler { +- (instancetype)initWithType:(SDLSoftButtonType)type text:(nullable NSString *)text image:(nullable SDLImage *)image highlighted:(BOOL)highlighted buttonId:(UInt16)buttonId systemAction:(nullable SDLSystemAction)systemAction handler:(nullable SDLRPCButtonNotificationHandler)handler { self = [self initWithHandler:handler]; if (!self) { return nil; @@ -51,91 +39,61 @@ - (instancetype)initWithType:(SDLSoftButtonType *)type text:(NSString *)text ima return self; } -- (void)setType:(SDLSoftButtonType *)type { - if (type != nil) { - [store setObject:type forKey:NAMES_type]; - } else { - [store removeObjectForKey:NAMES_type]; - } +- (void)setType:(SDLSoftButtonType)type { + [store sdl_setObject:type forName:SDLNameType]; } -- (SDLSoftButtonType *)type { - NSObject *obj = [store objectForKey:NAMES_type]; - if (obj == nil || [obj isKindOfClass:SDLSoftButtonType.class]) { - return (SDLSoftButtonType *)obj; - } else { - return [SDLSoftButtonType valueOf:(NSString *)obj]; - } +- (SDLSoftButtonType)type { + return [store sdl_objectForName:SDLNameType]; } -- (void)setText:(NSString *)text { - if (text != nil) { - [store setObject:text forKey:NAMES_text]; - } else { - [store removeObjectForKey:NAMES_text]; - } +- (void)setText:(nullable NSString *)text { + [store sdl_setObject:text forName:SDLNameText]; } -- (NSString *)text { - return [store objectForKey:NAMES_text]; +- (nullable NSString *)text { + return [store sdl_objectForName:SDLNameText]; } -- (void)setImage:(SDLImage *)image { - if (image != nil) { - [store setObject:image forKey:NAMES_image]; - } else { - [store removeObjectForKey:NAMES_image]; - } +- (void)setImage:(nullable SDLImage *)image { + [store sdl_setObject:image forName:SDLNameImage]; } -- (SDLImage *)image { - NSObject *obj = [store objectForKey:NAMES_image]; - if (obj == nil || [obj isKindOfClass:SDLImage.class]) { - return (SDLImage *)obj; - } else { - return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLImage *)image { + return [store sdl_objectForName:SDLNameImage ofClass:SDLImage.class]; } -- (void)setIsHighlighted:(NSNumber *)isHighlighted { - if (isHighlighted != nil) { - [store setObject:isHighlighted forKey:NAMES_isHighlighted]; - } else { - [store removeObjectForKey:NAMES_isHighlighted]; - } +- (void)setIsHighlighted:(nullable NSNumber *)isHighlighted { + [store sdl_setObject:isHighlighted forName:SDLNameIsHighlighted]; } -- (NSNumber *)isHighlighted { - return [store objectForKey:NAMES_isHighlighted]; +- (nullable NSNumber *)isHighlighted { + return [store sdl_objectForName:SDLNameIsHighlighted]; } -- (void)setSoftButtonID:(NSNumber *)softButtonID { - if (softButtonID != nil) { - [store setObject:softButtonID forKey:NAMES_softButtonID]; - } else { - [store removeObjectForKey:NAMES_softButtonID]; - } +- (void)setSoftButtonID:(NSNumber *)softButtonID { + [store sdl_setObject:softButtonID forName:SDLNameSoftButtonId]; } -- (NSNumber *)softButtonID { - return [store objectForKey:NAMES_softButtonID]; +- (NSNumber *)softButtonID { + return [store sdl_objectForName:SDLNameSoftButtonId]; } -- (void)setSystemAction:(SDLSystemAction *)systemAction { - if (systemAction != nil) { - [store setObject:systemAction forKey:NAMES_systemAction]; - } else { - [store removeObjectForKey:NAMES_systemAction]; - } +- (void)setSystemAction:(nullable SDLSystemAction)systemAction { + [store sdl_setObject:systemAction forName:SDLNameSystemAction]; } -- (SDLSystemAction *)systemAction { - NSObject *obj = [store objectForKey:NAMES_systemAction]; - if (obj == nil || [obj isKindOfClass:SDLSystemAction.class]) { - return (SDLSystemAction *)obj; - } else { - return [SDLSystemAction valueOf:(NSString *)obj]; - } +- (nullable SDLSystemAction)systemAction { + return [store sdl_objectForName:SDLNameSystemAction]; +} + +-(id)copyWithZone:(nullable NSZone *)zone { + SDLSoftButton *newButton = [super copyWithZone:zone]; + newButton->_handler = self.handler; + + return newButton; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSoftButtonCapabilities.h b/SmartDeviceLink/SDLSoftButtonCapabilities.h index ca9eeb2bf..c06cd026f 100644 --- a/SmartDeviceLink/SDLSoftButtonCapabilities.h +++ b/SmartDeviceLink/SDLSoftButtonCapabilities.h @@ -9,19 +9,10 @@ * * @since SDL 2.0 */ -@interface SDLSoftButtonCapabilities : SDLRPCStruct { -} -/** - * @abstract Constructs a newly allocated SDLSoftButtonCapabilities object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a newly allocated SDLSoftButtonCapabilities object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLSoftButtonCapabilities : SDLRPCStruct /** * @abstract The button supports a short press. @@ -30,7 +21,7 @@ * * Required, Boolean */ -@property (strong) NSNumber *shortPressAvailable; +@property (strong, nonatomic) NSNumber *shortPressAvailable; /** * @abstract The button supports a LONG press. @@ -39,7 +30,7 @@ * * Required, Boolean */ -@property (strong) NSNumber *longPressAvailable; +@property (strong, nonatomic) NSNumber *longPressAvailable; /** * @abstract The button supports "button down" and "button up". @@ -48,13 +39,15 @@ * * Required, Boolean */ -@property (strong) NSNumber *upDownAvailable; +@property (strong, nonatomic) NSNumber *upDownAvailable; /** * @abstract The button supports referencing a static or dynamic image. * * Required, Boolean */ -@property (strong) NSNumber *imageSupported; +@property (strong, nonatomic) NSNumber *imageSupported; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSoftButtonCapabilities.m b/SmartDeviceLink/SDLSoftButtonCapabilities.m index d9a502db1..6bf391496 100644 --- a/SmartDeviceLink/SDLSoftButtonCapabilities.m +++ b/SmartDeviceLink/SDLSoftButtonCapabilities.m @@ -4,68 +4,45 @@ #import "SDLSoftButtonCapabilities.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -@implementation SDLSoftButtonCapabilities - -- (instancetype)init { - if (self = [super init]) { - } - return self; -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} +@implementation SDLSoftButtonCapabilities -- (void)setShortPressAvailable:(NSNumber *)shortPressAvailable { - if (shortPressAvailable != nil) { - [store setObject:shortPressAvailable forKey:NAMES_shortPressAvailable]; - } else { - [store removeObjectForKey:NAMES_shortPressAvailable]; - } +- (void)setShortPressAvailable:(NSNumber *)shortPressAvailable { + [store sdl_setObject:shortPressAvailable forName:SDLNameShortPressAvailable]; } -- (NSNumber *)shortPressAvailable { - return [store objectForKey:NAMES_shortPressAvailable]; +- (NSNumber *)shortPressAvailable { + return [store sdl_objectForName:SDLNameShortPressAvailable]; } -- (void)setLongPressAvailable:(NSNumber *)longPressAvailable { - if (longPressAvailable != nil) { - [store setObject:longPressAvailable forKey:NAMES_longPressAvailable]; - } else { - [store removeObjectForKey:NAMES_longPressAvailable]; - } +- (void)setLongPressAvailable:(NSNumber *)longPressAvailable { + [store sdl_setObject:longPressAvailable forName:SDLNameLongPressAvailable]; } -- (NSNumber *)longPressAvailable { - return [store objectForKey:NAMES_longPressAvailable]; +- (NSNumber *)longPressAvailable { + return [store sdl_objectForName:SDLNameLongPressAvailable]; } -- (void)setUpDownAvailable:(NSNumber *)upDownAvailable { - if (upDownAvailable != nil) { - [store setObject:upDownAvailable forKey:NAMES_upDownAvailable]; - } else { - [store removeObjectForKey:NAMES_upDownAvailable]; - } +- (void)setUpDownAvailable:(NSNumber *)upDownAvailable { + [store sdl_setObject:upDownAvailable forName:SDLNameUpDownAvailable]; } -- (NSNumber *)upDownAvailable { - return [store objectForKey:NAMES_upDownAvailable]; +- (NSNumber *)upDownAvailable { + return [store sdl_objectForName:SDLNameUpDownAvailable]; } -- (void)setImageSupported:(NSNumber *)imageSupported { - if (imageSupported != nil) { - [store setObject:imageSupported forKey:NAMES_imageSupported]; - } else { - [store removeObjectForKey:NAMES_imageSupported]; - } +- (void)setImageSupported:(NSNumber *)imageSupported { + [store sdl_setObject:imageSupported forName:SDLNameImageSupported]; } -- (NSNumber *)imageSupported { - return [store objectForKey:NAMES_imageSupported]; +- (NSNumber *)imageSupported { + return [store sdl_objectForName:SDLNameImageSupported]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSoftButtonType.h b/SmartDeviceLink/SDLSoftButtonType.h index d2b59a8d5..ee4f70602 100644 --- a/SmartDeviceLink/SDLSoftButtonType.h +++ b/SmartDeviceLink/SDLSoftButtonType.h @@ -7,35 +7,19 @@ /** SoftButtonType (TEXT / IMAGE / BOTH) */ -@interface SDLSoftButtonType : SDLEnum { -} - -/** - @abstract get SDLSoftButtonType according value string - @param value NSString - @return SDLSoftButtonType object - */ -+ (SDLSoftButtonType *)valueOf:(NSString *)value; -/** - @abstract declare an array to store all possible SDLSoftButtonType values - @return the array - */ -+ (NSArray *)values; +typedef SDLEnum SDLSoftButtonType SDL_SWIFT_ENUM; /** @abstract Text kind Softbutton - @return SDLSoftButtonType object with string value *TEXT* */ -+ (SDLSoftButtonType *)TEXT; +extern SDLSoftButtonType const SDLSoftButtonTypeText; + /** @abstract Image kind Softbutton - @return SDLSoftButtonType object with string value *IMAGE* */ -+ (SDLSoftButtonType *)IMAGE; +extern SDLSoftButtonType const SDLSoftButtonTypeImage; + /** @abstract Both (Text & Image) kind Softbutton - @return SDLSoftButtonType object with string value *BOTH* */ -+ (SDLSoftButtonType *)BOTH; - -@end +extern SDLSoftButtonType const SDLSoftButtonTypeBoth; diff --git a/SmartDeviceLink/SDLSoftButtonType.m b/SmartDeviceLink/SDLSoftButtonType.m index 9add8edfe..38de6d703 100644 --- a/SmartDeviceLink/SDLSoftButtonType.m +++ b/SmartDeviceLink/SDLSoftButtonType.m @@ -4,53 +4,6 @@ #import "SDLSoftButtonType.h" -SDLSoftButtonType *SDLSoftButtonType_TEXT = nil; -SDLSoftButtonType *SDLSoftButtonType_IMAGE = nil; -SDLSoftButtonType *SDLSoftButtonType_BOTH = nil; - -NSArray *SDLSoftButtonType_values = nil; - -@implementation SDLSoftButtonType - -+ (SDLSoftButtonType *)valueOf:(NSString *)value { - for (SDLSoftButtonType *item in SDLSoftButtonType.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLSoftButtonType_values == nil) { - SDLSoftButtonType_values = @[ - SDLSoftButtonType.TEXT, - SDLSoftButtonType.IMAGE, - SDLSoftButtonType.BOTH, - ]; - } - return SDLSoftButtonType_values; -} - -+ (SDLSoftButtonType *)TEXT { - if (SDLSoftButtonType_TEXT == nil) { - SDLSoftButtonType_TEXT = [[SDLSoftButtonType alloc] initWithValue:@"TEXT"]; - } - return SDLSoftButtonType_TEXT; -} - -+ (SDLSoftButtonType *)IMAGE { - if (SDLSoftButtonType_IMAGE == nil) { - SDLSoftButtonType_IMAGE = [[SDLSoftButtonType alloc] initWithValue:@"IMAGE"]; - } - return SDLSoftButtonType_IMAGE; -} - -+ (SDLSoftButtonType *)BOTH { - if (SDLSoftButtonType_BOTH == nil) { - SDLSoftButtonType_BOTH = [[SDLSoftButtonType alloc] initWithValue:@"BOTH"]; - } - return SDLSoftButtonType_BOTH; -} - -@end +SDLSoftButtonType const SDLSoftButtonTypeText = @"TEXT"; +SDLSoftButtonType const SDLSoftButtonTypeImage = @"IMAGE"; +SDLSoftButtonType const SDLSoftButtonTypeBoth = @"BOTH"; diff --git a/SmartDeviceLink/SDLSpeak.h b/SmartDeviceLink/SDLSpeak.h index f6485030a..33046a8eb 100644 --- a/SmartDeviceLink/SDLSpeak.h +++ b/SmartDeviceLink/SDLSpeak.h @@ -38,19 +38,10 @@ * @since SmartDeviceLink 1.0 * @see SDLAlert */ -@interface SDLSpeak : SDLRPCRequest { -} -/** - * @abstract Constructs a new SDLSpeak object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a new SDLSpeak object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLSpeak : SDLRPCRequest - (instancetype)initWithTTS:(NSString *)ttsText; @@ -65,6 +56,8 @@ * * @see SDLTTSChunk */ -@property (strong) NSMutableArray *ttsChunks; +@property (strong, nonatomic) NSArray *ttsChunks; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSpeak.m b/SmartDeviceLink/SDLSpeak.m index d2ce48eca..35516ff43 100644 --- a/SmartDeviceLink/SDLSpeak.m +++ b/SmartDeviceLink/SDLSpeak.m @@ -4,26 +4,22 @@ #import "SDLSpeak.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" #import "SDLTTSChunk.h" -#import "SDLTTSChunkFactory.h" + +NS_ASSUME_NONNULL_BEGIN @implementation SDLSpeak - (instancetype)init { - if (self = [super initWithName:NAMES_Speak]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameSpeak]) { } return self; } - (instancetype)initWithTTS:(NSString *)ttsText { - NSMutableArray *ttsChunks = [SDLTTSChunk textChunksFromString:ttsText]; + NSArray *ttsChunks = [SDLTTSChunk textChunksFromString:ttsText]; return [self initWithTTSChunks:ttsChunks]; } @@ -38,27 +34,14 @@ - (instancetype)initWithTTSChunks:(NSArray *)ttsChunks { return self; } -- (void)setTtsChunks:(NSMutableArray *)ttsChunks { - if (ttsChunks != nil) { - [parameters setObject:ttsChunks forKey:NAMES_ttsChunks]; - } else { - [parameters removeObjectForKey:NAMES_ttsChunks]; - } +- (void)setTtsChunks:(NSArray *)ttsChunks { + [parameters sdl_setObject:ttsChunks forName:SDLNameTTSChunks]; } -- (NSMutableArray *)ttsChunks { - NSMutableArray *array = [parameters objectForKey:NAMES_ttsChunks]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTTSChunk.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLTTSChunk alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (NSArray *)ttsChunks { + return [parameters sdl_objectsForName:SDLNameTTSChunks ofClass:SDLTTSChunk.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSpeakResponse.h b/SmartDeviceLink/SDLSpeakResponse.h index 2a7eef046..8e4c44261 100644 --- a/SmartDeviceLink/SDLSpeakResponse.h +++ b/SmartDeviceLink/SDLSpeakResponse.h @@ -9,18 +9,11 @@ * * Since SmartDeviceLink 1.0 */ -@interface SDLSpeakResponse : SDLRPCResponse { -} -/** - * @abstract Constructs a new SDLSpeakResponse object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLSpeakResponse object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLSpeakResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSpeakResponse.m b/SmartDeviceLink/SDLSpeakResponse.m index dfb8dff33..f8e8a248c 100644 --- a/SmartDeviceLink/SDLSpeakResponse.m +++ b/SmartDeviceLink/SDLSpeakResponse.m @@ -4,20 +4,19 @@ #import "SDLSpeakResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLSpeakResponse - (instancetype)init { - if (self = [super initWithName:NAMES_Speak]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameSpeak]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSpeechCapabilities.h b/SmartDeviceLink/SDLSpeechCapabilities.h index 9529e3fef..7f7b55b54 100644 --- a/SmartDeviceLink/SDLSpeechCapabilities.h +++ b/SmartDeviceLink/SDLSpeechCapabilities.h @@ -9,38 +9,17 @@ * * @since SDL 1.0 */ -@interface SDLSpeechCapabilities : SDLEnum { -} - -/** - * @abstract get SDLSpeechCapabilities according value string - * - * @param value The value of the string to get an object for - * - * @return SDLSpeechCapabilities object - */ -+ (SDLSpeechCapabilities *)valueOf:(NSString *)value; - -/** - * @abstract declare an array to store all possible SDLSpeechCapabilities values - * - * @return the array of all possible values - */ -+ (NSArray *)values; +typedef SDLEnum SDLSpeechCapabilities SDL_SWIFT_ENUM; /** * @abstract The SDL platform can speak text phrases. - * - * @return SDLSpeechCapabilities of value: *TEXT* */ -+ (SDLSpeechCapabilities *)TEXT; - -+ (SDLSpeechCapabilities *)SAPI_PHONEMES; +extern SDLSpeechCapabilities const SDLSpeechCapabilitiesText; -+ (SDLSpeechCapabilities *)LHPLUS_PHONEMES; +extern SDLSpeechCapabilities const SDLSpeechCapabilitiesSAPIPhonemes; -+ (SDLSpeechCapabilities *)PRE_RECORDED; +extern SDLSpeechCapabilities const SDLSpeechCapabilitiesLHPlusPhonemes; -+ (SDLSpeechCapabilities *)SILENCE; +extern SDLSpeechCapabilities const SDLSpeechCapabilitiesPrerecorded; -@end +extern SDLSpeechCapabilities const SDLSpeechCapabilitiesSilence; diff --git a/SmartDeviceLink/SDLSpeechCapabilities.m b/SmartDeviceLink/SDLSpeechCapabilities.m index 2018b8321..22dceb60a 100644 --- a/SmartDeviceLink/SDLSpeechCapabilities.m +++ b/SmartDeviceLink/SDLSpeechCapabilities.m @@ -4,71 +4,8 @@ #import "SDLSpeechCapabilities.h" -SDLSpeechCapabilities *SDLSpeechCapabilities_TEXT = nil; -SDLSpeechCapabilities *SDLSpeechCapabilities_SAPI_PHONEMES = nil; -SDLSpeechCapabilities *SDLSpeechCapabilities_LHPLUS_PHONEMES = nil; -SDLSpeechCapabilities *SDLSpeechCapabilities_PRE_RECORDED = nil; -SDLSpeechCapabilities *SDLSpeechCapabilities_SILENCE = nil; - -NSArray *SDLSpeechCapabilities_values = nil; - -@implementation SDLSpeechCapabilities - -+ (SDLSpeechCapabilities *)valueOf:(NSString *)value { - for (SDLSpeechCapabilities *item in SDLSpeechCapabilities.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLSpeechCapabilities_values == nil) { - SDLSpeechCapabilities_values = @[ - SDLSpeechCapabilities.TEXT, - SDLSpeechCapabilities.SAPI_PHONEMES, - SDLSpeechCapabilities.LHPLUS_PHONEMES, - SDLSpeechCapabilities.PRE_RECORDED, - SDLSpeechCapabilities.SILENCE, - ]; - } - return SDLSpeechCapabilities_values; -} - -+ (SDLSpeechCapabilities *)TEXT { - if (SDLSpeechCapabilities_TEXT == nil) { - SDLSpeechCapabilities_TEXT = [[SDLSpeechCapabilities alloc] initWithValue:@"TEXT"]; - } - return SDLSpeechCapabilities_TEXT; -} - -+ (SDLSpeechCapabilities *)SAPI_PHONEMES { - if (SDLSpeechCapabilities_SAPI_PHONEMES == nil) { - SDLSpeechCapabilities_SAPI_PHONEMES = [[SDLSpeechCapabilities alloc] initWithValue:@"SAPI_PHONEMES"]; - } - return SDLSpeechCapabilities_SAPI_PHONEMES; -} - -+ (SDLSpeechCapabilities *)LHPLUS_PHONEMES { - if (SDLSpeechCapabilities_LHPLUS_PHONEMES == nil) { - SDLSpeechCapabilities_LHPLUS_PHONEMES = [[SDLSpeechCapabilities alloc] initWithValue:@"LHPLUS_PHONEMES"]; - } - return SDLSpeechCapabilities_LHPLUS_PHONEMES; -} - -+ (SDLSpeechCapabilities *)PRE_RECORDED { - if (SDLSpeechCapabilities_PRE_RECORDED == nil) { - SDLSpeechCapabilities_PRE_RECORDED = [[SDLSpeechCapabilities alloc] initWithValue:@"PRE_RECORDED"]; - } - return SDLSpeechCapabilities_PRE_RECORDED; -} - -+ (SDLSpeechCapabilities *)SILENCE { - if (SDLSpeechCapabilities_SILENCE == nil) { - SDLSpeechCapabilities_SILENCE = [[SDLSpeechCapabilities alloc] initWithValue:@"SILENCE"]; - } - return SDLSpeechCapabilities_SILENCE; -} - -@end +SDLSpeechCapabilities const SDLSpeechCapabilitiesText = @"TEXT"; +SDLSpeechCapabilities const SDLSpeechCapabilitiesSAPIPhonemes = @"SAPI_PHONEMES"; +SDLSpeechCapabilities const SDLSpeechCapabilitiesLHPlusPhonemes = @"LHPLUS_PHONEMES"; +SDLSpeechCapabilities const SDLSpeechCapabilitiesPrerecorded = @"PRE_RECORDED"; +SDLSpeechCapabilities const SDLSpeechCapabilitiesSilence = @"SILENCE"; diff --git a/SmartDeviceLink/SDLStartTime.h b/SmartDeviceLink/SDLStartTime.h index 923a6656c..5fbc0e987 100644 --- a/SmartDeviceLink/SDLStartTime.h +++ b/SmartDeviceLink/SDLStartTime.h @@ -9,19 +9,10 @@ * * @since SDL 1.0 */ -@interface SDLStartTime : SDLRPCStruct { -} -/** - * @abstract Constructs a newly allocated SDLStartTime object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a newly allocated SDLStartTime object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLStartTime : SDLRPCStruct - (instancetype)initWithHours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds; @@ -32,20 +23,22 @@ * * Required, Integer, 0 - 59 */ -@property (strong) NSNumber *hours; +@property (strong, nonatomic) NSNumber *hours; /** * @abstract The minute of the media clock * * Required, Integer, 0 - 59 */ -@property (strong) NSNumber *minutes; +@property (strong, nonatomic) NSNumber *minutes; /** * @abstract The second of the media clock * * Required, Integer, 0 - 59 */ -@property (strong) NSNumber *seconds; +@property (strong, nonatomic) NSNumber *seconds; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLStartTime.m b/SmartDeviceLink/SDLStartTime.m index 574d4f552..df8490f7a 100644 --- a/SmartDeviceLink/SDLStartTime.m +++ b/SmartDeviceLink/SDLStartTime.m @@ -4,21 +4,12 @@ #import "SDLStartTime.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -@implementation SDLStartTime +NS_ASSUME_NONNULL_BEGIN -- (instancetype)init { - if (self = [super init]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} +@implementation SDLStartTime - (instancetype)initWithHours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8)seconds { self = [self init]; @@ -33,40 +24,30 @@ - (instancetype)initWithHours:(UInt8)hours minutes:(UInt8)minutes seconds:(UInt8 return self; } -- (void)setHours:(NSNumber *)hours { - if (hours != nil) { - [store setObject:hours forKey:NAMES_hours]; - } else { - [store removeObjectForKey:NAMES_hours]; - } +- (void)setHours:(NSNumber *)hours { + [store sdl_setObject:hours forName:SDLNameHours]; } -- (NSNumber *)hours { - return [store objectForKey:NAMES_hours]; +- (NSNumber *)hours { + return [store sdl_objectForName:SDLNameHours]; } -- (void)setMinutes:(NSNumber *)minutes { - if (minutes != nil) { - [store setObject:minutes forKey:NAMES_minutes]; - } else { - [store removeObjectForKey:NAMES_minutes]; - } +- (void)setMinutes:(NSNumber *)minutes { + [store sdl_setObject:minutes forName:SDLNameMinutes]; } -- (NSNumber *)minutes { - return [store objectForKey:NAMES_minutes]; +- (NSNumber *)minutes { + return [store sdl_objectForName:SDLNameMinutes]; } -- (void)setSeconds:(NSNumber *)seconds { - if (seconds != nil) { - [store setObject:seconds forKey:NAMES_seconds]; - } else { - [store removeObjectForKey:NAMES_seconds]; - } +- (void)setSeconds:(NSNumber *)seconds { + [store sdl_setObject:seconds forName:SDLNameSeconds]; } -- (NSNumber *)seconds { - return [store objectForKey:NAMES_seconds]; +- (NSNumber *)seconds { + return [store sdl_objectForName:SDLNameSeconds]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLStateMachine.m b/SmartDeviceLink/SDLStateMachine.m index 2d197344d..ffc269503 100644 --- a/SmartDeviceLink/SDLStateMachine.m +++ b/SmartDeviceLink/SDLStateMachine.m @@ -9,6 +9,7 @@ #import "SDLStateMachine.h" #import "SDLError.h" +#import "SDLLogMacros.h" NS_ASSUME_NONNULL_BEGIN @@ -45,7 +46,8 @@ - (instancetype)initWithTarget:(id)target initialState:(SDLState *)initialState } if (states[initialState] == nil) { - @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:@"Attempted to start with an SDLState that is not in the states dictionary" userInfo:nil]; + NSString *reasonMessage = [NSString stringWithFormat:@"Attempted to start with an SDLState (%@) that is not in the states dictionary", initialState]; + @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:reasonMessage userInfo:nil]; } _target = target; @@ -79,6 +81,8 @@ - (void)transitionToState:(SDLState *)state { #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" + SDLLogV(@"State machine for class %@ will transition from state %@ to state %@", NSStringFromClass([_target class]), oldState, state); + // Pre state transition calls if ([self.target respondsToSelector:willLeave]) { [self.target performSelector:willLeave]; @@ -116,10 +120,11 @@ - (void)setToState:(SDLState *)state fromOldState:(nullable SDLState *)oldState return; } - if (oldState != nil && shouldCall) { + if (oldState != nil) { self.currentState = oldState; - [self transitionToState:state]; - } else if (shouldCall) { + } + + if (shouldCall) { SEL didEnter = NSSelectorFromString([NSString stringWithFormat:SDLStateMachineTransitionFormatDidEnter, state]); #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" @@ -127,9 +132,9 @@ - (void)setToState:(SDLState *)state fromOldState:(nullable SDLState *)oldState [self.target performSelector:didEnter]; #pragma clang diagnostic pop } - } else { - self.currentState = state; } + + self.currentState = state; } /** diff --git a/SmartDeviceLink/SDLStreamDelegate.h b/SmartDeviceLink/SDLStreamDelegate.h index fdd8bfbac..f6b0115ad 100644 --- a/SmartDeviceLink/SDLStreamDelegate.h +++ b/SmartDeviceLink/SDLStreamDelegate.h @@ -3,6 +3,8 @@ #import +NS_ASSUME_NONNULL_BEGIN + // Convenience typedefs typedef void (^SDLStreamOpenHandler)(NSStream *stream); typedef void (^SDLStreamHasBytesHandler)(NSInputStream *istream); @@ -13,10 +15,12 @@ typedef void (^SDLStreamEndHandler)(NSStream *stream); @interface SDLStreamDelegate : NSObject -@property (nonatomic, copy) SDLStreamOpenHandler streamOpenHandler; -@property (nonatomic, copy) SDLStreamHasBytesHandler streamHasBytesHandler; -@property (nonatomic, copy) SDLStreamHasSpaceHandler streamHasSpaceHandler; -@property (nonatomic, copy) SDLStreamErrorHandler streamErrorHandler; -@property (nonatomic, copy) SDLStreamEndHandler streamEndHandler; +@property (nullable, nonatomic, copy) SDLStreamOpenHandler streamOpenHandler; +@property (nullable, nonatomic, copy) SDLStreamHasBytesHandler streamHasBytesHandler; +@property (nullable, nonatomic, copy) SDLStreamHasSpaceHandler streamHasSpaceHandler; +@property (nullable, nonatomic, copy) SDLStreamErrorHandler streamErrorHandler; +@property (nullable, nonatomic, copy) SDLStreamEndHandler streamEndHandler; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLStreamDelegate.m b/SmartDeviceLink/SDLStreamDelegate.m index 6c2db6c34..11bba6e5e 100644 --- a/SmartDeviceLink/SDLStreamDelegate.m +++ b/SmartDeviceLink/SDLStreamDelegate.m @@ -3,7 +3,9 @@ // #import "SDLStreamDelegate.h" -#import "SDLDebugTool.h" +#import "SDLLogMacros.h" + +NS_ASSUME_NONNULL_BEGIN @interface SDLStreamDelegate () { dispatch_queue_t _input_stream_queue; @@ -70,23 +72,25 @@ - (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode { } SDLStreamOpenHandler defaultStreamOpenHandler = ^(NSStream *stream) { - [SDLDebugTool logInfo:@"Stream Event Open"]; + SDLLogV(@"Transport stream event open"); }; SDLStreamHasBytesHandler defaultStreamHasBytesHandler = ^(NSInputStream *istream) { - [SDLDebugTool logInfo:@"Stream Event Has Bytes"]; + SDLLogV(@"Transport stream event has bytes"); }; SDLStreamHasSpaceHandler defaultStreamHasSpaceHandler = ^(NSOutputStream *ostream) { - + SDLLogV(@"Transport stream event has space"); }; SDLStreamErrorHandler defaultStreamErrorHandler = ^(NSStream *stream) { - [SDLDebugTool logInfo:@"Stream Event Error"]; + SDLLogV(@"Transport stream event error"); }; SDLStreamEndHandler defaultStreamEndHandler = ^(NSStream *stream) { - [SDLDebugTool logInfo:@"Stream Event End"]; + SDLLogV(@"Transport stream event end"); }; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLStreamingMediaConfiguration.h b/SmartDeviceLink/SDLStreamingMediaConfiguration.h new file mode 100644 index 000000000..be8a58554 --- /dev/null +++ b/SmartDeviceLink/SDLStreamingMediaConfiguration.h @@ -0,0 +1,95 @@ +// +// SDLStreamingMediaConfiguration.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 8/2/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLStreamingMediaManagerConstants.h" + +@protocol SDLSecurityType; +@protocol SDLStreamingMediaManagerDataSource; + + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLStreamingMediaConfiguration : NSObject + +/** + * Set security managers which could be used. This is primarily used with video streaming applications to authenticate and perhaps encrypt traffic data. + */ +@property (copy, nonatomic, nullable) NSArray> *securityManagers; + +/** + * What encryption level video/audio streaming should be. The default is SDLStreamingEncryptionFlagAuthenticateAndEncrypt. + */ +@property (assign, nonatomic) SDLStreamingEncryptionFlag maximumDesiredEncryption; + +/** + * Properties to use for applications that utilitze the video encoder for streaming. See VTCompressionProperties.h for more details. For example, you can set kVTCompressionPropertyKey_ExpectedFrameRate to set your expected framerate. + */ +@property (copy, nonatomic, nullable) NSDictionary *customVideoEncoderSettings; + +/** + Usable to change run time video stream setup behavior. Only use this and modify the results if you *really* know what you're doing. The head unit defaults are generally good. + */ +@property (weak, nonatomic, nullable) id dataSource; + +/** + Set the window your video streaming content is within. + + Activates the haptic view parser when set. If the window contains `UIView` based views, these will be discovered and automatically sent to the head unit if it uses a haptic interface. Whether or not it supports the haptic interace, this library will also use that information to attempt to return the touched view to you in `SDLTouchManagerDelegate`. + + @warning Apps using views outside of the `UIView` heirarchy (such as OpenGL) are currently unsupported. If you app uses partial views in the heirarchy, only those views will be discovered. Your OpenGL views will not be discoverable to a haptic interface head unit and you will have to manually make these views discoverable via the `SDLSendHapticData` RPC request. + + @warning This is a weak property and it's therefore your job to hold a strong reference to this window. + */ +@property (weak, nonatomic, nullable) UIWindow *window; + +/** + Create an insecure video streaming configuration. No security managers will be provided and the encryption flag will be set to None. If you'd like custom video encoder settings, you can set the property manually. + + @return The configuration + */ +- (instancetype)init; + +/** + Manually set all the properties to the streaming media configuration + + @param securityManagers The security managers to use or nil for none. + @param encryptionFlag The maximum encrpytion supported. If the connected head unit supports less than set here, it will still connect, but if it supports more than set here, it will not connect. + @param videoSettings Custom video encoder settings to be used in video streaming. + @param window The UIWindow you are running the content that is being streamed on, to use for haptics if needed and possible (only works for UIViews) + @return The configuration + */ +- (instancetype)initWithSecurityManagers:(nullable NSArray> *)securityManagers encryptionFlag:(SDLStreamingEncryptionFlag)encryptionFlag videoSettings:(nullable NSDictionary *)videoSettings dataSource:(nullable id)dataSource window:(nullable UIWindow *)window; + +/** + Create a secure configuration for each of the security managers provided. + + @param securityManagers The security managers to be used. The encryption flag will be set to AuthenticateAndEncrypt if any security managers are set. + @return The configuration + */ +- (instancetype)initWithSecurityManagers:(NSArray> *)securityManagers; + +/** + Create a secure configuration for each of the security managers provided. + + @param securityManagers The security managers to be used. The encryption flag will be set to AuthenticateAndEncrypt if any security managers are set. + @return The configuration + */ ++ (instancetype)secureConfigurationWithSecurityManagers:(NSArray> *)securityManagers NS_SWIFT_UNAVAILABLE("Use an initializer instead"); + +/** + Create an insecure video streaming configuration. No security managers will be provided and the encryption flag will be set to None. If you'd like custom video encoder settings, you can set the property manually. This is equivalent to `init`. + + @return The configuration + */ ++ (instancetype)insecureConfiguration NS_SWIFT_UNAVAILABLE("Use the standard initializer instead"); + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLStreamingMediaConfiguration.m b/SmartDeviceLink/SDLStreamingMediaConfiguration.m new file mode 100644 index 000000000..d3293bd5a --- /dev/null +++ b/SmartDeviceLink/SDLStreamingMediaConfiguration.m @@ -0,0 +1,60 @@ +// +// SDLStreamingMediaConfiguration.m +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 8/2/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLStreamingMediaConfiguration.h" + +#import "SDLStreamingMediaManagerDataSource.h" + + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLStreamingMediaConfiguration + +- (instancetype)init { + return [self initWithSecurityManagers:nil encryptionFlag:SDLStreamingEncryptionFlagNone videoSettings:nil dataSource:nil window:nil]; +} + ++ (instancetype)insecureConfiguration { + return [[self alloc] init]; +} + +- (instancetype)initWithSecurityManagers:(nullable NSArray> *)securityManagers encryptionFlag:(SDLStreamingEncryptionFlag)encryptionFlag videoSettings:(nullable NSDictionary *)videoSettings dataSource:(nullable id)dataSource window:(nullable UIWindow *)window { + self = [super init]; + if (!self) { + return nil; + } + + _securityManagers = securityManagers; + _maximumDesiredEncryption = encryptionFlag; + _customVideoEncoderSettings = videoSettings; + _dataSource = dataSource; + _window = window; + + return self; +} + +- (instancetype)initWithSecurityManagers:(NSArray> *)securityManagers { + NSAssert(securityManagers.count > 0, @"A secure streaming media configuration requires security managers to be passed."); + SDLStreamingEncryptionFlag encryptionFlag = SDLStreamingEncryptionFlagAuthenticateAndEncrypt; + + return [self initWithSecurityManagers:securityManagers encryptionFlag:encryptionFlag videoSettings:nil dataSource:nil window:nil]; +} + ++ (instancetype)secureConfigurationWithSecurityManagers:(NSArray> *)securityManagers { + return [[self alloc] initWithSecurityManagers:securityManagers]; +} + +#pragma mark NSCopying + +- (id)copyWithZone:(nullable NSZone *)zone { + return [[self.class allocWithZone:zone] initWithSecurityManagers:_securityManagers encryptionFlag:_maximumDesiredEncryption videoSettings:_customVideoEncoderSettings dataSource:_dataSource window:_window]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLStreamingMediaLifecycleManager.h b/SmartDeviceLink/SDLStreamingMediaLifecycleManager.h new file mode 100644 index 000000000..cdd611200 --- /dev/null +++ b/SmartDeviceLink/SDLStreamingMediaLifecycleManager.h @@ -0,0 +1,211 @@ +// +// SDLStreamingMediaLifecycleManager.h +// SmartDeviceLink-iOS +// +// Created by Muller, Alexander (A.) on 2/16/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import +#import + +#import "SDLConnectionManagerType.h" +#import "SDLHMILevel.h" +#import "SDLProtocolListener.h" +#import "SDLStreamingMediaManagerConstants.h" + +@class SDLAbstractProtocol; +@class SDLImageResolution; +@class SDLStateMachine; +@class SDLStreamingMediaConfiguration; +@class SDLTouchManager; +@class SDLVideoStreamingFormat; + +@protocol SDLFocusableItemLocatorType; +@protocol SDLStreamingMediaManagerDataSource; + +NS_ASSUME_NONNULL_BEGIN + +typedef NSString SDLAppState; +extern SDLAppState *const SDLAppStateInactive; +extern SDLAppState *const SDLAppStateActive; + +typedef NSString SDLVideoStreamState; +extern SDLVideoStreamState *const SDLVideoStreamStateStopped; +extern SDLVideoStreamState *const SDLVideoStreamStateStarting; +extern SDLVideoStreamState *const SDLVideoStreamStateReady; +extern SDLVideoStreamState *const SDLVideoStreamStateShuttingDown; + +typedef NSString SDLAudioStreamState; +extern SDLAudioStreamState *const SDLAudioStreamStateStopped; +extern SDLAudioStreamState *const SDLAudioStreamStateStarting; +extern SDLAudioStreamState *const SDLAudioStreamStateReady; +extern SDLAudioStreamState *const SDLAudioStreamStateShuttingDown; + + +#pragma mark - Interface + +@interface SDLStreamingMediaLifecycleManager : NSObject + +@property (strong, nonatomic, readonly) SDLStateMachine *appStateMachine; +@property (strong, nonatomic, readonly) SDLStateMachine *videoStreamStateMachine; +@property (strong, nonatomic, readonly) SDLStateMachine *audioStreamStateMachine; + +@property (strong, nonatomic, readonly) SDLAppState *currentAppState; +@property (strong, nonatomic, readonly) SDLAudioStreamState *currentAudioStreamState; +@property (strong, nonatomic, readonly) SDLVideoStreamState *currentVideoStreamState; + +@property (copy, nonatomic, nullable) SDLHMILevel hmiLevel; + +@property (assign, nonatomic, readonly, getter=shouldRestartVideoStream) BOOL restartVideoStream; + +/** + * Touch Manager responsible for providing touch event notifications. + */ +@property (nonatomic, strong, readonly) SDLTouchManager *touchManager; + +/** + A haptic interface that can be updated to reparse views within the window you've provided. Send a `SDLDidUpdateProjectionView` notification or call the `updateInterfaceLayout` method to reparse. The "output" of this haptic interface occurs in the `touchManager` property where it will call the delegate. + */ +@property (nonatomic, strong, readonly, nullable) id focusableItemManager; + +/** + A data source for the streaming manager's preferred resolutions and preferred formats. + */ +@property (weak, nonatomic, nullable) id dataSource; + +/** + * Whether or not video streaming is supported + * + * @see SDLRegisterAppInterface SDLDisplayCapabilities + */ +@property (assign, nonatomic, readonly, getter=isStreamingSupported) BOOL streamingSupported; + +/** + * Whether or not the video session is connected. + */ +@property (assign, nonatomic, readonly, getter=isVideoConnected) BOOL videoConnected; + +/** + * Whether or not the video session is encrypted. This may be different than the requestedEncryptionType. + */ +@property (assign, nonatomic, readonly, getter=isVideoEncrypted) BOOL videoEncrypted; + +/** + * Whether or not the audio session is connected. + */ +@property (assign, nonatomic, readonly, getter=isAudioConnected) BOOL audioConnected; + +/** + * Whether or not the audio session is encrypted. This may be different than the requestedEncryptionType. + */ +@property (assign, nonatomic, readonly, getter=isAudioEncrypted) BOOL audioEncrypted; + +/** + * Whether or not the video stream is paused due to either the application being backgrounded, the HMI state being either NONE or BACKGROUND, or the video stream not being ready. + */ +@property (assign, nonatomic, readonly, getter=isVideoStreamingPaused) BOOL videoStreamingPaused; + +/** + * This is the current screen size of a connected display. This will be the size the video encoder uses to encode the raw image data. + */ +@property (assign, nonatomic, readonly) CGSize screenSize; + +/** + This is the agreed upon format of video encoder that is in use, or nil if not currently connected. + */ +@property (strong, nonatomic, readonly, nullable) SDLVideoStreamingFormat *videoFormat; + +/** + A list of all supported video formats by this manager + */ +@property (strong, nonatomic, readonly) NSArray *supportedFormats; + +/** + The decided upon preferred formats to try and connect with between the head unit and developer + */ +@property (strong, nonatomic) NSArray *preferredFormats; + +/** + The current attempt index for trying to connect with `preferredFormats` + */ +@property (assign, nonatomic) NSUInteger preferredFormatIndex; + +/** + The decided upon preferred resolutions to try and connect with between the head unit and the developer + */ +@property (strong, nonatomic) NSArray *preferredResolutions; + +/** + The current attempt index for trying to connect with `preferredResolutions` + */ +@property (assign, nonatomic) NSUInteger preferredResolutionIndex; + +/** + * The pixel buffer pool reference returned back from an active VTCompressionSessionRef encoder. + * + * @warning This will only return a valid pixel buffer pool after the encoder has been initialized (when the video session has started). + * @discussion Clients may call this once and retain the resulting pool, this call is cheap enough that it's OK to call it once per frame. + */ +@property (assign, nonatomic, readonly, nullable) CVPixelBufferPoolRef pixelBufferPool; + +/** + * The requested encryption type when a session attempts to connect. This setting applies to both video and audio sessions. + * + * DEFAULT: SDLStreamingEncryptionFlagAuthenticateAndEncrypt + */ +@property (assign, nonatomic) SDLStreamingEncryptionFlag requestedEncryptionType; + +- (instancetype)init NS_UNAVAILABLE; + +/** + Create a new streaming media manager for navigation and VPM apps with a specified configuration + + @param connectionManager The pass-through for RPCs + @param configuration The configuration of this streaming media session + @return A new streaming manager + */ +- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLStreamingMediaConfiguration *)configuration NS_DESIGNATED_INITIALIZER; + +/** + * Start the manager with a completion block that will be called when startup completes. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on `SDLManager`. + */ +- (void)startWithProtocol:(SDLAbstractProtocol *)protocol; + +/** + * Stop the manager. This method is used internally. + */ +- (void)stop; + +/** + * This method receives raw image data and will run iOS8+'s hardware video encoder to turn the data into a video stream, which will then be passed to the connected head unit. + * + * @param imageBuffer A CVImageBufferRef to be encoded by Video Toolbox + * + * @return Whether or not the data was successfully encoded and sent. + */ +- (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer; + +/** + * This method receives raw image data and will run iOS8+'s hardware video encoder to turn the data into a video stream, which will then be passed to the connected head unit. + * + * @param imageBuffer A CVImageBufferRef to be encoded by Video Toolbox + * @param presentationTimestamp A presentation timestamp for the frame, or kCMTimeInvalid if timestamp is unknown. If it's valid, it must be greater than the previous one. + * + * @return Whether or not the data was successfully encoded and sent. + */ +- (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer presentationTimestamp:(CMTime)presentationTimestamp; + +/** + * This method receives PCM audio data and will attempt to send that data across to the head unit for immediate playback + * + * @param audioData The data in PCM audio format, to be played + * + * @return Whether or not the data was successfully sent. + */ +- (BOOL)sendAudioData:(NSData *)audioData; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLStreamingMediaLifecycleManager.m b/SmartDeviceLink/SDLStreamingMediaLifecycleManager.m new file mode 100644 index 000000000..638419701 --- /dev/null +++ b/SmartDeviceLink/SDLStreamingMediaLifecycleManager.m @@ -0,0 +1,805 @@ +// +// SDLStreamingMediaLifecycleManager.m +// SmartDeviceLink-iOS +// +// Created by Muller, Alexander (A.) on 2/16/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLStreamingMediaLifecycleManager.h" + +#import "SDLAbstractProtocol.h" +#import "SDLControlFramePayloadAudioStartServiceAck.h" +#import "SDLControlFramePayloadConstants.h" +#import "SDLControlFramePayloadNak.h" +#import "SDLControlFramePayloadVideoStartService.h" +#import "SDLControlFramePayloadVideoStartServiceAck.h" +#import "SDLDisplayCapabilities.h" +#import "SDLGenericResponse.h" +#import "SDLGetSystemCapability.h" +#import "SDLGetSystemCapabilityResponse.h" +#import "SDLGlobals.h" +#import "SDLFocusableItemLocator.h" +#import "SDLH264VideoEncoder.h" +#import "SDLHMICapabilities.h" +#import "SDLImageResolution.h" +#import "SDLLogMacros.h" +#import "SDLNotificationConstants.h" +#import "SDLOnHMIStatus.h" +#import "SDLProtocolMessage.h" +#import "SDLRegisterAppInterfaceResponse.h" +#import "SDLRPCNotificationNotification.h" +#import "SDLRPCResponseNotification.h" +#import "SDLScreenParams.h" +#import "SDLStateMachine.h" +#import "SDLStreamingMediaConfiguration.h" +#import "SDLStreamingMediaManagerDataSource.h" +#import "SDLSystemCapability.h" +#import "SDLTouchManager.h" +#import "SDLVehicleType.h" +#import "SDLVideoStreamingCapability.h" +#import "SDLVideoStreamingCodec.h" +#import "SDLVideoStreamingFormat.h" +#import "SDLVideoStreamingProtocol.h" + +#import "CVPixelBufferRef+SDLUtil.h" + + +NS_ASSUME_NONNULL_BEGIN + +SDLAppState *const SDLAppStateInactive = @"AppInactive"; +SDLAppState *const SDLAppStateActive = @"AppActive"; + +SDLVideoStreamState *const SDLVideoStreamStateStopped = @"VideoStreamStopped"; +SDLVideoStreamState *const SDLVideoStreamStateStarting = @"VideoStreamStarting"; +SDLVideoStreamState *const SDLVideoStreamStateReady = @"VideoStreamReady"; +SDLVideoStreamState *const SDLVideoStreamStateShuttingDown = @"VideoStreamShuttingDown"; + +SDLAudioStreamState *const SDLAudioStreamStateStopped = @"AudioStreamStopped"; +SDLAudioStreamState *const SDLAudioStreamStateStarting = @"AudioStreamStarting"; +SDLAudioStreamState *const SDLAudioStreamStateReady = @"AudioStreamReady"; +SDLAudioStreamState *const SDLAudioStreamStateShuttingDown = @"AudioStreamShuttingDown"; + +static NSUInteger const FramesToSendOnBackground = 30; + +typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_Nullable capability); + + +@interface SDLStreamingMediaLifecycleManager () + +@property (weak, nonatomic) id connectionManager; +@property (weak, nonatomic) SDLAbstractProtocol *protocol; + +@property (assign, nonatomic, readonly, getter=isAppStateVideoStreamCapable) BOOL appStateVideoStreamCapable; +@property (assign, nonatomic, readonly, getter=isHmiStateAudioStreamCapable) BOOL hmiStateAudioStreamCapable; +@property (assign, nonatomic, readonly, getter=isHmiStateVideoStreamCapable) BOOL hmiStateVideoStreamCapable; + +@property (assign, nonatomic, readwrite) BOOL restartVideoStream; +@property (strong, nonatomic, readwrite, nullable) SDLVideoStreamingFormat *videoFormat; + +@property (strong, nonatomic, nullable) SDLH264VideoEncoder *videoEncoder; +@property (copy, nonatomic) NSDictionary *videoEncoderSettings; +@property (copy, nonatomic) NSArray *secureMakes; +@property (copy, nonatomic) NSString *connectedVehicleMake; + +@property (strong, nonatomic, readwrite) SDLStateMachine *appStateMachine; +@property (strong, nonatomic, readwrite) SDLStateMachine *videoStreamStateMachine; +@property (strong, nonatomic, readwrite) SDLStateMachine *audioStreamStateMachine; + +@property (assign, nonatomic) CV_NULLABLE CVPixelBufferRef backgroundingPixelBuffer; + +@property (assign, nonatomic) CMTime lastPresentationTimestamp; + +@end + + +@implementation SDLStreamingMediaLifecycleManager + +#pragma mark - Public +#pragma mark Lifecycle + +- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLStreamingMediaConfiguration *)configuration { + self = [super init]; + if (!self) { + return nil; + } + + SDLLogV(@"Creating StreamingLifecycleManager"); + _connectionManager = connectionManager; + + if (configuration.window != nil) { + _focusableItemManager = [[SDLFocusableItemLocator alloc] initWithWindow:configuration.window connectionManager:_connectionManager]; + } + _touchManager = [[SDLTouchManager alloc] initWithHitTester:(id)_focusableItemManager]; + + _videoEncoderSettings = configuration.customVideoEncoderSettings ?: SDLH264VideoEncoder.defaultVideoEncoderSettings; + _requestedEncryptionType = configuration.maximumDesiredEncryption; + _dataSource = configuration.dataSource; + _screenSize = SDLDefaultScreenSize; + _backgroundingPixelBuffer = NULL; + _preferredFormatIndex = 0; + _preferredResolutionIndex = 0; + + NSMutableArray *tempMakeArray = [NSMutableArray array]; + for (Class securityManagerClass in configuration.securityManagers) { + [tempMakeArray addObjectsFromArray:[securityManagerClass availableMakes].allObjects]; + } + _secureMakes = [tempMakeArray copy]; + + SDLAppState *initialState = SDLAppStateInactive; + switch ([[UIApplication sharedApplication] applicationState]) { + case UIApplicationStateActive: { + initialState = SDLAppStateActive; + } break; + case UIApplicationStateInactive: // fallthrough + case UIApplicationStateBackground: { + initialState = SDLAppStateInactive; + } break; + default: break; + } + + _appStateMachine = [[SDLStateMachine alloc] initWithTarget:self initialState:initialState states:[self.class sdl_appStateTransitionDictionary]]; + _videoStreamStateMachine = [[SDLStateMachine alloc] initWithTarget:self initialState:SDLVideoStreamStateStopped states:[self.class sdl_videoStreamStateTransitionDictionary]]; + _audioStreamStateMachine = [[SDLStateMachine alloc] initWithTarget:self initialState:SDLAudioStreamStateStopped states:[self.class sdl_audioStreamingStateTransitionDictionary]]; + + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_didReceiveRegisterAppInterfaceResponse:) name:SDLDidReceiveRegisterAppInterfaceResponse object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_hmiLevelDidChange:) name:SDLDidChangeHMIStatusNotification object:nil]; + + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_appStateDidUpdate:) name:UIApplicationDidBecomeActiveNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_appStateDidUpdate:) name:UIApplicationWillResignActiveNotification object:nil]; + + _lastPresentationTimestamp = kCMTimeInvalid; + + return self; +} + +- (void)startWithProtocol:(SDLAbstractProtocol *)protocol { + _protocol = protocol; + + if (![self.protocol.protocolDelegateTable containsObject:self]) { + [self.protocol.protocolDelegateTable addObject:self]; + } +} + +- (void)stop { + SDLLogD(@"Stopping manager"); + [self sdl_stopAudioSession]; + [self sdl_stopVideoSession]; + + self.restartVideoStream = NO; + + self.hmiLevel = SDLHMILevelNone; + + [self.audioStreamStateMachine transitionToState:SDLAudioStreamStateStopped]; + [self.videoStreamStateMachine transitionToState:SDLVideoStreamStateStopped]; +} + +- (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer { + return [self sendVideoData:imageBuffer presentationTimestamp:kCMTimeInvalid]; +} + +- (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer presentationTimestamp:(CMTime)presentationTimestamp { + if (!self.isVideoConnected) { + SDLLogW(@"Attempted to send video data, but not connected"); + return NO; + } else if (!self.isAppStateVideoStreamCapable) { + SDLLogW(@"Attempted to send video data, but app is not in the foreground"); + return NO; + } else if (!self.isHmiStateVideoStreamCapable) { + SDLLogW(@"Attempted to send video data, but the app is not in LIMITED or FULL HMI state"); + return NO; + } + + /* + * reject input image for following cases: + * - presentation timestamp is not increasing + * - app tries to send images while background images are shown + */ + if (CMTIME_IS_VALID(self.lastPresentationTimestamp) && CMTIME_IS_VALID(presentationTimestamp) + && CMTIME_COMPARE_INLINE(presentationTimestamp, <=, self.lastPresentationTimestamp)) { + SDLLogW(@"The video data is out of date"); + return NO; + } + self.lastPresentationTimestamp = presentationTimestamp; + + SDLLogV(@"Sending data to video encoder"); + return [self.videoEncoder encodeFrame:imageBuffer presentationTimestamp:presentationTimestamp]; +} + +- (BOOL)sendAudioData:(NSData*)audioData { + if (!self.isAudioConnected) { + return NO; + } + + SDLLogV(@"Sending raw audio data"); + if (self.isAudioEncrypted) { + [self.protocol sendEncryptedRawData:audioData onService:SDLServiceTypeAudio]; + } else { + [self.protocol sendRawData:audioData withServiceType:SDLServiceTypeAudio]; + } + return YES; +} + +#pragma mark Getters +- (BOOL)isAudioConnected { + return [self.audioStreamStateMachine isCurrentState:SDLAudioStreamStateReady]; +} + +- (BOOL)isVideoConnected { + return [self.videoStreamStateMachine isCurrentState:SDLVideoStreamStateReady]; +} + +- (BOOL)isVideoStreamingPaused { + return !(self.isVideoConnected && self.isHmiStateVideoStreamCapable && self.isAppStateVideoStreamCapable); +} + +- (CVPixelBufferPoolRef __nullable)pixelBufferPool { + return self.videoEncoder.pixelBufferPool; +} + +- (SDLAppState *)currentAppState { + return self.appStateMachine.currentState; +} + +- (SDLAudioStreamState *)currentAudioStreamState { + return self.audioStreamStateMachine.currentState; +} + +- (SDLVideoStreamState *)currentVideoStreamState { + return self.videoStreamStateMachine.currentState; +} + +#pragma mark - State Machines +#pragma mark App State ++ (NSDictionary *)sdl_appStateTransitionDictionary { + return @{ + // Will go from Inactive to Active if coming from a Phone Call. + // Will go from Inactive to IsRegainingActive if coming from Background. + SDLAppStateInactive : @[SDLAppStateActive], + SDLAppStateActive : @[SDLAppStateInactive] + }; +} + +- (void)sdl_appStateDidUpdate:(NSNotification*)notification { + if (notification.name == UIApplicationWillResignActiveNotification) { + [self.appStateMachine transitionToState:SDLAppStateInactive]; + } else if (notification.name == UIApplicationDidBecomeActiveNotification) { + [self.appStateMachine transitionToState:SDLAppStateActive]; + } +} + +- (void)didEnterStateAppInactive { + SDLLogD(@"App became inactive"); + if (!self.protocol) { return; } + + [self sdl_sendBackgroundFrames]; + [self.touchManager cancelPendingTouches]; + self.restartVideoStream = YES; +} + +// Per Apple's guidelines: https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StrategiesforHandlingAppStateTransitions/StrategiesforHandlingAppStateTransitions.html +// We should be waiting to start any OpenGL drawing until UIApplicationDidBecomeActive is called. +- (void)didEnterStateAppActive { + SDLLogD(@"App became active"); + if (!self.protocol) { return; } + + [self sdl_startVideoSession]; + [self sdl_startAudioSession]; +} + +#pragma mark Video Streaming ++ (NSDictionary *)sdl_videoStreamStateTransitionDictionary { + return @{ + SDLVideoStreamStateStopped : @[SDLVideoStreamStateStarting], + SDLVideoStreamStateStarting : @[SDLVideoStreamStateStopped, SDLVideoStreamStateReady], + SDLVideoStreamStateReady : @[SDLVideoStreamStateShuttingDown, SDLVideoStreamStateStopped], + SDLVideoStreamStateShuttingDown : @[SDLVideoStreamStateStopped] + }; +} + +- (void)didEnterStateVideoStreamStopped { + SDLLogD(@"Video stream stopped"); + _videoEncrypted = NO; + _videoFormat = nil; + + if (_videoEncoder != nil) { + [_videoEncoder stop]; + _videoEncoder = nil; + } + + [[NSNotificationCenter defaultCenter] postNotificationName:SDLVideoStreamDidStopNotification object:nil]; + + if (self.shouldRestartVideoStream) { + self.restartVideoStream = NO; + [self sdl_startVideoSession]; + } +} + +- (void)didEnterStateVideoStreamStarting { + SDLLogD(@"Video stream starting"); + self.restartVideoStream = NO; + + __weak typeof(self) weakSelf = self; + [self sdl_requestVideoCapabilities:^(SDLVideoStreamingCapability * _Nullable capability) { + SDLLogD(@"Received video capability response"); + SDLLogV(@"Capability: %@", capability); + + if (capability != nil) { + // If we got a response, get our preferred formats and resolutions + weakSelf.preferredFormats = capability.supportedFormats; + weakSelf.preferredResolutions = @[capability.preferredResolution]; + + if (weakSelf.dataSource != nil) { + SDLLogV(@"Calling data source for modified preferred formats and resolutions"); + weakSelf.preferredFormats = [weakSelf.dataSource preferredVideoFormatOrderFromHeadUnitPreferredOrder:weakSelf.preferredFormats]; + weakSelf.preferredResolutions = [weakSelf.dataSource resolutionFromHeadUnitPreferredResolution:weakSelf.preferredResolutions.firstObject]; + } + + if (weakSelf.focusableItemManager != nil) { + weakSelf.focusableItemManager.enableHapticDataRequests = capability.hapticSpatialDataSupported.boolValue; + } + + SDLLogD(@"Got specialized video capabilites, preferred formats: %@, resolutions: %@ haptics enabled %@", weakSelf.preferredFormats, weakSelf.preferredResolutions, (capability.hapticSpatialDataSupported.boolValue ? @"YES" : @"NO")); + } else { + // If we can't get capabilities, we're assuming it's H264 RAW at whatever the display capabilities said in the RAIR. We also aren't going to call the data source because they have no options. + SDLVideoStreamingFormat *format = [[SDLVideoStreamingFormat alloc] initWithCodec:SDLVideoStreamingCodecH264 protocol:SDLVideoStreamingProtocolRAW]; + SDLImageResolution *resolution = [[SDLImageResolution alloc] initWithWidth:weakSelf.screenSize.width height:weakSelf.screenSize.height]; + weakSelf.preferredFormats = @[format]; + weakSelf.preferredResolutions = @[resolution]; + + if (weakSelf.focusableItemManager != nil) { + weakSelf.focusableItemManager.enableHapticDataRequests = NO; + } + + SDLLogD(@"Using generic video capabilites, preferred formats: %@, resolutions: %@, haptics disabled", weakSelf.preferredFormats, weakSelf.preferredResolutions); + } + + [self sdl_sendVideoStartService]; + }]; +} + +- (void)didEnterStateVideoStreamReady { + SDLLogD(@"Video stream ready"); + // TODO: What if it isn't nil, is it even possible for it to not be nil? + 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]; + + if (error || self.videoEncoder == nil) { + SDLLogE(@"Could not create a video encoder: %@", error); + [self.videoStreamStateMachine transitionToState:SDLVideoStreamStateStopped]; + return; + } + + if (!self.backgroundingPixelBuffer) { + CVPixelBufferRef backgroundingPixelBuffer = [self.videoEncoder newPixelBuffer]; + if (CVPixelBufferAddText(backgroundingPixelBuffer, @"") == NO) { + SDLLogE(@"Could not create a backgrounding frame"); + [self.videoStreamStateMachine transitionToState:SDLVideoStreamStateStopped]; + return; + } + + self.backgroundingPixelBuffer = backgroundingPixelBuffer; + } + self.lastPresentationTimestamp = kCMTimeInvalid; + } + + [[NSNotificationCenter defaultCenter] postNotificationName:SDLVideoStreamDidStartNotification object:nil]; +} + +- (void)didEnterStateVideoStreamShuttingDown { + SDLLogD(@"Video stream shutting down"); + [self.protocol endServiceWithType:SDLServiceTypeVideo]; +} + +#pragma mark Audio ++ (NSDictionary *)sdl_audioStreamingStateTransitionDictionary { + return @{ + SDLAudioStreamStateStopped : @[SDLAudioStreamStateStarting], + SDLAudioStreamStateStarting : @[SDLAudioStreamStateStopped, SDLAudioStreamStateReady], + SDLAudioStreamStateReady : @[SDLAudioStreamStateShuttingDown, SDLAudioStreamStateStopped], + SDLAudioStreamStateShuttingDown : @[SDLAudioStreamStateStopped] + }; +} + +- (void)didEnterStateAudioStreamStopped { + SDLLogD(@"Audio stream stopped"); + _audioEncrypted = NO; + + [[NSNotificationCenter defaultCenter] postNotificationName:SDLAudioStreamDidStopNotification object:nil]; +} + +- (void)didEnterStateAudioStreamStarting { + SDLLogD(@"Audio stream starting"); + if ((self.requestedEncryptionType != SDLStreamingEncryptionFlagNone) && ([self.secureMakes containsObject:self.connectedVehicleMake])) { + [self.protocol startSecureServiceWithType:SDLServiceTypeAudio payload:nil completionHandler:^(BOOL success, NSError * _Nonnull error) { + if (error) { + SDLLogE(@"TLS setup error: %@", error); + [self.audioStreamStateMachine transitionToState:SDLAudioStreamStateStopped]; + } + }]; + } else { + [self.protocol startServiceWithType:SDLServiceTypeAudio payload:nil]; + } +} + +- (void)didEnterStateAudioStreamReady { + SDLLogD(@"Audio stream ready"); + [[NSNotificationCenter defaultCenter] postNotificationName:SDLAudioStreamDidStartNotification object:nil]; +} + +- (void)didEnterStateAudioStreamShuttingDown { + SDLLogD(@"Audio stream shutting down"); + [self.protocol endServiceWithType:SDLServiceTypeAudio]; +} + +#pragma mark - SDLProtocolListener +#pragma mark Video / Audio Start Service ACK + +- (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceACK { + switch (startServiceACK.header.serviceType) { + case SDLServiceTypeAudio: { + [self sdl_handleAudioStartServiceAck:startServiceACK]; + } break; + case SDLServiceTypeVideo: { + [self sdl_handleVideoStartServiceAck:startServiceACK]; + } break; + default: break; + } +} + +- (void)sdl_handleAudioStartServiceAck:(SDLProtocolMessage *)audioStartServiceAck { + SDLLogD(@"Audio service started"); + _audioEncrypted = audioStartServiceAck.header.encrypted; + + SDLControlFramePayloadAudioStartServiceAck *audioAckPayload = [[SDLControlFramePayloadAudioStartServiceAck alloc] initWithData:audioStartServiceAck.payload]; + SDLLogV(@"ACK: %@", audioAckPayload); + + if (audioAckPayload.mtu != SDLControlFrameInt64NotFound) { + [[SDLGlobals sharedGlobals] setDynamicMTUSize:audioAckPayload.mtu forServiceType:SDLServiceTypeAudio]; + } + + [self.audioStreamStateMachine transitionToState:SDLAudioStreamStateReady]; +} + +- (void)sdl_handleVideoStartServiceAck:(SDLProtocolMessage *)videoStartServiceAck { + SDLLogD(@"Video service started"); + _videoEncrypted = videoStartServiceAck.header.encrypted; + + SDLControlFramePayloadVideoStartServiceAck *videoAckPayload = [[SDLControlFramePayloadVideoStartServiceAck alloc] initWithData:videoStartServiceAck.payload]; + SDLLogV(@"ACK: %@", videoAckPayload); + + if (videoAckPayload.mtu != SDLControlFrameInt64NotFound) { + [[SDLGlobals sharedGlobals] setDynamicMTUSize:videoAckPayload.mtu forServiceType:SDLServiceTypeVideo]; + } + + // This is the definitive screen size that will be used + if (videoAckPayload.height != SDLControlFrameInt32NotFound && videoAckPayload.width != SDLControlFrameInt32NotFound) { + _screenSize = CGSizeMake(videoAckPayload.width, videoAckPayload.height); + } // else we are using the screen size we got from the RAIR earlier + + // Figure out the definitive format that will be used. If the protocol / codec weren't passed in the payload, it's probably a system that doesn't support those properties, which also means it's a system that requires H.264 RAW encoding + self.videoFormat = [[SDLVideoStreamingFormat alloc] init]; + self.videoFormat.codec = videoAckPayload.videoCodec ?: SDLVideoStreamingCodecH264; + self.videoFormat.protocol = videoAckPayload.videoProtocol ?: SDLVideoStreamingProtocolRAW; + + [self.videoStreamStateMachine transitionToState:SDLVideoStreamStateReady]; +} + +#pragma mark Video / Audio Start Service NAK + +- (void)handleProtocolStartServiceNAKMessage:(SDLProtocolMessage *)startServiceNAK { + switch (startServiceNAK.header.serviceType) { + case SDLServiceTypeAudio: { + [self sdl_handleAudioStartServiceNak:startServiceNAK]; + } break; + case SDLServiceTypeVideo: { + [self sdl_handleVideoStartServiceNak:startServiceNAK]; + } + default: break; + } +} + +- (void)sdl_handleVideoStartServiceNak:(SDLProtocolMessage *)videoStartServiceNak { + SDLLogW(@"Video service failed to start due to NAK"); + SDLControlFramePayloadNak *nakPayload = [[SDLControlFramePayloadNak alloc] initWithData:videoStartServiceNak.payload]; + SDLLogD(@"NAK: %@", videoStartServiceNak); + + // If we have no payload rejected params, we don't know what to do to retry, so we'll just stop and maybe cry + if (nakPayload.rejectedParams.count == 0) { + [self sdl_transitionToStoppedState:SDLServiceTypeVideo]; + return; + } + + // If height and/or width was rejected, and we have another resolution to try, advance our counter to try another resolution + if (([nakPayload.rejectedParams containsObject:[NSString stringWithUTF8String:SDLControlFrameHeightKey]] + || [nakPayload.rejectedParams containsObject:[NSString stringWithUTF8String:SDLControlFrameWidthKey]])) { + self.preferredResolutionIndex++; + } + + if (([nakPayload.rejectedParams containsObject:[NSString stringWithUTF8String:SDLControlFrameVideoCodecKey]] + || [nakPayload.rejectedParams containsObject:[NSString stringWithUTF8String:SDLControlFrameVideoProtocolKey]])) { + self.preferredFormatIndex++; + } + + [self sdl_sendVideoStartService]; +} + +- (void)sdl_handleAudioStartServiceNak:(SDLProtocolMessage *)audioStartServiceNak { + SDLLogW(@"Audio service failed to start due to NAK"); + [self sdl_transitionToStoppedState:SDLServiceTypeAudio]; +} + +#pragma mark Video / Audio End Service + +- (void)handleProtocolEndServiceACKMessage:(SDLProtocolMessage *)endServiceACK { + SDLLogD(@"%@ service ended", (endServiceACK.header.serviceType == SDLServiceTypeVideo ? @"Video" : @"Audio")); + [self sdl_transitionToStoppedState:endServiceACK.header.serviceType]; +} + +- (void)handleProtocolEndServiceNAKMessage:(SDLProtocolMessage *)endServiceNAK { + SDLLogW(@"%@ service ended with end service NAK", (endServiceNAK.header.serviceType == SDLServiceTypeVideo ? @"Video" : @"Audio")); + [self sdl_transitionToStoppedState:endServiceNAK.header.serviceType]; +} + +#pragma mark - SDLVideoEncoderDelegate + +- (void)videoEncoder:(SDLH264VideoEncoder *)encoder hasEncodedFrame:(NSData *)encodedVideo { + SDLLogV(@"Video encoder encoded frame, sending data"); + // Do we care about app state here? I don't think so… + BOOL capableVideoStreamState = [self.videoStreamStateMachine isCurrentState:SDLVideoStreamStateReady]; + + if (self.isHmiStateVideoStreamCapable && capableVideoStreamState) { + if (self.isVideoEncrypted) { + [self.protocol sendEncryptedRawData:encodedVideo onService:SDLServiceTypeVideo]; + } else { + [self.protocol sendRawData:encodedVideo withServiceType:SDLServiceTypeVideo]; + } + } +} + +#pragma mark - SDL RPC Notification callbacks + +- (void)sdl_didReceiveRegisterAppInterfaceResponse:(SDLRPCResponseNotification *)notification { + NSAssert([notification.response isKindOfClass:[SDLRegisterAppInterfaceResponse class]], @"A notification was sent with an unanticipated object"); + if (![notification.response isKindOfClass:[SDLRegisterAppInterfaceResponse class]]) { + return; + } + + SDLLogD(@"Received Register App Interface"); + SDLRegisterAppInterfaceResponse* registerResponse = (SDLRegisterAppInterfaceResponse*)notification.response; + + SDLLogV(@"Determining whether streaming is supported"); + _streamingSupported = registerResponse.hmiCapabilities.videoStreaming ? registerResponse.hmiCapabilities.videoStreaming.boolValue : registerResponse.displayCapabilities.graphicSupported.boolValue; + + if (!self.isStreamingSupported) { + SDLLogE(@"Graphics are not supported on this head unit. We are are assuming screen size is also unavailable and exiting."); + return; + } + + SDLImageResolution* resolution = registerResponse.displayCapabilities.screenParams.resolution; + if (resolution != nil) { + _screenSize = CGSizeMake(resolution.resolutionWidth.floatValue, + resolution.resolutionHeight.floatValue); + } else { + _screenSize = SDLDefaultScreenSize; + } + + self.connectedVehicleMake = registerResponse.vehicleType.make; + + SDLLogD(@"Determined base screen size on display capabilities: %@", NSStringFromCGSize(_screenSize)); +} + +- (void)sdl_hmiLevelDidChange:(SDLRPCNotificationNotification *)notification { + NSAssert([notification.notification isKindOfClass:[SDLOnHMIStatus class]], @"A notification was sent with an unanticipated object"); + if (![notification.notification isKindOfClass:[SDLOnHMIStatus class]]) { + return; + } + + SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus*)notification.notification; + SDLLogD(@"HMI level changed from level %@ to level %@", self.hmiLevel, hmiStatus.hmiLevel); + self.hmiLevel = hmiStatus.hmiLevel; + + if (self.isHmiStateVideoStreamCapable) { + [self sdl_startVideoSession]; + } else { + [self sdl_stopVideoSession]; + } + + if (self.isHmiStateAudioStreamCapable) { + [self sdl_startAudioSession]; + } else { + [self sdl_stopAudioSession]; + } +} + + +#pragma mark - Streaming session helpers + +- (void)sdl_startVideoSession { + SDLLogV(@"Attempting to start video session"); + + if (!self.isHmiStateVideoStreamCapable) { + SDLLogV(@"SDL Core is not ready to stream video. Video start service request will not be sent."); + return; + } + + if (!self.isStreamingSupported) { + SDLLogV(@"Streaming is not supported. Video start service request will not be sent."); + return; + } + + if (self.shouldRestartVideoStream && [self.videoStreamStateMachine isCurrentState:SDLVideoStreamStateReady]) { + SDLLogV(@"Video needs to be restarted. Stopping video stream."); + [self sdl_stopVideoSession]; + return; + } + + if ([self.videoStreamStateMachine isCurrentState:SDLVideoStreamStateStopped] + && self.isHmiStateVideoStreamCapable) { + [self.videoStreamStateMachine transitionToState:SDLVideoStreamStateStarting]; + } else { + SDLLogE(@"Unable to send video start service request\n" + "Video State must be in state STOPPED: %@\n" + "HMI state must be LIMITED or FULL: %@\n", + self.videoStreamStateMachine.currentState, self.hmiLevel); + } +} + +- (void)sdl_startAudioSession { + SDLLogV(@"Attempting to start audio session"); + if (!self.isStreamingSupported) { + return; + } + + if ([self.audioStreamStateMachine isCurrentState:SDLAudioStreamStateStopped] + && self.isHmiStateAudioStreamCapable) { + [self.audioStreamStateMachine transitionToState:SDLAudioStreamStateStarting]; + } +} + +- (void)sdl_stopVideoSession { + SDLLogV(@"Attempting to stop video session"); + if (!self.isStreamingSupported) { + return; + } + + if (self.isVideoConnected) { + [self.videoStreamStateMachine transitionToState:SDLVideoStreamStateShuttingDown]; + } +} + +- (void)sdl_stopAudioSession { + SDLLogV(@"Attempting to stop audio session"); + if (!self.isStreamingSupported) { + return; + } + + if (self.isAudioConnected) { + [self.audioStreamStateMachine transitionToState:SDLAudioStreamStateShuttingDown]; + } +} + +- (void)sdl_transitionToStoppedState:(SDLServiceType)serviceType { + switch (serviceType) { + case SDLServiceTypeAudio: + [self.audioStreamStateMachine transitionToState:SDLAudioStreamStateStopped]; + break; + case SDLServiceTypeVideo: + [self.videoStreamStateMachine transitionToState:SDLVideoStreamStateStopped]; + break; + default: + break; + } +} + +- (void)sdl_sendBackgroundFrames { + SDLLogV(@"Attempting to send background frames"); + if (!self.backgroundingPixelBuffer) { + SDLLogW(@"No background pixel buffer, unable to send background frames"); + return; + } + + int32_t timeRate = 30; + if (self.videoEncoderSettings[(__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate] != nil) { + timeRate = ((NSNumber *)self.videoEncoderSettings[(__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate]).intValue; + } + + const CMTime interval = CMTimeMake(1, timeRate); + for (int frameCount = 0; frameCount < FramesToSendOnBackground; frameCount++) { + if (CMTIME_IS_VALID(self.lastPresentationTimestamp)) { + self.lastPresentationTimestamp = CMTimeAdd(self.lastPresentationTimestamp, interval); + [self.videoEncoder encodeFrame:self.backgroundingPixelBuffer presentationTimestamp:self.lastPresentationTimestamp]; + } else { + [self.videoEncoder encodeFrame:self.backgroundingPixelBuffer]; + } + } +} + +- (void)sdl_requestVideoCapabilities:(SDLVideoCapabilityResponseHandler)responseHandler { + SDLLogD(@"Requesting video capabilities"); + SDLGetSystemCapability *getVideoCapabilityRequest = [[SDLGetSystemCapability alloc] initWithType:SDLSystemCapabilityTypeVideoStreaming]; + + [self.connectionManager sendManagerRequest:getVideoCapabilityRequest withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { + if (!response.success || [response isMemberOfClass:SDLGenericResponse.class]) { + SDLLogW(@"Video capabilities response failed: %@", error); + responseHandler(nil); + BLOCK_RETURN; + } + + SDLVideoStreamingCapability *videoCapability = ((SDLGetSystemCapabilityResponse *)response).systemCapability.videoStreamingCapability; + SDLLogD(@"Video capabilities response received: %@", videoCapability); + responseHandler(videoCapability); + }]; +} + +/** + Pull the current format / resolution out of our preferred resolutions and craft a start video service payload out of it, then send a start service. If the format isn't one that we support, we're going to try the next format. + */ +- (void)sdl_sendVideoStartService { + SDLLogV(@"Attempting to find preferred format"); + while (self.preferredFormatIndex < self.preferredFormats.count) { + if (![self.supportedFormats containsObject:self.preferredFormats[self.preferredFormatIndex]]) { + self.preferredFormatIndex++; + } else { + SDLLogV(@"Preferred format index found: %lu", self.preferredFormatIndex); + break; + } + } + + // If this fails we have no known formats to use + if (self.preferredFormatIndex >= self.preferredFormats.count + || self.preferredResolutionIndex >= self.preferredResolutions.count) { + SDLLogE(@"No preferred format or no preferred resolution found that works: format index %lu, resolution index %lu", self.preferredFormatIndex, self.preferredResolutionIndex); + [self sdl_transitionToStoppedState:SDLServiceTypeVideo]; + return; + } + + SDLVideoStreamingFormat *preferredFormat = self.preferredFormats[self.preferredFormatIndex]; + SDLImageResolution *preferredResolution = self.preferredResolutions[self.preferredResolutionIndex]; + + SDLControlFramePayloadVideoStartService *startVideoPayload = [[SDLControlFramePayloadVideoStartService alloc] initWithVideoHeight:preferredResolution.resolutionHeight.intValue width:preferredResolution.resolutionWidth.intValue protocol:preferredFormat.protocol codec:preferredFormat.codec]; + + // Decide if we need to start a secure service or not + if ((self.requestedEncryptionType != SDLStreamingEncryptionFlagNone) && ([self.secureMakes containsObject:self.connectedVehicleMake])) { + SDLLogD(@"Sending secure video start service with payload: %@", startVideoPayload); + [self.protocol startSecureServiceWithType:SDLServiceTypeVideo payload:startVideoPayload.data completionHandler:^(BOOL success, NSError *error) { + if (error) { + SDLLogE(@"TLS setup error: %@", error); + [self.videoStreamStateMachine transitionToState:SDLVideoStreamStateStopped]; + } + }]; + } else { + SDLLogD(@"Sending insecure video start service with payload: %@", startVideoPayload); + [self.protocol startServiceWithType:SDLServiceTypeVideo payload:startVideoPayload.data]; + } +} + + +#pragma mark Getters + +- (BOOL)isAppStateVideoStreamCapable { + return [self.appStateMachine isCurrentState:SDLAppStateActive]; +} + +- (BOOL)isHmiStateAudioStreamCapable { + return YES; +} + +- (BOOL)isHmiStateVideoStreamCapable { + return [self.hmiLevel isEqualToEnum:SDLHMILevelLimited] || [self.hmiLevel isEqualToEnum:SDLHMILevelFull]; +} + +- (NSArray *)supportedFormats { + SDLVideoStreamingFormat *h264raw = [[SDLVideoStreamingFormat alloc] initWithCodec:SDLVideoStreamingCodecH264 protocol:SDLVideoStreamingProtocolRAW]; + SDLVideoStreamingFormat *h264rtp = [[SDLVideoStreamingFormat alloc] initWithCodec:SDLVideoStreamingCodecH264 protocol:SDLVideoStreamingProtocolRTP]; + + return @[h264raw, h264rtp]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLStreamingMediaManager.h b/SmartDeviceLink/SDLStreamingMediaManager.h index 3e9606bd0..07d06d1fb 100644 --- a/SmartDeviceLink/SDLStreamingMediaManager.h +++ b/SmartDeviceLink/SDLStreamingMediaManager.h @@ -9,54 +9,21 @@ #import #import -#import "SDLProtocolListener.h" +#import "SDLStreamingMediaManagerConstants.h" @class SDLAbstractProtocol; -@class SDLDisplayCapabilities; +@class SDLStreamingMediaConfiguration; @class SDLTouchManager; -@class SDLVideoStreamingCodec; -@class SDLVideoStreamingProtocol; +@class SDLVideoStreamingFormat; +@protocol SDLFocusableItemLocatorType; +@protocol SDLConnectionManagerType; NS_ASSUME_NONNULL_BEGIN -typedef NS_ENUM(NSInteger, SDLStreamingVideoError) { - SDLStreamingVideoErrorHeadUnitNACK = 0, - SDLSTreamingVideoErrorInvalidOperatingSystemVersion __deprecated_enum_msg("Use SDLStreamingVideoErrorInvalidOperatingSystemVersion instead") = 1, - SDLStreamingVideoErrorInvalidOperatingSystemVersion = 1, - SDLStreamingVideoErrorConfigurationCompressionSessionCreationFailure = 2, - SDLStreamingVideoErrorConfigurationAllocationFailure = 3, - SDLStreamingVideoErrorConfigurationCompressionSessionSetPropertyFailure = 4 -}; - -typedef NS_ENUM(NSInteger, SDLEncryptionFlag) { - SDLEncryptionFlagNone, - SDLEncryptionFlagAuthenticateOnly, - SDLEncryptionFlagAuthenticateAndEncrypt -}; - -typedef NS_ENUM(NSInteger, SDLStreamingAudioError) { - SDLStreamingAudioErrorHeadUnitNACK -}; - -extern NSString *const SDLErrorDomainStreamingMediaVideo; -extern NSString *const SDLErrorDomainStreamingMediaAudio; - -extern CGSize const SDLDefaultScreenSize; - -typedef void (^SDLStreamingStartBlock)(BOOL success, NSError *__nullable error); -typedef void (^SDLStreamingEncryptionStartBlock)(BOOL success, BOOL encryption, NSError *__nullable error); - - #pragma mark - Interface -@interface SDLStreamingMediaManager : NSObject - -@property (assign, nonatomic, readonly) BOOL videoSessionConnected; -@property (assign, nonatomic, readonly) BOOL audioSessionConnected; - -@property (assign, nonatomic, readonly) BOOL videoSessionEncrypted; -@property (assign, nonatomic, readonly) BOOL audioSessionEncrypted; +@interface SDLStreamingMediaManager : NSObject /** * Touch Manager responsible for providing touch event notifications. @@ -64,84 +31,92 @@ typedef void (^SDLStreamingEncryptionStartBlock)(BOOL success, BOOL encryption, @property (nonatomic, strong, readonly) SDLTouchManager *touchManager; /** - * The settings used in a VTCompressionSessionRef encoder. These will be verified when the video stream is started. Acceptable properties for this are located in VTCompressionProperties. If set to nil, the defaultVideoEncoderSettings will be used. - * - * @warning Video streaming must not be connected to update the encoder properties. If it is running, issue a stopVideoSession before updating. + A haptic interface that can be updated to reparse views within the window you've provided. Send a `SDLDidUpdateProjectionView` notification or call the `updateInterfaceLayout` method to reparse. The "output" of this haptic interface occurs in the `touchManager` property where it will call the delegate. */ -@property (strong, nonatomic, null_resettable) NSDictionary *videoEncoderSettings; +@property (nonatomic, strong, readonly, nullable) id focusableItemManager; /** - * Display capabilties that will set the screenSize property. If set to nil, the SDLDefaultScreenSize will be used. + * Whether or not video streaming is supported * - * @warning Video streaming must not be connected to update the encoder properties. If it is running, issue a stopVideoSession before updating. + * @see SDLRegisterAppInterface SDLDisplayCapabilities */ -@property (strong, nonatomic, null_resettable) SDLDisplayCapabilities *displayCapabilties; +@property (assign, nonatomic, readonly, getter=isStreamingSupported) BOOL streamingSupported; /** - * Provides default video encoder settings used. + * Whether or not the video session is connected. */ -@property (strong, nonatomic, readonly) NSDictionary *defaultVideoEncoderSettings; +@property (assign, nonatomic, readonly, getter=isVideoConnected) BOOL videoConnected; /** - * 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. + * Whether or not the video session is encrypted. This may be different than the requestedEncryptionType. */ -@property (assign, nonatomic, readonly) CGSize screenSize; +@property (assign, nonatomic, readonly, getter=isVideoEncrypted) BOOL videoEncrypted; /** - * The pixel buffer pool reference returned back from an active VTCompressionSessionRef encoder. - * - * @warning This will only return a valid pixel buffer pool after the encoder has been initialized (when the video session has started). - * @discussion Clients may call this once and retain the resulting pool, this call is cheap enough that it's OK to call it once per frame. + * Whether or not the audio session is connected. */ -@property (assign, nonatomic, readonly, nullable) CVPixelBufferPoolRef pixelBufferPool; - +@property (assign, nonatomic, readonly, getter=isAudioConnected) BOOL audioConnected; -- (instancetype)initWithProtocol:(SDLAbstractProtocol *)protocol __deprecated_msg(("Please use initWithProtocol:displayCapabilities: instead")); +/** + * Whether or not the audio session is encrypted. This may be different than the requestedEncryptionType. + */ +@property (assign, nonatomic, readonly, getter=isAudioEncrypted) BOOL audioEncrypted; -- (instancetype)initWithProtocol:(SDLAbstractProtocol *)protocol displayCapabilities:(SDLDisplayCapabilities *)displayCapabilities; +/** + * Whether or not the video stream is paused due to either the application being backgrounded, the HMI state being either NONE or BACKGROUND, or the video stream not being ready. + */ +@property (assign, nonatomic, readonly, getter=isVideoStreamingPaused) BOOL videoStreamingPaused; /** - * This method will attempt to start a streaming video session. It will set up iOS's video encoder, and call out to the head unit asking if it will start a video session. This will not use encryption. - * - * @warning If this method is called on an 8.0 device, it will assert (in debug), or return a failure immediately to your block (in release). - * - * @param startBlock A block that will be called with the result of attempting to start a video session + * 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. */ -- (void)startVideoSessionWithStartBlock:(SDLStreamingStartBlock)startBlock; +@property (assign, nonatomic, readonly) CGSize screenSize; /** - This method will attempt to start a streaming video session. It will set up iOS's video encoder, and call out to the head unit asking if it will start a video session. This will not use encryption. To get proper values for height and width. If the remote system does not support GetSystemCapabilities, then call `startVideoSessionWithStartBlock:` instead. + This is the agreed upon format of video encoder that is in use, or nil if not currently connected. + */ +@property (strong, nonatomic, readonly, nullable) SDLVideoStreamingFormat *videoFormat; - @warning If this method is called on an 8.0 device, it will assert (in debug), or return a failure immediately to your block (in release). +/** + A list of all supported video formats by this manager + */ +@property (strong, nonatomic, readonly) NSArray *supportedFormats; - @param height The height requested to be used - @param width The width requested to be used - @param startBlock A block that will be called with the result of attempting to start a video session +/** + * The pixel buffer pool reference returned back from an active VTCompressionSessionRef encoder. + * + * @warning This will only return a valid pixel buffer pool after the encoder has been initialized (when the video session has started). + * @discussion Clients may call this once and retain the resulting pool, this call is cheap enough that it's OK to call it once per frame. */ -- (void)startVideoSessionWithHeight:(int32_t)height width:(int32_t)width startBlock:(SDLStreamingStartBlock)startBlock; +@property (assign, nonatomic, readonly, nullable) CVPixelBufferPoolRef pixelBufferPool; /** - * Start a video session either with with no encryption (the default), with authentication but no encryption (this will attempt a TLS authentication with the other side, but will not physically encrypt the data after that), or authentication and encryption, which will encrypt all video data being sent. + * The requested encryption type when a session attempts to connect. This setting applies to both video and audio sessions. * - * @param encryptionFlag Whether and how much security to apply to the video session. - * @param startBlock A block that will be called with the result of attempting to start a video session + * DEFAULT: SDLStreamingEncryptionFlagAuthenticateAndEncrypt */ -- (void)startVideoSessionWithTLS:(SDLEncryptionFlag)encryptionFlag startBlock:(SDLStreamingEncryptionStartBlock)startBlock; +@property (assign, nonatomic) SDLStreamingEncryptionFlag requestedEncryptionType; + +- (instancetype)init NS_UNAVAILABLE; /** - Start a video session either with with no encryption (the default), with authentication but no encryption (this will attempt a TLS authentication with the other side, but will not physically encrypt the data after that), or authentication and encryption, which will encrypt all video data being sent. To get proper values for height, width, protocol, and codec, call GetSystemCapabilities. If the remote system does not support GetSystemCapabilities, then call `startVideoSessionWithStartBlock:` instead. + Create a new streaming media manager for navigation and VPM apps with a specified configuration - @param encryptionFlag Whether and how much security to apply to the video session. - @param height The height requested to be used - @param width The width requested to be used - @param startBlock A block that will be called with the result of attempting to start a video session + @param connectionManager The pass-through for RPCs + @param configuration The configuration of this streaming media session + @return A new streaming manager */ -- (void)startVideoSessionWithTLS:(SDLEncryptionFlag)encryptionFlag height:(int32_t)height width:(int32_t)width startBlock:(SDLStreamingEncryptionStartBlock)startBlock; +- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLStreamingMediaConfiguration *)configuration NS_DESIGNATED_INITIALIZER; /** - * This method will stop a running video session if there is one running. + * Start the manager with a completion block that will be called when startup completes. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on `SDLManager`. */ -- (void)stopVideoSession; +- (void)startWithProtocol:(SDLAbstractProtocol *)protocol; + +/** + * Stop the manager. This method is used internally. + */ +- (void)stop; /** * This method receives raw image data and will run iOS8+'s hardware video encoder to turn the data into a video stream, which will then be passed to the connected head unit. @@ -153,28 +128,24 @@ typedef void (^SDLStreamingEncryptionStartBlock)(BOOL success, BOOL encryption, - (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer; /** - * This method will attempt to start an audio session + * This method receives raw image data and will run iOS8+'s hardware video encoder to turn the data into a video stream, which will then be passed to the connected head unit. * - * @param startBlock A block that will be called with the result of attempting to start an audio session - */ -- (void)startAudioSessionWithStartBlock:(SDLStreamingStartBlock)startBlock; - -// TODO: Documentation -- (void)startAudioSessionWithTLS:(SDLEncryptionFlag)encryptionFlag startBlock:(SDLStreamingEncryptionStartBlock)startBlock; - -/** - * This method will stop a running audio session if there is one running. + * @param imageBuffer A CVImageBufferRef to be encoded by Video Toolbox + * @param presentationTimestamp A presentation timestamp for the frame, or kCMTimeInvalid if timestamp is unknown. If it's valid, it must be greater than the previous one. + * + * @return Whether or not the data was successfully encoded and sent. */ -- (void)stopAudioSession; +- (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer presentationTimestamp:(CMTime)presentationTimestamp; /** * This method receives PCM audio data and will attempt to send that data across to the head unit for immediate playback * - * @param pcmAudioData The data in PCM audio format, to be played + * @param audioData The data in PCM audio format, to be played * * @return Whether or not the data was successfully sent. */ -- (BOOL)sendAudioData:(NSData *)pcmAudioData; +- (BOOL)sendAudioData:(NSData *)audioData; + @end diff --git a/SmartDeviceLink/SDLStreamingMediaManager.m b/SmartDeviceLink/SDLStreamingMediaManager.m index ff9d9d319..c9688ea8a 100644 --- a/SmartDeviceLink/SDLStreamingMediaManager.m +++ b/SmartDeviceLink/SDLStreamingMediaManager.m @@ -8,636 +8,116 @@ #import "SDLStreamingMediaManager.h" -#import - -#import "SDLAbstractProtocol.h" -#import "SDLControlFramePayloadConstants.h" -#import "SDLControlFramePayloadAudioStartServiceAck.h" -#import "SDLControlFramePayloadVideoStartService.h" -#import "SDLControlFramePayloadVideoStartServiceAck.h" -#import "SDLDebugTool.h" -#import "SDLDisplayCapabilities.h" -#import "SDLGlobals.h" -#import "SDLImageResolution.h" -#import "SDLProtocolMessage.h" -#import "SDLScreenParams.h" +#import "SDLConnectionManagerType.h" +#import "SDLStreamingMediaConfiguration.h" +#import "SDLStreamingMediaManagerDataSource.h" +#import "SDLStreamingMediaLifecycleManager.h" #import "SDLTouchManager.h" -#import "SDLVideoStreamingCodec.h" -#import "SDLVideoStreamingProtocol.h" -NSString *const SDLErrorDomainStreamingMediaVideo = @"com.sdl.streamingmediamanager.video"; -NSString *const SDLErrorDomainStreamingMediaAudio = @"com.sdl.streamingmediamanager.audio"; - -CGSize const SDLDefaultScreenSize = {800, 480}; - NS_ASSUME_NONNULL_BEGIN @interface SDLStreamingMediaManager () -@property (assign, nonatomic, nullable) VTCompressionSessionRef compressionSession; - -@property (assign, nonatomic, nullable) CFDictionaryRef pixelBufferOptions; - -@property (assign, nonatomic) NSUInteger currentFrameNumber; - -@property (assign, nonatomic, readwrite) BOOL videoSessionConnected; -@property (assign, nonatomic, readwrite) BOOL audioSessionConnected; - -@property (assign, nonatomic, readwrite) BOOL videoSessionEncrypted; -@property (assign, nonatomic, readwrite) BOOL audioSessionEncrypted; - -@property (weak, nonatomic) SDLAbstractProtocol *protocol; - -@property (copy, nonatomic, nullable) SDLStreamingEncryptionStartBlock videoStartBlock; -@property (copy, nonatomic, nullable) SDLStreamingEncryptionStartBlock audioStartBlock; - -@property (nonatomic, strong, readwrite) SDLTouchManager *touchManager; +@property (strong, nonatomic) SDLStreamingMediaLifecycleManager *lifecycleManager; @end @implementation SDLStreamingMediaManager -#pragma mark - Class Lifecycle - -- (instancetype)initWithProtocol:(SDLAbstractProtocol *)protocol displayCapabilities:(SDLDisplayCapabilities *)displayCapabilities { - self = [self init]; - if (!self) { - return nil; - } - - _protocol = protocol; - - _displayCapabilties = displayCapabilities; - [self sdl_updateScreenSizeFromDisplayCapabilities:displayCapabilities]; - - return self; -} - -- (instancetype)initWithProtocol:(SDLAbstractProtocol *)protocol { - self = [self init]; - if (!self) { - return nil; - } - - _protocol = protocol; - - return self; -} +#pragma mark - Public +#pragma mark Lifecycle -- (instancetype)init { +- (instancetype)initWithConnectionManager:(id)connectionManager configuration:(SDLStreamingMediaConfiguration *)configuration { self = [super init]; if (!self) { return nil; } - - _compressionSession = NULL; - - _currentFrameNumber = 0; - _videoSessionConnected = NO; - _audioSessionConnected = NO; - _videoSessionEncrypted = NO; - _audioSessionEncrypted = NO; - _protocol = nil; - - _videoStartBlock = nil; - _audioStartBlock = nil; - - _screenSize = SDLDefaultScreenSize; - _videoEncoderSettings = self.defaultVideoEncoderSettings; - _touchManager = [[SDLTouchManager alloc] init]; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_applicationDidEnterBackground:) name:UIApplicationDidEnterBackgroundNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_applicationDidResignActive:) name:UIApplicationWillResignActiveNotification object:nil]; + + _lifecycleManager = [[SDLStreamingMediaLifecycleManager alloc] initWithConnectionManager:connectionManager configuration:configuration]; return self; } -- (void)dealloc { - _pixelBufferOptions = nil; -} - -#pragma mark - Streaming media lifecycle - -- (void)startVideoSessionWithStartBlock:(SDLStreamingStartBlock)startBlock { - [self startVideoSessionWithHeight:SDLControlFrameInt32NotFound width:SDLControlFrameInt32NotFound startBlock:startBlock]; -} - -- (void)startVideoSessionWithHeight:(int32_t)height width:(int32_t)width startBlock:(SDLStreamingStartBlock)startBlock { - [self startVideoSessionWithTLS:SDLEncryptionFlagNone height:height width:width startBlock:^(BOOL success, BOOL encryption, NSError *_Nullable error) { - startBlock(success, error); - }]; -} - -- (void)startVideoSessionWithTLS:(SDLEncryptionFlag)encryptionFlag startBlock:(SDLStreamingEncryptionStartBlock)startBlock { - [self startVideoSessionWithTLS:encryptionFlag height:SDLControlFrameInt32NotFound width:SDLControlFrameInt32NotFound startBlock:startBlock]; -} - -- (void)startVideoSessionWithTLS:(SDLEncryptionFlag)encryptionFlag height:(int32_t)height width:(int32_t)width startBlock:(SDLStreamingEncryptionStartBlock)startBlock { - if (SDL_SYSTEM_VERSION_LESS_THAN(@"8.0")) { - NSAssert(NO, @"SDL Video Sessions can only be run on iOS 8+ devices"); - startBlock(NO, NO, [NSError errorWithDomain:SDLErrorDomainStreamingMediaVideo code:SDLStreamingVideoErrorInvalidOperatingSystemVersion userInfo:nil]); - - return; - } - - self.videoStartBlock = [startBlock copy]; - self.videoSessionEncrypted = (encryptionFlag == SDLEncryptionFlagAuthenticateAndEncrypt ? YES : NO); - - // H264 RAW is the only currently supported SMM format, so we will use hardcode that in to make sure that future Core's that may have different defaults still use our default. - SDLControlFramePayloadVideoStartService *payload = [[SDLControlFramePayloadVideoStartService alloc] initWithVideoHeight:height width:width protocol:[SDLVideoStreamingProtocol RAW] codec:[SDLVideoStreamingCodec H264]]; - if (encryptionFlag != SDLEncryptionFlagNone) { - __weak typeof(self) weakSelf = self; - [self.protocol startSecureServiceWithType:SDLServiceType_Video payload:payload.data completionHandler:^(BOOL success, NSError *error) { - typeof(weakSelf) strongSelf = weakSelf; - // If success, we will get an ACK or NACK, so those methods will handle calling the video block - if (!success) { - if (strongSelf.videoStartBlock == nil) { - return; - } - - strongSelf.videoStartBlock(NO, NO, error); - strongSelf.videoStartBlock = nil; - } - }]; - } else { - [self.protocol startServiceWithType:SDLServiceType_Video payload:payload.data]; - } -} - -- (void)stopVideoSession { - if (!self.videoSessionConnected) { - return; - } - - [self.protocol endServiceWithType:SDLServiceType_Video]; -} - -- (void)startAudioSessionWithStartBlock:(SDLStreamingStartBlock)startBlock { - [self startAudioSessionWithTLS:SDLEncryptionFlagNone - startBlock:^(BOOL success, BOOL encryption, NSError *_Nullable error) { - startBlock(success, error); - }]; +- (void)startWithProtocol:(SDLAbstractProtocol *)protocol { + [self.lifecycleManager startWithProtocol:protocol]; } -- (void)startAudioSessionWithTLS:(SDLEncryptionFlag)encryptionFlag startBlock:(SDLStreamingEncryptionStartBlock)startBlock { - self.audioStartBlock = [startBlock copy]; - self.audioSessionEncrypted = (encryptionFlag == SDLEncryptionFlagAuthenticateAndEncrypt ? YES : NO); - - if (encryptionFlag != SDLEncryptionFlagNone) { - __weak typeof(self) weakSelf = self; - [self.protocol startSecureServiceWithType:SDLServiceType_Audio payload:nil - completionHandler:^(BOOL success, NSError *error) { - typeof(weakSelf) strongSelf = weakSelf; - // If this passes, we will get an ACK or NACK, so those methods will handle calling the audio block - if (!success) { - if (strongSelf.audioStartBlock == nil) { - return; - } - - strongSelf.audioStartBlock(NO, NO, error); - strongSelf.audioStartBlock = nil; - } - }]; - } else { - [self.protocol startServiceWithType:SDLServiceType_Audio payload:nil]; - } -} - -- (void)stopAudioSession { - if (!self.audioSessionConnected) { - return; - } - - [self.protocol endServiceWithType:SDLServiceType_Audio]; +- (void)stop { + [self.lifecycleManager stop]; } - -#pragma mark - Send media data - - (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer { - if (!self.videoSessionConnected) { - return NO; - } - - // TODO (Joel F.)[2015-08-17]: Somehow monitor connection to make sure we're not clogging the connection with data. - // This will come out in -[self sdl_videoEncoderOutputCallback] - OSStatus status = VTCompressionSessionEncodeFrame(_compressionSession, imageBuffer, CMTimeMake(self.currentFrameNumber++, 30), kCMTimeInvalid, NULL, (__bridge void *)self, NULL); - - return (status == noErr); + return [self.lifecycleManager sendVideoData:imageBuffer]; } -- (BOOL)sendAudioData:(NSData *)pcmAudioData { - if (!self.audioSessionConnected) { - return NO; - } - - dispatch_async([self.class sdl_streamingDataSerialQueue], ^{ - @autoreleasepool { - if (self.audioSessionEncrypted) { - [self.protocol sendEncryptedRawData:pcmAudioData onService:SDLServiceType_Audio]; - } else { - [self.protocol sendRawData:pcmAudioData withServiceType:SDLServiceType_Audio]; - } - } - }); - - return YES; +- (BOOL)sendVideoData:(CVImageBufferRef)imageBuffer presentationTimestamp:(CMTime)presentationTimestamp { + return [self.lifecycleManager sendVideoData:imageBuffer presentationTimestamp:presentationTimestamp]; } -#pragma mark - Update video encoder - -- (void)setVideoEncoderSettings:(NSDictionary *_Nullable)videoEncoderSettings { - if (self.videoSessionConnected) { - @throw [NSException exceptionWithName:SDLErrorDomainStreamingMediaVideo reason:@"Cannot update video encoder settings while video session is connected." userInfo:nil]; - return; - } - - if (videoEncoderSettings) { - _videoEncoderSettings = videoEncoderSettings; - } else { - _videoEncoderSettings = self.defaultVideoEncoderSettings; - } +- (BOOL)sendAudioData:(NSData*)audioData { + return [self.lifecycleManager sendAudioData:audioData]; } -- (void)setDisplayCapabilties:(SDLDisplayCapabilities *_Nullable)displayCapabilties { - if (self.videoSessionConnected) { - @throw [NSException exceptionWithName:SDLErrorDomainStreamingMediaVideo reason:@"Cannot update video encoder settings while video session is connected." userInfo:nil]; - return; - } - _displayCapabilties = displayCapabilties; - [self sdl_updateScreenSizeFromDisplayCapabilities:displayCapabilties]; -} +#pragma mark - Getters -- (NSDictionary *)defaultVideoEncoderSettings { - static NSDictionary *defaultVideoEncoderSettings = nil; - if (defaultVideoEncoderSettings == nil) { - defaultVideoEncoderSettings = @{ - (__bridge NSString *)kVTCompressionPropertyKey_ProfileLevel: (__bridge NSString *)kVTProfileLevel_H264_Baseline_AutoLevel, - (__bridge NSString *)kVTCompressionPropertyKey_RealTime: @YES - }; - } - return defaultVideoEncoderSettings; +- (SDLTouchManager *)touchManager { + return self.lifecycleManager.touchManager; } -- (CVPixelBufferPoolRef _Nullable)pixelBufferPool { - return VTCompressionSessionGetPixelBufferPool(self.compressionSession); +- (nullable id)focusableItemManager { + return self.lifecycleManager.focusableItemManager; } -#pragma mark - SDLProtocolListener Methods - -#pragma mark Protocol Ack - -- (void)handleProtocolStartServiceACKMessage:(SDLProtocolMessage *)startServiceACK { - switch (startServiceACK.header.serviceType) { - case SDLServiceType_Audio: { - [self sdl_handleAudioStartServiceAck:startServiceACK]; - } break; - case SDLServiceType_Video: { - [self sdl_handleVideoStartServiceAck:startServiceACK]; - } break; - default: break; - } +- (BOOL)isStreamingSupported { + return self.lifecycleManager.isStreamingSupported; } -- (void)sdl_handleAudioStartServiceAck:(SDLProtocolMessage *)audioStartAck { - SDLControlFramePayloadAudioStartServiceAck *audioAckPayload = [[SDLControlFramePayloadAudioStartServiceAck alloc] initWithData:audioStartAck.payload]; - - if (audioAckPayload.mtu != SDLControlFrameInt64NotFound) { - [[SDLGlobals globals] setDynamicMTUSize:audioAckPayload.mtu forServiceType:SDLServiceType_Audio]; - } - - self.audioSessionConnected = YES; - self.audioSessionEncrypted = audioStartAck.header.encrypted; - - if (self.audioStartBlock == nil) { - return; - } - - self.audioStartBlock(YES, audioStartAck.header.encrypted, nil); - self.audioStartBlock = nil; +- (BOOL)isAudioConnected { + return self.lifecycleManager.isAudioConnected; } -- (void)sdl_handleVideoStartServiceAck:(SDLProtocolMessage *)videoStartAck { - SDLControlFramePayloadVideoStartServiceAck *videoAckPayload = [[SDLControlFramePayloadVideoStartServiceAck alloc] initWithData:videoStartAck.payload]; - - if (videoAckPayload.mtu != SDLControlFrameInt64NotFound) { - [[SDLGlobals globals] setDynamicMTUSize:videoAckPayload.mtu forServiceType:SDLServiceType_Video]; - } - - if (videoAckPayload.height != SDLControlFrameInt32NotFound && videoAckPayload.width != SDLControlFrameInt32NotFound) { - _screenSize = CGSizeMake(videoAckPayload.height, videoAckPayload.width); - } - - NSError *error = nil; - BOOL success = [self sdl_configureVideoEncoderWithError:&error]; - - if (!success) { - [self sdl_teardownCompressionSession]; - [self.protocol endServiceWithType:SDLServiceType_Video]; - - if (self.videoStartBlock == nil) { - return; - } - - self.videoStartBlock(NO, videoStartAck.header.encrypted, error); - self.videoStartBlock = nil; - - return; - } - - self.videoSessionConnected = YES; - self.videoSessionEncrypted = videoStartAck.header.encrypted; - - if (self.videoStartBlock == nil) { - return; - } - - self.videoStartBlock(YES, videoStartAck.header.encrypted, nil); - self.videoStartBlock = nil; +- (BOOL)isVideoConnected { + return self.lifecycleManager.isVideoConnected; } -- (void)handleProtocolStartSessionNACK:(SDLServiceType)serviceType { - switch (serviceType) { - case SDLServiceType_Audio: { - NSError *error = [NSError errorWithDomain:SDLErrorDomainStreamingMediaAudio code:SDLStreamingAudioErrorHeadUnitNACK userInfo:nil]; - - if (self.audioStartBlock == nil) { - return; - } - - self.audioStartBlock(NO, NO, error); - self.audioStartBlock = nil; - } break; - case SDLServiceType_Video: { - NSError *error = [NSError errorWithDomain:SDLErrorDomainStreamingMediaVideo code:SDLStreamingVideoErrorHeadUnitNACK userInfo:nil]; - - if (self.videoStartBlock == nil) { - return; - } - - self.videoStartBlock(NO, NO, error); - self.videoStartBlock = nil; - } break; - default: break; - } +- (BOOL)isAudioEncrypted { + return self.lifecycleManager.isAudioEncrypted; } -- (void)handleProtocolEndSessionACK:(SDLServiceType)serviceType { - switch (serviceType) { - case SDLServiceType_Audio: { - self.audioSessionConnected = NO; - } break; - case SDLServiceType_Video: { - self.videoSessionConnected = NO; - [self sdl_teardownCompressionSession]; - } break; - default: break; - } +- (BOOL)isVideoEncrypted { + return self.lifecycleManager.isVideoEncrypted; } - -- (void)handleProtocolEndSessionNACK:(SDLServiceType)serviceType { - // TODO (Joel F.)[2015-08-17]: This really, really shouldn't ever happen. Should we assert? Do nothing? We don't have any additional info on why this failed. + +- (BOOL)isVideoStreamingPaused { + return self.lifecycleManager.isVideoStreamingPaused; } - -#pragma mark - Video Encoding - -#pragma mark Lifecycle - -- (void)sdl_teardownCompressionSession { - if (self.compressionSession != NULL) { - VTCompressionSessionInvalidate(self.compressionSession); - CFRelease(self.compressionSession); - self.compressionSession = NULL; - } +- (CGSize)screenSize { + return self.lifecycleManager.screenSize; } - -#pragma mark Callbacks - -void sdl_videoEncoderOutputCallback(void *CM_NULLABLE outputCallbackRefCon, void *CM_NULLABLE sourceFrameRefCon, OSStatus status, VTEncodeInfoFlags infoFlags, CM_NULLABLE CMSampleBufferRef sampleBuffer) { - // If there was an error in the encoding, drop the frame - if (status != noErr) { - [SDLDebugTool logFormat:@"Error encoding video, err=%lld", (int64_t)status]; - return; - } - - if (outputCallbackRefCon == NULL || sourceFrameRefCon == NULL || sampleBuffer == NULL) { - return; - } - - SDLStreamingMediaManager *mediaManager = (__bridge SDLStreamingMediaManager *)sourceFrameRefCon; - NSData *elementaryStreamData = [mediaManager.class sdl_encodeElementaryStreamWithSampleBuffer:sampleBuffer]; - - if (mediaManager.videoSessionEncrypted) { - [mediaManager.protocol sendEncryptedRawData:elementaryStreamData onService:SDLServiceType_Video]; - } else { - [mediaManager.protocol sendRawData:elementaryStreamData withServiceType:SDLServiceType_Video]; - } +- (nullable SDLVideoStreamingFormat *)videoFormat { + return self.lifecycleManager.videoFormat; } - -#pragma mark Configuration - -- (BOOL)sdl_configureVideoEncoderWithError:(NSError *__autoreleasing *)error { - OSStatus status; - - // Create a compression session - status = VTCompressionSessionCreate(NULL, self.screenSize.width, self.screenSize.height, kCMVideoCodecType_H264, NULL, self.pixelBufferOptions, NULL, &sdl_videoEncoderOutputCallback, (__bridge void *)self, &_compressionSession); - - if (status != noErr) { - // TODO: Log the error - if (error != NULL) { - *error = [NSError errorWithDomain:SDLErrorDomainStreamingMediaVideo code:SDLStreamingVideoErrorConfigurationCompressionSessionCreationFailure userInfo:@{ @"OSStatus": @(status) }]; - } - - return NO; - } - - CFRelease(self.pixelBufferOptions); - _pixelBufferOptions = nil; - - // Validate that the video encoder properties are valid. - CFDictionaryRef supportedProperties; - status = VTSessionCopySupportedPropertyDictionary(self.compressionSession, &supportedProperties); - if (status != noErr) { - if (error != NULL) { - *error = [NSError errorWithDomain:SDLErrorDomainStreamingMediaVideo code:SDLStreamingVideoErrorConfigurationCompressionSessionSetPropertyFailure userInfo:@{ @"OSStatus": @(status) }]; - } - - return NO; - } - - for (NSString *key in self.videoEncoderSettings.allKeys) { - if (CFDictionaryContainsKey(supportedProperties, (__bridge CFStringRef)key) == false) { - if (error != NULL) { - NSString *description = [NSString stringWithFormat:@"\"%@\" is not a supported key.", key]; - *error = [NSError errorWithDomain:SDLErrorDomainStreamingMediaVideo code:SDLStreamingVideoErrorConfigurationCompressionSessionSetPropertyFailure userInfo:@{NSLocalizedDescriptionKey: description}]; - } - CFRelease(supportedProperties); - return NO; - } - } - CFRelease(supportedProperties); - - // Populate the video encoder settings from provided dictionary. - for (NSString *key in self.videoEncoderSettings.allKeys) { - id value = self.videoEncoderSettings[key]; - - status = VTSessionSetProperty(self.compressionSession, (__bridge CFStringRef)key, (__bridge CFTypeRef)value); - if (status != noErr) { - if (error != NULL) { - *error = [NSError errorWithDomain:SDLErrorDomainStreamingMediaVideo code:SDLStreamingVideoErrorConfigurationCompressionSessionSetPropertyFailure userInfo:@{ @"OSStatus": @(status) }]; - } - - return NO; - } - } - - return YES; +- (NSArray *)supportedFormats { + return self.lifecycleManager.supportedFormats; } -#pragma mark Elementary Stream Formatting - -+ (NSData *)sdl_encodeElementaryStreamWithSampleBuffer:(CMSampleBufferRef)sampleBuffer { - // Creating an elementaryStream: http://stackoverflow.com/questions/28396622/extracting-h264-from-cmblockbuffer - - NSMutableData *elementaryStream = [NSMutableData data]; - BOOL isIFrame = NO; - CFArrayRef attachmentsArray = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, 0); - - if (CFArrayGetCount(attachmentsArray)) { - CFBooleanRef notSync; - CFDictionaryRef dict = CFArrayGetValueAtIndex(attachmentsArray, 0); - BOOL keyExists = CFDictionaryGetValueIfPresent(dict, - kCMSampleAttachmentKey_NotSync, - (const void **)¬Sync); - - // Find out if the sample buffer contains an I-Frame (sync frame). If so we will write the SPS and PPS NAL units to the elementary stream. - isIFrame = !keyExists || !CFBooleanGetValue(notSync); - } - - // This is the start code that we will write to the elementary stream before every NAL unit - static const size_t startCodeLength = 4; - static const uint8_t startCode[] = {0x00, 0x00, 0x00, 0x01}; - - // Write the SPS and PPS NAL units to the elementary stream before every I-Frame - if (isIFrame) { - CMFormatDescriptionRef description = CMSampleBufferGetFormatDescription(sampleBuffer); - - // Find out how many parameter sets there are - size_t numberOfParameterSets; - CMVideoFormatDescriptionGetH264ParameterSetAtIndex(description, - 0, - NULL, - NULL, - &numberOfParameterSets, - NULL); - - // Write each parameter set to the elementary stream - for (int i = 0; i < numberOfParameterSets; i++) { - const uint8_t *parameterSetPointer; - size_t parameterSetLength; - CMVideoFormatDescriptionGetH264ParameterSetAtIndex(description, - i, - ¶meterSetPointer, - ¶meterSetLength, - NULL, - NULL); - - // Write the parameter set to the elementary stream - [elementaryStream appendBytes:startCode length:startCodeLength]; - [elementaryStream appendBytes:parameterSetPointer length:parameterSetLength]; - } - } - - // Get a pointer to the raw AVCC NAL unit data in the sample buffer - size_t blockBufferLength = 0; - char *bufferDataPointer = NULL; - CMBlockBufferRef blockBufferRef = CMSampleBufferGetDataBuffer(sampleBuffer); - - CMBlockBufferGetDataPointer(blockBufferRef, 0, NULL, &blockBufferLength, &bufferDataPointer); - - // Loop through all the NAL units in the block buffer and write them to the elementary stream with start codes instead of AVCC length headers - size_t bufferOffset = 0; - static const int AVCCHeaderLength = 4; - while (bufferOffset < blockBufferLength - AVCCHeaderLength) { - // Read the NAL unit length - uint32_t NALUnitLength = 0; - memcpy(&NALUnitLength, bufferDataPointer + bufferOffset, AVCCHeaderLength); - - // Convert the length value from Big-endian to Little-endian - NALUnitLength = CFSwapInt32BigToHost(NALUnitLength); - [elementaryStream appendBytes:startCode length:startCodeLength]; - - // Write the NAL unit without the AVCC length header to the elementary stream - [elementaryStream appendBytes:bufferDataPointer + bufferOffset + AVCCHeaderLength length:NALUnitLength]; - - // Move to the next NAL unit in the block buffer - bufferOffset += AVCCHeaderLength + NALUnitLength; - } - - - return elementaryStream; +- (CVPixelBufferPoolRef __nullable)pixelBufferPool { + return self.lifecycleManager.pixelBufferPool; } -#pragma mark - Private static singleton variables - -+ (dispatch_queue_t)sdl_streamingDataSerialQueue { - static dispatch_queue_t streamingDataQueue = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - streamingDataQueue = dispatch_queue_create("com.sdl.videoaudiostreaming.encoder", DISPATCH_QUEUE_SERIAL); - }); - - return streamingDataQueue; +- (SDLStreamingEncryptionFlag)requestedEncryptionType { + return self.lifecycleManager.requestedEncryptionType; } -- (CFDictionaryRef _Nullable)pixelBufferOptions { - if (_pixelBufferOptions == nil) { - CFMutableDictionaryRef pixelBufferOptions = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); - - OSType pixelFormatType = kCVPixelFormatType_32BGRA; - - CFNumberRef pixelFormatNumberRef = CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt32Type, &pixelFormatType); - - CFDictionarySetValue(pixelBufferOptions, kCVPixelBufferCGImageCompatibilityKey, kCFBooleanFalse); - CFDictionarySetValue(pixelBufferOptions, kCVPixelBufferCGBitmapContextCompatibilityKey, kCFBooleanFalse); - CFDictionarySetValue(pixelBufferOptions, kCVPixelBufferPixelFormatTypeKey, pixelFormatNumberRef); - - CFRelease(pixelFormatNumberRef); - - _pixelBufferOptions = pixelBufferOptions; - } - return _pixelBufferOptions; -} - -#pragma mark - Private Functions - -- (void)sdl_applicationDidEnterBackground:(NSNotification *)notification { - [self.touchManager cancelPendingTouches]; -} - -- (void)sdl_applicationDidResignActive:(NSNotification *)notification { - [self.touchManager cancelPendingTouches]; -} - -- (void)sdl_updateScreenSizeFromDisplayCapabilities:(SDLDisplayCapabilities *)displayCapabilities { - if (displayCapabilities.graphicSupported.boolValue == false) { - [SDLDebugTool logInfo:@"Graphics are not supported. We are assuming screen size is also unavailable"]; - return; - } - SDLImageResolution *resolution = displayCapabilities.screenParams.resolution; - if (resolution != nil) { - _screenSize = CGSizeMake(resolution.resolutionWidth.floatValue, - resolution.resolutionHeight.floatValue); - } else { - _screenSize = SDLDefaultScreenSize; - } - _pixelBufferOptions = nil; +#pragma mark - Setters +- (void)setRequestedEncryptionType:(SDLStreamingEncryptionFlag)requestedEncryptionType { + self.lifecycleManager.requestedEncryptionType = requestedEncryptionType; } @end diff --git a/SmartDeviceLink/SDLStreamingMediaManagerConstants.h b/SmartDeviceLink/SDLStreamingMediaManagerConstants.h new file mode 100644 index 000000000..2fc007d6f --- /dev/null +++ b/SmartDeviceLink/SDLStreamingMediaManagerConstants.h @@ -0,0 +1,27 @@ +// +// SDLStreamingMediaManagerConstants.h +// SmartDeviceLink-iOS +// +// Created by Muller, Alexander (A.) on 2/16/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, SDLStreamingEncryptionFlag) { + SDLStreamingEncryptionFlagNone, + SDLStreamingEncryptionFlagAuthenticateOnly, + SDLStreamingEncryptionFlagAuthenticateAndEncrypt +}; + +extern CGSize const SDLDefaultScreenSize; + +extern NSString *const SDLVideoStreamDidStartNotification; +extern NSString *const SDLVideoStreamDidStopNotification; + +extern NSString *const SDLAudioStreamDidStartNotification; +extern NSString *const SDLAudioStreamDidStopNotification; + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLStreamingMediaManagerConstants.m b/SmartDeviceLink/SDLStreamingMediaManagerConstants.m new file mode 100644 index 000000000..1c65284d3 --- /dev/null +++ b/SmartDeviceLink/SDLStreamingMediaManagerConstants.m @@ -0,0 +1,18 @@ +// +// SDLStreamingMediaManagerConstants.m +// SmartDeviceLink-iOS +// +// Created by Muller, Alexander (A.) on 2/16/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import +#import "SDLStreamingMediaManagerConstants.h" + +CGSize const SDLDefaultScreenSize = {0, 0}; + +NSString *const SDLVideoStreamDidStartNotification = @"com.sdl.videoStreamDidStart"; +NSString *const SDLVideoStreamDidStopNotification = @"com.sdl.videoStreamDidStop"; + +NSString *const SDLAudioStreamDidStartNotification = @"com.sdl.audioStreamDidStart"; +NSString *const SDLAudioStreamDidStopNotification = @"com.sdl.audioStreamDidStop"; diff --git a/SmartDeviceLink/SDLStreamingMediaManagerDataSource.h b/SmartDeviceLink/SDLStreamingMediaManagerDataSource.h new file mode 100644 index 000000000..7fdf13e38 --- /dev/null +++ b/SmartDeviceLink/SDLStreamingMediaManagerDataSource.h @@ -0,0 +1,40 @@ +// +// SDLStreamingMediaManagerDataSource.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 8/28/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +@class SDLImageResolution; +@class SDLVideoStreamingFormat; + +NS_ASSUME_NONNULL_BEGIN + +@protocol SDLStreamingMediaManagerDataSource + +/** + 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). + + @warning If you return a format that is not supported by the StreamingMediaManager, that format will be skipped. + + @note If the head unit does not support the `GetSystemCapabilities` RPC, this method will not be called and H264 RAW will be used. + + @param headUnitPreferredOrder The head unit's preferred order of format usage. The first item is the one that will be used unless this proxy does not support it, then the next item, etc. + @return Your preferred order of format usage. + */ +- (NSArray *)preferredVideoFormatOrderFromHeadUnitPreferredOrder:(NSArray *)headUnitPreferredOrder; + +/** + 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. + + @param headUnitPreferredResolution The resolution the head unit requested to use. + @return Your preferred order of image resolution usage. This system will not attempt more than 3 resolutions. It is strongly recommended that at least one resolution is the head unit's preferred resolution. + */ +- (NSArray *)resolutionFromHeadUnitPreferredResolution:(SDLImageResolution *)headUnitPreferredResolution; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSubscribeButton.h b/SmartDeviceLink/SDLSubscribeButton.h index 9baa7d052..11f25a8ea 100644 --- a/SmartDeviceLink/SDLSubscribeButton.h +++ b/SmartDeviceLink/SDLSubscribeButton.h @@ -1,13 +1,12 @@ // SDLSubscribeButton.h // - +#import "SDLButtonName.h" +#import "SDLNotificationConstants.h" #import "SDLRPCRequest.h" -#import "SDLRequestHandler.h" - -@class SDLButtonName; +NS_ASSUME_NONNULL_BEGIN /** * Establishes a subscription to button notifications for HMI buttons. Buttons @@ -59,14 +58,7 @@ * Since SmartDeviceLink 1.0
    * See SDLUnsubscribeButton */ -@interface SDLSubscribeButton : SDLRPCRequest - -/** - * Construct an SDLSubscribeButton - * - * @return An SDLSubscribeButton object - */ -- (instancetype)init; +@interface SDLSubscribeButton : SDLRPCRequest /** * Construct a SDLSubscribeButton with a handler callback when an event occurs. @@ -75,28 +67,23 @@ * * @return An SDLSubscribeButton object */ -- (instancetype)initWithHandler:(SDLRPCNotificationHandler)handler; +- (instancetype)initWithHandler:(nullable SDLRPCButtonNotificationHandler)handler; -/** - * @abstract Constructs a new SDLSubscribeButton object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -- (instancetype)initWithButtonName:(SDLButtonName *)buttonName handler:(SDLRPCNotificationHandler)handler; +- (instancetype)initWithButtonName:(SDLButtonName)buttonName handler:(nullable SDLRPCButtonNotificationHandler)handler; /** * A handler that will let you know when the button you subscribed to is selected. * * @warning This will only work if you use SDLManager. */ -@property (copy, nonatomic) SDLRPCNotificationHandler handler; +@property (copy, nonatomic) SDLRPCButtonNotificationHandler handler; /** * @abstract The name of the button to subscribe to * @discussion An enum value, see SDLButtonName */ -@property (strong) SDLButtonName *buttonName; +@property (strong, nonatomic) SDLButtonName buttonName; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSubscribeButton.m b/SmartDeviceLink/SDLSubscribeButton.m index 969ee9a75..1a94caa37 100644 --- a/SmartDeviceLink/SDLSubscribeButton.m +++ b/SmartDeviceLink/SDLSubscribeButton.m @@ -4,19 +4,20 @@ #import "SDLSubscribeButton.h" -#import "SDLButtonName.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLSubscribeButton - (instancetype)init { - if (self = [super initWithName:NAMES_SubscribeButton]) { + if (self = [super initWithName:SDLNameSubscribeButton]) { } return self; } -- (instancetype)initWithHandler:(SDLRPCNotificationHandler)handler { +- (instancetype)initWithHandler:(nullable SDLRPCButtonNotificationHandler)handler { self = [self init]; if (!self) { return nil; @@ -27,13 +28,7 @@ - (instancetype)initWithHandler:(SDLRPCNotificationHandler)handler { return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (instancetype)initWithButtonName:(SDLButtonName *)buttonName handler:(SDLRPCNotificationHandler)handler { +- (instancetype)initWithButtonName:(SDLButtonName)buttonName handler:(nullable SDLRPCButtonNotificationHandler)handler { self = [self init]; if (!self) { return nil; @@ -45,21 +40,21 @@ - (instancetype)initWithButtonName:(SDLButtonName *)buttonName handler:(SDLRPCNo return self; } -- (void)setButtonName:(SDLButtonName *)buttonName { - if (buttonName != nil) { - [parameters setObject:buttonName forKey:NAMES_buttonName]; - } else { - [parameters removeObjectForKey:NAMES_buttonName]; - } +- (void)setButtonName:(SDLButtonName)buttonName { + [parameters sdl_setObject:buttonName forName:SDLNameButtonName]; } -- (SDLButtonName *)buttonName { - NSObject *obj = [parameters objectForKey:NAMES_buttonName]; - if (obj == nil || [obj isKindOfClass:SDLButtonName.class]) { - return (SDLButtonName *)obj; - } else { - return [SDLButtonName valueOf:(NSString *)obj]; - } +- (SDLButtonName)buttonName { + return [parameters sdl_objectForName:SDLNameButtonName]; +} + +-(id)copyWithZone:(nullable NSZone *)zone { + SDLSubscribeButton *newButton = [super copyWithZone:zone]; + newButton->_handler = self.handler; + + return newButton; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSubscribeButtonResponse.h b/SmartDeviceLink/SDLSubscribeButtonResponse.h index b38eb5a27..74a6fad0b 100644 --- a/SmartDeviceLink/SDLSubscribeButtonResponse.h +++ b/SmartDeviceLink/SDLSubscribeButtonResponse.h @@ -9,18 +9,11 @@ * * Since SmartDeviceLink 1.0 */ -@interface SDLSubscribeButtonResponse : SDLRPCResponse { -} -/** - * @abstract Constructs a new SDLSubscribeButtonResponse object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLSubscribeButtonResponse object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLSubscribeButtonResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSubscribeButtonResponse.m b/SmartDeviceLink/SDLSubscribeButtonResponse.m index a70d58ede..bf2b860f6 100644 --- a/SmartDeviceLink/SDLSubscribeButtonResponse.m +++ b/SmartDeviceLink/SDLSubscribeButtonResponse.m @@ -4,20 +4,19 @@ #import "SDLSubscribeButtonResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLSubscribeButtonResponse - (instancetype)init { - if (self = [super initWithName:NAMES_SubscribeButton]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameSubscribeButton]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSubscribeVehicleData.h b/SmartDeviceLink/SDLSubscribeVehicleData.h index e0e5a799e..4e0411d43 100644 --- a/SmartDeviceLink/SDLSubscribeVehicleData.h +++ b/SmartDeviceLink/SDLSubscribeVehicleData.h @@ -19,123 +19,115 @@ * Since SmartDeviceLink 2.0
    * See SDLUnsubscribeVehicleData SDLGetVehicleData */ -@interface SDLSubscribeVehicleData : SDLRPCRequest { -} -/** - * @abstract Constructs a new SDLSubscribeVehicleData object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a new SDLSubscribeVehicleData object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLSubscribeVehicleData : SDLRPCRequest - (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 wiperStatus:(BOOL)wiperStatus; /** * @abstract A boolean value. If true, subscribes Gps data */ -@property (strong) NSNumber *gps; +@property (strong, nonatomic, nullable) NSNumber *gps; /** * @abstract A boolean value. If true, subscribes speed data */ -@property (strong) NSNumber *speed; +@property (strong, nonatomic, nullable) NSNumber *speed; /** * @abstract A boolean value. If true, subscribes rpm data */ -@property (strong) NSNumber *rpm; +@property (strong, nonatomic, nullable) NSNumber *rpm; /** * @abstract A boolean value. If true, subscribes FuelLevel data */ -@property (strong) NSNumber *fuelLevel; +@property (strong, nonatomic, nullable) NSNumber *fuelLevel; /** * @abstract A boolean value. If true, subscribes fuelLevel_State data */ -@property (strong) NSNumber *fuelLevel_State; +@property (strong, nonatomic, nullable) NSNumber *fuelLevel_State; /** * @abstract A boolean value. If true, subscribes instantFuelConsumption data */ -@property (strong) NSNumber *instantFuelConsumption; +@property (strong, nonatomic, nullable) NSNumber *instantFuelConsumption; /** * @abstract A boolean value. If true, subscribes externalTemperature data */ -@property (strong) NSNumber *externalTemperature; +@property (strong, nonatomic, nullable) NSNumber *externalTemperature; /** * @abstract A boolean value. If true, subscribes Currently selected gear data */ -@property (strong) NSNumber *prndl; +@property (strong, nonatomic, nullable) NSNumber *prndl; /** * @abstract A boolean value. If true, subscribes tire pressure status data */ -@property (strong) NSNumber *tirePressure; +@property (strong, nonatomic, nullable) NSNumber *tirePressure; /** * @abstract A boolean value. If true, subscribes odometer data */ -@property (strong) NSNumber *odometer; +@property (strong, nonatomic, nullable) NSNumber *odometer; /** * @abstract A boolean value. If true, subscribes belt Status data */ -@property (strong) NSNumber *beltStatus; +@property (strong, nonatomic, nullable) NSNumber *beltStatus; /** * @abstract A boolean value. If true, subscribes body Information data */ -@property (strong) NSNumber *bodyInformation; +@property (strong, nonatomic, nullable) NSNumber *bodyInformation; /** * @abstract A boolean value. If true, subscribes device Status data */ -@property (strong) NSNumber *deviceStatus; +@property (strong, nonatomic, nullable) NSNumber *deviceStatus; /** * @abstract A boolean value. If true, subscribes driver Braking data */ -@property (strong) NSNumber *driverBraking; +@property (strong, nonatomic, nullable) NSNumber *driverBraking; /** * @abstract A boolean value. If true, subscribes wiper Status data */ -@property (strong) NSNumber *wiperStatus; +@property (strong, nonatomic, nullable) NSNumber *wiperStatus; /** * @abstract A boolean value. If true, subscribes Head Lamp Status data */ -@property (strong) NSNumber *headLampStatus; +@property (strong, nonatomic, nullable) NSNumber *headLampStatus; /** * @abstract A boolean value. If true, subscribes Engine Torque data */ -@property (strong) NSNumber *engineTorque; +@property (strong, nonatomic, nullable) NSNumber *engineTorque; /** * @abstract A boolean value. If true, means the accPedalPosition data has been * subscribed. */ -@property (strong) NSNumber *accPedalPosition; +@property (strong, nonatomic, nullable) NSNumber *accPedalPosition; /** * @abstract A boolean value. If true, means the steeringWheelAngle data has been * subscribed. */ -@property (strong) NSNumber *steeringWheelAngle; -@property (strong) NSNumber *eCallInfo; -@property (strong) NSNumber *airbagStatus; -@property (strong) NSNumber *emergencyEvent; -@property (strong) NSNumber *clusterModeStatus; -@property (strong) NSNumber *myKey; +@property (strong, nonatomic, nullable) NSNumber *steeringWheelAngle; +@property (strong, nonatomic, nullable) NSNumber *eCallInfo; +@property (strong, nonatomic, nullable) NSNumber *airbagStatus; +@property (strong, nonatomic, nullable) NSNumber *emergencyEvent; +@property (strong, nonatomic, nullable) NSNumber *clusterModeStatus; +@property (strong, nonatomic, nullable) NSNumber *myKey; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSubscribeVehicleData.m b/SmartDeviceLink/SDLSubscribeVehicleData.m index 2fb50e364..d8973045e 100644 --- a/SmartDeviceLink/SDLSubscribeVehicleData.m +++ b/SmartDeviceLink/SDLSubscribeVehicleData.m @@ -4,18 +4,15 @@ #import "SDLSubscribeVehicleData.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLSubscribeVehicleData - (instancetype)init { - if (self = [super initWithName:NAMES_SubscribeVehicleData]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameSubscribeVehicleData]) { } return self; } @@ -54,292 +51,198 @@ - (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPositio return self; } -- (void)setGps:(NSNumber *)gps { - if (gps != nil) { - [parameters setObject:gps forKey:NAMES_gps]; - } else { - [parameters removeObjectForKey:NAMES_gps]; - } +- (void)setGps:(nullable NSNumber *)gps { + [parameters sdl_setObject:gps forName:SDLNameGPS]; } -- (NSNumber *)gps { - return [parameters objectForKey:NAMES_gps]; +- (nullable NSNumber *)gps { + return [parameters sdl_objectForName:SDLNameGPS]; } -- (void)setSpeed:(NSNumber *)speed { - if (speed != nil) { - [parameters setObject:speed forKey:NAMES_speed]; - } else { - [parameters removeObjectForKey:NAMES_speed]; - } +- (void)setSpeed:(nullable NSNumber *)speed { + [parameters sdl_setObject:speed forName:SDLNameSpeed]; } -- (NSNumber *)speed { - return [parameters objectForKey:NAMES_speed]; +- (nullable NSNumber *)speed { + return [parameters sdl_objectForName:SDLNameSpeed]; } -- (void)setRpm:(NSNumber *)rpm { - if (rpm != nil) { - [parameters setObject:rpm forKey:NAMES_rpm]; - } else { - [parameters removeObjectForKey:NAMES_rpm]; - } +- (void)setRpm:(nullable NSNumber *)rpm { + [parameters sdl_setObject:rpm forName:SDLNameRPM]; } -- (NSNumber *)rpm { - return [parameters objectForKey:NAMES_rpm]; +- (nullable NSNumber *)rpm { + return [parameters sdl_objectForName:SDLNameRPM]; } -- (void)setFuelLevel:(NSNumber *)fuelLevel { - if (fuelLevel != nil) { - [parameters setObject:fuelLevel forKey:NAMES_fuelLevel]; - } else { - [parameters removeObjectForKey:NAMES_fuelLevel]; - } +- (void)setFuelLevel:(nullable NSNumber *)fuelLevel { + [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; } -- (NSNumber *)fuelLevel { - return [parameters objectForKey:NAMES_fuelLevel]; +- (nullable NSNumber *)fuelLevel { + return [parameters sdl_objectForName:SDLNameFuelLevel]; } -- (void)setFuelLevel_State:(NSNumber *)fuelLevel_State { - if (fuelLevel_State != nil) { - [parameters setObject:fuelLevel_State forKey:NAMES_fuelLevel_State]; - } else { - [parameters removeObjectForKey:NAMES_fuelLevel_State]; - } +- (void)setFuelLevel_State:(nullable NSNumber *)fuelLevel_State { + [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; } -- (NSNumber *)fuelLevel_State { - return [parameters objectForKey:NAMES_fuelLevel_State]; +- (nullable NSNumber *)fuelLevel_State { + return [parameters sdl_objectForName:SDLNameFuelLevelState]; } -- (void)setInstantFuelConsumption:(NSNumber *)instantFuelConsumption { - if (instantFuelConsumption != nil) { - [parameters setObject:instantFuelConsumption forKey:NAMES_instantFuelConsumption]; - } else { - [parameters removeObjectForKey:NAMES_instantFuelConsumption]; - } +- (void)setInstantFuelConsumption:(nullable NSNumber *)instantFuelConsumption { + [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; } -- (NSNumber *)instantFuelConsumption { - return [parameters objectForKey:NAMES_instantFuelConsumption]; +- (nullable NSNumber *)instantFuelConsumption { + return [parameters sdl_objectForName:SDLNameInstantFuelConsumption]; } -- (void)setExternalTemperature:(NSNumber *)externalTemperature { - if (externalTemperature != nil) { - [parameters setObject:externalTemperature forKey:NAMES_externalTemperature]; - } else { - [parameters removeObjectForKey:NAMES_externalTemperature]; - } +- (void)setExternalTemperature:(nullable NSNumber *)externalTemperature { + [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; } -- (NSNumber *)externalTemperature { - return [parameters objectForKey:NAMES_externalTemperature]; +- (nullable NSNumber *)externalTemperature { + return [parameters sdl_objectForName:SDLNameExternalTemperature]; } -- (void)setPrndl:(NSNumber *)prndl { - if (prndl != nil) { - [parameters setObject:prndl forKey:NAMES_prndl]; - } else { - [parameters removeObjectForKey:NAMES_prndl]; - } +- (void)setPrndl:(nullable NSNumber *)prndl { + [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; } -- (NSNumber *)prndl { - return [parameters objectForKey:NAMES_prndl]; +- (nullable NSNumber *)prndl { + return [parameters sdl_objectForName:SDLNamePRNDL]; } -- (void)setTirePressure:(NSNumber *)tirePressure { - if (tirePressure != nil) { - [parameters setObject:tirePressure forKey:NAMES_tirePressure]; - } else { - [parameters removeObjectForKey:NAMES_tirePressure]; - } +- (void)setTirePressure:(nullable NSNumber *)tirePressure { + [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; } -- (NSNumber *)tirePressure { - return [parameters objectForKey:NAMES_tirePressure]; +- (nullable NSNumber *)tirePressure { + return [parameters sdl_objectForName:SDLNameTirePressure]; } -- (void)setOdometer:(NSNumber *)odometer { - if (odometer != nil) { - [parameters setObject:odometer forKey:NAMES_odometer]; - } else { - [parameters removeObjectForKey:NAMES_odometer]; - } +- (void)setOdometer:(nullable NSNumber *)odometer { + [parameters sdl_setObject:odometer forName:SDLNameOdometer]; } -- (NSNumber *)odometer { - return [parameters objectForKey:NAMES_odometer]; +- (nullable NSNumber *)odometer { + return [parameters sdl_objectForName:SDLNameOdometer]; } -- (void)setBeltStatus:(NSNumber *)beltStatus { - if (beltStatus != nil) { - [parameters setObject:beltStatus forKey:NAMES_beltStatus]; - } else { - [parameters removeObjectForKey:NAMES_beltStatus]; - } +- (void)setBeltStatus:(nullable NSNumber *)beltStatus { + [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; } -- (NSNumber *)beltStatus { - return [parameters objectForKey:NAMES_beltStatus]; +- (nullable NSNumber *)beltStatus { + return [parameters sdl_objectForName:SDLNameBeltStatus]; } -- (void)setBodyInformation:(NSNumber *)bodyInformation { - if (bodyInformation != nil) { - [parameters setObject:bodyInformation forKey:NAMES_bodyInformation]; - } else { - [parameters removeObjectForKey:NAMES_bodyInformation]; - } +- (void)setBodyInformation:(nullable NSNumber *)bodyInformation { + [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; } -- (NSNumber *)bodyInformation { - return [parameters objectForKey:NAMES_bodyInformation]; +- (nullable NSNumber *)bodyInformation { + return [parameters sdl_objectForName:SDLNameBodyInformation]; } -- (void)setDeviceStatus:(NSNumber *)deviceStatus { - if (deviceStatus != nil) { - [parameters setObject:deviceStatus forKey:NAMES_deviceStatus]; - } else { - [parameters removeObjectForKey:NAMES_deviceStatus]; - } +- (void)setDeviceStatus:(nullable NSNumber *)deviceStatus { + [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; } -- (NSNumber *)deviceStatus { - return [parameters objectForKey:NAMES_deviceStatus]; +- (nullable NSNumber *)deviceStatus { + return [parameters sdl_objectForName:SDLNameDeviceStatus]; } -- (void)setDriverBraking:(NSNumber *)driverBraking { - if (driverBraking != nil) { - [parameters setObject:driverBraking forKey:NAMES_driverBraking]; - } else { - [parameters removeObjectForKey:NAMES_driverBraking]; - } +- (void)setDriverBraking:(nullable NSNumber *)driverBraking { + [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; } -- (NSNumber *)driverBraking { - return [parameters objectForKey:NAMES_driverBraking]; +- (nullable NSNumber *)driverBraking { + return [parameters sdl_objectForName:SDLNameDriverBraking]; } -- (void)setWiperStatus:(NSNumber *)wiperStatus { - if (wiperStatus != nil) { - [parameters setObject:wiperStatus forKey:NAMES_wiperStatus]; - } else { - [parameters removeObjectForKey:NAMES_wiperStatus]; - } +- (void)setWiperStatus:(nullable NSNumber *)wiperStatus { + [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; } -- (NSNumber *)wiperStatus { - return [parameters objectForKey:NAMES_wiperStatus]; +- (nullable NSNumber *)wiperStatus { + return [parameters sdl_objectForName:SDLNameWiperStatus]; } -- (void)setHeadLampStatus:(NSNumber *)headLampStatus { - if (headLampStatus != nil) { - [parameters setObject:headLampStatus forKey:NAMES_headLampStatus]; - } else { - [parameters removeObjectForKey:NAMES_headLampStatus]; - } +- (void)setHeadLampStatus:(nullable NSNumber *)headLampStatus { + [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; } -- (NSNumber *)headLampStatus { - return [parameters objectForKey:NAMES_headLampStatus]; +- (nullable NSNumber *)headLampStatus { + return [parameters sdl_objectForName:SDLNameHeadLampStatus]; } -- (void)setEngineTorque:(NSNumber *)engineTorque { - if (engineTorque != nil) { - [parameters setObject:engineTorque forKey:NAMES_engineTorque]; - } else { - [parameters removeObjectForKey:NAMES_engineTorque]; - } +- (void)setEngineTorque:(nullable NSNumber *)engineTorque { + [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; } -- (NSNumber *)engineTorque { - return [parameters objectForKey:NAMES_engineTorque]; +- (nullable NSNumber *)engineTorque { + return [parameters sdl_objectForName:SDLNameEngineTorque]; } -- (void)setAccPedalPosition:(NSNumber *)accPedalPosition { - if (accPedalPosition != nil) { - [parameters setObject:accPedalPosition forKey:NAMES_accPedalPosition]; - } else { - [parameters removeObjectForKey:NAMES_accPedalPosition]; - } +- (void)setAccPedalPosition:(nullable NSNumber *)accPedalPosition { + [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; } -- (NSNumber *)accPedalPosition { - return [parameters objectForKey:NAMES_accPedalPosition]; +- (nullable NSNumber *)accPedalPosition { + return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition]; } -- (void)setSteeringWheelAngle:(NSNumber *)steeringWheelAngle { - if (steeringWheelAngle != nil) { - [parameters setObject:steeringWheelAngle forKey:NAMES_steeringWheelAngle]; - } else { - [parameters removeObjectForKey:NAMES_steeringWheelAngle]; - } +- (void)setSteeringWheelAngle:(nullable NSNumber *)steeringWheelAngle { + [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; } -- (NSNumber *)steeringWheelAngle { - return [parameters objectForKey:NAMES_steeringWheelAngle]; +- (nullable NSNumber *)steeringWheelAngle { + return [parameters sdl_objectForName:SDLNameSteeringWheelAngle]; } -- (void)setECallInfo:(NSNumber *)eCallInfo { - if (eCallInfo != nil) { - [parameters setObject:eCallInfo forKey:NAMES_eCallInfo]; - } else { - [parameters removeObjectForKey:NAMES_eCallInfo]; - } +- (void)setECallInfo:(nullable NSNumber *)eCallInfo { + [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; } -- (NSNumber *)eCallInfo { - return [parameters objectForKey:NAMES_eCallInfo]; +- (nullable NSNumber *)eCallInfo { + return [parameters sdl_objectForName:SDLNameECallInfo]; } -- (void)setAirbagStatus:(NSNumber *)airbagStatus { - if (airbagStatus != nil) { - [parameters setObject:airbagStatus forKey:NAMES_airbagStatus]; - } else { - [parameters removeObjectForKey:NAMES_airbagStatus]; - } +- (void)setAirbagStatus:(nullable NSNumber *)airbagStatus { + [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; } -- (NSNumber *)airbagStatus { - return [parameters objectForKey:NAMES_airbagStatus]; +- (nullable NSNumber *)airbagStatus { + return [parameters sdl_objectForName:SDLNameAirbagStatus]; } -- (void)setEmergencyEvent:(NSNumber *)emergencyEvent { - if (emergencyEvent != nil) { - [parameters setObject:emergencyEvent forKey:NAMES_emergencyEvent]; - } else { - [parameters removeObjectForKey:NAMES_emergencyEvent]; - } +- (void)setEmergencyEvent:(nullable NSNumber *)emergencyEvent { + [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; } -- (NSNumber *)emergencyEvent { - return [parameters objectForKey:NAMES_emergencyEvent]; +- (nullable NSNumber *)emergencyEvent { + return [parameters sdl_objectForName:SDLNameEmergencyEvent]; } -- (void)setClusterModeStatus:(NSNumber *)clusterModeStatus { - if (clusterModeStatus != nil) { - [parameters setObject:clusterModeStatus forKey:NAMES_clusterModeStatus]; - } else { - [parameters removeObjectForKey:NAMES_clusterModeStatus]; - } +- (void)setClusterModeStatus:(nullable NSNumber *)clusterModeStatus { + [parameters sdl_setObject:clusterModeStatus forName:SDLNameClusterModeStatus]; } -- (NSNumber *)clusterModeStatus { - return [parameters objectForKey:NAMES_clusterModeStatus]; +- (nullable NSNumber *)clusterModeStatus { + return [parameters sdl_objectForName:SDLNameClusterModeStatus]; } -- (void)setMyKey:(NSNumber *)myKey { - if (myKey != nil) { - [parameters setObject:myKey forKey:NAMES_myKey]; - } else { - [parameters removeObjectForKey:NAMES_myKey]; - } +- (void)setMyKey:(nullable NSNumber *)myKey { + [parameters sdl_setObject:myKey forName:SDLNameMyKey]; } -- (NSNumber *)myKey { - return [parameters objectForKey:NAMES_myKey]; +- (nullable NSNumber *)myKey { + return [parameters sdl_objectForName:SDLNameMyKey]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h b/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h index 0b4f15ca7..b32c0ca7a 100644 --- a/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h +++ b/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h @@ -11,120 +11,111 @@ * * Since SmartDeviceLink 2.0 */ -@interface SDLSubscribeVehicleDataResponse : SDLRPCResponse { -} -/** - * @abstract Constructs a new SDLSubscribeVehicleDataResponse object - */ -- (instancetype)init; - -/** - * @abstract Constructs a new SDLSubscribeVehicleDataResponse object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN +@interface SDLSubscribeVehicleDataResponse : SDLRPCResponse /** * @abstract A SDLVehicleDataResult* value. See GPSData. */ -@property (strong) SDLVehicleDataResult *gps; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *gps; /** * @abstract A SDLVehicleDataResult* value. The vehicle speed in kilometers per hour. */ -@property (strong) SDLVehicleDataResult *speed; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *speed; /** * @abstract A SDLVehicleDataResult* value. The number of revolutions per minute of the engine. */ -@property (strong) SDLVehicleDataResult *rpm; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *rpm; /** * @abstract A SDLVehicleDataResult* value. The fuel level in the tank (percentage) */ -@property (strong) SDLVehicleDataResult *fuelLevel; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *fuelLevel; /** * @abstract A SDLVehicleDataResult* value. The fuel level state. */ -@property (strong) SDLVehicleDataResult *fuelLevel_State; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *fuelLevel_State; /** * @abstract A SDLVehicleDataResult* value. The instantaneous fuel consumption in microlitres. */ -@property (strong) SDLVehicleDataResult *instantFuelConsumption; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *instantFuelConsumption; /** * @abstract A SDLVehicleDataResult* value. The external temperature in degrees celsius. */ -@property (strong) SDLVehicleDataResult *externalTemperature; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *externalTemperature; /** * @abstract A SDLVehicleDataResult* value. See PRNDL. */ -@property (strong) SDLVehicleDataResult *prndl; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *prndl; /** * @abstract A SDLVehicleDataResult* value. See TireStatus. */ -@property (strong) SDLVehicleDataResult *tirePressure; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *tirePressure; /** * @abstract A SDLVehicleDataResult* value. Odometer in km. */ -@property (strong) SDLVehicleDataResult *odometer; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *odometer; /** * @abstract A SDLVehicleDataResult* value. The status of the seat belts. */ -@property (strong) SDLVehicleDataResult *beltStatus; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *beltStatus; /** * @abstract A SDLVehicleDataResult* value. The body information including power modes. */ -@property (strong) SDLVehicleDataResult *bodyInformation; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *bodyInformation; /** * @abstract A SDLVehicleDataResult* value. The device status including signal and battery strength. */ -@property (strong) SDLVehicleDataResult *deviceStatus; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *deviceStatus; /** * @abstract A SDLVehicleDataResult* value. The status of the brake pedal. */ -@property (strong) SDLVehicleDataResult *driverBraking; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *driverBraking; /** * @abstract A SDLVehicleDataResult* value. The status of the wipers. */ -@property (strong) SDLVehicleDataResult *wiperStatus; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *wiperStatus; /** * @abstract A SDLVehicleDataResult* value. Status of the head lamps. */ -@property (strong) SDLVehicleDataResult *headLampStatus; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *headLampStatus; /** * @abstract A SDLVehicleDataResult* value. Torque value for engine (in Nm) on non-diesel variants. */ -@property (strong) SDLVehicleDataResult *engineTorque; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *engineTorque; /** * @abstract A SDLVehicleDataResult* value. Accelerator pedal position (percentage depressed) */ -@property (strong) SDLVehicleDataResult *accPedalPosition; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *accPedalPosition; /** * @abstract A SDLVehicleDataResult* value. Current angle of the steering wheel (in deg) */ -@property (strong) SDLVehicleDataResult *steeringWheelAngle; -@property (strong) SDLVehicleDataResult *eCallInfo; -@property (strong) SDLVehicleDataResult *airbagStatus; -@property (strong) SDLVehicleDataResult *emergencyEvent; -@property (strong) SDLVehicleDataResult *clusterModes; -@property (strong) SDLVehicleDataResult *myKey; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *steeringWheelAngle; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *eCallInfo; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *airbagStatus; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *emergencyEvent; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *clusterModes; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *myKey; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m b/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m index 5afa5f1be..283002a3d 100644 --- a/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m +++ b/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m @@ -4,430 +4,212 @@ #import "SDLSubscribeVehicleDataResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" #import "SDLVehicleDataResult.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLSubscribeVehicleDataResponse - (instancetype)init { - if (self = [super initWithName:NAMES_SubscribeVehicleData]) { + if (self = [super initWithName:SDLNameSubscribeVehicleData]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (void)setGps:(nullable SDLVehicleDataResult *)gps { + [parameters sdl_setObject:gps forName:SDLNameGPS]; } -- (void)setGps:(SDLVehicleDataResult *)gps { - if (gps != nil) { - [parameters setObject:gps forKey:NAMES_gps]; - } else { - [parameters removeObjectForKey:NAMES_gps]; - } +- (nullable SDLVehicleDataResult *)gps { + return [parameters sdl_objectForName:SDLNameGPS ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)gps { - NSObject *obj = [parameters objectForKey:NAMES_gps]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setSpeed:(nullable SDLVehicleDataResult *)speed { + [parameters sdl_setObject:speed forName:SDLNameSpeed]; } -- (void)setSpeed:(SDLVehicleDataResult *)speed { - if (speed != nil) { - [parameters setObject:speed forKey:NAMES_speed]; - } else { - [parameters removeObjectForKey:NAMES_speed]; - } +- (nullable SDLVehicleDataResult *)speed { + return [parameters sdl_objectForName:SDLNameSpeed ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)speed { - NSObject *obj = [parameters objectForKey:NAMES_speed]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setRpm:(nullable SDLVehicleDataResult *)rpm { + [parameters sdl_setObject:rpm forName:SDLNameRPM]; } -- (void)setRpm:(SDLVehicleDataResult *)rpm { - if (rpm != nil) { - [parameters setObject:rpm forKey:NAMES_rpm]; - } else { - [parameters removeObjectForKey:NAMES_rpm]; - } +- (nullable SDLVehicleDataResult *)rpm { + return [parameters sdl_objectForName:SDLNameRPM ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)rpm { - NSObject *obj = [parameters objectForKey:NAMES_rpm]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setFuelLevel:(nullable SDLVehicleDataResult *)fuelLevel { + [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; } -- (void)setFuelLevel:(SDLVehicleDataResult *)fuelLevel { - if (fuelLevel != nil) { - [parameters setObject:fuelLevel forKey:NAMES_fuelLevel]; - } else { - [parameters removeObjectForKey:NAMES_fuelLevel]; - } +- (nullable SDLVehicleDataResult *)fuelLevel { + return [parameters sdl_objectForName:SDLNameFuelLevel ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)fuelLevel { - NSObject *obj = [parameters objectForKey:NAMES_fuelLevel]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setFuelLevel_State:(nullable SDLVehicleDataResult *)fuelLevel_State { + [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; } -- (void)setFuelLevel_State:(SDLVehicleDataResult *)fuelLevel_State { - if (fuelLevel_State != nil) { - [parameters setObject:fuelLevel_State forKey:NAMES_fuelLevel_State]; - } else { - [parameters removeObjectForKey:NAMES_fuelLevel_State]; - } +- (nullable SDLVehicleDataResult *)fuelLevel_State { + return [parameters sdl_objectForName:SDLNameFuelLevelState ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)fuelLevel_State { - NSObject *obj = [parameters objectForKey:NAMES_fuelLevel_State]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setInstantFuelConsumption:(nullable SDLVehicleDataResult *)instantFuelConsumption { + [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; } -- (void)setInstantFuelConsumption:(SDLVehicleDataResult *)instantFuelConsumption { - if (instantFuelConsumption != nil) { - [parameters setObject:instantFuelConsumption forKey:NAMES_instantFuelConsumption]; - } else { - [parameters removeObjectForKey:NAMES_instantFuelConsumption]; - } +- (nullable SDLVehicleDataResult *)instantFuelConsumption { + return [parameters sdl_objectForName:SDLNameInstantFuelConsumption ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)instantFuelConsumption { - NSObject *obj = [parameters objectForKey:NAMES_instantFuelConsumption]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setExternalTemperature:(nullable SDLVehicleDataResult *)externalTemperature { + [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; } -- (void)setExternalTemperature:(SDLVehicleDataResult *)externalTemperature { - if (externalTemperature != nil) { - [parameters setObject:externalTemperature forKey:NAMES_externalTemperature]; - } else { - [parameters removeObjectForKey:NAMES_externalTemperature]; - } +- (nullable SDLVehicleDataResult *)externalTemperature { + return [parameters sdl_objectForName:SDLNameExternalTemperature ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)externalTemperature { - NSObject *obj = [parameters objectForKey:NAMES_externalTemperature]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setPrndl:(nullable SDLVehicleDataResult *)prndl { + [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; } -- (void)setPrndl:(SDLVehicleDataResult *)prndl { - if (prndl != nil) { - [parameters setObject:prndl forKey:NAMES_prndl]; - } else { - [parameters removeObjectForKey:NAMES_prndl]; - } +- (nullable SDLVehicleDataResult *)prndl { + return [parameters sdl_objectForName:SDLNamePRNDL ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)prndl { - NSObject *obj = [parameters objectForKey:NAMES_prndl]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setTirePressure:(nullable SDLVehicleDataResult *)tirePressure { + [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; } -- (void)setTirePressure:(SDLVehicleDataResult *)tirePressure { - if (tirePressure != nil) { - [parameters setObject:tirePressure forKey:NAMES_tirePressure]; - } else { - [parameters removeObjectForKey:NAMES_tirePressure]; - } +- (nullable SDLVehicleDataResult *)tirePressure { + return [parameters sdl_objectForName:SDLNameTirePressure ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)tirePressure { - NSObject *obj = [parameters objectForKey:NAMES_tirePressure]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setOdometer:(nullable SDLVehicleDataResult *)odometer { + [parameters sdl_setObject:odometer forName:SDLNameOdometer]; } -- (void)setOdometer:(SDLVehicleDataResult *)odometer { - if (odometer != nil) { - [parameters setObject:odometer forKey:NAMES_odometer]; - } else { - [parameters removeObjectForKey:NAMES_odometer]; - } +- (nullable SDLVehicleDataResult *)odometer { + return [parameters sdl_objectForName:SDLNameOdometer ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)odometer { - NSObject *obj = [parameters objectForKey:NAMES_odometer]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setBeltStatus:(nullable SDLVehicleDataResult *)beltStatus { + [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; } -- (void)setBeltStatus:(SDLVehicleDataResult *)beltStatus { - if (beltStatus != nil) { - [parameters setObject:beltStatus forKey:NAMES_beltStatus]; - } else { - [parameters removeObjectForKey:NAMES_beltStatus]; - } +- (nullable SDLVehicleDataResult *)beltStatus { + return [parameters sdl_objectForName:SDLNameBeltStatus ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)beltStatus { - NSObject *obj = [parameters objectForKey:NAMES_beltStatus]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setBodyInformation:(nullable SDLVehicleDataResult *)bodyInformation { + [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; } -- (void)setBodyInformation:(SDLVehicleDataResult *)bodyInformation { - if (bodyInformation != nil) { - [parameters setObject:bodyInformation forKey:NAMES_bodyInformation]; - } else { - [parameters removeObjectForKey:NAMES_bodyInformation]; - } +- (nullable SDLVehicleDataResult *)bodyInformation { + return [parameters sdl_objectForName:SDLNameBodyInformation ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)bodyInformation { - NSObject *obj = [parameters objectForKey:NAMES_bodyInformation]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setDeviceStatus:(nullable SDLVehicleDataResult *)deviceStatus { + [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; } -- (void)setDeviceStatus:(SDLVehicleDataResult *)deviceStatus { - if (deviceStatus != nil) { - [parameters setObject:deviceStatus forKey:NAMES_deviceStatus]; - } else { - [parameters removeObjectForKey:NAMES_deviceStatus]; - } +- (nullable SDLVehicleDataResult *)deviceStatus { + return [parameters sdl_objectForName:SDLNameDeviceStatus ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)deviceStatus { - NSObject *obj = [parameters objectForKey:NAMES_deviceStatus]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setDriverBraking:(nullable SDLVehicleDataResult *)driverBraking { + [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; } -- (void)setDriverBraking:(SDLVehicleDataResult *)driverBraking { - if (driverBraking != nil) { - [parameters setObject:driverBraking forKey:NAMES_driverBraking]; - } else { - [parameters removeObjectForKey:NAMES_driverBraking]; - } +- (nullable SDLVehicleDataResult *)driverBraking { + return [parameters sdl_objectForName:SDLNameDriverBraking ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)driverBraking { - NSObject *obj = [parameters objectForKey:NAMES_driverBraking]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setWiperStatus:(nullable SDLVehicleDataResult *)wiperStatus { + [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; } -- (void)setWiperStatus:(SDLVehicleDataResult *)wiperStatus { - if (wiperStatus != nil) { - [parameters setObject:wiperStatus forKey:NAMES_wiperStatus]; - } else { - [parameters removeObjectForKey:NAMES_wiperStatus]; - } +- (nullable SDLVehicleDataResult *)wiperStatus { + return [parameters sdl_objectForName:SDLNameWiperStatus ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)wiperStatus { - NSObject *obj = [parameters objectForKey:NAMES_wiperStatus]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setHeadLampStatus:(nullable SDLVehicleDataResult *)headLampStatus { + [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; } -- (void)setHeadLampStatus:(SDLVehicleDataResult *)headLampStatus { - if (headLampStatus != nil) { - [parameters setObject:headLampStatus forKey:NAMES_headLampStatus]; - } else { - [parameters removeObjectForKey:NAMES_headLampStatus]; - } +- (nullable SDLVehicleDataResult *)headLampStatus { + return [parameters sdl_objectForName:SDLNameHeadLampStatus ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)headLampStatus { - NSObject *obj = [parameters objectForKey:NAMES_headLampStatus]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setEngineTorque:(nullable SDLVehicleDataResult *)engineTorque { + [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; } -- (void)setEngineTorque:(SDLVehicleDataResult *)engineTorque { - if (engineTorque != nil) { - [parameters setObject:engineTorque forKey:NAMES_engineTorque]; - } else { - [parameters removeObjectForKey:NAMES_engineTorque]; - } -} - -- (SDLVehicleDataResult *)engineTorque { - NSObject *obj = [parameters objectForKey:NAMES_engineTorque]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLVehicleDataResult *)engineTorque { + return [parameters sdl_objectForName:SDLNameEngineTorque ofClass:SDLVehicleDataResult.class]; } -- (void)setAccPedalPosition:(SDLVehicleDataResult *)accPedalPosition { - if (accPedalPosition != nil) { - [parameters setObject:accPedalPosition forKey:NAMES_accPedalPosition]; - } else { - [parameters removeObjectForKey:NAMES_accPedalPosition]; - } +- (void)setAccPedalPosition:(nullable SDLVehicleDataResult *)accPedalPosition { + [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; } -- (SDLVehicleDataResult *)accPedalPosition { - NSObject *obj = [parameters objectForKey:NAMES_accPedalPosition]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLVehicleDataResult *)accPedalPosition { + return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition ofClass:SDLVehicleDataResult.class]; } -- (void)setSteeringWheelAngle:(SDLVehicleDataResult *)steeringWheelAngle { - if (steeringWheelAngle != nil) { - [parameters setObject:steeringWheelAngle forKey:NAMES_steeringWheelAngle]; - } else { - [parameters removeObjectForKey:NAMES_steeringWheelAngle]; - } +- (void)setSteeringWheelAngle:(nullable SDLVehicleDataResult *)steeringWheelAngle { + [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; } -- (SDLVehicleDataResult *)steeringWheelAngle { - NSObject *obj = [parameters objectForKey:NAMES_steeringWheelAngle]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLVehicleDataResult *)steeringWheelAngle { + return [parameters sdl_objectForName:SDLNameSteeringWheelAngle ofClass:SDLVehicleDataResult.class]; } -- (void)setECallInfo:(SDLVehicleDataResult *)eCallInfo { - if (eCallInfo != nil) { - [parameters setObject:eCallInfo forKey:NAMES_eCallInfo]; - } else { - [parameters removeObjectForKey:NAMES_eCallInfo]; - } +- (void)setECallInfo:(nullable SDLVehicleDataResult *)eCallInfo { + [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; } -- (SDLVehicleDataResult *)eCallInfo { - NSObject *obj = [parameters objectForKey:NAMES_eCallInfo]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLVehicleDataResult *)eCallInfo { + return [parameters sdl_objectForName:SDLNameECallInfo ofClass:SDLVehicleDataResult.class]; } -- (void)setAirbagStatus:(SDLVehicleDataResult *)airbagStatus { - if (airbagStatus != nil) { - [parameters setObject:airbagStatus forKey:NAMES_airbagStatus]; - } else { - [parameters removeObjectForKey:NAMES_airbagStatus]; - } +- (void)setAirbagStatus:(nullable SDLVehicleDataResult *)airbagStatus { + [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; } -- (SDLVehicleDataResult *)airbagStatus { - NSObject *obj = [parameters objectForKey:NAMES_airbagStatus]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLVehicleDataResult *)airbagStatus { + return [parameters sdl_objectForName:SDLNameAirbagStatus ofClass:SDLVehicleDataResult.class]; } -- (void)setEmergencyEvent:(SDLVehicleDataResult *)emergencyEvent { - if (emergencyEvent != nil) { - [parameters setObject:emergencyEvent forKey:NAMES_emergencyEvent]; - } else { - [parameters removeObjectForKey:NAMES_emergencyEvent]; - } +- (void)setEmergencyEvent:(nullable SDLVehicleDataResult *)emergencyEvent { + [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; } -- (SDLVehicleDataResult *)emergencyEvent { - NSObject *obj = [parameters objectForKey:NAMES_emergencyEvent]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLVehicleDataResult *)emergencyEvent { + return [parameters sdl_objectForName:SDLNameEmergencyEvent ofClass:SDLVehicleDataResult.class]; } -- (void)setClusterModes:(SDLVehicleDataResult *)clusterModes { - if (clusterModes != nil) { - [parameters setObject:clusterModes forKey:NAMES_clusterModes]; - } else { - [parameters removeObjectForKey:NAMES_clusterModes]; - } +- (void)setClusterModes:(nullable SDLVehicleDataResult *)clusterModes { + [parameters sdl_setObject:clusterModes forName:SDLNameClusterModes]; } -- (SDLVehicleDataResult *)clusterModes { - NSObject *obj = [parameters objectForKey:NAMES_clusterModes]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLVehicleDataResult *)clusterModes { + return [parameters sdl_objectForName:SDLNameClusterModes ofClass:SDLVehicleDataResult.class]; } -- (void)setMyKey:(SDLVehicleDataResult *)myKey { - if (myKey != nil) { - [parameters setObject:myKey forKey:NAMES_myKey]; - } else { - [parameters removeObjectForKey:NAMES_myKey]; - } +- (void)setMyKey:(nullable SDLVehicleDataResult *)myKey { + [parameters sdl_setObject:myKey forName:SDLNameMyKey]; } -- (SDLVehicleDataResult *)myKey { - NSObject *obj = [parameters objectForKey:NAMES_myKey]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLVehicleDataResult *)myKey { + return [parameters sdl_objectForName:SDLNameMyKey ofClass:SDLVehicleDataResult.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSubscribeWaypoints.h b/SmartDeviceLink/SDLSubscribeWayPoints.h similarity index 61% rename from SmartDeviceLink/SDLSubscribeWaypoints.h rename to SmartDeviceLink/SDLSubscribeWayPoints.h index fb04caf97..d7fd129bc 100644 --- a/SmartDeviceLink/SDLSubscribeWaypoints.h +++ b/SmartDeviceLink/SDLSubscribeWayPoints.h @@ -10,10 +10,11 @@ * @see SDLUnsubscribeWaypoints * */ + +NS_ASSUME_NONNULL_BEGIN + @interface SDLSubscribeWayPoints : SDLRPCRequest @end -__deprecated_msg("Use SDLSubscribeWayPoints instead") - @interface SDLSubscribeWaypoints : SDLSubscribeWayPoints - @end +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSubscribeWayPoints.m b/SmartDeviceLink/SDLSubscribeWayPoints.m new file mode 100644 index 000000000..cec91c636 --- /dev/null +++ b/SmartDeviceLink/SDLSubscribeWayPoints.m @@ -0,0 +1,21 @@ +// SDLSubscribeWaypoints.m +// + +#import "SDLSubscribeWayPoints.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLSubscribeWayPoints + +- (instancetype)init { + if (self = [super initWithName:SDLNameSubscribeWayPoints]) { + } + return self; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSubscribeWayPointsResponse.h b/SmartDeviceLink/SDLSubscribeWayPointsResponse.h new file mode 100644 index 000000000..86a1f58d2 --- /dev/null +++ b/SmartDeviceLink/SDLSubscribeWayPointsResponse.h @@ -0,0 +1,12 @@ +// SDLSubscribeWaypointsResponse.h +// + +#import "SDLRPCResponse.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLSubscribeWayPointsResponse : SDLRPCResponse + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSubscribeWayPointsResponse.m b/SmartDeviceLink/SDLSubscribeWayPointsResponse.m new file mode 100644 index 000000000..11aa5a04b --- /dev/null +++ b/SmartDeviceLink/SDLSubscribeWayPointsResponse.m @@ -0,0 +1,22 @@ + +// SDLSubscribeWaypointsResponse.m +// + +#import "SDLSubscribeWayPointsResponse.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLSubscribeWayPointsResponse + +- (instancetype)init { + if (self = [super initWithName:SDLNameSubscribeWayPoints]) { + } + return self; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSubscribeWaypoints.m b/SmartDeviceLink/SDLSubscribeWaypoints.m deleted file mode 100644 index aeed71d50..000000000 --- a/SmartDeviceLink/SDLSubscribeWaypoints.m +++ /dev/null @@ -1,19 +0,0 @@ -// SDLSubscribeWaypoints.m -// - -#import "SDLSubscribeWaypoints.h" -#import "SDLNames.h" - -@implementation SDLSubscribeWayPoints - -- (instancetype)init { - if (self = [super initWithName:NAMES_SubscribeWaypoints]) { - } - return self; -} - -@end - -@implementation SDLSubscribeWaypoints - -@end diff --git a/SmartDeviceLink/SDLSubscribeWaypointsResponse.h b/SmartDeviceLink/SDLSubscribeWaypointsResponse.h deleted file mode 100644 index cd13c2af6..000000000 --- a/SmartDeviceLink/SDLSubscribeWaypointsResponse.h +++ /dev/null @@ -1,12 +0,0 @@ -// SDLSubscribeWaypointsResponse.h -// - -#import "SDLRPCResponse.h" - -@interface SDLSubscribeWayPointsResponse : SDLRPCResponse - -@end - -__deprecated_msg("Use SDLSubscribeWayPointsResponse instead") - @interface SDLSubscribeWaypointsResponse : SDLSubscribeWayPointsResponse - @end diff --git a/SmartDeviceLink/SDLSubscribeWaypointsResponse.m b/SmartDeviceLink/SDLSubscribeWaypointsResponse.m deleted file mode 100644 index e65fbac1d..000000000 --- a/SmartDeviceLink/SDLSubscribeWaypointsResponse.m +++ /dev/null @@ -1,20 +0,0 @@ - -// SDLSubscribeWaypointsResponse.m -// - -#import "SDLSubscribeWaypointsResponse.h" -#import "SDLNames.h" - -@implementation SDLSubscribeWayPointsResponse - -- (instancetype)init { - if (self = [super initWithName:NAMES_SubscribeWaypoints]) { - } - return self; -} - -@end - -@implementation SDLSubscribeWaypointsResponse - -@end diff --git a/SmartDeviceLink/SDLSyncMsgVersion.h b/SmartDeviceLink/SDLSyncMsgVersion.h index 65f9f608a..87af0c1d3 100644 --- a/SmartDeviceLink/SDLSyncMsgVersion.h +++ b/SmartDeviceLink/SDLSyncMsgVersion.h @@ -9,42 +9,32 @@ * * @since SDL 1.0 */ -@interface SDLSyncMsgVersion : SDLRPCStruct { -} -/** - * @abstract Constructs a newly allocated SDLSyncMsgVersion object - */ -- (instancetype)init; - -/** - * @abstract Constructs a newly allocated SDLSyncMsgVersion object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN -// TODO: (Alex M.)[2016-12-1] Change from NSInteger to UInt8 -- (instancetype)initWithMajorVersion:(NSInteger)majorVersion minorVersion:(NSInteger)minorVersion __deprecated_msg("Use initWithMajorVersion:minorVersion:patchVersion: instead"); +@interface SDLSyncMsgVersion : SDLRPCStruct -- (instancetype)initWithMajorVersion:(NSInteger)majorVersion minorVersion:(NSInteger)minorVersion patchVersion:(NSInteger)patchVersion; +- (instancetype)initWithMajorVersion:(UInt8)majorVersion minorVersion:(UInt8)minorVersion patchVersion:(UInt8)patchVersion; /** * @abstract The major version indicates versions that is not-compatible to previous versions * * Required, Integer, 1 - 10 */ -@property (strong) NSNumber *majorVersion; +@property (strong, nonatomic) NSNumber *majorVersion; /** * @abstract The minor version indicates a change to a previous version that should still allow to be run on an older version (with limited functionality) * * Required, Integer, 0 - 1000 */ -@property (strong) NSNumber *minorVersion; +@property (strong, nonatomic) NSNumber *minorVersion; /** * @abstract Optional, allows backward-compatible fixes to the API without increasing the minor version of the interface * */ -@property (strong) NSNumber *patchVersion; +@property (strong, nonatomic, nullable) NSNumber *patchVersion; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSyncMsgVersion.m b/SmartDeviceLink/SDLSyncMsgVersion.m index 8ef8b7cd3..7d256ce14 100644 --- a/SmartDeviceLink/SDLSyncMsgVersion.m +++ b/SmartDeviceLink/SDLSyncMsgVersion.m @@ -4,36 +4,14 @@ #import "SDLSyncMsgVersion.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -@implementation SDLSyncMsgVersion - -- (instancetype)init { - if (self = [super init]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (instancetype)initWithMajorVersion:(NSInteger)majorVersion minorVersion:(NSInteger)minorVersion { - self = [self init]; - if (!self) { - return nil; - } - - self.majorVersion = @(majorVersion); - self.minorVersion = @(minorVersion); - self.patchVersion = @(0); +NS_ASSUME_NONNULL_BEGIN - return self; -} +@implementation SDLSyncMsgVersion -- (instancetype)initWithMajorVersion:(NSInteger)majorVersion minorVersion:(NSInteger)minorVersion patchVersion:(NSInteger)patchVersion { +- (instancetype)initWithMajorVersion:(UInt8)majorVersion minorVersion:(UInt8)minorVersion patchVersion:(UInt8)patchVersion { self = [self init]; if (!self) { return nil; @@ -46,43 +24,33 @@ - (instancetype)initWithMajorVersion:(NSInteger)majorVersion minorVersion:(NSInt return self; } -- (void)setMajorVersion:(NSNumber *)majorVersion { - if (majorVersion != nil) { - [store setObject:majorVersion forKey:NAMES_majorVersion]; - } else { - [store removeObjectForKey:NAMES_majorVersion]; - } +- (void)setMajorVersion:(NSNumber *)majorVersion { + [store sdl_setObject:majorVersion forName:SDLNameMajorVersion]; } -- (NSNumber *)majorVersion { - return [store objectForKey:NAMES_majorVersion]; +- (NSNumber *)majorVersion { + return [store sdl_objectForName:SDLNameMajorVersion]; } -- (void)setMinorVersion:(NSNumber *)minorVersion { - if (minorVersion != nil) { - [store setObject:minorVersion forKey:NAMES_minorVersion]; - } else { - [store removeObjectForKey:NAMES_minorVersion]; - } +- (void)setMinorVersion:(NSNumber *)minorVersion { + [store sdl_setObject:minorVersion forName:SDLNameMinorVersion]; } -- (NSNumber *)minorVersion { - return [store objectForKey:NAMES_minorVersion]; +- (NSNumber *)minorVersion { + return [store sdl_objectForName:SDLNameMinorVersion]; } -- (void)setPatchVersion:(NSNumber *)patchVersion { - if (patchVersion != nil) { - [store setObject:patchVersion forKey:NAMES_patchVersion]; - } else { - [store removeObjectForKey:NAMES_patchVersion]; - } +- (void)setPatchVersion:(nullable NSNumber *)patchVersion { + [store sdl_setObject:patchVersion forName:SDLNamePatchVersion]; } -- (NSNumber *)patchVersion { - return [store objectForKey:NAMES_patchVersion]; +- (nullable NSNumber *)patchVersion { + return [store sdl_objectForName:SDLNamePatchVersion]; } - (NSString *)description { return [NSString stringWithFormat:@"%@.%@.%@", self.majorVersion, self.minorVersion, self.patchVersion]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSyncPData.h b/SmartDeviceLink/SDLSyncPData.h index e71ea600d..8db515479 100644 --- a/SmartDeviceLink/SDLSyncPData.h +++ b/SmartDeviceLink/SDLSyncPData.h @@ -4,10 +4,10 @@ #import "SDLRPCRequest.h" -@interface SDLSyncPData : SDLRPCRequest { -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLSyncPData : SDLRPCRequest @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSyncPData.m b/SmartDeviceLink/SDLSyncPData.m index c8730a2f1..0dceaf65d 100644 --- a/SmartDeviceLink/SDLSyncPData.m +++ b/SmartDeviceLink/SDLSyncPData.m @@ -4,20 +4,19 @@ #import "SDLSyncPData.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLSyncPData - (instancetype)init { - if (self = [super initWithName:NAMES_SyncPData]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameSyncPData]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSyncPDataResponse.h b/SmartDeviceLink/SDLSyncPDataResponse.h index 25a12b74a..ae3034a46 100644 --- a/SmartDeviceLink/SDLSyncPDataResponse.h +++ b/SmartDeviceLink/SDLSyncPDataResponse.h @@ -4,10 +4,10 @@ #import "SDLRPCResponse.h" -@interface SDLSyncPDataResponse : SDLRPCResponse { -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLSyncPDataResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSyncPDataResponse.m b/SmartDeviceLink/SDLSyncPDataResponse.m index 00edf14b1..2cb1c1164 100644 --- a/SmartDeviceLink/SDLSyncPDataResponse.m +++ b/SmartDeviceLink/SDLSyncPDataResponse.m @@ -4,20 +4,19 @@ #import "SDLSyncPDataResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLSyncPDataResponse - (instancetype)init { - if (self = [super initWithName:NAMES_SyncPData]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameSyncPData]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSystemAction.h b/SmartDeviceLink/SDLSystemAction.h index 55371e87d..03f13e870 100644 --- a/SmartDeviceLink/SDLSystemAction.h +++ b/SmartDeviceLink/SDLSystemAction.h @@ -8,32 +8,19 @@ * * Enumeration that describes system actions that can be triggered. */ -@interface SDLSystemAction : SDLEnum { -} - -/** - * Convert String to SDLSystemAction - * @param value String - * @return SDLSystemAction - */ -+ (SDLSystemAction *)valueOf:(NSString *)value; -/** - @abstract Store the enumeration of all possible SDLSystemAction - @return an array that store all possible SDLSystemAction - */ -+ (NSArray *)values; +typedef SDLEnum SDLSystemAction SDL_SWIFT_ENUM; /** @abstract Default_Action */ -+ (SDLSystemAction *)DEFAULT_ACTION; +extern SDLSystemAction const SDLSystemActionDefaultAction; + /** @abstract Steal_Focus */ -+ (SDLSystemAction *)STEAL_FOCUS; +extern SDLSystemAction const SDLSystemActionStealFocus; + /** @abstract Keep_Context */ -+ (SDLSystemAction *)KEEP_CONTEXT; - -@end +extern SDLSystemAction const SDLSystemActionKeepContext; diff --git a/SmartDeviceLink/SDLSystemAction.m b/SmartDeviceLink/SDLSystemAction.m index 15b34b08b..0dd9e5594 100644 --- a/SmartDeviceLink/SDLSystemAction.m +++ b/SmartDeviceLink/SDLSystemAction.m @@ -4,53 +4,6 @@ #import "SDLSystemAction.h" -SDLSystemAction *SDLSystemAction_DEFAULT_ACTION = nil; -SDLSystemAction *SDLSystemAction_STEAL_FOCUS = nil; -SDLSystemAction *SDLSystemAction_KEEP_CONTEXT = nil; - -NSArray *SDLSystemAction_values = nil; - -@implementation SDLSystemAction - -+ (SDLSystemAction *)valueOf:(NSString *)value { - for (SDLSystemAction *item in SDLSystemAction.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLSystemAction_values == nil) { - SDLSystemAction_values = @[ - SDLSystemAction.DEFAULT_ACTION, - SDLSystemAction.STEAL_FOCUS, - SDLSystemAction.KEEP_CONTEXT, - ]; - } - return SDLSystemAction_values; -} - -+ (SDLSystemAction *)DEFAULT_ACTION { - if (SDLSystemAction_DEFAULT_ACTION == nil) { - SDLSystemAction_DEFAULT_ACTION = [[SDLSystemAction alloc] initWithValue:@"DEFAULT_ACTION"]; - } - return SDLSystemAction_DEFAULT_ACTION; -} - -+ (SDLSystemAction *)STEAL_FOCUS { - if (SDLSystemAction_STEAL_FOCUS == nil) { - SDLSystemAction_STEAL_FOCUS = [[SDLSystemAction alloc] initWithValue:@"STEAL_FOCUS"]; - } - return SDLSystemAction_STEAL_FOCUS; -} - -+ (SDLSystemAction *)KEEP_CONTEXT { - if (SDLSystemAction_KEEP_CONTEXT == nil) { - SDLSystemAction_KEEP_CONTEXT = [[SDLSystemAction alloc] initWithValue:@"KEEP_CONTEXT"]; - } - return SDLSystemAction_KEEP_CONTEXT; -} - -@end +SDLSystemAction const SDLSystemActionDefaultAction = @"DEFAULT_ACTION"; +SDLSystemAction const SDLSystemActionStealFocus = @"STEAL_FOCUS"; +SDLSystemAction const SDLSystemActionKeepContext = @"KEEP_CONTEXT"; diff --git a/SmartDeviceLink/SDLSystemCapability.h b/SmartDeviceLink/SDLSystemCapability.h old mode 100644 new mode 100755 index b0232bf00..3bcd54418 --- a/SmartDeviceLink/SDLSystemCapability.h +++ b/SmartDeviceLink/SDLSystemCapability.h @@ -9,11 +9,14 @@ #import #import "SDLRPCStruct.h" +#import "SDLSystemCapabilityType.h" @class SDLPhoneCapability; @class SDLNavigationCapability; -@class SDLSystemCapabilityType; @class SDLVideoStreamingCapability; +@class SDLRemoteControlCapabilities; + +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. @@ -21,29 +24,24 @@ */ @interface SDLSystemCapability : SDLRPCStruct -/** - * @abstract Constructs a newly allocated SDLSystemCapability object - */ -- (instancetype)init; - -/** - * @abstract Constructs a newly allocated SDLSystemCapability object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - - (instancetype)initWithNavigationCapability:(SDLNavigationCapability *)capability; - (instancetype)initWithPhoneCapability:(SDLPhoneCapability *)capability; - (instancetype)initWithVideoStreamingCapability:(SDLVideoStreamingCapability *)capability; -@property (strong, nonatomic) SDLSystemCapabilityType *systemCapabilityType; +- (instancetype)initWithRemoteControlCapability:(SDLRemoteControlCapabilities *)capability; + +@property (strong, nonatomic) SDLSystemCapabilityType systemCapabilityType; -@property (strong, nonatomic) SDLNavigationCapability *navigationCapability; +@property (nullable, strong, nonatomic) SDLNavigationCapability *navigationCapability; -@property (strong, nonatomic) SDLPhoneCapability *phoneCapability; +@property (nullable, strong, nonatomic) SDLPhoneCapability *phoneCapability; -@property (strong, nonatomic) SDLVideoStreamingCapability *videoStreamingCapability; +@property (nullable, strong, nonatomic) SDLVideoStreamingCapability *videoStreamingCapability; + +@property (nullable, strong, nonatomic) SDLRemoteControlCapabilities *remoteControlCapability; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSystemCapability.m b/SmartDeviceLink/SDLSystemCapability.m old mode 100644 new mode 100755 index 09f68f2cf..5a469683d --- a/SmartDeviceLink/SDLSystemCapability.m +++ b/SmartDeviceLink/SDLSystemCapability.m @@ -8,25 +8,17 @@ #import "SDLSystemCapability.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" #import "SDLNavigationCapability.h" #import "SDLPhoneCapability.h" #import "SDLSystemCapabilityType.h" #import "SDLVideoStreamingCapability.h" +#import "SDLRemoteControlCapabilities.h" -@implementation SDLSystemCapability - -- (instancetype)init { - if (self = [super init]) { - } - return self; -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} +@implementation SDLSystemCapability - (instancetype)initWithPhoneCapability:(SDLPhoneCapability *)capability { self = [self init]; @@ -34,7 +26,7 @@ - (instancetype)initWithPhoneCapability:(SDLPhoneCapability *)capability { return nil; } - self.systemCapabilityType = [SDLSystemCapabilityType PHONE_CALL]; + self.systemCapabilityType = SDLSystemCapabilityTypePhoneCall; self.phoneCapability = capability; return self; @@ -46,7 +38,7 @@ - (instancetype)initWithNavigationCapability:(SDLNavigationCapability *)capabili return nil; } - self.systemCapabilityType = [SDLSystemCapabilityType NAVIGATION]; + self.systemCapabilityType = SDLSystemCapabilityTypeNavigation; self.navigationCapability = capability; return self; @@ -58,80 +50,66 @@ - (instancetype)initWithVideoStreamingCapability:(SDLVideoStreamingCapability *) return nil; } - self.systemCapabilityType = [SDLSystemCapabilityType VIDEO_STREAMING]; + self.systemCapabilityType = SDLSystemCapabilityTypeVideoStreaming; self.videoStreamingCapability = capability; return self; } -- (void)setSystemCapabilityType:(SDLSystemCapabilityType *)type { - if (type != nil) { - [store setObject:type forKey:NAMES_systemCapabilityType]; - } else { - [store removeObjectForKey:NAMES_systemCapabilityType]; +- (instancetype)initWithRemoteControlCapability:(SDLRemoteControlCapabilities *)capability { + self = [self init]; + if (!self) { + return nil; } + + self.systemCapabilityType = SDLSystemCapabilityTypeRemoteControl; + self.remoteControlCapability = capability; + + return self; } -- (SDLSystemCapabilityType *)systemCapabilityType { - id obj = store[NAMES_systemCapabilityType]; - if (obj == nil || [obj isKindOfClass:SDLSystemCapabilityType.class]) { - return (SDLSystemCapabilityType *)obj; - } else { - return [SDLSystemCapabilityType valueOf:(NSString *)obj]; - } +- (void)setSystemCapabilityType:(SDLSystemCapabilityType)type { + [store sdl_setObject:type forName:SDLNameSystemCapabilityType]; +} + +- (SDLSystemCapabilityType)systemCapabilityType { + return [store sdl_objectForName:SDLNameSystemCapabilityType]; } // TODO: Nav / Phone Capability -- (void)setNavigationCapability:(SDLNavigationCapability *)navigationCapability { - if (navigationCapability != nil) { - store[NAMES_navigationCapability] = navigationCapability; - } else { - [store removeObjectForKey:NAMES_navigationCapability]; - } +- (void)setNavigationCapability:(nullable SDLNavigationCapability *)navigationCapability { + [store sdl_setObject:navigationCapability forName:SDLNameNavigationCapability]; } -- (SDLNavigationCapability *)navigationCapability { - NSObject *obj = store[NAMES_navigationCapability]; - if (obj == nil || [obj isKindOfClass:SDLNavigationCapability.class]) { - return (SDLNavigationCapability *)obj; - } else { - return [[SDLNavigationCapability alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLNavigationCapability *)navigationCapability { + return [store sdl_objectForName:SDLNameNavigationCapability ofClass:SDLNavigationCapability.class]; } -- (void)setPhoneCapability:(SDLPhoneCapability *)phoneCapability { - if (phoneCapability != nil) { - store[NAMES_phoneCapability] = phoneCapability; - } else { - [store removeObjectForKey:NAMES_phoneCapability]; - } +- (void)setPhoneCapability:(nullable SDLPhoneCapability *)phoneCapability { + [store sdl_setObject:phoneCapability forName:SDLNamePhoneCapability]; } -- (SDLPhoneCapability *)phoneCapability { - NSObject *obj = store[NAMES_phoneCapability]; - if (obj == nil || [obj isKindOfClass:SDLPhoneCapability.class]) { - return (SDLPhoneCapability *)obj; - } else { - return [[SDLPhoneCapability alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLPhoneCapability *)phoneCapability { + return [store sdl_objectForName:SDLNamePhoneCapability ofClass:SDLPhoneCapability.class]; } -- (void)setVideoStreamingCapability:(SDLVideoStreamingCapability *)videoStreamingCapability { - if (videoStreamingCapability != nil) { - store[NAMES_videoStreamingCapability] = videoStreamingCapability; - } else { - [store removeObjectForKey:NAMES_videoStreamingCapability]; - } +- (void)setVideoStreamingCapability:(nullable SDLVideoStreamingCapability *)videoStreamingCapability { + [store sdl_setObject:videoStreamingCapability forName:SDLNameVideoStreamingCapability]; } -- (SDLVideoStreamingCapability *)videoStreamingCapability { - NSObject *obj = store[NAMES_videoStreamingCapability]; - if (obj == nil || [obj isKindOfClass:SDLVideoStreamingCapability.class]) { - return (SDLVideoStreamingCapability *)obj; - } else { - return [[SDLVideoStreamingCapability alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLVideoStreamingCapability *)videoStreamingCapability { + return [store sdl_objectForName:SDLNameVideoStreamingCapability ofClass:SDLVideoStreamingCapability.class]; +} + +- (void)setRemoteControlCapability:(nullable SDLRemoteControlCapabilities *)remoteControlCapability { + [store sdl_setObject:remoteControlCapability forName:SDLNameRemoteControlCapability]; +} + +- (nullable SDLRemoteControlCapabilities *)remoteControlCapability { + return [store sdl_objectForName:SDLNameRemoteControlCapability ofClass:SDLRemoteControlCapabilities.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSystemCapabilityType.h b/SmartDeviceLink/SDLSystemCapabilityType.h old mode 100644 new mode 100755 index 1f207520f..61f8f836a --- a/SmartDeviceLink/SDLSystemCapabilityType.h +++ b/SmartDeviceLink/SDLSystemCapabilityType.h @@ -6,41 +6,30 @@ // Copyright © 2017 smartdevicelink. All rights reserved. // -#import - #import "SDLEnum.h" /** The type of system capability to get more information on */ -@interface SDLSystemCapabilityType : SDLEnum - -/** - * Convert String to SDLSystemCapabilityType - * @param value String - * @return SDLSystemCapabilityType - */ -+ (SDLSystemCapabilityType *)valueOf:(NSString *)value; - -/** - Returns an array of all possible SDLSystemCapabilityType values - @return an array that store all possible SDLSystemCapabilityType - */ -+ (NSArray *)values; +typedef SDLEnum SDLSystemCapabilityType SDL_SWIFT_ENUM; /** @abstract NAVIGATION */ -+ (SDLSystemCapabilityType *)NAVIGATION; +extern SDLSystemCapabilityType const SDLSystemCapabilityTypeNavigation; /** @abstract PHONE_CALL */ -+ (SDLSystemCapabilityType *)PHONE_CALL; +extern SDLSystemCapabilityType const SDLSystemCapabilityTypePhoneCall; /** @abstract VIDEO_STREAMING + */ -+ (SDLSystemCapabilityType *)VIDEO_STREAMING; +extern SDLSystemCapabilityType const SDLSystemCapabilityTypeVideoStreaming; -@end +/** + @abstract REMOTE_CONTROL + */ +extern SDLSystemCapabilityType const SDLSystemCapabilityTypeRemoteControl; diff --git a/SmartDeviceLink/SDLSystemCapabilityType.m b/SmartDeviceLink/SDLSystemCapabilityType.m old mode 100644 new mode 100755 index b17fa5155..c8a25e755 --- a/SmartDeviceLink/SDLSystemCapabilityType.m +++ b/SmartDeviceLink/SDLSystemCapabilityType.m @@ -8,53 +8,8 @@ #import "SDLSystemCapabilityType.h" -SDLSystemCapabilityType *SDLSystemCapabilityType_NAVIGATION = nil; -SDLSystemCapabilityType *SDLSystemCapabilityType_PHONE_CALL = nil; -SDLSystemCapabilityType *SDLSystemCapabilityType_VIDEO_STREAMING = nil; -NSArray *SDLSystemCapabilityType_values = nil; - -@implementation SDLSystemCapabilityType - -+ (SDLSystemCapabilityType *)valueOf:(NSString *)value { - for (SDLSystemCapabilityType *item in SDLSystemCapabilityType.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLSystemCapabilityType_values == nil) { - SDLSystemCapabilityType_values = @[ - SDLSystemCapabilityType.NAVIGATION, - SDLSystemCapabilityType.PHONE_CALL, - SDLSystemCapabilityType.VIDEO_STREAMING - ]; - } - return SDLSystemCapabilityType_values; -} - -+ (SDLSystemCapabilityType *)NAVIGATION { - if (SDLSystemCapabilityType_NAVIGATION == nil) { - SDLSystemCapabilityType_NAVIGATION = [[SDLSystemCapabilityType alloc] initWithValue:@"NAVIGATION"]; - } - return SDLSystemCapabilityType_NAVIGATION; -} - -+ (SDLSystemCapabilityType *)PHONE_CALL { - if (SDLSystemCapabilityType_PHONE_CALL == nil) { - SDLSystemCapabilityType_PHONE_CALL = [[SDLSystemCapabilityType alloc] initWithValue:@"PHONE_CALL"]; - } - return SDLSystemCapabilityType_PHONE_CALL; -} - -+ (SDLSystemCapabilityType *)VIDEO_STREAMING { - if (SDLSystemCapabilityType_VIDEO_STREAMING == nil) { - SDLSystemCapabilityType_VIDEO_STREAMING = [[SDLSystemCapabilityType alloc] initWithValue:@"VIDEO_STREAMING"]; - } - return SDLSystemCapabilityType_VIDEO_STREAMING; -} - -@end +SDLSystemCapabilityType const SDLSystemCapabilityTypeNavigation = @"NAVIGATION"; +SDLSystemCapabilityType const SDLSystemCapabilityTypePhoneCall = @"PHONE_CALL"; +SDLSystemCapabilityType const SDLSystemCapabilityTypeVideoStreaming = @"VIDEO_STREAMING"; +SDLSystemCapabilityType const SDLSystemCapabilityTypeRemoteControl = @"REMOTE_CONTROL"; diff --git a/SmartDeviceLink/SDLSystemContext.h b/SmartDeviceLink/SDLSystemContext.h index 89e92e420..19522acac 100644 --- a/SmartDeviceLink/SDLSystemContext.h +++ b/SmartDeviceLink/SDLSystemContext.h @@ -9,62 +9,33 @@ * * @since SDL 1.0 */ -@interface SDLSystemContext : SDLEnum { -} - -/** - * Convert String to SDLSystemContext - * - * @param value String value to retrieve the object for - * - * @return SDLSystemContext - */ -+ (SDLSystemContext *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLSystemContext - * - * @return an array that store all possible SDLSystemContext - */ -+ (NSArray *)values; +typedef SDLEnum SDLSystemContext SDL_SWIFT_ENUM; /** * @abstract No user interaction (user-initiated or app-initiated) is in progress. - * - * @return SDLSystemContext object of value *MAIN* */ -+ (SDLSystemContext *)MAIN; +extern SDLSystemContext const SDLSystemContextMain; /** * @abstract VR-oriented, user-initiated or app-initiated interaction is in-progress. - * - * @return SDLSystemContext object of value *VRSESSION* */ -+ (SDLSystemContext *)VRSESSION; +extern SDLSystemContext const SDLSystemContextVoiceRecognitionSession; /** * @abstract Menu-oriented, user-initiated or app-initiated interaction is in-progress. - * - * @return SDLSystemContext object of value *MENU* */ -+ (SDLSystemContext *)MENU; +extern SDLSystemContext const SDLSystemContextMenu; /** * @abstract The app's display HMI is currently being obscured by either a system or other app's overlay. * - * @return SDLSystemContext object of value *HMI_OBSCURED* - * * @since SDL 2.0 */ -+ (SDLSystemContext *)HMI_OBSCURED; +extern SDLSystemContext const SDLSystemContextHMIObscured; /** * @abstract Broadcast only to whichever app has an alert currently being displayed. * - * @return SDLSystemContext object of value *ALERT* - * * @since SDL 2.0 */ -+ (SDLSystemContext *)ALERT; - -@end +extern SDLSystemContext const SDLSystemContextAlert; diff --git a/SmartDeviceLink/SDLSystemContext.m b/SmartDeviceLink/SDLSystemContext.m index 76c5c9f38..ea27eb3dc 100644 --- a/SmartDeviceLink/SDLSystemContext.m +++ b/SmartDeviceLink/SDLSystemContext.m @@ -4,71 +4,8 @@ #import "SDLSystemContext.h" -SDLSystemContext *SDLSystemContext_MAIN = nil; -SDLSystemContext *SDLSystemContext_VRSESSION = nil; -SDLSystemContext *SDLSystemContext_MENU = nil; -SDLSystemContext *SDLSystemContext_HMI_OBSCURED = nil; -SDLSystemContext *SDLSystemContext_ALERT = nil; - -NSArray *SDLSystemContext_values = nil; - -@implementation SDLSystemContext - -+ (SDLSystemContext *)valueOf:(NSString *)value { - for (SDLSystemContext *item in SDLSystemContext.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLSystemContext_values == nil) { - SDLSystemContext_values = @[ - SDLSystemContext.MAIN, - SDLSystemContext.VRSESSION, - SDLSystemContext.MENU, - SDLSystemContext.HMI_OBSCURED, - SDLSystemContext.ALERT, - ]; - } - return SDLSystemContext_values; -} - -+ (SDLSystemContext *)MAIN { - if (SDLSystemContext_MAIN == nil) { - SDLSystemContext_MAIN = [[SDLSystemContext alloc] initWithValue:@"MAIN"]; - } - return SDLSystemContext_MAIN; -} - -+ (SDLSystemContext *)VRSESSION { - if (SDLSystemContext_VRSESSION == nil) { - SDLSystemContext_VRSESSION = [[SDLSystemContext alloc] initWithValue:@"VRSESSION"]; - } - return SDLSystemContext_VRSESSION; -} - -+ (SDLSystemContext *)MENU { - if (SDLSystemContext_MENU == nil) { - SDLSystemContext_MENU = [[SDLSystemContext alloc] initWithValue:@"MENU"]; - } - return SDLSystemContext_MENU; -} - -+ (SDLSystemContext *)HMI_OBSCURED { - if (SDLSystemContext_HMI_OBSCURED == nil) { - SDLSystemContext_HMI_OBSCURED = [[SDLSystemContext alloc] initWithValue:@"HMI_OBSCURED"]; - } - return SDLSystemContext_HMI_OBSCURED; -} - -+ (SDLSystemContext *)ALERT { - if (SDLSystemContext_ALERT == nil) { - SDLSystemContext_ALERT = [[SDLSystemContext alloc] initWithValue:@"ALERT"]; - } - return SDLSystemContext_ALERT; -} - -@end +SDLSystemContext const SDLSystemContextMain = @"MAIN"; +SDLSystemContext const SDLSystemContextVoiceRecognitionSession = @"VRSESSION"; +SDLSystemContext const SDLSystemContextMenu = @"MENU"; +SDLSystemContext const SDLSystemContextHMIObscured = @"HMI_OBSCURED"; +SDLSystemContext const SDLSystemContextAlert = @"ALERT"; diff --git a/SmartDeviceLink/SDLSystemRequest.h b/SmartDeviceLink/SDLSystemRequest.h index 4492760ca..a39b1f712 100644 --- a/SmartDeviceLink/SDLSystemRequest.h +++ b/SmartDeviceLink/SDLSystemRequest.h @@ -3,23 +3,23 @@ #import "SDLRPCRequest.h" -@class SDLRequestType; - +#import "SDLRequestType.h" /** An asynchronous request from the device; binary data can be included in hybrid part of message for some requests
    (such as HTTP, Proprietary, or Authentication requests) *

    * @since SmartDeviceLink 3.0 * */ -@interface SDLSystemRequest : SDLRPCRequest { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLSystemRequest : SDLRPCRequest -- (instancetype)initWithType:(SDLRequestType *)requestType fileName:(NSString *)fileName; +- (instancetype)initWithType:(SDLRequestType)requestType fileName:(nullable NSString *)fileName; -@property (strong) SDLRequestType *requestType; -@property (strong) NSString *fileName; +@property (strong, nonatomic) SDLRequestType requestType; +@property (strong, nonatomic, nullable) NSString *fileName; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSystemRequest.m b/SmartDeviceLink/SDLSystemRequest.m index adbd1f724..5cb66258d 100644 --- a/SmartDeviceLink/SDLSystemRequest.m +++ b/SmartDeviceLink/SDLSystemRequest.m @@ -4,25 +4,20 @@ #import "SDLSystemRequest.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -#import "SDLRequestType.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLSystemRequest - (instancetype)init { - if (self = [super initWithName:NAMES_SystemRequest]) { + if (self = [super initWithName:SDLNameSystemRequest]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (instancetype)initWithType:(SDLRequestType *)requestType fileName:(NSString *)fileName { +- (instancetype)initWithType:(SDLRequestType)requestType fileName:(nullable NSString *)fileName { self = [self init]; if (!self) { return nil; @@ -34,33 +29,22 @@ - (instancetype)initWithType:(SDLRequestType *)requestType fileName:(NSString *) return self; } -- (void)setRequestType:(SDLRequestType *)requestType { - if (requestType != nil) { - [parameters setObject:requestType forKey:NAMES_requestType]; - } else { - [parameters removeObjectForKey:NAMES_requestType]; - } +- (void)setRequestType:(SDLRequestType)requestType { + [parameters sdl_setObject:requestType forName:SDLNameRequestType]; } -- (SDLRequestType *)requestType { - NSObject *obj = [parameters objectForKey:NAMES_requestType]; - if (obj == nil || [obj isKindOfClass:SDLRequestType.class]) { - return (SDLRequestType *)obj; - } else { - return [SDLRequestType valueOf:(NSString *)obj]; - } +- (SDLRequestType)requestType { + return [parameters sdl_objectForName:SDLNameRequestType]; } -- (void)setFileName:(NSString *)fileName { - if (fileName != nil) { - [parameters setObject:fileName forKey:NAMES_fileName]; - } else { - [parameters removeObjectForKey:NAMES_fileName]; - } +- (void)setFileName:(nullable NSString *)fileName { + [parameters sdl_setObject:fileName forName:SDLNameFilename]; } -- (NSString *)fileName { - return [parameters objectForKey:NAMES_fileName]; +- (nullable NSString *)fileName { + return [parameters sdl_objectForName:SDLNameFilename]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSystemRequestResponse.h b/SmartDeviceLink/SDLSystemRequestResponse.h index 4c99d605f..306ad48ea 100644 --- a/SmartDeviceLink/SDLSystemRequestResponse.h +++ b/SmartDeviceLink/SDLSystemRequestResponse.h @@ -7,10 +7,11 @@ /** SDLSystemRequestResponse is sent, when SDLSystemRequest has been called. * SinceSmartDeviceLink 3.0 */ -@interface SDLSystemRequestResponse : SDLRPCResponse { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLSystemRequestResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLSystemRequestResponse.m b/SmartDeviceLink/SDLSystemRequestResponse.m index ba563e561..f202c544d 100644 --- a/SmartDeviceLink/SDLSystemRequestResponse.m +++ b/SmartDeviceLink/SDLSystemRequestResponse.m @@ -4,20 +4,19 @@ #import "SDLSystemRequestResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLSystemRequestResponse - (instancetype)init { - if (self = [super initWithName:NAMES_SystemRequest]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameSystemRequest]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTBTState.h b/SmartDeviceLink/SDLTBTState.h index 397f500dd..1b4317518 100644 --- a/SmartDeviceLink/SDLTBTState.h +++ b/SmartDeviceLink/SDLTBTState.h @@ -4,21 +4,15 @@ #import "SDLEnum.h" -@interface SDLTBTState : SDLEnum { -} +typedef SDLEnum SDLTBTState SDL_SWIFT_ENUM; -+ (SDLTBTState *)valueOf:(NSString *)value; -+ (NSArray *)values; - -+ (SDLTBTState *)ROUTE_UPDATE_REQUEST; -+ (SDLTBTState *)ROUTE_ACCEPTED; -+ (SDLTBTState *)ROUTE_REFUSED; -+ (SDLTBTState *)ROUTE_CANCELLED; -+ (SDLTBTState *)ETA_REQUEST; -+ (SDLTBTState *)NEXT_TURN_REQUEST; -+ (SDLTBTState *)ROUTE_STATUS_REQUEST; -+ (SDLTBTState *)ROUTE_SUMMARY_REQUEST; -+ (SDLTBTState *)TRIP_STATUS_REQUEST; -+ (SDLTBTState *)ROUTE_UPDATE_REQUEST_TIMEOUT; - -@end +extern SDLTBTState const SDLTBTStateRouteUpdateRequest; +extern SDLTBTState const SDLTBTStateRouteAccepted; +extern SDLTBTState const SDLTBTStateRouteRefused; +extern SDLTBTState const SDLTBTStateRouteCancelled; +extern SDLTBTState const SDLTBTStateETARequest; +extern SDLTBTState const SDLTBTStateNextTurnRequest; +extern SDLTBTState const SDLTBTStateRouteStatusRequest; +extern SDLTBTState const SDLTBTStateRouteSummaryRequest; +extern SDLTBTState const SDLTBTStateTripStatusRequest; +extern SDLTBTState const SDLTBTStateRouteUpdateRequestTimeout; diff --git a/SmartDeviceLink/SDLTBTState.m b/SmartDeviceLink/SDLTBTState.m index 0a2a23b8b..ababcdc2b 100644 --- a/SmartDeviceLink/SDLTBTState.m +++ b/SmartDeviceLink/SDLTBTState.m @@ -4,116 +4,13 @@ #import "SDLTBTState.h" -SDLTBTState *SDLTBTState_ROUTE_UPDATE_REQUEST = nil; -SDLTBTState *SDLTBTState_ROUTE_ACCEPTED = nil; -SDLTBTState *SDLTBTState_ROUTE_REFUSED = nil; -SDLTBTState *SDLTBTState_ROUTE_CANCELLED = nil; -SDLTBTState *SDLTBTState_ETA_REQUEST = nil; -SDLTBTState *SDLTBTState_NEXT_TURN_REQUEST = nil; -SDLTBTState *SDLTBTState_ROUTE_STATUS_REQUEST = nil; -SDLTBTState *SDLTBTState_ROUTE_SUMMARY_REQUEST = nil; -SDLTBTState *SDLTBTState_TRIP_STATUS_REQUEST = nil; -SDLTBTState *SDLTBTState_ROUTE_UPDATE_REQUEST_TIMEOUT = nil; - -NSArray *SDLTBTState_values = nil; - -@implementation SDLTBTState - -+ (SDLTBTState *)valueOf:(NSString *)value { - for (SDLTBTState *item in SDLTBTState.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLTBTState_values == nil) { - SDLTBTState_values = @[ - SDLTBTState.ROUTE_UPDATE_REQUEST, - SDLTBTState.ROUTE_ACCEPTED, - SDLTBTState.ROUTE_REFUSED, - SDLTBTState.ROUTE_CANCELLED, - SDLTBTState.ETA_REQUEST, - SDLTBTState.NEXT_TURN_REQUEST, - SDLTBTState.ROUTE_STATUS_REQUEST, - SDLTBTState.ROUTE_SUMMARY_REQUEST, - SDLTBTState.TRIP_STATUS_REQUEST, - SDLTBTState.ROUTE_UPDATE_REQUEST_TIMEOUT, - ]; - } - return SDLTBTState_values; -} - -+ (SDLTBTState *)ROUTE_UPDATE_REQUEST { - if (SDLTBTState_ROUTE_UPDATE_REQUEST == nil) { - SDLTBTState_ROUTE_UPDATE_REQUEST = [[SDLTBTState alloc] initWithValue:@"ROUTE_UPDATE_REQUEST"]; - } - return SDLTBTState_ROUTE_UPDATE_REQUEST; -} - -+ (SDLTBTState *)ROUTE_ACCEPTED { - if (SDLTBTState_ROUTE_ACCEPTED == nil) { - SDLTBTState_ROUTE_ACCEPTED = [[SDLTBTState alloc] initWithValue:@"ROUTE_ACCEPTED"]; - } - return SDLTBTState_ROUTE_ACCEPTED; -} - -+ (SDLTBTState *)ROUTE_REFUSED { - if (SDLTBTState_ROUTE_REFUSED == nil) { - SDLTBTState_ROUTE_REFUSED = [[SDLTBTState alloc] initWithValue:@"ROUTE_REFUSED"]; - } - return SDLTBTState_ROUTE_REFUSED; -} - -+ (SDLTBTState *)ROUTE_CANCELLED { - if (SDLTBTState_ROUTE_CANCELLED == nil) { - SDLTBTState_ROUTE_CANCELLED = [[SDLTBTState alloc] initWithValue:@"ROUTE_CANCELLED"]; - } - return SDLTBTState_ROUTE_CANCELLED; -} - -+ (SDLTBTState *)ETA_REQUEST { - if (SDLTBTState_ETA_REQUEST == nil) { - SDLTBTState_ETA_REQUEST = [[SDLTBTState alloc] initWithValue:@"ETA_REQUEST"]; - } - return SDLTBTState_ETA_REQUEST; -} - -+ (SDLTBTState *)NEXT_TURN_REQUEST { - if (SDLTBTState_NEXT_TURN_REQUEST == nil) { - SDLTBTState_NEXT_TURN_REQUEST = [[SDLTBTState alloc] initWithValue:@"NEXT_TURN_REQUEST"]; - } - return SDLTBTState_NEXT_TURN_REQUEST; -} - -+ (SDLTBTState *)ROUTE_STATUS_REQUEST { - if (SDLTBTState_ROUTE_STATUS_REQUEST == nil) { - SDLTBTState_ROUTE_STATUS_REQUEST = [[SDLTBTState alloc] initWithValue:@"ROUTE_STATUS_REQUEST"]; - } - return SDLTBTState_ROUTE_STATUS_REQUEST; -} - -+ (SDLTBTState *)ROUTE_SUMMARY_REQUEST { - if (SDLTBTState_ROUTE_SUMMARY_REQUEST == nil) { - SDLTBTState_ROUTE_SUMMARY_REQUEST = [[SDLTBTState alloc] initWithValue:@"ROUTE_SUMMARY_REQUEST"]; - } - return SDLTBTState_ROUTE_SUMMARY_REQUEST; -} - -+ (SDLTBTState *)TRIP_STATUS_REQUEST { - if (SDLTBTState_TRIP_STATUS_REQUEST == nil) { - SDLTBTState_TRIP_STATUS_REQUEST = [[SDLTBTState alloc] initWithValue:@"TRIP_STATUS_REQUEST"]; - } - return SDLTBTState_TRIP_STATUS_REQUEST; -} - -+ (SDLTBTState *)ROUTE_UPDATE_REQUEST_TIMEOUT { - if (SDLTBTState_ROUTE_UPDATE_REQUEST_TIMEOUT == nil) { - SDLTBTState_ROUTE_UPDATE_REQUEST_TIMEOUT = [[SDLTBTState alloc] initWithValue:@"ROUTE_UPDATE_REQUEST_TIMEOUT"]; - } - return SDLTBTState_ROUTE_UPDATE_REQUEST_TIMEOUT; -} - -@end +SDLTBTState const SDLTBTStateRouteUpdateRequest = @"ROUTE_UPDATE_REQUEST"; +SDLTBTState const SDLTBTStateRouteAccepted = @"ROUTE_ACCEPTED"; +SDLTBTState const SDLTBTStateRouteRefused = @"ROUTE_REFUSED"; +SDLTBTState const SDLTBTStateRouteCancelled = @"ROUTE_CANCELLED"; +SDLTBTState const SDLTBTStateETARequest = @"ETA_REQUEST"; +SDLTBTState const SDLTBTStateNextTurnRequest = @"NEXT_TURN_REQUEST"; +SDLTBTState const SDLTBTStateRouteStatusRequest = @"ROUTE_STATUS_REQUEST"; +SDLTBTState const SDLTBTStateRouteSummaryRequest = @"ROUTE_SUMMARY_REQUEST"; +SDLTBTState const SDLTBTStateTripStatusRequest = @"TRIP_STATUS_REQUEST"; +SDLTBTState const SDLTBTStateRouteUpdateRequestTimeout = @"ROUTE_UPDATE_REQUEST_TIMEOUT"; diff --git a/SmartDeviceLink/SDLTCPTransport.h b/SmartDeviceLink/SDLTCPTransport.h index 2c9f55805..ed8da7e41 100644 --- a/SmartDeviceLink/SDLTCPTransport.h +++ b/SmartDeviceLink/SDLTCPTransport.h @@ -3,11 +3,15 @@ #import "SDLAbstractTransport.h" +NS_ASSUME_NONNULL_BEGIN + @interface SDLTCPTransport : SDLAbstractTransport { - CFSocketRef socket; + _Nullable CFSocketRef socket; } -@property (strong, atomic) NSString *hostName; -@property (strong, atomic) NSString *portNumber; +@property (strong, nonatomic) NSString *hostName; +@property (strong, nonatomic) NSString *portNumber; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTCPTransport.m b/SmartDeviceLink/SDLTCPTransport.m index cf46578cb..91e693c8b 100644 --- a/SmartDeviceLink/SDLTCPTransport.m +++ b/SmartDeviceLink/SDLTCPTransport.m @@ -3,7 +3,9 @@ #import "SDLTCPTransport.h" -#import "SDLDebugTool.h" +#import "SDLLogConstants.h" +#import "SDLLogMacros.h" +#import "SDLLogManager.h" #import "SDLHexUtility.h" #import #import @@ -15,13 +17,13 @@ #import #import +NS_ASSUME_NONNULL_BEGIN // C function forward declarations. int call_socket(const char *hostname, const char *port); static void TCPCallback(CFSocketRef socket, CFSocketCallBackType type, CFDataRef address, const void *data, void *info); @interface SDLTCPTransport () { - BOOL _alreadyDestructed; dispatch_queue_t _sendQueue; } @@ -32,24 +34,23 @@ @implementation SDLTCPTransport - (instancetype)init { if (self = [super init]) { - _alreadyDestructed = NO; _sendQueue = dispatch_queue_create("com.sdl.transport.tcp.transmit", DISPATCH_QUEUE_SERIAL); - [SDLDebugTool logInfo:@"SDLTCPTransport Init" - withType:SDLDebugType_Transport_iAP - toOutput:SDLDebugOutput_All - toGroup:self.debugConsoleGroupName]; + SDLLogD(@"TCP Transport initialization"); } return self; } +- (void)dealloc { + [self disconnect]; +} - (void)connect { - [SDLDebugTool logInfo:@"TCP Transport attempt connect" withType:SDLDebugType_Transport_TCP]; + SDLLogD(@"Attemping to connect"); int sock_fd = call_socket([self.hostName UTF8String], [self.portNumber UTF8String]); if (sock_fd < 0) { - [SDLDebugTool logInfo:@"Server Not Ready, Connection Failed" withType:SDLDebugType_Transport_TCP]; + SDLLogE(@"Server not ready, connection failed"); return; } @@ -64,9 +65,7 @@ - (void)connect { - (void)sendData:(NSData *)msgBytes { dispatch_async(_sendQueue, ^{ @autoreleasepool { - NSString *byteStr = [SDLHexUtility getHexString:msgBytes]; - [SDLDebugTool logInfo:[NSString stringWithFormat:@"Sent %lu bytes: %@", (unsigned long)msgBytes.length, byteStr] withType:SDLDebugType_Transport_TCP toOutput:SDLDebugOutput_DeviceConsole]; - + SDLLogBytes(msgBytes, SDLLogBytesDirectionTransmit); CFSocketError e = CFSocketSendData(socket, NULL, (__bridge CFDataRef)msgBytes, 10000); if (e != kCFSocketSuccess) { NSString *errorCause = nil; @@ -81,34 +80,20 @@ - (void)sendData:(NSData *)msgBytes { break; } - [SDLDebugTool logInfo:[NSString stringWithFormat:@"Socket sendData error: %@", errorCause] withType:SDLDebugType_Transport_TCP toOutput:SDLDebugOutput_DeviceConsole]; + SDLLogE(@"Socket send error: %@", errorCause); } } }); } -- (void)destructObjects { - [SDLDebugTool logInfo:@"SDLTCPTransport invalidate and dispose"]; - - if (!_alreadyDestructed) { - _alreadyDestructed = YES; - if (socket != nil) { - CFSocketInvalidate(socket); - CFRelease(socket); - } - } -} - - (void)disconnect { - [self dispose]; -} - -- (void)dispose { - [self destructObjects]; -} - -- (void)dealloc { - [self destructObjects]; + SDLLogD(@"Disconnect connection"); + + if (socket != nil) { + CFSocketInvalidate(socket); + CFRelease(socket); + socket = nil; + } } @end @@ -159,23 +144,19 @@ static void TCPCallback(CFSocketRef socket, CFSocketCallBackType type, CFDataRef // Check if Core disconnected from us if (CFDataGetLength((CFDataRef)data) <= 0) { - [SDLDebugTool logInfo:@"TCPCallback Got a data packet with length 0, the connection was terminated on the other side"]; + SDLLogW(@"Remote system terminated connection, data packet length 0"); [transport.delegate onTransportDisconnected]; return; } // Handle the data we received - NSMutableString *byteStr = [NSMutableString stringWithCapacity:((int)CFDataGetLength((CFDataRef)data) * 2)]; - for (int i = 0; i < (int)CFDataGetLength((CFDataRef)data); i++) { - [byteStr appendFormat:@"%02X", ((Byte *)(UInt8 *)CFDataGetBytePtr((CFDataRef)data))[i]]; - } - - [SDLDebugTool logInfo:[NSString stringWithFormat:@"Read %d bytes: %@", (int)CFDataGetLength((CFDataRef)data), byteStr] withType:SDLDebugType_Transport_TCP toOutput:SDLDebugOutput_DeviceConsole]; - - [transport.delegate onDataReceived:[NSData dataWithBytes:(UInt8 *)CFDataGetBytePtr((CFDataRef)data) length:(int)CFDataGetLength((CFDataRef)data)]]; + NSData *convertedData = [NSData dataWithBytes:(UInt8 *)CFDataGetBytePtr((CFDataRef)data) length:(int)CFDataGetLength((CFDataRef)data)]; + SDLLogBytes(convertedData, SDLLogBytesDirectionReceive); + [transport.delegate onDataReceived:convertedData]; } else { - NSString *logMessage = [NSString stringWithFormat:@"unhandled TCPCallback: %lu", type]; - [SDLDebugTool logInfo:logMessage withType:SDLDebugType_Transport_TCP toOutput:SDLDebugOutput_DeviceConsole]; + SDLLogW(@"Unhandled callback type: %lu", type); } } + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTTSChunk.h b/SmartDeviceLink/SDLTTSChunk.h index 151451bdf..6d97aceae 100644 --- a/SmartDeviceLink/SDLTTSChunk.h +++ b/SmartDeviceLink/SDLTTSChunk.h @@ -3,8 +3,7 @@ #import "SDLRPCMessage.h" -@class SDLSpeechCapabilities; - +#import "SDLSpeechCapabilities.h" /** * 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). @@ -37,32 +36,22 @@ * * @since SmartDeviceLink 1.0 */ -@interface SDLTTSChunk : SDLRPCStruct { -} -/** - * @abstract Constructs a newly allocated SDLTTSChunk object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a newly allocated SDLTTSChunk object indicated by the dictionary parameter - * - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLTTSChunk : SDLRPCStruct -- (instancetype)initWithText:(NSString *)text type:(SDLSpeechCapabilities *)type; +- (instancetype)initWithText:(NSString *)text type:(SDLSpeechCapabilities)type; -+ (NSMutableArray *)textChunksFromString:(NSString *)string; ++ (NSArray *)textChunksFromString:(NSString *)string; -+ (NSMutableArray *)sapiChunksFromString:(NSString *)string; ++ (NSArray *)sapiChunksFromString:(NSString *)string; -+ (NSMutableArray *)lhPlusChunksFromString:(NSString *)string; ++ (NSArray *)lhPlusChunksFromString:(NSString *)string; -+ (NSMutableArray *)prerecordedChunksFromString:(NSString *)string; ++ (NSArray *)prerecordedChunksFromString:(NSString *)string; -+ (NSMutableArray *)silenceChunks; ++ (NSArray *)silenceChunks; /** @@ -70,13 +59,15 @@ * * Required, Max length 500 */ -@property (strong) NSString *text; +@property (strong, nonatomic) NSString *text; /** * @abstract The type of information in the "text" field (e.g. phrase to be spoken, phoneme specification, name of pre-recorded sound). * * Required */ -@property (strong) SDLSpeechCapabilities *type; +@property (strong, nonatomic) SDLSpeechCapabilities type; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTTSChunk.m b/SmartDeviceLink/SDLTTSChunk.m index 939689b98..e553d6342 100644 --- a/SmartDeviceLink/SDLTTSChunk.m +++ b/SmartDeviceLink/SDLTTSChunk.m @@ -3,25 +3,14 @@ #import "SDLTTSChunk.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -#import "SDLSpeechCapabilities.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLTTSChunk -- (instancetype)init { - if (self = [super init]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (instancetype)initWithText:(NSString *)text type:(SDLSpeechCapabilities *)type { +- (instancetype)initWithText:(NSString *)text type:(SDLSpeechCapabilities)type { self = [self init]; if (!self) { return nil; @@ -33,61 +22,50 @@ - (instancetype)initWithText:(NSString *)text type:(SDLSpeechCapabilities *)type return self; } -+ (NSMutableArray *)textChunksFromString:(NSString *)string { - return [self sdl_chunksFromString:string type:[SDLSpeechCapabilities TEXT]]; ++ (NSArray *)textChunksFromString:(NSString *)string { + return [self sdl_chunksFromString:string type:SDLSpeechCapabilitiesText]; } -+ (NSMutableArray *)sapiChunksFromString:(NSString *)string { - return [self sdl_chunksFromString:string type:[SDLSpeechCapabilities SAPI_PHONEMES]]; ++ (NSArray *)sapiChunksFromString:(NSString *)string { + return [self sdl_chunksFromString:string type:SDLSpeechCapabilitiesSAPIPhonemes]; } -+ (NSMutableArray *)lhPlusChunksFromString:(NSString *)string { - return [self sdl_chunksFromString:string type:[SDLSpeechCapabilities LHPLUS_PHONEMES]]; ++ (NSArray *)lhPlusChunksFromString:(NSString *)string { + return [self sdl_chunksFromString:string type:SDLSpeechCapabilitiesLHPlusPhonemes]; } -+ (NSMutableArray *)prerecordedChunksFromString:(NSString *)string { - return [self sdl_chunksFromString:string type:[SDLSpeechCapabilities PRE_RECORDED]]; ++ (NSArray *)prerecordedChunksFromString:(NSString *)string { + return [self sdl_chunksFromString:string type:SDLSpeechCapabilitiesPrerecorded]; } -+ (NSMutableArray *)silenceChunks { - return [self sdl_chunksFromString:nil type:[SDLSpeechCapabilities SILENCE]]; ++ (NSArray *)silenceChunks { + return [self sdl_chunksFromString:nil type:SDLSpeechCapabilitiesSilence]; } -+ (NSMutableArray *)sdl_chunksFromString:(NSString *)string type:(SDLSpeechCapabilities *)type { ++ (nullable NSArray *)sdl_chunksFromString:(nullable NSString *)string type:(SDLSpeechCapabilities)type { if (string.length == 0) { return nil; } - return [NSMutableArray arrayWithObject:[[[self class] alloc] initWithText:string type:type]]; + return [NSArray arrayWithObject:[[[self class] alloc] initWithText:string type:type]]; } - (void)setText:(NSString *)text { - if (text != nil) { - [store setObject:text forKey:NAMES_text]; - } else { - [store removeObjectForKey:NAMES_text]; - } + [store sdl_setObject:text forName:SDLNameText]; } - (NSString *)text { - return [store objectForKey:NAMES_text]; + return [store sdl_objectForName:SDLNameText]; } -- (void)setType:(SDLSpeechCapabilities *)type { - if (type != nil) { - [store setObject:type forKey:NAMES_type]; - } else { - [store removeObjectForKey:NAMES_type]; - } +- (void)setType:(SDLSpeechCapabilities)type { + [store sdl_setObject:type forName:SDLNameType]; } -- (SDLSpeechCapabilities *)type { - NSObject *obj = [store objectForKey:NAMES_type]; - if (obj == nil || [obj isKindOfClass:SDLSpeechCapabilities.class]) { - return (SDLSpeechCapabilities *)obj; - } else { - return [SDLSpeechCapabilities valueOf:(NSString *)obj]; - } +- (SDLSpeechCapabilities)type { + return [store sdl_objectForName:SDLNameType]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTTSChunkFactory.h b/SmartDeviceLink/SDLTTSChunkFactory.h deleted file mode 100644 index a22c0c39b..000000000 --- a/SmartDeviceLink/SDLTTSChunkFactory.h +++ /dev/null @@ -1,16 +0,0 @@ -// SDLTTSChunkFactory.h -// - -#import - -@class SDLTTSChunk; -@class SDLSpeechCapabilities; - - -__deprecated_msg("use SDLTTSChunk initializers instead") @interface SDLTTSChunkFactory : NSObject { -} - -+ (SDLTTSChunk *)buildTTSChunkForString:(NSString *)text type:(SDLSpeechCapabilities *)type __deprecated_msg("use SDLTTSChunk's initWithText:type: instead"); -+ (NSMutableArray *)buildTTSChunksFromSimple:(NSString *)simple __deprecated_msg("use SDLTTSChunk's textChunksFromString: instead"); - -@end diff --git a/SmartDeviceLink/SDLTTSChunkFactory.m b/SmartDeviceLink/SDLTTSChunkFactory.m deleted file mode 100644 index ec5b37ec9..000000000 --- a/SmartDeviceLink/SDLTTSChunkFactory.m +++ /dev/null @@ -1,25 +0,0 @@ -// SDLTTSChunkFactory.m -// - -#import "SDLTTSChunkFactory.h" - -#import "SDLSpeechCapabilities.h" -#import "SDLTTSChunk.h" - - -@implementation SDLTTSChunkFactory - -+ (SDLTTSChunk *)buildTTSChunkForString:(NSString *)text type:(SDLSpeechCapabilities *)type { - SDLTTSChunk *ret = [[SDLTTSChunk alloc] initWithText:text type:type]; - - return ret; -} - -+ (NSMutableArray *)buildTTSChunksFromSimple:(NSString *)simple { - if (simple == nil) - return nil; - - return [NSMutableArray arrayWithObject:[SDLTTSChunkFactory buildTTSChunkForString:simple type:[SDLSpeechCapabilities TEXT]]]; -} - -@end diff --git a/SmartDeviceLink/SDLTemperature.h b/SmartDeviceLink/SDLTemperature.h new file mode 100644 index 000000000..613c24ca6 --- /dev/null +++ b/SmartDeviceLink/SDLTemperature.h @@ -0,0 +1,29 @@ +// +// SDLTemperature.h +// + +#import "SDLRPCMessage.h" +#import "SDLTemperatureUnit.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLTemperature : SDLRPCStruct + +- (instancetype)initWithUnit:(SDLTemperatureUnit)unit value:(float)value; + +/** + * @abstract Temperature Unit + * + */ +@property (strong, nonatomic) SDLTemperatureUnit unit; + +/** + * @abstract Temperature Value in TemperatureUnit specified unit. Range depends on OEM and is not checked by SDL + * + * FLoat value + */ +@property (strong, nonatomic) NSNumber *value; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTemperature.m b/SmartDeviceLink/SDLTemperature.m new file mode 100644 index 000000000..8d5c5a70f --- /dev/null +++ b/SmartDeviceLink/SDLTemperature.m @@ -0,0 +1,43 @@ +// +// SDLTemperature.m +// + +#import "SDLTemperature.h" +#import "SDLNames.h" +#import "NSMutableDictionary+Store.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLTemperature + +- (instancetype)initWithUnit:(SDLTemperatureUnit)unit value:(float)value { + self = [self init]; + if (!self) { + return nil; + } + + self.unit = unit; + self.value = @(value); + + return self; +} + +- (void)setUnit:(SDLTemperatureUnit)unit { + [store sdl_setObject:unit forName:SDLNameUnit]; +} + +- (SDLTemperatureUnit)unit { + return [store sdl_objectForName:SDLNameUnit]; +} + +- (void)setValue:(NSNumber *)value { + [store sdl_setObject:value forName:SDLNameValue]; +} + +- (NSNumber *)value { + return [store sdl_objectForName:SDLNameValue]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTemperatureUnit.h b/SmartDeviceLink/SDLTemperatureUnit.h new file mode 100644 index 000000000..63c1a20d0 --- /dev/null +++ b/SmartDeviceLink/SDLTemperatureUnit.h @@ -0,0 +1,19 @@ +// +// SDLTemperatureUnit.h +// + + +#import "SDLEnum.h" + +typedef SDLEnum SDLTemperatureUnit SDL_SWIFT_ENUM; + +/** + @abstract Reflects the current HMI setting for temperature unit in Celsius + **/ +extern SDLTemperatureUnit const SDLTemperatureUnitCelsius; + + +/** + @abstract Reflects the current HMI setting for temperature unit in Fahrenheit + **/ +extern SDLTemperatureUnit const SDLTemperatureUnitFahrenheit; diff --git a/SmartDeviceLink/SDLTemperatureUnit.m b/SmartDeviceLink/SDLTemperatureUnit.m new file mode 100644 index 000000000..f54fcaaac --- /dev/null +++ b/SmartDeviceLink/SDLTemperatureUnit.m @@ -0,0 +1,8 @@ +// +// SDLTemperatureUnit.m +// + +#import "SDLTemperatureUnit.h" + +SDLTemperatureUnit const SDLTemperatureUnitCelsius = @"CELSIUS"; +SDLTemperatureUnit const SDLTemperatureUnitFahrenheit = @"FAHRENHEIT"; diff --git a/SmartDeviceLink/SDLTextAlignment.h b/SmartDeviceLink/SDLTextAlignment.h index 0d9913e86..eea45f654 100644 --- a/SmartDeviceLink/SDLTextAlignment.h +++ b/SmartDeviceLink/SDLTextAlignment.h @@ -9,44 +9,19 @@ * * @since SDL 1.0 */ -@interface SDLTextAlignment : SDLEnum { -} - -/** - * Convert String to SDLTextAlignment - * - * @param value The value of the string to get an object for - * - * @return SDLTextAlignment - */ -+ (SDLTextAlignment *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLTextAlignment - * - * @return an array that store all possible SDLTextAlignment - */ -+ (NSArray *)values; +typedef SDLEnum SDLTextAlignment SDL_SWIFT_ENUM; /** * @abstract Text aligned left. - * - * @return A SDLTextAlignment object with value of *LEFT_ALIGNED* */ -+ (SDLTextAlignment *)LEFT_ALIGNED; +extern SDLTextAlignment const SDLTextAlignmentLeft; /** * @abstract Text aligned right. - * - * @return A SDLTextAlignment object with value of *RIGHT_ALIGNED* */ -+ (SDLTextAlignment *)RIGHT_ALIGNED; +extern SDLTextAlignment const SDLTextAlignmentRight; /** * @abstract Text aligned centered. - * - * @return A SDLTextAlignment object with value of *CENTERED* */ -+ (SDLTextAlignment *)CENTERED; - -@end +extern SDLTextAlignment const SDLTextAlignmentCenter; diff --git a/SmartDeviceLink/SDLTextAlignment.m b/SmartDeviceLink/SDLTextAlignment.m index 30560f4a2..1e82636e5 100644 --- a/SmartDeviceLink/SDLTextAlignment.m +++ b/SmartDeviceLink/SDLTextAlignment.m @@ -4,53 +4,6 @@ #import "SDLTextAlignment.h" -SDLTextAlignment *SDLTextAlignment_LEFT_ALIGNED = nil; -SDLTextAlignment *SDLTextAlignment_RIGHT_ALIGNED = nil; -SDLTextAlignment *SDLTextAlignment_CENTERED = nil; - -NSArray *SDLTextAlignment_values = nil; - -@implementation SDLTextAlignment - -+ (SDLTextAlignment *)valueOf:(NSString *)value { - for (SDLTextAlignment *item in SDLTextAlignment.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLTextAlignment_values == nil) { - SDLTextAlignment_values = @[ - SDLTextAlignment.LEFT_ALIGNED, - SDLTextAlignment.RIGHT_ALIGNED, - SDLTextAlignment.CENTERED, - ]; - } - return SDLTextAlignment_values; -} - -+ (SDLTextAlignment *)LEFT_ALIGNED { - if (SDLTextAlignment_LEFT_ALIGNED == nil) { - SDLTextAlignment_LEFT_ALIGNED = [[SDLTextAlignment alloc] initWithValue:@"LEFT_ALIGNED"]; - } - return SDLTextAlignment_LEFT_ALIGNED; -} - -+ (SDLTextAlignment *)RIGHT_ALIGNED { - if (SDLTextAlignment_RIGHT_ALIGNED == nil) { - SDLTextAlignment_RIGHT_ALIGNED = [[SDLTextAlignment alloc] initWithValue:@"RIGHT_ALIGNED"]; - } - return SDLTextAlignment_RIGHT_ALIGNED; -} - -+ (SDLTextAlignment *)CENTERED { - if (SDLTextAlignment_CENTERED == nil) { - SDLTextAlignment_CENTERED = [[SDLTextAlignment alloc] initWithValue:@"CENTERED"]; - } - return SDLTextAlignment_CENTERED; -} - -@end +SDLTextAlignment const SDLTextAlignmentLeft = @"LEFT_ALIGNED"; +SDLTextAlignment const SDLTextAlignmentRight = @"RIGHT_ALIGNED"; +SDLTextAlignment const SDLTextAlignmentCenter = @"CENTERED"; diff --git a/SmartDeviceLink/SDLTextField.h b/SmartDeviceLink/SDLTextField.h index 7af898fe5..2546b2cf1 100644 --- a/SmartDeviceLink/SDLTextField.h +++ b/SmartDeviceLink/SDLTextField.h @@ -3,8 +3,8 @@ #import "SDLRPCMessage.h" -@class SDLCharacterSet; -@class SDLTextFieldName; +#import "SDLCharacterSet.h" +#import "SDLTextFieldName.h" /** @@ -56,20 +56,10 @@ * * @since SDL 1.0 */ -@interface SDLTextField : SDLRPCStruct { -} -/** - * @abstract Constructs a newly allocated SDLTextField object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a newly allocated SDLTextField object indicated by the dictionary parameter - * - * @param dict The dictionary to use to construct the object - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLTextField : SDLRPCStruct /** * @abstract The enumeration identifying the field. @@ -78,7 +68,7 @@ * * Required */ -@property (strong) SDLTextFieldName *name; +@property (strong, nonatomic) SDLTextFieldName name; /** * @abstract The character set that is supported in this field. @@ -87,20 +77,22 @@ * * Required */ -@property (strong) SDLCharacterSet *characterSet; +@property (strong, nonatomic) SDLCharacterSet characterSet; /** * @abstract The number of characters in one row of this field. * * Required, Integer 1 - 500 */ -@property (strong) NSNumber *width; +@property (strong, nonatomic) NSNumber *width; /** * @abstract The number of rows for this text field. * * Required, Integer 1 - 8 */ -@property (strong) NSNumber *rows; +@property (strong, nonatomic) NSNumber *rows; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTextField.m b/SmartDeviceLink/SDLTextField.m index 926d258f1..7e6293f58 100644 --- a/SmartDeviceLink/SDLTextField.m +++ b/SmartDeviceLink/SDLTextField.m @@ -3,81 +3,47 @@ #import "SDLTextField.h" +#import "NSMutableDictionary+Store.h" #import "SDLCharacterSet.h" #import "SDLNames.h" #import "SDLTextFieldName.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLTextField -- (instancetype)init { - if (self = [super init]) { - } - return self; +- (void)setName:(SDLTextFieldName)name { + [store sdl_setObject:name forName:SDLNameName]; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (SDLTextFieldName)name { + return [store sdl_objectForName:SDLNameName]; } -- (void)setName:(SDLTextFieldName *)name { - if (name != nil) { - [store setObject:name forKey:NAMES_name]; - } else { - [store removeObjectForKey:NAMES_name]; - } +- (void)setCharacterSet:(SDLCharacterSet)characterSet { + [store sdl_setObject:characterSet forName:SDLNameCharacterSet]; } -- (SDLTextFieldName *)name { - NSObject *obj = [store objectForKey:NAMES_name]; - if (obj == nil || [obj isKindOfClass:SDLTextFieldName.class]) { - return (SDLTextFieldName *)obj; - } else { - return [SDLTextFieldName valueOf:(NSString *)obj]; - } +- (SDLCharacterSet)characterSet { + return [store sdl_objectForName:SDLNameCharacterSet]; } -- (void)setCharacterSet:(SDLCharacterSet *)characterSet { - if (characterSet != nil) { - [store setObject:characterSet forKey:NAMES_characterSet]; - } else { - [store removeObjectForKey:NAMES_characterSet]; - } +- (void)setWidth:(NSNumber *)width { + [store sdl_setObject:width forName:SDLNameWidth]; } -- (SDLCharacterSet *)characterSet { - NSObject *obj = [store objectForKey:NAMES_characterSet]; - if (obj == nil || [obj isKindOfClass:SDLCharacterSet.class]) { - return (SDLCharacterSet *)obj; - } else { - return [SDLCharacterSet valueOf:(NSString *)obj]; - } +- (NSNumber *)width { + return [store sdl_objectForName:SDLNameWidth]; } -- (void)setWidth:(NSNumber *)width { - if (width != nil) { - [store setObject:width forKey:NAMES_width]; - } else { - [store removeObjectForKey:NAMES_width]; - } +- (void)setRows:(NSNumber *)rows { + [store sdl_setObject:rows forName:SDLNameRows]; } -- (NSNumber *)width { - return [store objectForKey:NAMES_width]; -} - -- (void)setRows:(NSNumber *)rows { - if (rows != nil) { - [store setObject:rows forKey:NAMES_rows]; - } else { - [store removeObjectForKey:NAMES_rows]; - } -} - -- (NSNumber *)rows { - return [store objectForKey:NAMES_rows]; +- (NSNumber *)rows { + return [store sdl_objectForName:SDLNameRows]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTextFieldName.h b/SmartDeviceLink/SDLTextFieldName.h index 8fc4c9def..99686cc4e 100644 --- a/SmartDeviceLink/SDLTextFieldName.h +++ b/SmartDeviceLink/SDLTextFieldName.h @@ -9,259 +9,184 @@ * * @since SDL 1.0 */ -@interface SDLTextFieldName : SDLEnum { -} - -/** - * Convert String to SDLTextFieldName - * - * @param value String value to retrieve the object for - * - * @return SDLTextFieldName - */ -+ (SDLTextFieldName *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLTextFieldName - * - * @return an array that store all possible SDLTextFieldName - */ -+ (NSArray *)values; +typedef SDLEnum SDLTextFieldName SDL_SWIFT_ENUM; /** * @abstract The first line of the first set of main fields of the persistent display. Applies to SDLShow. - * - * @return a SDLTextFieldName with value of *mainField1* */ -+ (SDLTextFieldName *)mainField1; +extern SDLTextFieldName const SDLTextFieldNameMainField1; /** * @abstract The second line of the first set of main fields of the persistent display. Applies to SDLShow. * - * @return a SDLTextFieldName with value of *mainField2* - * * @since SDL 2.0 */ -+ (SDLTextFieldName *)mainField2; +extern SDLTextFieldName const SDLTextFieldNameMainField2; /** * @abstract The first line of the second set of main fields of the persistent display. Applies to SDLShow. * - * @return a SDLTextFieldName with value of *mainField3* - * * @since SDL 2.0 */ -+ (SDLTextFieldName *)mainField3; +extern SDLTextFieldName const SDLTextFieldNameMainField3; /** * @abstract The second line of the second set of main fields of the persistent display. Applies to SDLShow. - * - * @return a SDLTextFieldName with value of *mainField4* */ -+ (SDLTextFieldName *)mainField4; +extern SDLTextFieldName const SDLTextFieldNameMainField4; /** * @abstract The status bar on the NGN display. Applies to SDLShow. - * - * @return a SDLTextFieldName with value of *statusBar* */ -+ (SDLTextFieldName *)statusBar; +extern SDLTextFieldName const SDLTextFieldNameStatusBar; /** * @abstract Text value for MediaClock field. Must be properly formatted according to MediaClockFormat. Applies to SDLShow. * * @discussion This field is commonly used to show elapsed or remaining time in an audio track or audio capture. - * - * @return a SDLTextFieldName with value of *mediaClock* */ -+ (SDLTextFieldName *)mediaClock; +extern SDLTextFieldName const SDLTextFieldNameMediaClock; /** * @abstract The track field of NGN type ACMs. This field is only available for media applications on a NGN display. Applies to SDLShow. * * @discussion This field is commonly used to show the current track number - * - * @return a SDLTextFieldName with value of *mediaTrack* */ -+ (SDLTextFieldName *)mediaTrack; +extern SDLTextFieldName const SDLTextFieldNameMediaTrack; /** * @abstract The first line of the alert text field. Applies to SDLAlert. - * - * @return a SDLTextFieldName with value of *alertText1* */ -+ (SDLTextFieldName *)alertText1; +extern SDLTextFieldName const SDLTextFieldNameAlertText1; /** * @abstract The second line of the alert text field. Applies to SDLAlert. * - * @return a SDLTextFieldName with value of *alertText2* - * * @since SDL 2.0 */ -+ (SDLTextFieldName *)alertText2; +extern SDLTextFieldName const SDLTextFieldNameAlertText2; /** * @abstract The third line of the alert text field. Applies to SDLAlert. * - * @return a SDLTextFieldName with value of *alertText3* - * * @since SDL 2.0 */ -+ (SDLTextFieldName *)alertText3; +extern SDLTextFieldName const SDLTextFieldNameAlertText3; /** * @abstract Long form body of text that can include newlines and tabs. Applies to SDLScrollableMessage. * - * @return a SDLTextFieldName with value of *scrollableMessageBody* - * * @since SDL 2.0 */ -+ (SDLTextFieldName *)scrollableMessageBody; +extern SDLTextFieldName const SDLTextFieldNameScrollableMessageBody; /** * @abstract First line suggestion for a user response (in the case of VR enabled interaction). * - * @return a SDLTextFieldName with value of *initialInteractionText* - * * @since SDL 2.0 */ -+ (SDLTextFieldName *)initialInteractionText; +extern SDLTextFieldName const SDLTextFieldNameInitialInteractionText; /** * @abstract First line of navigation text. * - * @return a SDLTextFieldName with value of *navigationText1* - * * @since SDL 2.0 */ -+ (SDLTextFieldName *)navigationText1; +extern SDLTextFieldName const SDLTextFieldNameNavigationText1; /** * @abstract Second line of navigation text. * - * @return a SDLTextFieldName with value of *navigationText2* - * * @since SDL 2.0 */ -+ (SDLTextFieldName *)navigationText2; +extern SDLTextFieldName const SDLTextFieldNameNavigationText2; /** * @abstract Estimated Time of Arrival time for navigation. * - * @return a SDLTextFieldName with value of *ETA* - * * @since SDL 2.0 */ -+ (SDLTextFieldName *)ETA; +extern SDLTextFieldName const SDLTextFieldNameETA; /** * @abstract Total distance to destination for navigation. * - * @return a SDLTextFieldName with value of *totalDistance* - * * @since SDL 2.0 */ -+ (SDLTextFieldName *)totalDistance; +extern SDLTextFieldName const SDLTextFieldNameTotalDistance; /** * @abstract First line of text for audio pass thru. * - * @return a SDLTextFieldName with value of *audioPassThruDisplayText1* - * * @since SDL 2.0 */ -+ (SDLTextFieldName *)audioPassThruDisplayText1; +extern SDLTextFieldName const SDLTextFieldNameAudioPassThruDisplayText1; /** * @abstract Second line of text for audio pass thru. * - * @return a SDLTextFieldName with value of *audioPassThruDisplayText2* - * * @since SDL 2.0 */ -+ (SDLTextFieldName *)audioPassThruDisplayText2; +extern SDLTextFieldName const SDLTextFieldNameAudioPassThruDisplayText2; /** * @abstract Header text for slider. * - * @return a SDLTextFieldName with value of *sliderHeader* - * * @since SDL 2.0 */ -+ (SDLTextFieldName *)sliderHeader; +extern SDLTextFieldName const SDLTextFieldNameSliderHeader; /** * @abstract Footer text for slider * - * @return a SDLTextFieldName with value of *sliderFooter* - * * @since SDL 2.0 */ -+ (SDLTextFieldName *)sliderFooter; +extern SDLTextFieldName const SDLTextFieldNameSliderFooter; /** * Primary text for SDLChoice - * - * @return a SDLTextFieldName with value of *menuName* */ -+ (SDLTextFieldName *)menuName; +extern SDLTextFieldName const SDLTextFieldNameMenuName; /** * Secondary text for SDLChoice - * - * @return a SDLTextFieldName with value of *secondaryText* */ -+ (SDLTextFieldName *)secondaryText; +extern SDLTextFieldName const SDLTextFieldNameSecondaryText; /** * Tertiary text for SDLChoice - * - * @return a SDLTextFieldName with value of *tertiaryText* */ -+ (SDLTextFieldName *)tertiaryText; +extern SDLTextFieldName const SDLTextFieldNameTertiaryText; /** * Optional text to label an app menu button (for certain touchscreen platforms) - * - * @return a SDLTextFieldName with value of *menuTitle* */ -+ (SDLTextFieldName *)menuTitle; +extern SDLTextFieldName const SDLTextFieldNameMenuTitle; /** * Optional name / title of intended location for SDLSendLocation * - * @return a SDLTextFieldName with value of *locationName* - * * @since SDL 4.0 */ -+ (SDLTextFieldName *)locationName; +extern SDLTextFieldName const SDLTextFieldNameLocationName; /** * Optional description of intended location / establishment (if applicable) for SDLSendLocation * - * @return a SDLTextFieldName with value of *locationDescription* - * * @since SDL 4.0 */ -+ (SDLTextFieldName *)locationDescription; +extern SDLTextFieldName const SDLTextFieldNameLocationDescription; /** * Optional location address (if applicable) for SDLSendLocation * - * @return a SDLTextFieldName with value of *addressLines* - * * @since SDL 4.0 */ -+ (SDLTextFieldName *)addressLines; +extern SDLTextFieldName const SDLTextFieldNameAddressLines; /** * Optional hone number of intended location / establishment (if applicable) for SDLSendLocation * - * @return a SDLTextFieldName with value of *phoneNumber* - * * @since SDL 4.0 */ -+ (SDLTextFieldName *)phoneNumber; - -@end +extern SDLTextFieldName const SDLTextFieldNamePhoneNumber; diff --git a/SmartDeviceLink/SDLTextFieldName.m b/SmartDeviceLink/SDLTextFieldName.m index 4cc1ac369..8c597e532 100644 --- a/SmartDeviceLink/SDLTextFieldName.m +++ b/SmartDeviceLink/SDLTextFieldName.m @@ -4,278 +4,31 @@ #import "SDLTextFieldName.h" -SDLTextFieldName *SDLTextFieldName_mainField1 = nil; -SDLTextFieldName *SDLTextFieldName_mainField2 = nil; -SDLTextFieldName *SDLTextFieldName_mainField3 = nil; -SDLTextFieldName *SDLTextFieldName_mainField4 = nil; -SDLTextFieldName *SDLTextFieldName_statusBar = nil; -SDLTextFieldName *SDLTextFieldName_mediaClock = nil; -SDLTextFieldName *SDLTextFieldName_mediaTrack = nil; -SDLTextFieldName *SDLTextFieldName_alertText1 = nil; -SDLTextFieldName *SDLTextFieldName_alertText2 = nil; -SDLTextFieldName *SDLTextFieldName_alertText3 = nil; -SDLTextFieldName *SDLTextFieldName_scrollableMessageBody = nil; -SDLTextFieldName *SDLTextFieldName_initialInteractionText = nil; -SDLTextFieldName *SDLTextFieldName_navigationText1 = nil; -SDLTextFieldName *SDLTextFieldName_navigationText2 = nil; -SDLTextFieldName *SDLTextFieldName_ETA = nil; -SDLTextFieldName *SDLTextFieldName_totalDistance = nil; -SDLTextFieldName *SDLTextFieldName_audioPassThruDisplayText1 = nil; -SDLTextFieldName *SDLTextFieldName_audioPassThruDisplayText2 = nil; -SDLTextFieldName *SDLTextFieldName_sliderHeader = nil; -SDLTextFieldName *SDLTextFieldName_sliderFooter = nil; -SDLTextFieldName *SDLTextFieldName_menuName = nil; -SDLTextFieldName *SDLTextFieldName_secondaryText = nil; -SDLTextFieldName *SDLTextFieldName_tertiaryText = nil; -SDLTextFieldName *SDLTextFieldName_menuTitle = nil; -SDLTextFieldName *SDLTextFieldName_locationName = nil; -SDLTextFieldName *SDLTextFieldName_locationDescription = nil; -SDLTextFieldName *SDLTextFieldName_addressLines = nil; -SDLTextFieldName *SDLTextFieldName_phoneNumber = nil; - -NSArray *SDLTextFieldName_values = nil; - -@implementation SDLTextFieldName - -+ (SDLTextFieldName *)valueOf:(NSString *)value { - for (SDLTextFieldName *item in SDLTextFieldName.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLTextFieldName_values == nil) { - SDLTextFieldName_values = @[ - SDLTextFieldName.mainField1, - SDLTextFieldName.mainField2, - SDLTextFieldName.mainField3, - SDLTextFieldName.mainField4, - SDLTextFieldName.statusBar, - SDLTextFieldName.mediaClock, - SDLTextFieldName.mediaTrack, - SDLTextFieldName.alertText1, - SDLTextFieldName.alertText2, - SDLTextFieldName.alertText3, - SDLTextFieldName.scrollableMessageBody, - SDLTextFieldName.initialInteractionText, - SDLTextFieldName.navigationText1, - SDLTextFieldName.navigationText2, - SDLTextFieldName.ETA, - SDLTextFieldName.totalDistance, - SDLTextFieldName.audioPassThruDisplayText1, - SDLTextFieldName.audioPassThruDisplayText2, - SDLTextFieldName.sliderHeader, - SDLTextFieldName.sliderFooter, - SDLTextFieldName.menuName, - SDLTextFieldName.secondaryText, - SDLTextFieldName.tertiaryText, - SDLTextFieldName.menuTitle, - SDLTextFieldName.locationName, - SDLTextFieldName.locationDescription, - SDLTextFieldName.addressLines, - SDLTextFieldName.phoneNumber, - ]; - } - return SDLTextFieldName_values; -} - -+ (SDLTextFieldName *)mainField1 { - if (SDLTextFieldName_mainField1 == nil) { - SDLTextFieldName_mainField1 = [[SDLTextFieldName alloc] initWithValue:@"mainField1"]; - } - return SDLTextFieldName_mainField1; -} - -+ (SDLTextFieldName *)mainField2 { - if (SDLTextFieldName_mainField2 == nil) { - SDLTextFieldName_mainField2 = [[SDLTextFieldName alloc] initWithValue:@"mainField2"]; - } - return SDLTextFieldName_mainField2; -} - -+ (SDLTextFieldName *)mainField3 { - if (SDLTextFieldName_mainField3 == nil) { - SDLTextFieldName_mainField3 = [[SDLTextFieldName alloc] initWithValue:@"mainField3"]; - } - return SDLTextFieldName_mainField3; -} - -+ (SDLTextFieldName *)mainField4 { - if (SDLTextFieldName_mainField4 == nil) { - SDLTextFieldName_mainField4 = [[SDLTextFieldName alloc] initWithValue:@"mainField4"]; - } - return SDLTextFieldName_mainField4; -} - -+ (SDLTextFieldName *)statusBar { - if (SDLTextFieldName_statusBar == nil) { - SDLTextFieldName_statusBar = [[SDLTextFieldName alloc] initWithValue:@"statusBar"]; - } - return SDLTextFieldName_statusBar; -} - -+ (SDLTextFieldName *)mediaClock { - if (SDLTextFieldName_mediaClock == nil) { - SDLTextFieldName_mediaClock = [[SDLTextFieldName alloc] initWithValue:@"mediaClock"]; - } - return SDLTextFieldName_mediaClock; -} - -+ (SDLTextFieldName *)mediaTrack { - if (SDLTextFieldName_mediaTrack == nil) { - SDLTextFieldName_mediaTrack = [[SDLTextFieldName alloc] initWithValue:@"mediaTrack"]; - } - return SDLTextFieldName_mediaTrack; -} - -+ (SDLTextFieldName *)alertText1 { - if (SDLTextFieldName_alertText1 == nil) { - SDLTextFieldName_alertText1 = [[SDLTextFieldName alloc] initWithValue:@"alertText1"]; - } - return SDLTextFieldName_alertText1; -} - -+ (SDLTextFieldName *)alertText2 { - if (SDLTextFieldName_alertText2 == nil) { - SDLTextFieldName_alertText2 = [[SDLTextFieldName alloc] initWithValue:@"alertText2"]; - } - return SDLTextFieldName_alertText2; -} - -+ (SDLTextFieldName *)alertText3 { - if (SDLTextFieldName_alertText3 == nil) { - SDLTextFieldName_alertText3 = [[SDLTextFieldName alloc] initWithValue:@"alertText3"]; - } - return SDLTextFieldName_alertText3; -} - -+ (SDLTextFieldName *)scrollableMessageBody { - if (SDLTextFieldName_scrollableMessageBody == nil) { - SDLTextFieldName_scrollableMessageBody = [[SDLTextFieldName alloc] initWithValue:@"scrollableMessageBody"]; - } - return SDLTextFieldName_scrollableMessageBody; -} - -+ (SDLTextFieldName *)initialInteractionText { - if (SDLTextFieldName_initialInteractionText == nil) { - SDLTextFieldName_initialInteractionText = [[SDLTextFieldName alloc] initWithValue:@"initialInteractionText"]; - } - return SDLTextFieldName_initialInteractionText; -} - -+ (SDLTextFieldName *)navigationText1 { - if (SDLTextFieldName_navigationText1 == nil) { - SDLTextFieldName_navigationText1 = [[SDLTextFieldName alloc] initWithValue:@"navigationText1"]; - } - return SDLTextFieldName_navigationText1; -} - -+ (SDLTextFieldName *)navigationText2 { - if (SDLTextFieldName_navigationText2 == nil) { - SDLTextFieldName_navigationText2 = [[SDLTextFieldName alloc] initWithValue:@"navigationText2"]; - } - return SDLTextFieldName_navigationText2; -} - -+ (SDLTextFieldName *)ETA { - if (SDLTextFieldName_ETA == nil) { - SDLTextFieldName_ETA = [[SDLTextFieldName alloc] initWithValue:@"ETA"]; - } - return SDLTextFieldName_ETA; -} - -+ (SDLTextFieldName *)totalDistance { - if (SDLTextFieldName_totalDistance == nil) { - SDLTextFieldName_totalDistance = [[SDLTextFieldName alloc] initWithValue:@"totalDistance"]; - } - return SDLTextFieldName_totalDistance; -} - -+ (SDLTextFieldName *)audioPassThruDisplayText1 { - if (SDLTextFieldName_audioPassThruDisplayText1 == nil) { - SDLTextFieldName_audioPassThruDisplayText1 = [[SDLTextFieldName alloc] initWithValue:@"audioPassThruDisplayText1"]; - } - return SDLTextFieldName_audioPassThruDisplayText1; -} - -+ (SDLTextFieldName *)audioPassThruDisplayText2 { - if (SDLTextFieldName_audioPassThruDisplayText2 == nil) { - SDLTextFieldName_audioPassThruDisplayText2 = [[SDLTextFieldName alloc] initWithValue:@"audioPassThruDisplayText2"]; - } - return SDLTextFieldName_audioPassThruDisplayText2; -} - -+ (SDLTextFieldName *)sliderHeader { - if (SDLTextFieldName_sliderHeader == nil) { - SDLTextFieldName_sliderHeader = [[SDLTextFieldName alloc] initWithValue:@"sliderHeader"]; - } - return SDLTextFieldName_sliderHeader; -} - -+ (SDLTextFieldName *)sliderFooter { - if (SDLTextFieldName_sliderFooter == nil) { - SDLTextFieldName_sliderFooter = [[SDLTextFieldName alloc] initWithValue:@"sliderFooter"]; - } - return SDLTextFieldName_sliderFooter; -} - -+ (SDLTextFieldName *)menuName { - if (SDLTextFieldName_menuName == nil) { - SDLTextFieldName_menuName = [[SDLTextFieldName alloc] initWithValue:@"menuName"]; - } - return SDLTextFieldName_menuName; -} - -+ (SDLTextFieldName *)secondaryText { - if (SDLTextFieldName_secondaryText == nil) { - SDLTextFieldName_secondaryText = [[SDLTextFieldName alloc] initWithValue:@"secondaryText"]; - } - return SDLTextFieldName_secondaryText; -} - -+ (SDLTextFieldName *)tertiaryText { - if (SDLTextFieldName_tertiaryText == nil) { - SDLTextFieldName_tertiaryText = [[SDLTextFieldName alloc] initWithValue:@"tertiaryText"]; - } - return SDLTextFieldName_tertiaryText; -} - -+ (SDLTextFieldName *)menuTitle { - if (SDLTextFieldName_menuTitle == nil) { - SDLTextFieldName_menuTitle = [[SDLTextFieldName alloc] initWithValue:@"menuTitle"]; - } - return SDLTextFieldName_menuTitle; -} - -+ (SDLTextFieldName *)locationName { - if (SDLTextFieldName_locationName == nil) { - SDLTextFieldName_locationName = [[SDLTextFieldName alloc] initWithValue:@"locationName"]; - } - return SDLTextFieldName_locationName; -} - -+ (SDLTextFieldName *)locationDescription { - if (SDLTextFieldName_locationDescription == nil) { - SDLTextFieldName_locationDescription = [[SDLTextFieldName alloc] initWithValue:@"locationDescription"]; - } - return SDLTextFieldName_locationDescription; -} - -+ (SDLTextFieldName *)addressLines { - if (SDLTextFieldName_addressLines == nil) { - SDLTextFieldName_addressLines = [[SDLTextFieldName alloc] initWithValue:@"addressLines"]; - } - return SDLTextFieldName_addressLines; -} - -+ (SDLTextFieldName *)phoneNumber { - if (SDLTextFieldName_phoneNumber == nil) { - SDLTextFieldName_phoneNumber = [[SDLTextFieldName alloc] initWithValue:@"phoneNumber"]; - } - return SDLTextFieldName_phoneNumber; -} - -@end +SDLTextFieldName const SDLTextFieldNameMainField1 = @"mainField1"; +SDLTextFieldName const SDLTextFieldNameMainField2 = @"mainField2"; +SDLTextFieldName const SDLTextFieldNameMainField3 = @"mainField3"; +SDLTextFieldName const SDLTextFieldNameMainField4 = @"mainField4"; +SDLTextFieldName const SDLTextFieldNameStatusBar = @"statusBar"; +SDLTextFieldName const SDLTextFieldNameMediaClock = @"mediaClock"; +SDLTextFieldName const SDLTextFieldNameMediaTrack = @"mediaTrack"; +SDLTextFieldName const SDLTextFieldNameAlertText1 = @"alertText1"; +SDLTextFieldName const SDLTextFieldNameAlertText2 = @"alertText2"; +SDLTextFieldName const SDLTextFieldNameAlertText3 = @"alertText3"; +SDLTextFieldName const SDLTextFieldNameScrollableMessageBody = @"scrollableMessageBody"; +SDLTextFieldName const SDLTextFieldNameInitialInteractionText = @"initialInteractionText"; +SDLTextFieldName const SDLTextFieldNameNavigationText1 = @"navigationText1"; +SDLTextFieldName const SDLTextFieldNameNavigationText2 = @"navigationText2"; +SDLTextFieldName const SDLTextFieldNameETA = @"ETA"; +SDLTextFieldName const SDLTextFieldNameTotalDistance = @"totalDistance"; +SDLTextFieldName const SDLTextFieldNameAudioPassThruDisplayText1 = @"audioPassThruDisplayText1"; +SDLTextFieldName const SDLTextFieldNameAudioPassThruDisplayText2 = @"audioPassThruDisplayText2"; +SDLTextFieldName const SDLTextFieldNameSliderHeader = @"sliderHeader"; +SDLTextFieldName const SDLTextFieldNameSliderFooter = @"sliderFooter"; +SDLTextFieldName const SDLTextFieldNameMenuName = @"menuName"; +SDLTextFieldName const SDLTextFieldNameSecondaryText = @"secondaryText"; +SDLTextFieldName const SDLTextFieldNameTertiaryText = @"tertiaryText"; +SDLTextFieldName const SDLTextFieldNameMenuTitle = @"menuTitle"; +SDLTextFieldName const SDLTextFieldNameLocationName = @"locationName"; +SDLTextFieldName const SDLTextFieldNameLocationDescription = @"locationDescription"; +SDLTextFieldName const SDLTextFieldNameAddressLines = @"addressLines"; +SDLTextFieldName const SDLTextFieldNamePhoneNumber = @"phoneNumber"; diff --git a/SmartDeviceLink/SDLTimer.h b/SmartDeviceLink/SDLTimer.h index f9f7be3d9..cba9efefa 100644 --- a/SmartDeviceLink/SDLTimer.h +++ b/SmartDeviceLink/SDLTimer.h @@ -4,16 +4,20 @@ #import +NS_ASSUME_NONNULL_BEGIN + @interface SDLTimer : NSObject -@property (nonatomic, copy) void (^elapsedBlock)(void); -@property (nonatomic, copy) void (^canceledBlock)(void); -@property (assign) float duration; +@property (copy, nonatomic, nullable) void (^elapsedBlock)(void); +@property (copy, nonatomic, nullable) void (^canceledBlock)(void); +@property (assign, nonatomic) float duration; - (instancetype)init; -- (instancetype)initWithDuration:(float)duration __deprecated; +- (instancetype)initWithDuration:(float)duration; - (instancetype)initWithDuration:(float)duration repeat:(BOOL)repeat; - (void)start; - (void)cancel; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTimer.m b/SmartDeviceLink/SDLTimer.m index 53a986451..2774c0836 100644 --- a/SmartDeviceLink/SDLTimer.m +++ b/SmartDeviceLink/SDLTimer.m @@ -4,6 +4,8 @@ #import "SDLTimer.h" +NS_ASSUME_NONNULL_BEGIN + @protocol SDLTimerTargetDelegate - (void)timerElapsed; @@ -37,9 +39,9 @@ - (void)timerElapsed { @interface SDLTimer () -@property (strong) NSTimer *timer; -@property (assign) BOOL timerRunning; -@property (nonatomic) BOOL repeat; +@property (strong, nonatomic, nullable) NSTimer *timer; +@property (assign, nonatomic) BOOL timerRunning; +@property (assign, nonatomic) BOOL repeat; @end @@ -67,6 +69,10 @@ - (instancetype)initWithDuration:(float)duration repeat:(BOOL)repeat { return self; } +- (void)dealloc { + [self cancel]; +} + - (void)start { if (self.duration > 0) { [self stopAndDestroyTimer]; @@ -104,8 +110,6 @@ - (void)stopAndDestroyTimer { } } -- (void)dealloc { - [self cancel]; -} - @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTimerMode.h b/SmartDeviceLink/SDLTimerMode.h index f625f6636..fddbbb66a 100644 --- a/SmartDeviceLink/SDLTimerMode.h +++ b/SmartDeviceLink/SDLTimerMode.h @@ -4,14 +4,8 @@ #import "SDLEnum.h" -@interface SDLTimerMode : SDLEnum { -} +typedef SDLEnum SDLTimerMode SDL_SWIFT_ENUM; -+ (SDLTimerMode *)valueOf:(NSString *)value; -+ (NSArray *)values; - -+ (SDLTimerMode *)UP; -+ (SDLTimerMode *)DOWN; -+ (SDLTimerMode *)NONE; - -@end +extern SDLTimerMode const SDLTimerModeUp; +extern SDLTimerMode const SDLTimerModeDown; +extern SDLTimerMode const SDLTimerModeNone; diff --git a/SmartDeviceLink/SDLTimerMode.m b/SmartDeviceLink/SDLTimerMode.m index 5787a2eb4..c5b353465 100644 --- a/SmartDeviceLink/SDLTimerMode.m +++ b/SmartDeviceLink/SDLTimerMode.m @@ -4,53 +4,6 @@ #import "SDLTimerMode.h" -SDLTimerMode *SDLTimerMode_UP = nil; -SDLTimerMode *SDLTimerMode_DOWN = nil; -SDLTimerMode *SDLTimerMode_NONE = nil; - -NSArray *SDLTimerMode_values = nil; - -@implementation SDLTimerMode - -+ (SDLTimerMode *)valueOf:(NSString *)value { - for (SDLTimerMode *item in SDLTimerMode.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLTimerMode_values == nil) { - SDLTimerMode_values = @[ - SDLTimerMode.UP, - SDLTimerMode.DOWN, - SDLTimerMode.NONE, - ]; - } - return SDLTimerMode_values; -} - -+ (SDLTimerMode *)UP { - if (SDLTimerMode_UP == nil) { - SDLTimerMode_UP = [[SDLTimerMode alloc] initWithValue:@"UP"]; - } - return SDLTimerMode_UP; -} - -+ (SDLTimerMode *)DOWN { - if (SDLTimerMode_DOWN == nil) { - SDLTimerMode_DOWN = [[SDLTimerMode alloc] initWithValue:@"DOWN"]; - } - return SDLTimerMode_DOWN; -} - -+ (SDLTimerMode *)NONE { - if (SDLTimerMode_NONE == nil) { - SDLTimerMode_NONE = [[SDLTimerMode alloc] initWithValue:@"NONE"]; - } - return SDLTimerMode_NONE; -} - -@end +SDLTimerMode const SDLTimerModeUp = @"UP"; +SDLTimerMode const SDLTimerModeDown = @"DOWN"; +SDLTimerMode const SDLTimerModeNone = @"NONE"; diff --git a/SmartDeviceLink/SDLTireStatus.h b/SmartDeviceLink/SDLTireStatus.h index 9ebd68d8e..51e3a9db0 100644 --- a/SmartDeviceLink/SDLTireStatus.h +++ b/SmartDeviceLink/SDLTireStatus.h @@ -3,22 +3,22 @@ #import "SDLRPCMessage.h" -@class SDLSingleTireStatus; -@class SDLWarningLightStatus; +#import "SDLWarningLightStatus.h" +@class SDLSingleTireStatus; -@interface SDLTireStatus : SDLRPCStruct { -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLTireStatus : SDLRPCStruct -@property (strong) SDLWarningLightStatus *pressureTelltale; -@property (strong) SDLSingleTireStatus *leftFront; -@property (strong) SDLSingleTireStatus *rightFront; -@property (strong) SDLSingleTireStatus *leftRear; -@property (strong) SDLSingleTireStatus *rightRear; -@property (strong) SDLSingleTireStatus *innerLeftRear; -@property (strong) SDLSingleTireStatus *innerRightRear; +@property (strong, nonatomic) SDLWarningLightStatus pressureTelltale; +@property (strong, nonatomic) SDLSingleTireStatus *leftFront; +@property (strong, nonatomic) SDLSingleTireStatus *rightFront; +@property (strong, nonatomic) SDLSingleTireStatus *leftRear; +@property (strong, nonatomic) SDLSingleTireStatus *rightRear; +@property (strong, nonatomic) SDLSingleTireStatus *innerLeftRear; +@property (strong, nonatomic) SDLSingleTireStatus *innerRightRear; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTireStatus.m b/SmartDeviceLink/SDLTireStatus.m index c2768565a..aad17cdde 100644 --- a/SmartDeviceLink/SDLTireStatus.m +++ b/SmartDeviceLink/SDLTireStatus.m @@ -3,142 +3,70 @@ #import "SDLTireStatus.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" #import "SDLSingleTireStatus.h" -#import "SDLWarningLightStatus.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLTireStatus -- (instancetype)init { - if (self = [super init]) { - } - return self; +- (void)setPressureTelltale:(SDLWarningLightStatus)pressureTelltale { + [store sdl_setObject:pressureTelltale forName:SDLNamePressureTelltale]; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (void)setPressureTelltale:(SDLWarningLightStatus *)pressureTelltale { - if (pressureTelltale != nil) { - [store setObject:pressureTelltale forKey:NAMES_pressureTelltale]; - } else { - [store removeObjectForKey:NAMES_pressureTelltale]; - } -} - -- (SDLWarningLightStatus *)pressureTelltale { - NSObject *obj = [store objectForKey:NAMES_pressureTelltale]; - if (obj == nil || [obj isKindOfClass:SDLWarningLightStatus.class]) { - return (SDLWarningLightStatus *)obj; - } else { - return [SDLWarningLightStatus valueOf:(NSString *)obj]; - } +- (SDLWarningLightStatus)pressureTelltale { + return [store sdl_objectForName:SDLNamePressureTelltale]; } - (void)setLeftFront:(SDLSingleTireStatus *)leftFront { - if (leftFront != nil) { - [store setObject:leftFront forKey:NAMES_leftFront]; - } else { - [store removeObjectForKey:NAMES_leftFront]; - } + [store sdl_setObject:leftFront forName:SDLNameLeftFront]; } - (SDLSingleTireStatus *)leftFront { - NSObject *obj = [store objectForKey:NAMES_leftFront]; - if (obj == nil || [obj isKindOfClass:SDLSingleTireStatus.class]) { - return (SDLSingleTireStatus *)obj; - } else { - return [[SDLSingleTireStatus alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } + return [store sdl_objectForName:SDLNameLeftFront ofClass:SDLSingleTireStatus.class]; } - (void)setRightFront:(SDLSingleTireStatus *)rightFront { - if (rightFront != nil) { - [store setObject:rightFront forKey:NAMES_rightFront]; - } else { - [store removeObjectForKey:NAMES_rightFront]; - } + [store sdl_setObject:rightFront forName:SDLNameRightFront]; } - (SDLSingleTireStatus *)rightFront { - NSObject *obj = [store objectForKey:NAMES_rightFront]; - if (obj == nil || [obj isKindOfClass:SDLSingleTireStatus.class]) { - return (SDLSingleTireStatus *)obj; - } else { - return [[SDLSingleTireStatus alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } + return [store sdl_objectForName:SDLNameRightFront ofClass:SDLSingleTireStatus.class]; } - (void)setLeftRear:(SDLSingleTireStatus *)leftRear { - if (leftRear != nil) { - [store setObject:leftRear forKey:NAMES_leftRear]; - } else { - [store removeObjectForKey:NAMES_leftRear]; - } + [store sdl_setObject:leftRear forName:SDLNameLeftRear]; } - (SDLSingleTireStatus *)leftRear { - NSObject *obj = [store objectForKey:NAMES_leftRear]; - if (obj == nil || [obj isKindOfClass:SDLSingleTireStatus.class]) { - return (SDLSingleTireStatus *)obj; - } else { - return [[SDLSingleTireStatus alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } + return [store sdl_objectForName:SDLNameLeftRear ofClass:SDLSingleTireStatus.class]; } - (void)setRightRear:(SDLSingleTireStatus *)rightRear { - if (rightRear != nil) { - [store setObject:rightRear forKey:NAMES_rightRear]; - } else { - [store removeObjectForKey:NAMES_rightRear]; - } + [store sdl_setObject:rightRear forName:SDLNameRightRear]; } - (SDLSingleTireStatus *)rightRear { - NSObject *obj = [store objectForKey:NAMES_rightRear]; - if (obj == nil || [obj isKindOfClass:SDLSingleTireStatus.class]) { - return (SDLSingleTireStatus *)obj; - } else { - return [[SDLSingleTireStatus alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } + return [store sdl_objectForName:SDLNameRightRear ofClass:SDLSingleTireStatus.class]; } - (void)setInnerLeftRear:(SDLSingleTireStatus *)innerLeftRear { - if (innerLeftRear != nil) { - [store setObject:innerLeftRear forKey:NAMES_innerLeftRear]; - } else { - [store removeObjectForKey:NAMES_innerLeftRear]; - } + [store sdl_setObject:innerLeftRear forName:SDLNameInnerLeftRear]; } - (SDLSingleTireStatus *)innerLeftRear { - NSObject *obj = [store objectForKey:NAMES_innerLeftRear]; - if (obj == nil || [obj isKindOfClass:SDLSingleTireStatus.class]) { - return (SDLSingleTireStatus *)obj; - } else { - return [[SDLSingleTireStatus alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } + return [store sdl_objectForName:SDLNameInnerLeftRear ofClass:SDLSingleTireStatus.class]; } - (void)setInnerRightRear:(SDLSingleTireStatus *)innerRightRear { - if (innerRightRear != nil) { - [store setObject:innerRightRear forKey:NAMES_innerRightRear]; - } else { - [store removeObjectForKey:NAMES_innerRightRear]; - } + [store sdl_setObject:innerRightRear forName:SDLNameInnerRightRear]; } - (SDLSingleTireStatus *)innerRightRear { - NSObject *obj = [store objectForKey:NAMES_innerRightRear]; - if (obj == nil || [obj isKindOfClass:SDLSingleTireStatus.class]) { - return (SDLSingleTireStatus *)obj; - } else { - return [[SDLSingleTireStatus alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } + return [store sdl_objectForName:SDLNameInnerRightRear ofClass:SDLSingleTireStatus.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTouch.h b/SmartDeviceLink/SDLTouch.h index d56cea961..cead4adb2 100644 --- a/SmartDeviceLink/SDLTouch.h +++ b/SmartDeviceLink/SDLTouch.h @@ -62,4 +62,4 @@ NS_ASSUME_NONNULL_BEGIN @end -NS_ASSUME_NONNULL_END \ No newline at end of file +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTouch.m b/SmartDeviceLink/SDLTouch.m index 97e7e3d0c..ca1d06441 100644 --- a/SmartDeviceLink/SDLTouch.m +++ b/SmartDeviceLink/SDLTouch.m @@ -60,4 +60,4 @@ - (BOOL)isSecondFinger { @end -NS_ASSUME_NONNULL_END \ No newline at end of file +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTouchCoord.h b/SmartDeviceLink/SDLTouchCoord.h index 63515811f..156511585 100644 --- a/SmartDeviceLink/SDLTouchCoord.h +++ b/SmartDeviceLink/SDLTouchCoord.h @@ -4,13 +4,13 @@ #import "SDLRPCMessage.h" -@interface SDLTouchCoord : SDLRPCStruct { -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLTouchCoord : SDLRPCStruct -@property (strong) NSNumber *x; -@property (strong) NSNumber *y; +@property (strong, nonatomic) NSNumber *x; +@property (strong, nonatomic) NSNumber *y; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTouchCoord.m b/SmartDeviceLink/SDLTouchCoord.m index 78895696f..bba5b593c 100644 --- a/SmartDeviceLink/SDLTouchCoord.m +++ b/SmartDeviceLink/SDLTouchCoord.m @@ -4,44 +4,29 @@ #import "SDLTouchCoord.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -@implementation SDLTouchCoord - -- (instancetype)init { - if (self = [super init]) { - } - return self; -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} +@implementation SDLTouchCoord -- (void)setX:(NSNumber *)x { - if (x != nil) { - [store setObject:x forKey:NAMES_x]; - } else { - [store removeObjectForKey:NAMES_x]; - } +- (void)setX:(NSNumber *)x { + [store sdl_setObject:x forName:SDLNameX]; } -- (NSNumber *)x { - return [store objectForKey:NAMES_x]; +- (NSNumber *)x { + return [store sdl_objectForName:SDLNameX]; } -- (void)setY:(NSNumber *)y { - if (y != nil) { - [store setObject:y forKey:NAMES_y]; - } else { - [store removeObjectForKey:NAMES_y]; - } +- (void)setY:(NSNumber *)y { + [store sdl_setObject:y forName:SDLNameY]; } -- (NSNumber *)y { - return [store objectForKey:NAMES_y]; +- (NSNumber *)y { + return [store sdl_objectForName:SDLNameY]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTouchEvent.h b/SmartDeviceLink/SDLTouchEvent.h index 01af99b98..56a6dc6d5 100644 --- a/SmartDeviceLink/SDLTouchEvent.h +++ b/SmartDeviceLink/SDLTouchEvent.h @@ -4,11 +4,11 @@ #import "SDLRPCMessage.h" -@interface SDLTouchEvent : SDLRPCStruct { -} +@class SDLTouchCoord; -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLTouchEvent : SDLRPCStruct /** A touch's unique identifier. The application can track the current touch events by id. @@ -17,7 +17,7 @@ Mandatory, 0-9 */ -@property (strong) NSNumber *touchEventId; +@property (strong, nonatomic) NSNumber *touchEventId; /** 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. @@ -30,11 +30,13 @@ Mandatory, array size 1-1000, contains size 0-5000000000 */ -@property (strong) NSMutableArray *timeStamp; +@property (strong, nonatomic) NSArray *> *timeStamp; /** * Mandatory, array size 1-1000, contains SDLTouchCoord */ -@property (strong) NSMutableArray *coord; +@property (strong, nonatomic) NSArray *coord; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTouchEvent.m b/SmartDeviceLink/SDLTouchEvent.m index 0a5e6f01c..7ff82b3c7 100644 --- a/SmartDeviceLink/SDLTouchEvent.m +++ b/SmartDeviceLink/SDLTouchEvent.m @@ -4,68 +4,38 @@ #import "SDLTouchEvent.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" #import "SDLTouchCoord.h" -@implementation SDLTouchEvent - -- (instancetype)init { - if (self = [super init]) { - } - return self; -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} +@implementation SDLTouchEvent -- (void)setTouchEventId:(NSNumber *)touchEventId { - if (touchEventId != nil) { - [store setObject:touchEventId forKey:NAMES_id]; - } else { - [store removeObjectForKey:NAMES_id]; - } +- (void)setTouchEventId:(NSNumber *)touchEventId { + [store sdl_setObject:touchEventId forName:SDLNameId]; } -- (NSNumber *)touchEventId { - return [store objectForKey:NAMES_id]; +- (NSNumber *)touchEventId { + return [store sdl_objectForName:SDLNameId]; } -- (void)setTimeStamp:(NSMutableArray *)timeStamp { - if (timeStamp != nil) { - [store setObject:timeStamp forKey:NAMES_ts]; - } else { - [store removeObjectForKey:NAMES_ts]; - } +- (void)setTimeStamp:(NSArray *> *)timeStamp { + [store sdl_setObject:timeStamp forName:SDLNameTimestamp]; } -- (NSMutableArray *)timeStamp { - return [store objectForKey:NAMES_ts]; +- (NSArray *> *)timeStamp { + return [store sdl_objectForName:SDLNameTimestamp]; } -- (void)setCoord:(NSMutableArray *)coord { - if (coord != nil) { - [store setObject:coord forKey:NAMES_c]; - } else { - [store removeObjectForKey:NAMES_c]; - } +- (void)setCoord:(NSArray *)coord { + [store sdl_setObject:coord forName:SDLNameCoordinate]; } -- (NSMutableArray *)coord { - NSMutableArray *array = [store objectForKey:NAMES_c]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTouchCoord.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLTouchCoord alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (NSArray *)coord { + return [store sdl_objectsForName:SDLNameCoordinate ofClass:SDLTouchCoord.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTouchEventCapabilities.h b/SmartDeviceLink/SDLTouchEventCapabilities.h index 6d346d874..87bb68bf4 100644 --- a/SmartDeviceLink/SDLTouchEventCapabilities.h +++ b/SmartDeviceLink/SDLTouchEventCapabilities.h @@ -4,14 +4,14 @@ #import "SDLRPCMessage.h" -@interface SDLTouchEventCapabilities : SDLRPCStruct { -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLTouchEventCapabilities : SDLRPCStruct -@property (strong) NSNumber *pressAvailable; -@property (strong) NSNumber *multiTouchAvailable; -@property (strong) NSNumber *doublePressAvailable; +@property (strong, nonatomic) NSNumber *pressAvailable; +@property (strong, nonatomic) NSNumber *multiTouchAvailable; +@property (strong, nonatomic) NSNumber *doublePressAvailable; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTouchEventCapabilities.m b/SmartDeviceLink/SDLTouchEventCapabilities.m index 4fc71cfec..cf019dc22 100644 --- a/SmartDeviceLink/SDLTouchEventCapabilities.m +++ b/SmartDeviceLink/SDLTouchEventCapabilities.m @@ -4,56 +4,37 @@ #import "SDLTouchEventCapabilities.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -@implementation SDLTouchEventCapabilities - -- (instancetype)init { - if (self = [super init]) { - } - return self; -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} +@implementation SDLTouchEventCapabilities -- (void)setPressAvailable:(NSNumber *)pressAvailable { - if (pressAvailable != nil) { - [store setObject:pressAvailable forKey:NAMES_pressAvailable]; - } else { - [store removeObjectForKey:NAMES_pressAvailable]; - } +- (void)setPressAvailable:(NSNumber *)pressAvailable { + [store sdl_setObject:pressAvailable forName:SDLNamePressAvailable]; } -- (NSNumber *)pressAvailable { - return [store objectForKey:NAMES_pressAvailable]; +- (NSNumber *)pressAvailable { + return [store sdl_objectForName:SDLNamePressAvailable]; } -- (void)setMultiTouchAvailable:(NSNumber *)multiTouchAvailable { - if (multiTouchAvailable != nil) { - [store setObject:multiTouchAvailable forKey:NAMES_multiTouchAvailable]; - } else { - [store removeObjectForKey:NAMES_multiTouchAvailable]; - } +- (void)setMultiTouchAvailable:(NSNumber *)multiTouchAvailable { + [store sdl_setObject:multiTouchAvailable forName:SDLNameMultiTouchAvailable]; } -- (NSNumber *)multiTouchAvailable { - return [store objectForKey:NAMES_multiTouchAvailable]; +- (NSNumber *)multiTouchAvailable { + return [store sdl_objectForName:SDLNameMultiTouchAvailable]; } -- (void)setDoublePressAvailable:(NSNumber *)doublePressAvailable { - if (doublePressAvailable != nil) { - [store setObject:doublePressAvailable forKey:NAMES_doublePressAvailable]; - } else { - [store removeObjectForKey:NAMES_doublePressAvailable]; - } +- (void)setDoublePressAvailable:(NSNumber *)doublePressAvailable { + [store sdl_setObject:doublePressAvailable forName:SDLNameDoublePressAvailable]; } -- (NSNumber *)doublePressAvailable { - return [store objectForKey:NAMES_doublePressAvailable]; +- (NSNumber *)doublePressAvailable { + return [store sdl_objectForName:SDLNameDoublePressAvailable]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTouchManager.h b/SmartDeviceLink/SDLTouchManager.h index 3c68f70d4..8cf417a2c 100644 --- a/SmartDeviceLink/SDLTouchManager.h +++ b/SmartDeviceLink/SDLTouchManager.h @@ -6,21 +6,37 @@ // Copyright © 2016 smartdevicelink. All rights reserved. // -#import "SDLTouchManagerDelegate.h" #import +#import "SDLTouchType.h" + +@protocol SDLHapticHitTester; +@protocol SDLTouchManagerDelegate; + +@class SDLTouch; + NS_ASSUME_NONNULL_BEGIN +typedef void(^SDLTouchEventHandler)(SDLTouch *touch, SDLTouchType type); + + @interface SDLTouchManager : NSObject +/** + Notified of processed touches such as pinches, pans, and taps + */ @property (nonatomic, weak, nullable) id touchEventDelegate; /** * @abstract - * Distance between two taps on the screen, in the head unit's coordinate system, used - * for registering double-tap callbacks. - * @remark - * Default is 50 pixels. + * Returns all OnTouchEvent notifications as SDLTouch and SDLTouchType objects. + */ +@property (copy, nonatomic, nullable) SDLTouchEventHandler touchEventHandler; + +/** + Distance between two taps on the screen, in the head unit's coordinate system, used for registering double-tap callbacks. + + @note Defaults to 50 px. */ @property (nonatomic, assign) CGFloat tapDistanceThreshold; @@ -58,6 +74,16 @@ NS_ASSUME_NONNULL_BEGIN */ - (void)cancelPendingTouches; +- (instancetype)init NS_UNAVAILABLE; + +/** + Initialize a touch manager with a hit tester if available + + @param hitTester The hit tester to be used to correlate a point with a view + @return The initialized touch manager + */ +- (instancetype)initWithHitTester:(nullable id)hitTester; + @end -NS_ASSUME_NONNULL_END \ No newline at end of file +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTouchManager.m b/SmartDeviceLink/SDLTouchManager.m index f0b2e495c..4c9417961 100644 --- a/SmartDeviceLink/SDLTouchManager.m +++ b/SmartDeviceLink/SDLTouchManager.m @@ -11,14 +11,18 @@ #import "CGPoint_Util.h" #import "dispatch_timer.h" -#import "SDLDebugTool.h" +#import "SDLFocusableItemHitTester.h" +#import "SDLLogMacros.h" +#import "SDLNotificationConstants.h" #import "SDLOnTouchEvent.h" #import "SDLPinchGesture.h" #import "SDLProxyListener.h" +#import "SDLRPCNotificationNotification.h" #import "SDLTouch.h" #import "SDLTouchCoord.h" #import "SDLTouchEvent.h" -#import "SDLTouchType.h" +#import "SDLTouchManagerDelegate.h" + NS_ASSUME_NONNULL_BEGIN @@ -30,21 +34,21 @@ typedef NS_ENUM(NSUInteger, SDLPerformingTouchType) { }; /*! - * @abstract + * @abstract * Touch Manager will ignore touches that represent more than 2 fingers on the screen. */ static NSUInteger const MaximumNumberOfTouches = 2; -@interface SDLTouchManager () +@interface SDLTouchManager () /*! - * @abstract + * @abstract * First Touch received from onOnTouchEvent. */ @property (nonatomic, strong, nullable) SDLTouch *previousTouch; /*! - * @abstract + * @abstract * Cached previous single tap used for double tap detection. */ @property (nonatomic, strong, nullable) SDLTouch *singleTapTouch; @@ -73,21 +77,29 @@ @interface SDLTouchManager () */ @property (nonatomic, assign) SDLPerformingTouchType performingTouchType; +/** + A hit tester that allows us to check for a view based on coordinates, if available. + */ +@property (nonatomic, weak, nullable) id hitTester; + @end @implementation SDLTouchManager -- (instancetype)init { +- (instancetype)initWithHitTester:(nullable id)hitTester { self = [super init]; if (!self) { return nil; } + _hitTester = hitTester; _movementTimeThreshold = 0.05f; _tapTimeThreshold = 0.4f; _tapDistanceThreshold = 50.0f; _touchEnabled = YES; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sdl_onTouchEvent:) name:SDLDidReceiveTouchEventNotification object:nil]; + return self; } @@ -96,80 +108,91 @@ - (void)cancelPendingTouches { [self sdl_cancelSingleTapTimer]; } -#pragma mark - SDLProxyListener Delegate -- (void)onProxyOpened { -} -- (void)onProxyClosed { -} -- (void)onOnHMIStatus:(SDLOnHMIStatus *)notification { -} -- (void)onOnDriverDistraction:(SDLOnDriverDistraction *)notification { -} +#pragma mark - SDLDidReceiveTouchEventNotification -- (void)onOnTouchEvent:(SDLOnTouchEvent *)notification { - if (!self.isTouchEnabled) { +/** + * Handles detecting the type and state of the gesture and notifies the appropriate delegate callbacks. + + * @param notification A SDLOnTouchEvent notification. + */ +- (void)sdl_onTouchEvent:(SDLRPCNotificationNotification *)notification { + if (!self.isTouchEnabled + || (!self.touchEventHandler && !self.touchEventDelegate) + || ![notification.notification isKindOfClass:SDLOnTouchEvent.class]) { return; } - SDLTouchEvent *touchEvent = notification.event.firstObject; + SDLOnTouchEvent* onTouchEvent = (SDLOnTouchEvent*)notification.notification; + SDLTouchType touchType = onTouchEvent.type; + SDLTouchEvent *touchEvent = onTouchEvent.event.firstObject; SDLTouch *touch = [[SDLTouch alloc] initWithTouchEvent:touchEvent]; - if (touch.identifier > MaximumNumberOfTouches) { + if (self.touchEventHandler) { + self.touchEventHandler(touch, touchType); + } + + if (!self.touchEventDelegate || (touch.identifier > MaximumNumberOfTouches)) { return; } - if ([notification.type isEqualToEnum:SDLTouchType.BEGIN]) { + if ([onTouchEvent.type isEqualToEnum:SDLTouchTypeBegin]) { [self sdl_handleTouchBegan:touch]; - } else if ([notification.type isEqualToEnum:SDLTouchType.MOVE]) { + } else if ([onTouchEvent.type isEqualToEnum:SDLTouchTypeMove]) { [self sdl_handleTouchMoved:touch]; - } else if ([notification.type isEqualToEnum:SDLTouchType.END]) { + } else if ([onTouchEvent.type isEqualToEnum:SDLTouchTypeEnd]) { [self sdl_handleTouchEnded:touch]; + } else if ([onTouchEvent.type isEqualToEnum:SDLTouchTypeCancel]) { + [self sdl_handleTouchCanceled:touch]; } } #pragma mark - Private +/** + * Handles a BEGIN touch event sent by Core + * + * @param touch Gesture information + */ - (void)sdl_handleTouchBegan:(SDLTouch *)touch { - if (!touch.isFirstFinger && !self.isTouchEnabled) { - return; // no-op - } - _performingTouchType = SDLPerformingTouchTypeSingleTouch; switch (touch.identifier) { - case SDLTouchIdentifierFirstFinger: + case SDLTouchIdentifierFirstFinger: { self.previousTouch = touch; - break; - case SDLTouchIdentifierSecondFinger: + } break; + case SDLTouchIdentifierSecondFinger: { _performingTouchType = SDLPerformingTouchTypeMultiTouch; - self.currentPinchGesture = [[SDLPinchGesture alloc] initWithFirstTouch:self.previousTouch - secondTouch:touch]; + self.currentPinchGesture = [[SDLPinchGesture alloc] initWithFirstTouch:self.previousTouch secondTouch:touch]; self.previousPinchDistance = self.currentPinchGesture.distance; - if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:pinchDidStartAtCenterPoint:)]) { - [self.touchEventDelegate touchManager:self - pinchDidStartAtCenterPoint:self.currentPinchGesture.center]; + 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]; } - break; + } break; } } +/** + * Handles a MOVE touch event sent by Core + * + * @param touch Gesture information + */ - (void)sdl_handleTouchMoved:(SDLTouch *)touch { - if ((touch.timeStamp - self.previousTouch.timeStamp) <= (self.movementTimeThreshold * NSEC_PER_USEC) || !self.isTouchEnabled) { + if ((touch.timeStamp - self.previousTouch.timeStamp) <= (self.movementTimeThreshold * NSEC_PER_USEC)) { return; // no-op } switch (self.performingTouchType) { - case SDLPerformingTouchTypeMultiTouch: + case SDLPerformingTouchTypeMultiTouch: { switch (touch.identifier) { - case SDLTouchIdentifierFirstFinger: + case SDLTouchIdentifierFirstFinger: { self.currentPinchGesture.firstTouch = touch; - break; - case SDLTouchIdentifierSecondFinger: + } break; + case SDLTouchIdentifierSecondFinger: { self.currentPinchGesture.secondTouch = touch; - break; + } break; } - if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:didReceivePinchAtCenterPoint:withScale:)]) { CGFloat scale = self.currentPinchGesture.distance / self.previousPinchDistance; [self.touchEventDelegate touchManager:self @@ -178,63 +201,57 @@ - (void)sdl_handleTouchMoved:(SDLTouch *)touch { } self.previousPinchDistance = self.currentPinchGesture.distance; - break; - case SDLPerformingTouchTypeSingleTouch: + } break; + case SDLPerformingTouchTypeSingleTouch: { _performingTouchType = SDLPerformingTouchTypePanningTouch; - if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:panningDidStartAtPoint:)]) { - [self.touchEventDelegate touchManager:self - panningDidStartAtPoint:touch.location]; + 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]; } - break; - case SDLPerformingTouchTypePanningTouch: + } break; + case SDLPerformingTouchTypePanningTouch: { if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:didReceivePanningFromPoint:toPoint:)]) { [self.touchEventDelegate touchManager:self didReceivePanningFromPoint:self.previousTouch.location toPoint:touch.location]; } - break; - case SDLPerformingTouchTypeNone: - break; + } break; + case SDLPerformingTouchTypeNone: break; } self.previousTouch = touch; } +/** + * Handles a END touch type notification sent by Core + * + * @param touch Gesture information + */ - (void)sdl_handleTouchEnded:(SDLTouch *)touch { - if (!self.isTouchEnabled) { - return; // no-op - } - switch (self.performingTouchType) { - case SDLPerformingTouchTypeMultiTouch: - switch (touch.identifier) { - case SDLTouchIdentifierFirstFinger: - self.currentPinchGesture.firstTouch = touch; - break; - case SDLTouchIdentifierSecondFinger: - self.currentPinchGesture.secondTouch = touch; - break; - } - + case SDLPerformingTouchTypeMultiTouch: { + [self sdl_setMultiTouchFingerTouchForTouch:touch]; if (self.currentPinchGesture.isValid) { - if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:pinchDidEndAtCenterPoint:)]) { - [self.touchEventDelegate touchManager:self - pinchDidEndAtCenterPoint:self.currentPinchGesture.center]; + 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; } - break; - case SDLPerformingTouchTypePanningTouch: - if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:panningDidEndAtPoint:)]) { - [self.touchEventDelegate touchManager:self - panningDidEndAtPoint:touch.location]; + } 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]; } - break; - case SDLPerformingTouchTypeSingleTouch: - if (self.singleTapTimer == nil) { // Initial Tap + } break; + case SDLPerformingTouchTypeSingleTouch: { + if (self.singleTapTimer == nil) { + // Initial Tap self.singleTapTouch = touch; [self sdl_initializeSingleTapTimerAtPoint:self.singleTapTouch.location]; - } else { // Double Tap + } else { + // Double Tap [self sdl_cancelSingleTapTimer]; NSUInteger timeStampDelta = touch.timeStamp - self.singleTapTouch.timeStamp; @@ -244,35 +261,99 @@ - (void)sdl_handleTouchEnded:(SDLTouch *)touch { if (timeStampDelta <= self.tapTimeThreshold * NSEC_PER_USEC && xDelta <= self.tapDistanceThreshold && yDelta <= self.tapDistanceThreshold) { CGPoint centerPoint = CGPointCenterOfPoints(touch.location, self.singleTapTouch.location); - if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:didReceiveDoubleTapAtPoint:)]) { - [self.touchEventDelegate touchManager:self - didReceiveDoubleTapAtPoint:centerPoint]; + 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]; } } self.singleTapTouch = nil; } - break; - case SDLPerformingTouchTypeNone: - break; + } break; + case SDLPerformingTouchTypeNone: break; } + self.previousTouch = nil; _performingTouchType = SDLPerformingTouchTypeNone; } +/** + * Handles a CANCEL touch event sent by CORE. A CANCEL touch event is sent when a gesture is interrupted during a video stream. This can happen when a system dialog box appears on the screen, such as when the user is alerted about an incoming phone call. + * + * Pinch and pan gesture subscribers are notified if the gesture is canceled. Tap gestures are simply canceled without notification. + * + * @param touch Gesture information + */ +- (void)sdl_handleTouchCanceled:(SDLTouch *)touch { + if (self.singleTapTimer != nil) { + // Cancel any ongoing single tap timer + [self sdl_cancelSingleTapTimer]; + self.singleTapTouch = nil; + } + + switch (self.performingTouchType) { + case SDLPerformingTouchTypeMultiTouch: { + [self sdl_setMultiTouchFingerTouchForTouch:touch]; + if (self.currentPinchGesture.isValid) { + if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:pinchCanceledAtCenterPoint:)]) { + [self.touchEventDelegate touchManager:self + pinchCanceledAtCenterPoint:self.currentPinchGesture.center]; + } + self.currentPinchGesture = nil; + } + } break; + case SDLPerformingTouchTypePanningTouch: { + if ([self.touchEventDelegate respondsToSelector:@selector(touchManager:panningCanceledAtPoint:)]) { + [self.touchEventDelegate touchManager:self + panningCanceledAtPoint:touch.location]; + } + } break; + case SDLPerformingTouchTypeSingleTouch: // fallthrough + case SDLPerformingTouchTypeNone: break; + } + + self.previousTouch = nil; + _performingTouchType = SDLPerformingTouchTypeNone; +} + +/** + * Saves the pinch touch gesture to the correct finger + * + * @param touch Gesture information + */ +- (void)sdl_setMultiTouchFingerTouchForTouch:(SDLTouch *)touch { + switch (touch.identifier) { + case SDLTouchIdentifierFirstFinger: { + self.currentPinchGesture.firstTouch = touch; + } break; + case SDLTouchIdentifierSecondFinger: { + self.currentPinchGesture.secondTouch = touch; + } break; + } +} + +/** + * Creates a timer used to detect the type of tap gesture (single or double tap) + * + * @param point Screen coordinates of the tap gesture + */ - (void)sdl_initializeSingleTapTimerAtPoint:(CGPoint)point { __weak typeof(self) weakSelf = self; self.singleTapTimer = dispatch_create_timer(self.tapTimeThreshold, NO, ^{ + // If timer was not canceled by a second tap then only one tap detected typeof(weakSelf) strongSelf = weakSelf; strongSelf.singleTapTouch = nil; [strongSelf sdl_cancelSingleTapTimer]; - if ([strongSelf.touchEventDelegate respondsToSelector:@selector(touchManager:didReceiveSingleTapAtPoint:)]) { - [strongSelf.touchEventDelegate touchManager:strongSelf - didReceiveSingleTapAtPoint:point]; + 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]; } }); } +/** + * Cancels a tap gesture timer + */ - (void)sdl_cancelSingleTapTimer { if (self.singleTapTimer == NULL) { return; @@ -283,4 +364,4 @@ - (void)sdl_cancelSingleTapTimer { @end -NS_ASSUME_NONNULL_END \ No newline at end of file +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTouchManagerDelegate.h b/SmartDeviceLink/SDLTouchManagerDelegate.h index 924780612..29f53bc02 100644 --- a/SmartDeviceLink/SDLTouchManagerDelegate.h +++ b/SmartDeviceLink/SDLTouchManagerDelegate.h @@ -17,67 +17,66 @@ NS_ASSUME_NONNULL_BEGIN @optional /** - * @abstract - * Single tap was received. - * @param manager - * Current initalized SDLTouchManager issuing the callback. - * @param point - * Location of the single tap in the head unit's coordinate system. + A single tap was received + + @param manager The SDLTouchManager issuing the callback + @param view The view under the touch if it could be determined + @param point The point at which the touch occurred in the head unit's coordinate system */ -- (void)touchManager:(SDLTouchManager *)manager didReceiveSingleTapAtPoint:(CGPoint)point; +- (void)touchManager:(SDLTouchManager *)manager didReceiveSingleTapForView:(UIView *_Nullable)view atPoint:(CGPoint)point; /** - * @abstract - * Double tap was received. - * @param manager - * Current initalized SDLTouchManager issuing the callback. - * @param point - * Location of the double tap in the head unit's coordinate system. This is the - * average of the first and second tap. + A double tap was received + + @param manager The SDLTouchManager issuing the callback + @param view The view under the touch if it could be determined + @param point Location of the double tap in the head unit's coordinate system. This is the average of the first and second tap. */ -- (void)touchManager:(SDLTouchManager *)manager didReceiveDoubleTapAtPoint:(CGPoint)point; +- (void)touchManager:(SDLTouchManager *)manager didReceiveDoubleTapForView:(UIView *_Nullable)view atPoint:(CGPoint)point; /** - * @abstract - * Panning did start. - * @param manager - * Current initalized SDLTouchManager issuing the callback. - * @param point - * Location of the panning start point in the head unit's coordinate system. + Panning started + + @param manager The SDLTouchManager issuing the callback + @param view The view under where the panning started if it could be determined + @param point Location of the panning start point in the head unit's coordinate system. */ -- (void)touchManager:(SDLTouchManager *)manager panningDidStartAtPoint:(CGPoint)point; +- (void)touchManager:(SDLTouchManager *)manager panningDidStartInView:(UIView *_Nullable)view atPoint:(CGPoint)point; /** - * @abstract - * Panning did move. - * @param manager - * Current initalized SDLTouchManager issuing the callback. - * @param fromPoint - * Location of the panning's previous point in the head unit's coordinate system. - * @param toPoint - * Location of the panning's new point in the head unit's coordinate system. + Panning moved between points + + @param manager The SDLTouchManager issuing the callback + @param fromPoint Location of the panning's previous point in the head unit's coordinate system + @param toPoint Location of the panning's new point in the head unit's coordinate system */ - (void)touchManager:(SDLTouchManager *)manager didReceivePanningFromPoint:(CGPoint)fromPoint toPoint:(CGPoint)toPoint; /** - * @abstract - * Panning did end. - * @param manager - * Current initalized SDLTouchManager issuing the callback. - * @param point - * Location of the panning's end point in the head unit's coordinate system. + Panning ended + + @param manager The SDLTouchManager issuing the callback + @param view The view under where the panning ended if it could be determined + @param point Location of the panning's end point in the head unit's coordinate system */ -- (void)touchManager:(SDLTouchManager *)manager panningDidEndAtPoint:(CGPoint)point; +- (void)touchManager:(SDLTouchManager *)manager panningDidEndInView:(UIView *_Nullable)view atPoint:(CGPoint)point; /** - * @abstract - * Pinch did start. - * @param manager - * Current initalized SDLTouchManager issuing the callback. - * @param point - * Center point of the pinch in the head unit's coordinate system. + Panning canceled + + @param manager The SDLTouchManager issuing the callback + @param point Location of the panning's end point in the head unit's coordinate system */ -- (void)touchManager:(SDLTouchManager *)manager pinchDidStartAtCenterPoint:(CGPoint)point; +- (void)touchManager:(SDLTouchManager *)manager panningCanceledAtPoint:(CGPoint)point; + +/** + Pinch did start + + @param manager The SDLTouchManager issuing the callback + @param view The view under the center of the pinch start + @param point Center point of the pinch in the head unit's coordinate system + */ +- (void)touchManager:(SDLTouchManager *)manager pinchDidStartInView:(UIView *_Nullable)view atCenterPoint:(CGPoint)point; /** * @abstract @@ -92,14 +91,31 @@ NS_ASSUME_NONNULL_BEGIN - (void)touchManager:(SDLTouchManager *)manager didReceivePinchAtCenterPoint:(CGPoint)point withScale:(CGFloat)scale; /** - * @abstract - * Pinch did end. - * @param manager - * Current initalized SDLTouchManager issuing the callback. - * @param point - * Center point of the pinch in the head unit's coordinate system. + Pinch moved and changed scale + + @param manager The SDLTouchManager issuing the callback + @param view The view under the center of the pinch + @param point Center point of the pinch in the head unit's coordinate system + @param scale Scale relative to the distance between touch points + */ +- (void)touchManager:(SDLTouchManager *)manager didReceivePinchInView:(UIView *_Nullable)view atCenterPoint:(CGPoint)point withScale:(CGFloat)scale; + +/** + Pinch did end + + @param manager The SDLTouchManager issuing the callback + @param view The view under the center of the pinch + @param point Center point of the pinch in the head unit's coordinate system + */ +- (void)touchManager:(SDLTouchManager *)manager pinchDidEndInView:(UIView *_Nullable)view atCenterPoint:(CGPoint)point; + +/** + Pinch canceled + + @param manager The SDLTouchManager issuing the callback + @param point Center point of the pinch in the head unit's coordinate system */ -- (void)touchManager:(SDLTouchManager *)manager pinchDidEndAtCenterPoint:(CGPoint)point; +- (void)touchManager:(SDLTouchManager *)manager pinchCanceledAtCenterPoint:(CGPoint)point; @end diff --git a/SmartDeviceLink/SDLTouchType.h b/SmartDeviceLink/SDLTouchType.h index 9c808b19f..e045294fd 100644 --- a/SmartDeviceLink/SDLTouchType.h +++ b/SmartDeviceLink/SDLTouchType.h @@ -4,15 +4,9 @@ #import "SDLEnum.h" -@interface SDLTouchType : SDLEnum { -} +typedef SDLEnum SDLTouchType SDL_SWIFT_ENUM; -+ (SDLTouchType *)valueOf:(NSString *)value; -+ (NSArray *)values; - -+ (SDLTouchType *)BEGIN; -+ (SDLTouchType *)MOVE; -+ (SDLTouchType *)END; -+ (SDLTouchType *)CANCEL; - -@end +extern SDLTouchType const SDLTouchTypeBegin; +extern SDLTouchType const SDLTouchTypeMove; +extern SDLTouchType const SDLTouchTypeEnd; +extern SDLTouchType const SDLTouchTypeCancel; diff --git a/SmartDeviceLink/SDLTouchType.m b/SmartDeviceLink/SDLTouchType.m index 54e813060..4637625bd 100644 --- a/SmartDeviceLink/SDLTouchType.m +++ b/SmartDeviceLink/SDLTouchType.m @@ -4,62 +4,7 @@ #import "SDLTouchType.h" -SDLTouchType *SDLTouchType_BEGIN = nil; -SDLTouchType *SDLTouchType_MOVE = nil; -SDLTouchType *SDLTouchType_END = nil; -SDLTouchType *SDLTouchType_CANCEL = nil; - -NSArray *SDLTouchType_values = nil; - -@implementation SDLTouchType - -+ (SDLTouchType *)valueOf:(NSString *)value { - for (SDLTouchType *item in SDLTouchType.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLTouchType_values == nil) { - SDLTouchType_values = @[ - SDLTouchType.BEGIN, - SDLTouchType.MOVE, - SDLTouchType.END, - SDLTouchType.CANCEL, - ]; - } - return SDLTouchType_values; -} - -+ (SDLTouchType *)BEGIN { - if (SDLTouchType_BEGIN == nil) { - SDLTouchType_BEGIN = [[SDLTouchType alloc] initWithValue:@"BEGIN"]; - } - return SDLTouchType_BEGIN; -} - -+ (SDLTouchType *)MOVE { - if (SDLTouchType_MOVE == nil) { - SDLTouchType_MOVE = [[SDLTouchType alloc] initWithValue:@"MOVE"]; - } - return SDLTouchType_MOVE; -} - -+ (SDLTouchType *)END { - if (SDLTouchType_END == nil) { - SDLTouchType_END = [[SDLTouchType alloc] initWithValue:@"END"]; - } - return SDLTouchType_END; -} - -+ (SDLTouchType *)CANCEL { - if (SDLTouchType_CANCEL == nil) { - SDLTouchType_CANCEL = [[SDLTouchType alloc] initWithValue:@"CANCEL"]; - } - return SDLTouchType_CANCEL; -} - -@end +SDLTouchType const SDLTouchTypeBegin = @"BEGIN"; +SDLTouchType const SDLTouchTypeMove = @"MOVE"; +SDLTouchType const SDLTouchTypeEnd = @"END"; +SDLTouchType const SDLTouchTypeCancel = @"CANCEL"; diff --git a/SmartDeviceLink/SDLTransportDelegate.h b/SmartDeviceLink/SDLTransportDelegate.h index 4f4abe33f..78d3d77c4 100644 --- a/SmartDeviceLink/SDLTransportDelegate.h +++ b/SmartDeviceLink/SDLTransportDelegate.h @@ -1,10 +1,14 @@ // SDLTransportDelegate.h // +NS_ASSUME_NONNULL_BEGIN + @protocol SDLTransportDelegate - (void)onTransportConnected; - (void)onTransportDisconnected; - (void)onDataReceived:(NSData *)receivedData; -@end \ No newline at end of file +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTriggerSource.h b/SmartDeviceLink/SDLTriggerSource.h index 36e646f17..b9fa626b4 100644 --- a/SmartDeviceLink/SDLTriggerSource.h +++ b/SmartDeviceLink/SDLTriggerSource.h @@ -9,38 +9,19 @@ * * @since SDL 1.0 */ -@interface SDLTriggerSource : SDLEnum { -} - -/** - * Convert String to SDLTriggerSource - * @param value The value of the string to get an object for - * @return SDLTriggerSource - */ -+ (SDLTriggerSource *)valueOf:(NSString *)value; - -/** - @abstract Store the enumeration of all possible SDLTriggerSource - @return an array that store all possible SDLTriggerSource - */ -+ (NSArray *)values; +typedef SDLEnum SDLTriggerSource SDL_SWIFT_ENUM; /** * @abstract Selection made via menu - * @return SDLTriggerSource with value of *MENU* */ -+ (SDLTriggerSource *)MENU; +extern SDLTriggerSource const SDLTriggerSourceMenu; /** * @abstract Selection made via Voice session - * @return SDLTriggerSource with value of *VR* */ -+ (SDLTriggerSource *)VR; +extern SDLTriggerSource const SDLTriggerSourceVoiceRecognition; /** * @abstract Selection made via Keyboard - * @return SDLTriggerSource with value of *KEYBOARD* */ -+ (SDLTriggerSource *)KEYBOARD; - -@end +extern SDLTriggerSource const SDLTriggerSourceKeyboard; diff --git a/SmartDeviceLink/SDLTriggerSource.m b/SmartDeviceLink/SDLTriggerSource.m index a56b66c6f..e5c075a8d 100644 --- a/SmartDeviceLink/SDLTriggerSource.m +++ b/SmartDeviceLink/SDLTriggerSource.m @@ -4,53 +4,6 @@ #import "SDLTriggerSource.h" -SDLTriggerSource *SDLTriggerSource_MENU = nil; -SDLTriggerSource *SDLTriggerSource_VR = nil; -SDLTriggerSource *SDLTriggerSource_KEYBOARD = nil; - -NSArray *SDLTriggerSource_values = nil; - -@implementation SDLTriggerSource - -+ (SDLTriggerSource *)valueOf:(NSString *)value { - for (SDLTriggerSource *item in SDLTriggerSource.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLTriggerSource_values == nil) { - SDLTriggerSource_values = @[ - SDLTriggerSource.MENU, - SDLTriggerSource.VR, - SDLTriggerSource.KEYBOARD, - ]; - } - return SDLTriggerSource_values; -} - -+ (SDLTriggerSource *)MENU { - if (SDLTriggerSource_MENU == nil) { - SDLTriggerSource_MENU = [[SDLTriggerSource alloc] initWithValue:@"MENU"]; - } - return SDLTriggerSource_MENU; -} - -+ (SDLTriggerSource *)VR { - if (SDLTriggerSource_VR == nil) { - SDLTriggerSource_VR = [[SDLTriggerSource alloc] initWithValue:@"VR"]; - } - return SDLTriggerSource_VR; -} - -+ (SDLTriggerSource *)KEYBOARD { - if (SDLTriggerSource_KEYBOARD == nil) { - SDLTriggerSource_KEYBOARD = [[SDLTriggerSource alloc] initWithValue:@"KEYBOARD"]; - } - return SDLTriggerSource_KEYBOARD; -} - -@end +SDLTriggerSource const SDLTriggerSourceMenu = @"MENU"; +SDLTriggerSource const SDLTriggerSourceVoiceRecognition = @"VR"; +SDLTriggerSource const SDLTriggerSourceKeyboard = @"KEYBOARD"; diff --git a/SmartDeviceLink/SDLTurn.h b/SmartDeviceLink/SDLTurn.h index f7d5c7d53..f895d07eb 100644 --- a/SmartDeviceLink/SDLTurn.h +++ b/SmartDeviceLink/SDLTurn.h @@ -5,16 +5,15 @@ @class SDLImage; +NS_ASSUME_NONNULL_BEGIN -@interface SDLTurn : SDLRPCStruct { -} +@interface SDLTurn : SDLRPCStruct -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +- (instancetype)initWithNavigationText:(nullable NSString *)navigationText turnIcon:(nullable SDLImage *)icon; -- (instancetype)initWithNavigationText:(NSString *)navigationText turnIcon:(SDLImage *)icon; - -@property (strong) NSString *navigationText; -@property (strong) SDLImage *turnIcon; +@property (strong, nonatomic, nullable) NSString *navigationText; +@property (strong, nonatomic, nullable) SDLImage *turnIcon; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLTurn.m b/SmartDeviceLink/SDLTurn.m index 8d6787bd9..335142782 100644 --- a/SmartDeviceLink/SDLTurn.m +++ b/SmartDeviceLink/SDLTurn.m @@ -3,25 +3,15 @@ #import "SDLTurn.h" +#import "NSMutableDictionary+Store.h" #import "SDLImage.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLTurn -- (instancetype)init { - if (self = [super init]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (instancetype)initWithNavigationText:(NSString *)navigationText turnIcon:(SDLImage *)icon { +- (instancetype)initWithNavigationText:(nullable NSString *)navigationText turnIcon:(nullable SDLImage *)icon { self = [self init]; if (!self) { return nil; @@ -33,33 +23,22 @@ - (instancetype)initWithNavigationText:(NSString *)navigationText turnIcon:(SDLI return self; } -- (void)setNavigationText:(NSString *)navigationText { - if (navigationText != nil) { - [store setObject:navigationText forKey:NAMES_navigationText]; - } else { - [store removeObjectForKey:NAMES_navigationText]; - } +- (void)setNavigationText:(nullable NSString *)navigationText { + [store sdl_setObject:navigationText forName:SDLNameNavigationText]; } -- (NSString *)navigationText { - return [store objectForKey:NAMES_navigationText]; +- (nullable NSString *)navigationText { + return [store sdl_objectForName:SDLNameNavigationText]; } -- (void)setTurnIcon:(SDLImage *)turnIcon { - if (turnIcon != nil) { - [store setObject:turnIcon forKey:NAMES_turnIcon]; - } else { - [store removeObjectForKey:NAMES_turnIcon]; - } +- (void)setTurnIcon:(nullable SDLImage *)turnIcon { + [store sdl_setObject:turnIcon forName:SDLNameTurnIcon]; } -- (SDLImage *)turnIcon { - NSObject *obj = [store objectForKey:NAMES_turnIcon]; - if (obj == nil || [obj isKindOfClass:SDLImage.class]) { - return (SDLImage *)obj; - } else { - return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLImage *)turnIcon { + return [store sdl_objectForName:SDLNameTurnIcon ofClass:SDLImage.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLURLRequestTask.h b/SmartDeviceLink/SDLURLRequestTask.h deleted file mode 100644 index 8745f8519..000000000 --- a/SmartDeviceLink/SDLURLRequestTask.h +++ /dev/null @@ -1,46 +0,0 @@ -// -// SDLURLRequestTask.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/17/15. -// Copyright (c) 2015 smartdevicelink. All rights reserved. -// - -#import - -@class SDLURLRequestTask; -@class SDLURLSession; - - -typedef void (^SDLURLConnectionRequestCompletionHandler)(NSData *__nullable data, NSURLResponse *__nullable response, NSError *__nullable error); - -typedef NS_ENUM(NSUInteger, SDLURLRequestTaskState) { - SDLURLRequestTaskStateRunning, - SDLURLRequestTaskStateCompleted -}; - - -NS_ASSUME_NONNULL_BEGIN - -@protocol SDLURLRequestTaskDelegate - -- (void)taskDidFinish:(SDLURLRequestTask *)task; - -@end - - -@interface SDLURLRequestTask : NSObject - -@property (weak, nonatomic) id delegate; -@property (assign, nonatomic) SDLURLRequestTaskState state; - -- (instancetype)init NS_UNAVAILABLE; -- (instancetype)initWithURLRequest:(NSURLRequest *)request completionHandler:(SDLURLConnectionRequestCompletionHandler)completionHandler NS_DESIGNATED_INITIALIZER; - -+ (instancetype)taskWithURLRequest:(NSURLRequest *)request completionHandler:(SDLURLConnectionRequestCompletionHandler)completionHandler; - -- (void)cancel; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLURLRequestTask.m b/SmartDeviceLink/SDLURLRequestTask.m deleted file mode 100644 index d1895ac10..000000000 --- a/SmartDeviceLink/SDLURLRequestTask.m +++ /dev/null @@ -1,110 +0,0 @@ -// -// SDLURLRequestTask.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/17/15. -// Copyright (c) 2015 smartdevicelink. All rights reserved. -// - -#import "SDLURLRequestTask.h" - -#import "SDLURLSession.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLURLRequestTask () - -@property (strong, nonatomic) NSURLConnection *connection; -@property (strong, nonatomic, nullable) NSURLResponse *response; -@property (copy, nonatomic) SDLURLConnectionRequestCompletionHandler completionHandler; -@property (strong, nonatomic) NSMutableData *mutableData; - -@end - - -@implementation SDLURLRequestTask - -#pragma mark - Lifecycle - -- (instancetype)init { - NSAssert(NO, @"use initWithURLRequest:completionHandler instead"); - return nil; -} - -- (instancetype)initWithURLRequest:(NSURLRequest *)request completionHandler:(SDLURLConnectionRequestCompletionHandler)completionHandler { - self = [super init]; - if (!self) { - return nil; - } - - _connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:NO]; - [_connection scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode]; - [_connection start]; - - _completionHandler = completionHandler; - - _mutableData = [NSMutableData data]; - _response = nil; - _state = SDLURLRequestTaskStateRunning; - - return self; -} - -+ (instancetype)taskWithURLRequest:(NSURLRequest *)request completionHandler:(SDLURLConnectionRequestCompletionHandler)completionHandler { - return [[self alloc] initWithURLRequest:request completionHandler:completionHandler]; -} - -- (void)dealloc { - [_connection cancel]; -} - - -#pragma mark - Data Methods - -- (void)sdl_addData:(NSData *)data { - [self.mutableData appendData:data]; -} - - -#pragma mark - Cancel - -- (void)cancel { - [self.connection cancel]; - [self connection:self.connection didFailWithError:[NSError errorWithDomain:NSURLErrorDomain code:kCFURLErrorCancelled userInfo:nil]]; -} - - -#pragma mark - NSURLConnectionDelegate - -- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { - dispatch_async(dispatch_get_main_queue(), ^{ - self.completionHandler(nil, self.response, error); - - self.state = SDLURLRequestTaskStateCompleted; - [self.delegate taskDidFinish:self]; - }); -} - - -#pragma mark - NSURLConnectionDataDelegate - -- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { - [self sdl_addData:data]; -} - -- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { - self.response = response; -} - -- (void)connectionDidFinishLoading:(NSURLConnection *)connection { - dispatch_async(dispatch_get_main_queue(), ^{ - self.completionHandler([self.mutableData copy], self.response, nil); - - self.state = SDLURLRequestTaskStateCompleted; - [self.delegate taskDidFinish:self]; - }); -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLURLSession.h b/SmartDeviceLink/SDLURLSession.h deleted file mode 100644 index 0d2a22e28..000000000 --- a/SmartDeviceLink/SDLURLSession.h +++ /dev/null @@ -1,57 +0,0 @@ -// -// SDLURLConnection.h -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/17/15. -// Copyright (c) 2015 smartdevicelink. All rights reserved. -// - -#import - - -typedef void (^SDLURLConnectionRequestCompletionHandler)(NSData *__nullable data, NSURLResponse *__nullable response, NSError *__nullable error); - - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLURLSession : NSObject - -@property (assign, nonatomic) NSURLRequestCachePolicy cachePolicy; - -/** - * If any task is started with a request that is at the default timeout (60.0 sec), it will be altered to this connection timeout (by default 45.0 sec). - */ -@property (assign, nonatomic) NSTimeInterval connectionTimeout; - -/** - * Get the default session, a singleton. - * - * @return The default session - */ -+ (instancetype)defaultSession; - -/** - * Retrieves data from a specified URL. Default settings for timeout and cache policy will be used. - * - * @param url An NSURLRequest will be assembled for this URL - * @param completionHandler The completion handler that will be called when the request is complete - */ -- (void)dataFromURL:(NSURL *)url completionHandler:(SDLURLConnectionRequestCompletionHandler)completionHandler; - -/** - * Starts a URL request using data supplied. - * - * @param request An NSURLRequest that provides the URL, cache policy, request method, etc. The HTTPBody data in this request will be ignored - * @param data The data to be uploaded over HTTP - * @param completionHandler The completion handler that will be called when the request is complete - */ -- (void)uploadWithURLRequest:(NSURLRequest *)request data:(NSData *)data completionHandler:(SDLURLConnectionRequestCompletionHandler)completionHandler; - -/** - * Tells all pending requests to cancel - */ -- (void)cancelAllTasks; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLURLSession.m b/SmartDeviceLink/SDLURLSession.m deleted file mode 100644 index 2b8df45de..000000000 --- a/SmartDeviceLink/SDLURLSession.m +++ /dev/null @@ -1,113 +0,0 @@ -// -// SDLURLConnection.m -// SmartDeviceLink-iOS -// -// Created by Joel Fischer on 8/17/15. -// Copyright (c) 2015 smartdevicelink. All rights reserved. -// - -#import "SDLURLSession.h" - -#import "SDLURLRequestTask.h" - - -NS_ASSUME_NONNULL_BEGIN - -static float DefaultConnectionTimeout = 45.0; - - -@interface SDLURLSession () - -@property (strong, nonatomic) NSMutableSet *activeTasks; - -@end - - -@implementation SDLURLSession - - -#pragma mark - Lifecycle - -+ (instancetype)defaultSession { - static SDLURLSession *sharedSession = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - sharedSession = [[self alloc] init]; - }); - - return sharedSession; -} - -- (void)dealloc { - for (SDLURLRequestTask *task in self.activeTasks) { - [task cancel]; - } -} - -- (instancetype)init { - self = [super init]; - if (!self) { - return nil; - } - - _cachePolicy = NSURLRequestUseProtocolCachePolicy; - _connectionTimeout = DefaultConnectionTimeout; - - _activeTasks = [NSMutableSet set]; - - return self; -} - - -#pragma mark - URL Request Methods - -- (void)dataFromURL:(NSURL *)url completionHandler:(SDLURLConnectionRequestCompletionHandler)completionHandler { - // Apple no longer allows HTTP URLs without a special exception as of Jan. 2017 - if ([url.scheme isEqualToString:@"http"]) { - url = [NSURL URLWithString:[url.absoluteString stringByReplacingCharactersInRange:NSMakeRange(0, 4) withString:@"https"]]; - } - - NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:self.cachePolicy timeoutInterval:self.connectionTimeout]; - - SDLURLRequestTask *task = [[SDLURLRequestTask alloc] initWithURLRequest:request completionHandler:completionHandler]; - task.delegate = self; - - [self.activeTasks addObject:task]; -} - -- (void)uploadWithURLRequest:(NSURLRequest *)request data:(NSData *)data completionHandler:(SDLURLConnectionRequestCompletionHandler)completionHandler { - NSURL *url = request.URL; - if ([url.scheme isEqualToString:@"http"]) { - url = [NSURL URLWithString:[url.absoluteString stringByReplacingCharactersInRange:NSMakeRange(0, 4) withString:@"https"]]; - } - - NSMutableURLRequest *mutableRequest = [request mutableCopy]; - mutableRequest.URL = url; - mutableRequest.HTTPBody = data; - mutableRequest.HTTPMethod = @"POST"; - - SDLURLRequestTask *task = [[SDLURLRequestTask alloc] initWithURLRequest:mutableRequest completionHandler:completionHandler]; - task.delegate = self; - - [self.activeTasks addObject:task]; -} - - -#pragma mark - Cancel Methods - -- (void)cancelAllTasks { - for (SDLURLRequestTask *task in self.activeTasks) { - [task cancel]; - } -} - - -#pragma mark - SDLURLRequestTaskDelegate - -- (void)taskDidFinish:(SDLURLRequestTask *)task { - [self.activeTasks removeObject:task]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUnregisterAppInterface.h b/SmartDeviceLink/SDLUnregisterAppInterface.h index d35d40193..35ca04639 100644 --- a/SmartDeviceLink/SDLUnregisterAppInterface.h +++ b/SmartDeviceLink/SDLUnregisterAppInterface.h @@ -19,18 +19,11 @@ * * See SDLRegisterAppInterface SDLOnAppInterfaceUnregistered */ -@interface SDLUnregisterAppInterface : SDLRPCRequest { -} -/** - * @abstract Constructs a new SDLUnregisterAppInterface object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLUnregisterAppInterface object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLUnregisterAppInterface : SDLRPCRequest @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUnregisterAppInterface.m b/SmartDeviceLink/SDLUnregisterAppInterface.m index 88039631d..95520fca0 100644 --- a/SmartDeviceLink/SDLUnregisterAppInterface.m +++ b/SmartDeviceLink/SDLUnregisterAppInterface.m @@ -4,20 +4,19 @@ #import "SDLUnregisterAppInterface.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLUnregisterAppInterface - (instancetype)init { - if (self = [super initWithName:NAMES_UnregisterAppInterface]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameUnregisterAppInterface]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h b/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h index 8ebbb46af..c7088fc3e 100644 --- a/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h +++ b/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h @@ -9,18 +9,11 @@ * * @since SmartDeviceLink 1.0 */ -@interface SDLUnregisterAppInterfaceResponse : SDLRPCResponse { -} -/** - * @abstract Constructs a new SDLUnregisterAppInterfaceResponse object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLUnregisterAppInterfaceResponse object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLUnregisterAppInterfaceResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m b/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m index 6bebbe83d..77e93858b 100644 --- a/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m +++ b/SmartDeviceLink/SDLUnregisterAppInterfaceResponse.m @@ -4,20 +4,19 @@ #import "SDLUnregisterAppInterfaceResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLUnregisterAppInterfaceResponse - (instancetype)init { - if (self = [super initWithName:NAMES_UnregisterAppInterface]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameUnregisterAppInterface]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUnsubscribeButton.h b/SmartDeviceLink/SDLUnsubscribeButton.h index b2ed32e00..edfa5ae20 100644 --- a/SmartDeviceLink/SDLUnsubscribeButton.h +++ b/SmartDeviceLink/SDLUnsubscribeButton.h @@ -3,7 +3,7 @@ #import "SDLRPCRequest.h" -@class SDLButtonName; +#import "SDLButtonName.h" /** @@ -19,27 +19,20 @@ * @since SmartDeviceLink 1.0
    * See SDLSubscribeButton */ -@interface SDLUnsubscribeButton : SDLRPCRequest { -} -/** - * @abstract Constructs a new SDLUnsubscribeButton object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLUnsubscribeButton object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLUnsubscribeButton : SDLRPCRequest -- (instancetype)initWithButtonName:(SDLButtonName *)buttonName; +- (instancetype)initWithButtonName:(SDLButtonName)buttonName; /** * @abstract A name of the button to unsubscribe from * @discussion An Enumeration value, see * SDLButtonName */ -@property (strong) SDLButtonName *buttonName; +@property (strong, nonatomic) SDLButtonName buttonName; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUnsubscribeButton.m b/SmartDeviceLink/SDLUnsubscribeButton.m index a54b30ca2..1b1c18616 100644 --- a/SmartDeviceLink/SDLUnsubscribeButton.m +++ b/SmartDeviceLink/SDLUnsubscribeButton.m @@ -4,25 +4,21 @@ #import "SDLUnsubscribeButton.h" +#import "NSMutableDictionary+Store.h" #import "SDLButtonName.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLUnsubscribeButton - (instancetype)init { - if (self = [super initWithName:NAMES_UnsubscribeButton]) { + if (self = [super initWithName:SDLNameUnsubscribeButton]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} - -- (instancetype)initWithButtonName:(SDLButtonName *)buttonName { +- (instancetype)initWithButtonName:(SDLButtonName)buttonName { self = [self init]; if (!self) { return nil; @@ -33,21 +29,14 @@ - (instancetype)initWithButtonName:(SDLButtonName *)buttonName { return self; } -- (void)setButtonName:(SDLButtonName *)buttonName { - if (buttonName != nil) { - [parameters setObject:buttonName forKey:NAMES_buttonName]; - } else { - [parameters removeObjectForKey:NAMES_buttonName]; - } +- (void)setButtonName:(SDLButtonName)buttonName { + [parameters sdl_setObject:buttonName forName:SDLNameButtonName]; } -- (SDLButtonName *)buttonName { - NSObject *obj = [parameters objectForKey:NAMES_buttonName]; - if (obj == nil || [obj isKindOfClass:SDLButtonName.class]) { - return (SDLButtonName *)obj; - } else { - return [SDLButtonName valueOf:(NSString *)obj]; - } +- (SDLButtonName)buttonName { + return [parameters sdl_objectForName:SDLNameButtonName]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUnsubscribeButtonResponse.h b/SmartDeviceLink/SDLUnsubscribeButtonResponse.h index 62011539f..941cea512 100644 --- a/SmartDeviceLink/SDLUnsubscribeButtonResponse.h +++ b/SmartDeviceLink/SDLUnsubscribeButtonResponse.h @@ -9,18 +9,11 @@ * * @since SmartDeviceLink 1.0 */ -@interface SDLUnsubscribeButtonResponse : SDLRPCResponse { -} -/** - * @abstract Constructs a new SDLUnsubscribeButtonResponse object - */ -- (instancetype)init; -/** - * @abstract Constructs a new SDLUnsubscribeButtonResponse object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLUnsubscribeButtonResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUnsubscribeButtonResponse.m b/SmartDeviceLink/SDLUnsubscribeButtonResponse.m index a28cf2768..e92565e58 100644 --- a/SmartDeviceLink/SDLUnsubscribeButtonResponse.m +++ b/SmartDeviceLink/SDLUnsubscribeButtonResponse.m @@ -4,20 +4,19 @@ #import "SDLUnsubscribeButtonResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLUnsubscribeButtonResponse - (instancetype)init { - if (self = [super initWithName:NAMES_UnsubscribeButton]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameUnsubscribeButton]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUnsubscribeVehicleData.h b/SmartDeviceLink/SDLUnsubscribeVehicleData.h index 47cd85322..fc7938075 100644 --- a/SmartDeviceLink/SDLUnsubscribeVehicleData.h +++ b/SmartDeviceLink/SDLUnsubscribeVehicleData.h @@ -16,117 +16,109 @@ * @since SmartDeviceLink 2.0
    * See SDLSubscribeVehicleData SDLGetVehicleData */ -@interface SDLUnsubscribeVehicleData : SDLRPCRequest { -} -/** - * @abstract Constructs a new SDLUnsubscribeVehicleData object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a new SDLUnsubscribeVehicleData object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLUnsubscribeVehicleData : SDLRPCRequest - (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 wiperStatus:(BOOL)wiperStatus; /** * @abstract A boolean value. If true, unsubscribes Gps data */ -@property (strong) NSNumber *gps; +@property (strong, nonatomic, nullable) NSNumber *gps; /** * @abstract A boolean value. If true, unsubscribes speed data */ -@property (strong) NSNumber *speed; +@property (strong, nonatomic, nullable) NSNumber *speed; /** * @abstract A boolean value. If true, unsubscribe data */ -@property (strong) NSNumber *rpm; +@property (strong, nonatomic, nullable) NSNumber *rpm; /** * @abstract A boolean value. If true, unsubscribes FuelLevel data */ -@property (strong) NSNumber *fuelLevel; +@property (strong, nonatomic, nullable) NSNumber *fuelLevel; /** * @abstract A boolean value. If true, unsubscribes fuelLevel_State data */ -@property (strong) NSNumber *fuelLevel_State; +@property (strong, nonatomic, nullable) NSNumber *fuelLevel_State; /** * @abstract A boolean value. If true, unsubscribes instantFuelConsumption data */ -@property (strong) NSNumber *instantFuelConsumption; +@property (strong, nonatomic, nullable) NSNumber *instantFuelConsumption; /** * @abstract A boolean value. If true, unsubscribes externalTemperature data */ -@property (strong) NSNumber *externalTemperature; +@property (strong, nonatomic, nullable) NSNumber *externalTemperature; /** * @abstract A boolean value. If true, unsubscribes Currently selected gear data */ -@property (strong) NSNumber *prndl; +@property (strong, nonatomic, nullable) NSNumber *prndl; /** * @abstract A boolean value. If true, unsubscribes tire pressure status data */ -@property (strong) NSNumber *tirePressure; +@property (strong, nonatomic, nullable) NSNumber *tirePressure; /** * @abstract A boolean value. If true, unsubscribes odometer data */ -@property (strong) NSNumber *odometer; +@property (strong, nonatomic, nullable) NSNumber *odometer; /** * @abstract A boolean value. If true, unsubscribes belt Status data */ -@property (strong) NSNumber *beltStatus; +@property (strong, nonatomic, nullable) NSNumber *beltStatus; /** * @abstract A boolean value. If true, unsubscribes body Information data */ -@property (strong) NSNumber *bodyInformation; +@property (strong, nonatomic, nullable) NSNumber *bodyInformation; /** * @abstract A boolean value. If true, unsubscribes device Status data */ -@property (strong) NSNumber *deviceStatus; +@property (strong, nonatomic, nullable) NSNumber *deviceStatus; /** * @abstract A boolean value. If true, unsubscribes driver Braking data */ -@property (strong) NSNumber *driverBraking; +@property (strong, nonatomic, nullable) NSNumber *driverBraking; /** * @abstract A boolean value. If true, unsubscribes wiper Status data */ -@property (strong) NSNumber *wiperStatus; +@property (strong, nonatomic, nullable) NSNumber *wiperStatus; /** * @abstract A boolean value. If true, unsubscribes Head Lamp Status data */ -@property (strong) NSNumber *headLampStatus; +@property (strong, nonatomic, nullable) NSNumber *headLampStatus; /** * @abstract A boolean value. If true, unsubscribes Engine Torque data */ -@property (strong) NSNumber *engineTorque; +@property (strong, nonatomic, nullable) NSNumber *engineTorque; /** * @abstract A boolean value. If true, unsubscribes accPedalPosition data */ -@property (strong) NSNumber *accPedalPosition; -@property (strong) NSNumber *steeringWheelAngle; -@property (strong) NSNumber *eCallInfo; -@property (strong) NSNumber *airbagStatus; -@property (strong) NSNumber *emergencyEvent; -@property (strong) NSNumber *clusterModeStatus; -@property (strong) NSNumber *myKey; +@property (strong, nonatomic, nullable) NSNumber *accPedalPosition; +@property (strong, nonatomic, nullable) NSNumber *steeringWheelAngle; +@property (strong, nonatomic, nullable) NSNumber *eCallInfo; +@property (strong, nonatomic, nullable) NSNumber *airbagStatus; +@property (strong, nonatomic, nullable) NSNumber *emergencyEvent; +@property (strong, nonatomic, nullable) NSNumber *clusterModeStatus; +@property (strong, nonatomic, nullable) NSNumber *myKey; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUnsubscribeVehicleData.m b/SmartDeviceLink/SDLUnsubscribeVehicleData.m index b9e89feeb..ec5312268 100644 --- a/SmartDeviceLink/SDLUnsubscribeVehicleData.m +++ b/SmartDeviceLink/SDLUnsubscribeVehicleData.m @@ -4,18 +4,15 @@ #import "SDLUnsubscribeVehicleData.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLUnsubscribeVehicleData - (instancetype)init { - if (self = [super initWithName:NAMES_UnsubscribeVehicleData]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameUnsubscribeVehicleData]) { } return self; } @@ -54,292 +51,198 @@ - (instancetype)initWithAccelerationPedalPosition:(BOOL)accelerationPedalPositio return self; } -- (void)setGps:(NSNumber *)gps { - if (gps != nil) { - [parameters setObject:gps forKey:NAMES_gps]; - } else { - [parameters removeObjectForKey:NAMES_gps]; - } +- (void)setGps:(nullable NSNumber *)gps { + [parameters sdl_setObject:gps forName:SDLNameGPS]; } -- (NSNumber *)gps { - return [parameters objectForKey:NAMES_gps]; +- (nullable NSNumber *)gps { + return [parameters sdl_objectForName:SDLNameGPS]; } -- (void)setSpeed:(NSNumber *)speed { - if (speed != nil) { - [parameters setObject:speed forKey:NAMES_speed]; - } else { - [parameters removeObjectForKey:NAMES_speed]; - } +- (void)setSpeed:(nullable NSNumber *)speed { + [parameters sdl_setObject:speed forName:SDLNameSpeed]; } -- (NSNumber *)speed { - return [parameters objectForKey:NAMES_speed]; +- (nullable NSNumber *)speed { + return [parameters sdl_objectForName:SDLNameSpeed]; } -- (void)setRpm:(NSNumber *)rpm { - if (rpm != nil) { - [parameters setObject:rpm forKey:NAMES_rpm]; - } else { - [parameters removeObjectForKey:NAMES_rpm]; - } +- (void)setRpm:(nullable NSNumber *)rpm { + [parameters sdl_setObject:rpm forName:SDLNameRPM]; } -- (NSNumber *)rpm { - return [parameters objectForKey:NAMES_rpm]; +- (nullable NSNumber *)rpm { + return [parameters sdl_objectForName:SDLNameRPM]; } -- (void)setFuelLevel:(NSNumber *)fuelLevel { - if (fuelLevel != nil) { - [parameters setObject:fuelLevel forKey:NAMES_fuelLevel]; - } else { - [parameters removeObjectForKey:NAMES_fuelLevel]; - } +- (void)setFuelLevel:(nullable NSNumber *)fuelLevel { + [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; } -- (NSNumber *)fuelLevel { - return [parameters objectForKey:NAMES_fuelLevel]; +- (nullable NSNumber *)fuelLevel { + return [parameters sdl_objectForName:SDLNameFuelLevel]; } -- (void)setFuelLevel_State:(NSNumber *)fuelLevel_State { - if (fuelLevel_State != nil) { - [parameters setObject:fuelLevel_State forKey:NAMES_fuelLevel_State]; - } else { - [parameters removeObjectForKey:NAMES_fuelLevel_State]; - } +- (void)setFuelLevel_State:(nullable NSNumber *)fuelLevel_State { + [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; } -- (NSNumber *)fuelLevel_State { - return [parameters objectForKey:NAMES_fuelLevel_State]; +- (nullable NSNumber *)fuelLevel_State { + return [parameters sdl_objectForName:SDLNameFuelLevelState]; } -- (void)setInstantFuelConsumption:(NSNumber *)instantFuelConsumption { - if (instantFuelConsumption != nil) { - [parameters setObject:instantFuelConsumption forKey:NAMES_instantFuelConsumption]; - } else { - [parameters removeObjectForKey:NAMES_instantFuelConsumption]; - } +- (void)setInstantFuelConsumption:(nullable NSNumber *)instantFuelConsumption { + [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; } -- (NSNumber *)instantFuelConsumption { - return [parameters objectForKey:NAMES_instantFuelConsumption]; +- (nullable NSNumber *)instantFuelConsumption { + return [parameters sdl_objectForName:SDLNameInstantFuelConsumption]; } -- (void)setExternalTemperature:(NSNumber *)externalTemperature { - if (externalTemperature != nil) { - [parameters setObject:externalTemperature forKey:NAMES_externalTemperature]; - } else { - [parameters removeObjectForKey:NAMES_externalTemperature]; - } +- (void)setExternalTemperature:(nullable NSNumber *)externalTemperature { + [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; } -- (NSNumber *)externalTemperature { - return [parameters objectForKey:NAMES_externalTemperature]; +- (nullable NSNumber *)externalTemperature { + return [parameters sdl_objectForName:SDLNameExternalTemperature]; } -- (void)setPrndl:(NSNumber *)prndl { - if (prndl != nil) { - [parameters setObject:prndl forKey:NAMES_prndl]; - } else { - [parameters removeObjectForKey:NAMES_prndl]; - } +- (void)setPrndl:(nullable NSNumber *)prndl { + [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; } -- (NSNumber *)prndl { - return [parameters objectForKey:NAMES_prndl]; +- (nullable NSNumber *)prndl { + return [parameters sdl_objectForName:SDLNamePRNDL]; } -- (void)setTirePressure:(NSNumber *)tirePressure { - if (tirePressure != nil) { - [parameters setObject:tirePressure forKey:NAMES_tirePressure]; - } else { - [parameters removeObjectForKey:NAMES_tirePressure]; - } +- (void)setTirePressure:(nullable NSNumber *)tirePressure { + [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; } -- (NSNumber *)tirePressure { - return [parameters objectForKey:NAMES_tirePressure]; +- (nullable NSNumber *)tirePressure { + return [parameters sdl_objectForName:SDLNameTirePressure]; } -- (void)setOdometer:(NSNumber *)odometer { - if (odometer != nil) { - [parameters setObject:odometer forKey:NAMES_odometer]; - } else { - [parameters removeObjectForKey:NAMES_odometer]; - } +- (void)setOdometer:(nullable NSNumber *)odometer { + [parameters sdl_setObject:odometer forName:SDLNameOdometer]; } -- (NSNumber *)odometer { - return [parameters objectForKey:NAMES_odometer]; +- (nullable NSNumber *)odometer { + return [parameters sdl_objectForName:SDLNameOdometer]; } -- (void)setBeltStatus:(NSNumber *)beltStatus { - if (beltStatus != nil) { - [parameters setObject:beltStatus forKey:NAMES_beltStatus]; - } else { - [parameters removeObjectForKey:NAMES_beltStatus]; - } +- (void)setBeltStatus:(nullable NSNumber *)beltStatus { + [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; } -- (NSNumber *)beltStatus { - return [parameters objectForKey:NAMES_beltStatus]; +- (nullable NSNumber *)beltStatus { + return [parameters sdl_objectForName:SDLNameBeltStatus]; } -- (void)setBodyInformation:(NSNumber *)bodyInformation { - if (bodyInformation != nil) { - [parameters setObject:bodyInformation forKey:NAMES_bodyInformation]; - } else { - [parameters removeObjectForKey:NAMES_bodyInformation]; - } +- (void)setBodyInformation:(nullable NSNumber *)bodyInformation { + [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; } -- (NSNumber *)bodyInformation { - return [parameters objectForKey:NAMES_bodyInformation]; +- (nullable NSNumber *)bodyInformation { + return [parameters sdl_objectForName:SDLNameBodyInformation]; } -- (void)setDeviceStatus:(NSNumber *)deviceStatus { - if (deviceStatus != nil) { - [parameters setObject:deviceStatus forKey:NAMES_deviceStatus]; - } else { - [parameters removeObjectForKey:NAMES_deviceStatus]; - } +- (void)setDeviceStatus:(nullable NSNumber *)deviceStatus { + [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; } -- (NSNumber *)deviceStatus { - return [parameters objectForKey:NAMES_deviceStatus]; +- (nullable NSNumber *)deviceStatus { + return [parameters sdl_objectForName:SDLNameDeviceStatus]; } -- (void)setDriverBraking:(NSNumber *)driverBraking { - if (driverBraking != nil) { - [parameters setObject:driverBraking forKey:NAMES_driverBraking]; - } else { - [parameters removeObjectForKey:NAMES_driverBraking]; - } +- (void)setDriverBraking:(nullable NSNumber *)driverBraking { + [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; } -- (NSNumber *)driverBraking { - return [parameters objectForKey:NAMES_driverBraking]; +- (nullable NSNumber *)driverBraking { + return [parameters sdl_objectForName:SDLNameDriverBraking]; } -- (void)setWiperStatus:(NSNumber *)wiperStatus { - if (wiperStatus != nil) { - [parameters setObject:wiperStatus forKey:NAMES_wiperStatus]; - } else { - [parameters removeObjectForKey:NAMES_wiperStatus]; - } +- (void)setWiperStatus:(nullable NSNumber *)wiperStatus { + [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; } -- (NSNumber *)wiperStatus { - return [parameters objectForKey:NAMES_wiperStatus]; +- (nullable NSNumber *)wiperStatus { + return [parameters sdl_objectForName:SDLNameWiperStatus]; } -- (void)setHeadLampStatus:(NSNumber *)headLampStatus { - if (headLampStatus != nil) { - [parameters setObject:headLampStatus forKey:NAMES_headLampStatus]; - } else { - [parameters removeObjectForKey:NAMES_headLampStatus]; - } +- (void)setHeadLampStatus:(nullable NSNumber *)headLampStatus { + [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; } -- (NSNumber *)headLampStatus { - return [parameters objectForKey:NAMES_headLampStatus]; +- (nullable NSNumber *)headLampStatus { + return [parameters sdl_objectForName:SDLNameHeadLampStatus]; } -- (void)setEngineTorque:(NSNumber *)engineTorque { - if (engineTorque != nil) { - [parameters setObject:engineTorque forKey:NAMES_engineTorque]; - } else { - [parameters removeObjectForKey:NAMES_engineTorque]; - } +- (void)setEngineTorque:(nullable NSNumber *)engineTorque { + [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; } -- (NSNumber *)engineTorque { - return [parameters objectForKey:NAMES_engineTorque]; +- (nullable NSNumber *)engineTorque { + return [parameters sdl_objectForName:SDLNameEngineTorque]; } -- (void)setAccPedalPosition:(NSNumber *)accPedalPosition { - if (accPedalPosition != nil) { - [parameters setObject:accPedalPosition forKey:NAMES_accPedalPosition]; - } else { - [parameters removeObjectForKey:NAMES_accPedalPosition]; - } +- (void)setAccPedalPosition:(nullable NSNumber *)accPedalPosition { + [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; } -- (NSNumber *)accPedalPosition { - return [parameters objectForKey:NAMES_accPedalPosition]; +- (nullable NSNumber *)accPedalPosition { + return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition]; } -- (void)setSteeringWheelAngle:(NSNumber *)steeringWheelAngle { - if (steeringWheelAngle != nil) { - [parameters setObject:steeringWheelAngle forKey:NAMES_steeringWheelAngle]; - } else { - [parameters removeObjectForKey:NAMES_steeringWheelAngle]; - } +- (void)setSteeringWheelAngle:(nullable NSNumber *)steeringWheelAngle { + [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; } -- (NSNumber *)steeringWheelAngle { - return [parameters objectForKey:NAMES_steeringWheelAngle]; +- (nullable NSNumber *)steeringWheelAngle { + return [parameters sdl_objectForName:SDLNameSteeringWheelAngle]; } -- (void)setECallInfo:(NSNumber *)eCallInfo { - if (eCallInfo != nil) { - [parameters setObject:eCallInfo forKey:NAMES_eCallInfo]; - } else { - [parameters removeObjectForKey:NAMES_eCallInfo]; - } +- (void)setECallInfo:(nullable NSNumber *)eCallInfo { + [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; } -- (NSNumber *)eCallInfo { - return [parameters objectForKey:NAMES_eCallInfo]; +- (nullable NSNumber *)eCallInfo { + return [parameters sdl_objectForName:SDLNameECallInfo]; } -- (void)setAirbagStatus:(NSNumber *)airbagStatus { - if (airbagStatus != nil) { - [parameters setObject:airbagStatus forKey:NAMES_airbagStatus]; - } else { - [parameters removeObjectForKey:NAMES_airbagStatus]; - } +- (void)setAirbagStatus:(nullable NSNumber *)airbagStatus { + [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; } -- (NSNumber *)airbagStatus { - return [parameters objectForKey:NAMES_airbagStatus]; +- (nullable NSNumber *)airbagStatus { + return [parameters sdl_objectForName:SDLNameAirbagStatus]; } -- (void)setEmergencyEvent:(NSNumber *)emergencyEvent { - if (emergencyEvent != nil) { - [parameters setObject:emergencyEvent forKey:NAMES_emergencyEvent]; - } else { - [parameters removeObjectForKey:NAMES_emergencyEvent]; - } +- (void)setEmergencyEvent:(nullable NSNumber *)emergencyEvent { + [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; } -- (NSNumber *)emergencyEvent { - return [parameters objectForKey:NAMES_emergencyEvent]; +- (nullable NSNumber *)emergencyEvent { + return [parameters sdl_objectForName:SDLNameEmergencyEvent]; } -- (void)setClusterModeStatus:(NSNumber *)clusterModeStatus { - if (clusterModeStatus != nil) { - [parameters setObject:clusterModeStatus forKey:NAMES_clusterModeStatus]; - } else { - [parameters removeObjectForKey:NAMES_clusterModeStatus]; - } +- (void)setClusterModeStatus:(nullable NSNumber *)clusterModeStatus { + [parameters sdl_setObject:clusterModeStatus forName:SDLNameClusterModeStatus]; } -- (NSNumber *)clusterModeStatus { - return [parameters objectForKey:NAMES_clusterModeStatus]; +- (nullable NSNumber *)clusterModeStatus { + return [parameters sdl_objectForName:SDLNameClusterModeStatus]; } -- (void)setMyKey:(NSNumber *)myKey { - if (myKey != nil) { - [parameters setObject:myKey forKey:NAMES_myKey]; - } else { - [parameters removeObjectForKey:NAMES_myKey]; - } +- (void)setMyKey:(nullable NSNumber *)myKey { + [parameters sdl_setObject:myKey forName:SDLNameMyKey]; } -- (NSNumber *)myKey { - return [parameters objectForKey:NAMES_myKey]; +- (nullable NSNumber *)myKey { + return [parameters sdl_objectForName:SDLNameMyKey]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h b/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h index beb1b93e2..bced5894e 100644 --- a/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h +++ b/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h @@ -11,119 +11,111 @@ * * @since SmartDeviceLink 2.0 */ -@interface SDLUnsubscribeVehicleDataResponse : SDLRPCResponse { -} -/** - * @abstract Constructs a new SDLUnsubscribeVehicleDataResponse object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a new SDLUnsubscribeVehicleDataResponse object indicated by the NSMutableDictionary - * parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLUnsubscribeVehicleDataResponse : SDLRPCResponse /** * @abstract A SDLVehicleDataResult* value. See GPSData. */ -@property (strong) SDLVehicleDataResult *gps; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *gps; /** * @abstract A SDLVehicleDataResult* value. The vehicle speed in kilometers per hour. */ -@property (strong) SDLVehicleDataResult *speed; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *speed; /** * @abstract A SDLVehicleDataResult* value. The number of revolutions per minute of the engine. */ -@property (strong) SDLVehicleDataResult *rpm; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *rpm; /** * @abstract A SDLVehicleDataResult* value. The fuel level in the tank (percentage) */ -@property (strong) SDLVehicleDataResult *fuelLevel; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *fuelLevel; /** * @abstract A SDLVehicleDataResult* value. The fuel level state. */ -@property (strong) SDLVehicleDataResult *fuelLevel_State; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *fuelLevel_State; /** * @abstract A SDLVehicleDataResult* value. The instantaneous fuel consumption in microlitres. */ -@property (strong) SDLVehicleDataResult *instantFuelConsumption; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *instantFuelConsumption; /** * @abstract A SDLVehicleDataResult* value. The external temperature in degrees celsius. */ -@property (strong) SDLVehicleDataResult *externalTemperature; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *externalTemperature; /** * @abstract A SDLVehicleDataResult* value. See PRNDL. */ -@property (strong) SDLVehicleDataResult *prndl; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *prndl; /** * @abstract A SDLVehicleDataResult* value. See TireStatus. */ -@property (strong) SDLVehicleDataResult *tirePressure; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *tirePressure; /** * @abstract A SDLVehicleDataResult* value. Odometer in km. */ -@property (strong) SDLVehicleDataResult *odometer; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *odometer; /** * @abstract A SDLVehicleDataResult* value. The status of the seat belts. */ -@property (strong) SDLVehicleDataResult *beltStatus; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *beltStatus; /** * @abstract A SDLVehicleDataResult* value. The body information including power modes. */ -@property (strong) SDLVehicleDataResult *bodyInformation; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *bodyInformation; /** * @abstract A SDLVehicleDataResult* value. The device status including signal and battery strength. */ -@property (strong) SDLVehicleDataResult *deviceStatus; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *deviceStatus; /** * @abstract A SDLVehicleDataResult* value. The status of the brake pedal. */ -@property (strong) SDLVehicleDataResult *driverBraking; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *driverBraking; /** * @abstract A SDLVehicleDataResult* value. The status of the wipers. */ -@property (strong) SDLVehicleDataResult *wiperStatus; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *wiperStatus; /** * @abstract A SDLVehicleDataResult* value. Status of the head lamps. */ -@property (strong) SDLVehicleDataResult *headLampStatus; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *headLampStatus; /** * @abstract A SDLVehicleDataResult* value. Torque value for engine (in Nm) on non-diesel variants. */ -@property (strong) SDLVehicleDataResult *engineTorque; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *engineTorque; /** * @abstract A SDLVehicleDataResult* value. Accelerator pedal position (percentage depressed) */ -@property (strong) SDLVehicleDataResult *accPedalPosition; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *accPedalPosition; /** * @abstract A SDLVehicleDataResult* value. Current angle of the steering wheel (in deg) */ -@property (strong) SDLVehicleDataResult *steeringWheelAngle; -@property (strong) SDLVehicleDataResult *eCallInfo; -@property (strong) SDLVehicleDataResult *airbagStatus; -@property (strong) SDLVehicleDataResult *emergencyEvent; -@property (strong) SDLVehicleDataResult *clusterModes; -@property (strong) SDLVehicleDataResult *myKey; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *steeringWheelAngle; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *eCallInfo; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *airbagStatus; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *emergencyEvent; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *clusterModes; +@property (strong, nonatomic, nullable) SDLVehicleDataResult *myKey; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m b/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m index ec4916447..5eb911d42 100644 --- a/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m +++ b/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m @@ -4,430 +4,213 @@ #import "SDLUnsubscribeVehicleDataResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" #import "SDLVehicleDataResult.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLUnsubscribeVehicleDataResponse - (instancetype)init { - if (self = [super initWithName:NAMES_UnsubscribeVehicleData]) { + if (self = [super initWithName:SDLNameUnsubscribeVehicleData]) { } return self; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (void)setGps:(nullable SDLVehicleDataResult *)gps { + [parameters sdl_setObject:gps forName:SDLNameGPS]; } -- (void)setGps:(SDLVehicleDataResult *)gps { - if (gps != nil) { - [parameters setObject:gps forKey:NAMES_gps]; - } else { - [parameters removeObjectForKey:NAMES_gps]; - } +- (nullable SDLVehicleDataResult *)gps { + return [parameters sdl_objectForName:SDLNameGPS ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)gps { - NSObject *obj = [parameters objectForKey:NAMES_gps]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setSpeed:(nullable SDLVehicleDataResult *)speed { + [parameters sdl_setObject:speed forName:SDLNameSpeed]; } -- (void)setSpeed:(SDLVehicleDataResult *)speed { - if (speed != nil) { - [parameters setObject:speed forKey:NAMES_speed]; - } else { - [parameters removeObjectForKey:NAMES_speed]; - } +- (nullable SDLVehicleDataResult *)speed { + return [parameters sdl_objectForName:SDLNameSpeed ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)speed { - NSObject *obj = [parameters objectForKey:NAMES_speed]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setRpm:(nullable SDLVehicleDataResult *)rpm { + [parameters sdl_setObject:rpm forName:SDLNameRPM]; } -- (void)setRpm:(SDLVehicleDataResult *)rpm { - if (rpm != nil) { - [parameters setObject:rpm forKey:NAMES_rpm]; - } else { - [parameters removeObjectForKey:NAMES_rpm]; - } +- (nullable SDLVehicleDataResult *)rpm { + return [parameters sdl_objectForName:SDLNameRPM ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)rpm { - NSObject *obj = [parameters objectForKey:NAMES_rpm]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setFuelLevel:(nullable SDLVehicleDataResult *)fuelLevel { + [parameters sdl_setObject:fuelLevel forName:SDLNameFuelLevel]; } -- (void)setFuelLevel:(SDLVehicleDataResult *)fuelLevel { - if (fuelLevel != nil) { - [parameters setObject:fuelLevel forKey:NAMES_fuelLevel]; - } else { - [parameters removeObjectForKey:NAMES_fuelLevel]; - } +- (nullable SDLVehicleDataResult *)fuelLevel { + return [parameters sdl_objectForName:SDLNameFuelLevel ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)fuelLevel { - NSObject *obj = [parameters objectForKey:NAMES_fuelLevel]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setFuelLevel_State:(nullable SDLVehicleDataResult *)fuelLevel_State { + [parameters sdl_setObject:fuelLevel_State forName:SDLNameFuelLevelState]; } -- (void)setFuelLevel_State:(SDLVehicleDataResult *)fuelLevel_State { - if (fuelLevel_State != nil) { - [parameters setObject:fuelLevel_State forKey:NAMES_fuelLevel_State]; - } else { - [parameters removeObjectForKey:NAMES_fuelLevel_State]; - } +- (nullable SDLVehicleDataResult *)fuelLevel_State { + return [parameters sdl_objectForName:SDLNameFuelLevelState ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)fuelLevel_State { - NSObject *obj = [parameters objectForKey:NAMES_fuelLevel_State]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setInstantFuelConsumption:(nullable SDLVehicleDataResult *)instantFuelConsumption { + [parameters sdl_setObject:instantFuelConsumption forName:SDLNameInstantFuelConsumption]; } -- (void)setInstantFuelConsumption:(SDLVehicleDataResult *)instantFuelConsumption { - if (instantFuelConsumption != nil) { - [parameters setObject:instantFuelConsumption forKey:NAMES_instantFuelConsumption]; - } else { - [parameters removeObjectForKey:NAMES_instantFuelConsumption]; - } +- (nullable SDLVehicleDataResult *)instantFuelConsumption { + return [parameters sdl_objectForName:SDLNameInstantFuelConsumption ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)instantFuelConsumption { - NSObject *obj = [parameters objectForKey:NAMES_instantFuelConsumption]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setExternalTemperature:(nullable SDLVehicleDataResult *)externalTemperature { + [parameters sdl_setObject:externalTemperature forName:SDLNameExternalTemperature]; } -- (void)setExternalTemperature:(SDLVehicleDataResult *)externalTemperature { - if (externalTemperature != nil) { - [parameters setObject:externalTemperature forKey:NAMES_externalTemperature]; - } else { - [parameters removeObjectForKey:NAMES_externalTemperature]; - } +- (nullable SDLVehicleDataResult *)externalTemperature { + return [parameters sdl_objectForName:SDLNameExternalTemperature ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)externalTemperature { - NSObject *obj = [parameters objectForKey:NAMES_externalTemperature]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setPrndl:(nullable SDLVehicleDataResult *)prndl { + [parameters sdl_setObject:prndl forName:SDLNamePRNDL]; } -- (void)setPrndl:(SDLVehicleDataResult *)prndl { - if (prndl != nil) { - [parameters setObject:prndl forKey:NAMES_prndl]; - } else { - [parameters removeObjectForKey:NAMES_prndl]; - } +- (nullable SDLVehicleDataResult *)prndl { + return [parameters sdl_objectForName:SDLNamePRNDL ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)prndl { - NSObject *obj = [parameters objectForKey:NAMES_prndl]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setTirePressure:(nullable SDLVehicleDataResult *)tirePressure { + [parameters sdl_setObject:tirePressure forName:SDLNameTirePressure]; } -- (void)setTirePressure:(SDLVehicleDataResult *)tirePressure { - if (tirePressure != nil) { - [parameters setObject:tirePressure forKey:NAMES_tirePressure]; - } else { - [parameters removeObjectForKey:NAMES_tirePressure]; - } +- (nullable SDLVehicleDataResult *)tirePressure { + return [parameters sdl_objectForName:SDLNameTirePressure ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)tirePressure { - NSObject *obj = [parameters objectForKey:NAMES_tirePressure]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setOdometer:(nullable SDLVehicleDataResult *)odometer { + [parameters sdl_setObject:odometer forName:SDLNameOdometer]; } -- (void)setOdometer:(SDLVehicleDataResult *)odometer { - if (odometer != nil) { - [parameters setObject:odometer forKey:NAMES_odometer]; - } else { - [parameters removeObjectForKey:NAMES_odometer]; - } +- (nullable SDLVehicleDataResult *)odometer { + return [parameters sdl_objectForName:SDLNameOdometer ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)odometer { - NSObject *obj = [parameters objectForKey:NAMES_odometer]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setBeltStatus:(nullable SDLVehicleDataResult *)beltStatus { + [parameters sdl_setObject:beltStatus forName:SDLNameBeltStatus]; } -- (void)setBeltStatus:(SDLVehicleDataResult *)beltStatus { - if (beltStatus != nil) { - [parameters setObject:beltStatus forKey:NAMES_beltStatus]; - } else { - [parameters removeObjectForKey:NAMES_beltStatus]; - } +- (nullable SDLVehicleDataResult *)beltStatus { + return [parameters sdl_objectForName:SDLNameBeltStatus ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)beltStatus { - NSObject *obj = [parameters objectForKey:NAMES_beltStatus]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setBodyInformation:(nullable SDLVehicleDataResult *)bodyInformation { + [parameters sdl_setObject:bodyInformation forName:SDLNameBodyInformation]; } -- (void)setBodyInformation:(SDLVehicleDataResult *)bodyInformation { - if (bodyInformation != nil) { - [parameters setObject:bodyInformation forKey:NAMES_bodyInformation]; - } else { - [parameters removeObjectForKey:NAMES_bodyInformation]; - } +- (nullable SDLVehicleDataResult *)bodyInformation { + return [parameters sdl_objectForName:SDLNameBodyInformation ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)bodyInformation { - NSObject *obj = [parameters objectForKey:NAMES_bodyInformation]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setDeviceStatus:(nullable SDLVehicleDataResult *)deviceStatus { + [parameters sdl_setObject:deviceStatus forName:SDLNameDeviceStatus]; } -- (void)setDeviceStatus:(SDLVehicleDataResult *)deviceStatus { - if (deviceStatus != nil) { - [parameters setObject:deviceStatus forKey:NAMES_deviceStatus]; - } else { - [parameters removeObjectForKey:NAMES_deviceStatus]; - } +- (nullable SDLVehicleDataResult *)deviceStatus { + return [parameters sdl_objectForName:SDLNameDeviceStatus ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)deviceStatus { - NSObject *obj = [parameters objectForKey:NAMES_deviceStatus]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setDriverBraking:(nullable SDLVehicleDataResult *)driverBraking { + [parameters sdl_setObject:driverBraking forName:SDLNameDriverBraking]; } -- (void)setDriverBraking:(SDLVehicleDataResult *)driverBraking { - if (driverBraking != nil) { - [parameters setObject:driverBraking forKey:NAMES_driverBraking]; - } else { - [parameters removeObjectForKey:NAMES_driverBraking]; - } +- (nullable SDLVehicleDataResult *)driverBraking { + return [parameters sdl_objectForName:SDLNameDriverBraking ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)driverBraking { - NSObject *obj = [parameters objectForKey:NAMES_driverBraking]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setWiperStatus:(nullable SDLVehicleDataResult *)wiperStatus { + [parameters sdl_setObject:wiperStatus forName:SDLNameWiperStatus]; } -- (void)setWiperStatus:(SDLVehicleDataResult *)wiperStatus { - if (wiperStatus != nil) { - [parameters setObject:wiperStatus forKey:NAMES_wiperStatus]; - } else { - [parameters removeObjectForKey:NAMES_wiperStatus]; - } +- (nullable SDLVehicleDataResult *)wiperStatus { + return [parameters sdl_objectForName:SDLNameWiperStatus ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)wiperStatus { - NSObject *obj = [parameters objectForKey:NAMES_wiperStatus]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setHeadLampStatus:(nullable SDLVehicleDataResult *)headLampStatus { + [parameters sdl_setObject:headLampStatus forName:SDLNameHeadLampStatus]; } -- (void)setHeadLampStatus:(SDLVehicleDataResult *)headLampStatus { - if (headLampStatus != nil) { - [parameters setObject:headLampStatus forKey:NAMES_headLampStatus]; - } else { - [parameters removeObjectForKey:NAMES_headLampStatus]; - } +- (nullable SDLVehicleDataResult *)headLampStatus { + return [parameters sdl_objectForName:SDLNameHeadLampStatus ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)headLampStatus { - NSObject *obj = [parameters objectForKey:NAMES_headLampStatus]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setEngineTorque:(nullable SDLVehicleDataResult *)engineTorque { + [parameters sdl_setObject:engineTorque forName:SDLNameEngineTorque]; } -- (void)setEngineTorque:(SDLVehicleDataResult *)engineTorque { - if (engineTorque != nil) { - [parameters setObject:engineTorque forKey:NAMES_engineTorque]; - } else { - [parameters removeObjectForKey:NAMES_engineTorque]; - } +- (nullable SDLVehicleDataResult *)engineTorque { + return [parameters sdl_objectForName:SDLNameEngineTorque ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)engineTorque { - NSObject *obj = [parameters objectForKey:NAMES_engineTorque]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setAccPedalPosition:(nullable SDLVehicleDataResult *)accPedalPosition { + [parameters sdl_setObject:accPedalPosition forName:SDLNameAccelerationPedalPosition]; } -- (void)setAccPedalPosition:(SDLVehicleDataResult *)accPedalPosition { - if (accPedalPosition != nil) { - [parameters setObject:accPedalPosition forKey:NAMES_accPedalPosition]; - } else { - [parameters removeObjectForKey:NAMES_accPedalPosition]; - } +- (nullable SDLVehicleDataResult *)accPedalPosition { + return [parameters sdl_objectForName:SDLNameAccelerationPedalPosition ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)accPedalPosition { - NSObject *obj = [parameters objectForKey:NAMES_accPedalPosition]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setSteeringWheelAngle:(nullable SDLVehicleDataResult *)steeringWheelAngle { + [parameters sdl_setObject:steeringWheelAngle forName:SDLNameSteeringWheelAngle]; } -- (void)setSteeringWheelAngle:(SDLVehicleDataResult *)steeringWheelAngle { - if (steeringWheelAngle != nil) { - [parameters setObject:steeringWheelAngle forKey:NAMES_steeringWheelAngle]; - } else { - [parameters removeObjectForKey:NAMES_steeringWheelAngle]; - } +- (nullable SDLVehicleDataResult *)steeringWheelAngle { + return [parameters sdl_objectForName:SDLNameSteeringWheelAngle ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)steeringWheelAngle { - NSObject *obj = [parameters objectForKey:NAMES_steeringWheelAngle]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setECallInfo:(nullable SDLVehicleDataResult *)eCallInfo { + [parameters sdl_setObject:eCallInfo forName:SDLNameECallInfo]; } -- (void)setECallInfo:(SDLVehicleDataResult *)eCallInfo { - if (eCallInfo != nil) { - [parameters setObject:eCallInfo forKey:NAMES_eCallInfo]; - } else { - [parameters removeObjectForKey:NAMES_eCallInfo]; - } +- (nullable SDLVehicleDataResult *)eCallInfo { + return [parameters sdl_objectForName:SDLNameECallInfo ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)eCallInfo { - NSObject *obj = [parameters objectForKey:NAMES_eCallInfo]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setAirbagStatus:(nullable SDLVehicleDataResult *)airbagStatus { + [parameters sdl_setObject:airbagStatus forName:SDLNameAirbagStatus]; } -- (void)setAirbagStatus:(SDLVehicleDataResult *)airbagStatus { - if (airbagStatus != nil) { - [parameters setObject:airbagStatus forKey:NAMES_airbagStatus]; - } else { - [parameters removeObjectForKey:NAMES_airbagStatus]; - } +- (nullable SDLVehicleDataResult *)airbagStatus { + return [parameters sdl_objectForName:SDLNameAirbagStatus ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)airbagStatus { - NSObject *obj = [parameters objectForKey:NAMES_airbagStatus]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setEmergencyEvent:(nullable SDLVehicleDataResult *)emergencyEvent { + [parameters sdl_setObject:emergencyEvent forName:SDLNameEmergencyEvent]; } -- (void)setEmergencyEvent:(SDLVehicleDataResult *)emergencyEvent { - if (emergencyEvent != nil) { - [parameters setObject:emergencyEvent forKey:NAMES_emergencyEvent]; - } else { - [parameters removeObjectForKey:NAMES_emergencyEvent]; - } +- (nullable SDLVehicleDataResult *)emergencyEvent { + return [parameters sdl_objectForName:SDLNameEmergencyEvent ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)emergencyEvent { - NSObject *obj = [parameters objectForKey:NAMES_emergencyEvent]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setClusterModes:(nullable SDLVehicleDataResult *)clusterModes { + [parameters sdl_setObject:clusterModes forName:SDLNameClusterModes]; } -- (void)setClusterModes:(SDLVehicleDataResult *)clusterModes { - if (clusterModes != nil) { - [parameters setObject:clusterModes forKey:NAMES_clusterModes]; - } else { - [parameters removeObjectForKey:NAMES_clusterModes]; - } +- (nullable SDLVehicleDataResult *)clusterModes { + return [parameters sdl_objectForName:SDLNameClusterModes ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)clusterModes { - NSObject *obj = [parameters objectForKey:NAMES_clusterModes]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (void)setMyKey:(nullable SDLVehicleDataResult *)myKey { + [parameters sdl_setObject:myKey forName:SDLNameMyKey]; } -- (void)setMyKey:(SDLVehicleDataResult *)myKey { - if (myKey != nil) { - [parameters setObject:myKey forKey:NAMES_myKey]; - } else { - [parameters removeObjectForKey:NAMES_myKey]; - } +- (nullable SDLVehicleDataResult *)myKey { + return [parameters sdl_objectForName:SDLNameMyKey ofClass:SDLVehicleDataResult.class]; } -- (SDLVehicleDataResult *)myKey { - NSObject *obj = [parameters objectForKey:NAMES_myKey]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResult.class]) { - return (SDLVehicleDataResult *)obj; - } else { - return [[SDLVehicleDataResult alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } -} @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUnsubscribeWayPoints.h b/SmartDeviceLink/SDLUnsubscribeWayPoints.h new file mode 100644 index 000000000..5edce6bf5 --- /dev/null +++ b/SmartDeviceLink/SDLUnsubscribeWayPoints.h @@ -0,0 +1,12 @@ +// SDLUnsubscribeWaypoints.h +// + +#import "SDLRPCRequest.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLUnsubscribeWayPoints : SDLRPCRequest + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUnsubscribeWayPoints.m b/SmartDeviceLink/SDLUnsubscribeWayPoints.m new file mode 100644 index 000000000..4504eba66 --- /dev/null +++ b/SmartDeviceLink/SDLUnsubscribeWayPoints.m @@ -0,0 +1,21 @@ +// SDLUnsubscribeWaypoints.m +// + +#import "SDLUnsubscribeWayPoints.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLUnsubscribeWayPoints + +- (instancetype)init { + if (self = [super initWithName:SDLNameUnsubscribeWayPoints]) { + } + return self; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.h b/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.h new file mode 100644 index 000000000..5919546e2 --- /dev/null +++ b/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.h @@ -0,0 +1,12 @@ +// SDLUnsubscribeWaypointsResponse.h +// + +#import "SDLRPCResponse.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLUnsubscribeWayPointsResponse : SDLRPCResponse + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.m b/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.m new file mode 100644 index 000000000..2db5d017f --- /dev/null +++ b/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.m @@ -0,0 +1,21 @@ +// SDLUnsubscribeWaypointsResponse.m +// + +#import "SDLUnsubscribeWayPointsResponse.h" + +#import "NSMutableDictionary+Store.h" +#import "SDLNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLUnsubscribeWayPointsResponse + +- (instancetype)init { + if (self = [super initWithName:SDLNameUnsubscribeWayPoints]) { + } + return self; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUnsubscribeWaypoints.h b/SmartDeviceLink/SDLUnsubscribeWaypoints.h deleted file mode 100644 index d5e477ad7..000000000 --- a/SmartDeviceLink/SDLUnsubscribeWaypoints.h +++ /dev/null @@ -1,12 +0,0 @@ -// SDLUnsubscribeWaypoints.h -// - -#import "SDLRPCRequest.h" - -@interface SDLUnsubscribeWayPoints : SDLRPCRequest - -@end - -__deprecated_msg("Use SDLUnsubscribeWayPoints instead") - @interface SDLUnsubscribeWaypoints : SDLUnsubscribeWayPoints - @end diff --git a/SmartDeviceLink/SDLUnsubscribeWaypoints.m b/SmartDeviceLink/SDLUnsubscribeWaypoints.m deleted file mode 100644 index 34ead6223..000000000 --- a/SmartDeviceLink/SDLUnsubscribeWaypoints.m +++ /dev/null @@ -1,19 +0,0 @@ -// SDLUnsubscribeWaypoints.m -// - -#import "SDLUnsubscribeWaypoints.h" -#import "SDLNames.h" - -@implementation SDLUnsubscribeWayPoints - -- (instancetype)init { - if (self = [super initWithName:NAMES_UnsubscribeWaypoints]) { - } - return self; -} - -@end - -@implementation SDLUnsubscribeWaypoints - -@end diff --git a/SmartDeviceLink/SDLUnsubscribeWaypointsResponse.h b/SmartDeviceLink/SDLUnsubscribeWaypointsResponse.h deleted file mode 100644 index 11a9e7961..000000000 --- a/SmartDeviceLink/SDLUnsubscribeWaypointsResponse.h +++ /dev/null @@ -1,12 +0,0 @@ -// SDLUnsubscribeWaypointsResponse.h -// - -#import "SDLRPCResponse.h" - -@interface SDLUnsubscribeWayPointsResponse : SDLRPCResponse - -@end - -__deprecated_msg("Use SDLUnsubscribeWayPointsResponse instead") - @interface SDLUnsubscribeWaypointsResponse : SDLUnsubscribeWayPointsResponse - @end diff --git a/SmartDeviceLink/SDLUnsubscribeWaypointsResponse.m b/SmartDeviceLink/SDLUnsubscribeWaypointsResponse.m deleted file mode 100644 index e4aaf9a72..000000000 --- a/SmartDeviceLink/SDLUnsubscribeWaypointsResponse.m +++ /dev/null @@ -1,20 +0,0 @@ -// SDLUnsubscribeWaypointsResponse.m -// - -#import "SDLUnsubscribeWaypointsResponse.h" - -#import "SDLNames.h" - -@implementation SDLUnsubscribeWayPointsResponse - -- (instancetype)init { - if (self = [super initWithName:NAMES_UnsubscribeWaypoints]) { - } - return self; -} - -@end - -@implementation SDLUnsubscribeWaypointsResponse - -@end diff --git a/SmartDeviceLink/SDLUpdateMode.h b/SmartDeviceLink/SDLUpdateMode.h index 3ff84a2e9..d437d781e 100644 --- a/SmartDeviceLink/SDLUpdateMode.h +++ b/SmartDeviceLink/SDLUpdateMode.h @@ -9,49 +9,29 @@ * * @since SDL 1.0 */ -@interface SDLUpdateMode : SDLEnum { -} - -/** - * Convert String to SDLUpdateMode - * @param value The value of the string to get an object for - * @return SDLUpdateMode - */ -+ (SDLUpdateMode *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLUpdateMode - * @return an array that store all possible SDLUpdateMode - */ -+ (NSArray *)values; +typedef SDLEnum SDLUpdateMode SDL_SWIFT_ENUM; /** * @abstract Starts the media clock timer counting upward, in increments of 1 second. - * @return SDLUpdateMode with value of *COUNTUP* */ -+ (SDLUpdateMode *)COUNTUP; +extern SDLUpdateMode const SDLUpdateModeCountUp; /** * @abstract Starts the media clock timer counting downward, in increments of 1 second. - * @return SDLUpdateMode with value of *COUNTDOWN* */ -+ (SDLUpdateMode *)COUNTDOWN; +extern SDLUpdateMode const SDLUpdateModeCountDown; /** * @abstract Pauses the media clock timer. - * @return SDLUpdateMode with value of *PAUSE* */ -+ (SDLUpdateMode *)PAUSE; +extern SDLUpdateMode const SDLUpdateModePause; /** * @abstract Resumes the media clock timer. The timer resumes counting in whatever mode was in effect before pausing (i.e. COUNTUP or COUNTDOWN). - * @return SDLUpdateMode with value of *RESUME* */ -+ (SDLUpdateMode *)RESUME; +extern SDLUpdateMode const SDLUpdateModeResume; /** * @abstract Clear the media clock timer. */ -+ (SDLUpdateMode *)CLEAR; - -@end +extern SDLUpdateMode const SDLUpdateModeClear; diff --git a/SmartDeviceLink/SDLUpdateMode.m b/SmartDeviceLink/SDLUpdateMode.m index 2a2e8c7e5..fd527f24e 100644 --- a/SmartDeviceLink/SDLUpdateMode.m +++ b/SmartDeviceLink/SDLUpdateMode.m @@ -4,71 +4,8 @@ #import "SDLUpdateMode.h" -SDLUpdateMode *SDLUpdateMode_COUNTUP = nil; -SDLUpdateMode *SDLUpdateMode_COUNTDOWN = nil; -SDLUpdateMode *SDLUpdateMode_PAUSE = nil; -SDLUpdateMode *SDLUpdateMode_RESUME = nil; -SDLUpdateMode *SDLUpdateMode_CLEAR = nil; - -NSArray *SDLUpdateMode_values = nil; - -@implementation SDLUpdateMode - -+ (SDLUpdateMode *)valueOf:(NSString *)value { - for (SDLUpdateMode *item in SDLUpdateMode.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLUpdateMode_values == nil) { - SDLUpdateMode_values = @[ - SDLUpdateMode.COUNTUP, - SDLUpdateMode.COUNTDOWN, - SDLUpdateMode.PAUSE, - SDLUpdateMode.RESUME, - SDLUpdateMode.CLEAR, - ]; - } - return SDLUpdateMode_values; -} - -+ (SDLUpdateMode *)COUNTUP { - if (SDLUpdateMode_COUNTUP == nil) { - SDLUpdateMode_COUNTUP = [[SDLUpdateMode alloc] initWithValue:@"COUNTUP"]; - } - return SDLUpdateMode_COUNTUP; -} - -+ (SDLUpdateMode *)COUNTDOWN { - if (SDLUpdateMode_COUNTDOWN == nil) { - SDLUpdateMode_COUNTDOWN = [[SDLUpdateMode alloc] initWithValue:@"COUNTDOWN"]; - } - return SDLUpdateMode_COUNTDOWN; -} - -+ (SDLUpdateMode *)PAUSE { - if (SDLUpdateMode_PAUSE == nil) { - SDLUpdateMode_PAUSE = [[SDLUpdateMode alloc] initWithValue:@"PAUSE"]; - } - return SDLUpdateMode_PAUSE; -} - -+ (SDLUpdateMode *)RESUME { - if (SDLUpdateMode_RESUME == nil) { - SDLUpdateMode_RESUME = [[SDLUpdateMode alloc] initWithValue:@"RESUME"]; - } - return SDLUpdateMode_RESUME; -} - -+ (SDLUpdateMode *)CLEAR { - if (SDLUpdateMode_CLEAR == nil) { - SDLUpdateMode_CLEAR = [[SDLUpdateMode alloc] initWithValue:@"CLEAR"]; - } - return SDLUpdateMode_CLEAR; -} - -@end +SDLUpdateMode const SDLUpdateModeCountUp = @"COUNTUP"; +SDLUpdateMode const SDLUpdateModeCountDown = @"COUNTDOWN"; +SDLUpdateMode const SDLUpdateModePause = @"PAUSE"; +SDLUpdateMode const SDLUpdateModeResume = @"RESUME"; +SDLUpdateMode const SDLUpdateModeClear = @"CLEAR"; diff --git a/SmartDeviceLink/SDLUpdateTurnList.h b/SmartDeviceLink/SDLUpdateTurnList.h index 17f507ffa..96d54a55a 100644 --- a/SmartDeviceLink/SDLUpdateTurnList.h +++ b/SmartDeviceLink/SDLUpdateTurnList.h @@ -12,22 +12,23 @@ *

    * @since SmartDeviceLink 2.0 */ -@interface SDLUpdateTurnList : SDLRPCRequest { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN -- (instancetype)initWithTurnList:(NSArray *)turnList softButtons:(NSArray *)softButtons; +@interface SDLUpdateTurnList : SDLRPCRequest + +- (instancetype)initWithTurnList:(nullable NSArray *)turnList softButtons:(nullable NSArray *)softButtons; /** * Optional, SDLTurn, 1 - 100 entries */ -@property (strong) NSMutableArray *turnList; +@property (strong, nonatomic, nullable) NSArray *turnList; /** * Required, SDLSoftButton, 0 - 1 Entries */ -@property (strong) NSMutableArray *softButtons; +@property (strong, nonatomic, nullable) NSArray *softButtons; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUpdateTurnList.m b/SmartDeviceLink/SDLUpdateTurnList.m index 4baa3a829..b6361f666 100644 --- a/SmartDeviceLink/SDLUpdateTurnList.m +++ b/SmartDeviceLink/SDLUpdateTurnList.m @@ -4,25 +4,22 @@ #import "SDLUpdateTurnList.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" #import "SDLSoftButton.h" #import "SDLTurn.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLUpdateTurnList - (instancetype)init { - if (self = [super initWithName:NAMES_UpdateTurnList]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameUpdateTurnList]) { } return self; } -- (instancetype)initWithTurnList:(NSArray *)turnList softButtons:(NSArray *)softButtons { +- (instancetype)initWithTurnList:(nullable NSArray *)turnList softButtons:(nullable NSArray *)softButtons { self = [self init]; if (!self) { return nil; @@ -34,50 +31,22 @@ - (instancetype)initWithTurnList:(NSArray *)turnList softButtons:(NSA return self; } -- (void)setTurnList:(NSMutableArray *)turnList { - if (turnList != nil) { - [parameters setObject:turnList forKey:NAMES_turnList]; - } else { - [parameters removeObjectForKey:NAMES_turnList]; - } +- (void)setTurnList:(nullable NSArray *)turnList { + [parameters sdl_setObject:turnList forName:SDLNameTurnList]; } -- (NSMutableArray *)turnList { - NSMutableArray *array = [parameters objectForKey:NAMES_turnList]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLTurn.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLTurn alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (nullable NSArray *)turnList { + return [parameters sdl_objectsForName:SDLNameTurnList ofClass:SDLTurn.class]; } -- (void)setSoftButtons:(NSMutableArray *)softButtons { - if (softButtons != nil) { - [parameters setObject:softButtons forKey:NAMES_softButtons]; - } else { - [parameters removeObjectForKey:NAMES_softButtons]; - } +- (void)setSoftButtons:(nullable NSArray *)softButtons { + [parameters sdl_setObject:softButtons forName:SDLNameSoftButtons]; } -- (NSMutableArray *)softButtons { - NSMutableArray *array = [parameters objectForKey:NAMES_softButtons]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLSoftButton.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLSoftButton alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (nullable NSArray *)softButtons { + return [parameters sdl_objectsForName:SDLNameSoftButtons ofClass:SDLSoftButton.class]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUpdateTurnListResponse.h b/SmartDeviceLink/SDLUpdateTurnListResponse.h index c02c912e9..31ba28df5 100644 --- a/SmartDeviceLink/SDLUpdateTurnListResponse.h +++ b/SmartDeviceLink/SDLUpdateTurnListResponse.h @@ -7,10 +7,11 @@ /** SDLUpdateTurnListResponse is sent, when SDLUpdateTurnList has been called. * SinceSmartDeviceLink 2.0 */ -@interface SDLUpdateTurnListResponse : SDLRPCResponse { -} -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +NS_ASSUME_NONNULL_BEGIN + +@interface SDLUpdateTurnListResponse : SDLRPCResponse @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUpdateTurnListResponse.m b/SmartDeviceLink/SDLUpdateTurnListResponse.m index 18e04082b..d77ded773 100644 --- a/SmartDeviceLink/SDLUpdateTurnListResponse.m +++ b/SmartDeviceLink/SDLUpdateTurnListResponse.m @@ -4,20 +4,19 @@ #import "SDLUpdateTurnListResponse.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" +NS_ASSUME_NONNULL_BEGIN + @implementation SDLUpdateTurnListResponse - (instancetype)init { - if (self = [super initWithName:NAMES_UpdateTurnList]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { + if (self = [super initWithName:SDLNameUpdateTurnList]) { } return self; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUploadFileOperation.h b/SmartDeviceLink/SDLUploadFileOperation.h index 5b3d55f24..40c4b36c4 100644 --- a/SmartDeviceLink/SDLUploadFileOperation.h +++ b/SmartDeviceLink/SDLUploadFileOperation.h @@ -11,6 +11,7 @@ #import "SDLAsynchronousOperation.h" #import "SDLFileManagerConstants.h" + @protocol SDLConnectionManagerType; @class SDLFileWrapper; @@ -32,4 +33,4 @@ NS_ASSUME_NONNULL_BEGIN @end -NS_ASSUME_NONNULL_END \ No newline at end of file +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLUploadFileOperation.m b/SmartDeviceLink/SDLUploadFileOperation.m index a10ecd069..4e5b17ba2 100644 --- a/SmartDeviceLink/SDLUploadFileOperation.m +++ b/SmartDeviceLink/SDLUploadFileOperation.m @@ -9,6 +9,7 @@ #import "SDLUploadFileOperation.h" #import "SDLConnectionManagerType.h" +#import "SDLError.h" #import "SDLFile.h" #import "SDLFileWrapper.h" #import "SDLGlobals.h" @@ -25,6 +26,7 @@ @interface SDLUploadFileOperation () @property (strong, nonatomic) SDLFileWrapper *fileWrapper; @property (weak, nonatomic) id connectionManager; +@property (strong, nonatomic) NSInputStream *inputStream; @end @@ -52,106 +54,198 @@ - (instancetype)initWithFile:(SDLFileWrapper *)file connectionManager:(id *)putFiles withCompletion:(SDLFileManagerUploadCompletionHandler)completion { +/** + Sends data asynchronously to the SDL Core by breaking the data into smaller packets, each of which is sent via a putfile. To prevent large files from eating up memory, the data packet is deleted once it is sent via a putfile. If the SDL Core receives all the putfiles successfully, a success response with the amount of free storage space left on the SDL Core is returned. Otherwise the error returned by the SDL Core is passed along. + + @param file The file containing the data to be sent to the SDL Core + @param mtuSize The maximum packet size allowed + @param completion Closure returning whether or not the upload was a success + */ +- (void)sdl_sendFile:(SDLFile *)file mtuSize:(NSUInteger)mtuSize withCompletion:(SDLFileManagerUploadCompletionHandler)completion { __block NSError *streamError = nil; __block NSUInteger bytesAvailable = 0; __block NSInteger highestCorrelationIDReceived = -1; + if (self.isCancelled) { + return completion(NO, bytesAvailable, [NSError sdl_fileManager_fileUploadCanceled]); + } + + if (file == nil) { + return completion(NO, bytesAvailable, [NSError sdl_fileManager_fileDoesNotExistError]); + } + + self.inputStream = [self sdl_openInputStreamWithFile:file]; + if (self.inputStream == nil || ![self.inputStream hasBytesAvailable]) { + // If the file does not exist or the passed data is nil, return an error + [self sdl_closeInputStream]; + return completion(NO, bytesAvailable, [NSError sdl_fileManager_fileDoesNotExistError]); + } + dispatch_group_t putFileGroup = dispatch_group_create(); dispatch_group_enter(putFileGroup); - // When the putfiles all complete, run this block + // Wait for all packets be sent before returning whether or not the upload was a success __weak typeof(self) weakself = self; dispatch_group_notify(putFileGroup, dispatch_get_main_queue(), ^{ typeof(weakself) strongself = weakself; + + [weakself sdl_closeInputStream]; + if (streamError != nil || strongself.isCancelled) { completion(NO, bytesAvailable, streamError); } else { completion(YES, bytesAvailable, nil); } - [weakself finishOperation]; }); - for (SDLPutFile *putFile in putFiles) { + // Break the data into small pieces, each of which will be sent in a separate putfile + NSUInteger currentOffset = 0; + for (int i = 0; i < (((file.fileSize - 1) / mtuSize) + 1); i++) { dispatch_group_enter(putFileGroup); + + // The putfile's length parameter is based on the current offset + SDLPutFile *putFile = [[SDLPutFile alloc] initWithFileName:file.name fileType:file.fileType persistentFile:file.isPersistent]; + putFile.offset = @(currentOffset); + putFile.length = @([self.class sdl_getPutFileLengthForOffset:currentOffset fileSize:file.fileSize mtuSize:mtuSize]); + + // Get a chunk of data from the input stream + NSUInteger dataSize = [self.class sdl_getDataSizeForOffset:currentOffset fileSize:file.fileSize mtuSize:mtuSize]; + putFile.bulkData = [self.class sdl_getDataChunkWithSize:dataSize inputStream:self.inputStream]; + currentOffset += dataSize; + __weak typeof(self) weakself = self; - [self.connectionManager sendManagerRequest:putFile - withResponseHandler:^(__kindof SDLRPCRequest *_Nullable request, __kindof SDLRPCResponse *_Nullable response, NSError *_Nullable error) { - typeof(weakself) strongself = weakself; - // TODO: Is this the right way to handle this case? Should we just abort everything in the future? Should we be deleting what we sent? Should we have an automatic retry strategy based on what the error was? - if (strongself.isCancelled) { - dispatch_group_leave(putFileGroup); - BLOCK_RETURN; - } - - // If we encounted an error, abort in the future and call the completion handler - if (error != nil || response == nil || ![response.success boolValue] || strongself.isCancelled) { - [strongself cancel]; - streamError = error; - - dispatch_group_leave(putFileGroup); - BLOCK_RETURN; - } - - // If we haven't encounted an error - SDLPutFileResponse *putFileResponse = (SDLPutFileResponse *)response; - - // We need to do this to make sure our bytesAvailable is accurate - if ([request.correlationID integerValue] > highestCorrelationIDReceived) { - highestCorrelationIDReceived = [request.correlationID integerValue]; - bytesAvailable = [putFileResponse.spaceAvailable unsignedIntegerValue]; - } - - dispatch_group_leave(putFileGroup); - }]; + [self.connectionManager sendManagerRequest:putFile withResponseHandler:^(__kindof SDLRPCRequest *_Nullable request, __kindof SDLRPCResponse *_Nullable response, NSError *_Nullable error) { + typeof(weakself) strongself = weakself; + + // Check if the upload process has been cancelled by another packet. If so, stop the upload process. + // TODO: Is this the right way to handle this case? Should we just abort everything in the future? Should we be deleting what we sent? Should we have an automatic retry strategy based on what the error was? + if (strongself.isCancelled) { + dispatch_group_leave(putFileGroup); + BLOCK_RETURN; + } + + // If the SDL Core returned an error, cancel the upload the process in the future + if (error != nil || response == nil || ![response.success boolValue] || strongself.isCancelled) { + [strongself cancel]; + streamError = error; + dispatch_group_leave(putFileGroup); + BLOCK_RETURN; + } + + // If no errors, watch for a response containing the amount of storage left on the SDL Core + if ([self.class sdl_newHighestCorrelationID:request highestCorrelationIDReceived:highestCorrelationIDReceived]) { + highestCorrelationIDReceived = [request.correlationID integerValue]; + bytesAvailable = [(SDLPutFileResponse *)response spaceAvailable].unsignedIntegerValue; + } + + dispatch_group_leave(putFileGroup); + }]; } - dispatch_group_leave(putFileGroup); } -+ (NSArray *)sdl_splitFile:(SDLFile *)file mtuSize:(NSUInteger)mtuSize { - NSData *fileData = [file.data copy]; - NSUInteger currentOffset = 0; - NSMutableArray *putFiles = [NSMutableArray array]; - - // http://stackoverflow.com/a/503201 Make sure we get the exact number of packets we need - for (int i = 0; i < (((fileData.length - 1) / mtuSize) + 1); i++) { - SDLPutFile *putFile = [[SDLPutFile alloc] initWithFileName:file.name fileType:file.fileType persistentFile:file.isPersistent]; - putFile.offset = @(currentOffset); +/** + Opens a socket for reading data. - // Set the length putfile based on the offset - if (currentOffset == 0) { - // If the offset is 0, the putfile expects to have the full file length within it - putFile.length = @(fileData.length); - } else if ((fileData.length - currentOffset) < mtuSize) { - // The file length remaining is less than our total MTU size, so use the file length remaining - putFile.length = @(fileData.length - currentOffset); - } else { - // The file length remaining is greater than our total MTU size, and the offset is not zero, we will fill the packet with our max MTU size - putFile.length = @(mtuSize); - } + @param file The file containing the data or the file url of the data + */ +- (NSInputStream *)sdl_openInputStreamWithFile:(SDLFile *)file { + NSInputStream *inputStream = file.inputStream; + [inputStream open]; + return inputStream; +} +/** + * Close the input stream once all the data has been read + */ +- (void)sdl_closeInputStream { + if (self.inputStream == nil) { return; } + [self.inputStream close]; +} - // Place the data and set the new offset - if (currentOffset == 0 && (mtuSize < [putFile.length unsignedIntegerValue])) { - putFile.bulkData = [fileData subdataWithRange:NSMakeRange(currentOffset, mtuSize)]; - currentOffset = mtuSize; - } else { - putFile.bulkData = [fileData subdataWithRange:NSMakeRange(currentOffset, [putFile.length unsignedIntegerValue])]; - currentOffset += [putFile.length unsignedIntegerValue]; - } +/** + Returns the length of the data being sent in the putfile. The first putfile's length is unique in that it sends the full size of the data. For the rest of the putfiles, the length parameter is equal to the size of the chunk of data being sent in the putfile. + + @param currentOffset The current position in the file + @param fileSize The size of the file + @param mtuSize The maximum packet size allowed + @return The the length of the data being sent in the putfile + */ ++ (NSUInteger)sdl_getPutFileLengthForOffset:(NSUInteger)currentOffset fileSize:(unsigned long long)fileSize mtuSize:(NSUInteger)mtuSize { + NSInteger putFileLength = 0; + if (currentOffset == 0) { + // The first putfile sends the full file size + putFileLength = (NSInteger)fileSize; + } else if ((fileSize - currentOffset) < mtuSize) { + // The last putfile sends the size of the remaining data + putFileLength = (NSInteger)(fileSize - currentOffset); + } else { + // All other putfiles send the maximum allowed packet size + putFileLength = mtuSize; + } + return putFileLength; +} - [putFiles addObject:putFile]; +/** + Gets the size of the data to be sent in a packet. Packet size can not be greater than the max MTU size allowed by the SDL Core. + + @param currentOffset The position in the file where to start reading data + @param fileSize The size of the file + @param mtuSize The maximum packet size allowed + @return The size of the data to be sent in the packet. + */ ++ (NSUInteger)sdl_getDataSizeForOffset:(NSUInteger)currentOffset fileSize:(unsigned long long)fileSize mtuSize:(NSUInteger)mtuSize { + NSInteger dataSize = 0; + NSUInteger fileSizeRemaining = (NSUInteger)(fileSize - currentOffset); + if (fileSizeRemaining < mtuSize) { + dataSize = fileSizeRemaining; + } else { + dataSize = mtuSize; } + return dataSize; +} - return putFiles; +/** + Reads a chunk of data from a socket. + + @param size The amount of data to read from the input stream + @param inputStream The socket from which to read the data + @return The data read from the socket + */ ++ (nullable NSData *)sdl_getDataChunkWithSize:(NSInteger)size inputStream:(NSInputStream *)inputStream { + if (size <= 0) { + return nil; + } + + Byte buffer[size]; + NSInteger bytesRead = [inputStream read:buffer maxLength:size]; + if (bytesRead) { + return [[NSData alloc] initWithBytes:(const void*)buffer length:size]; + } else { + // TODO: return a custom error? + return nil; + } } +/** + One of the responses returned by the SDL Core will contain the correct remaining free storage size on the SDL Core. Since communication with the SDL Core is asynchronous, there is no way to predict which response contains the correct bytes available other than to watch for the largest correlation id, since that will be the last response sent by the SDL Core. + + @param request The newest response returned by the SDL Core for a putfile + @param highestCorrelationIDReceived The largest currently received correlation id + @return Whether or not the newest request contains the highest correlationId + */ ++ (BOOL)sdl_newHighestCorrelationID:(SDLRPCRequest *)request highestCorrelationIDReceived:(NSInteger)highestCorrelationIDReceived { + if ([request.correlationID integerValue] > highestCorrelationIDReceived) { + return true; + } + + return false; +} -#pragma mark Property Overrides +#pragma mark - Property Overrides - (nullable NSString *)name { return self.fileWrapper.file.name; diff --git a/SmartDeviceLink/SDLV1ProtocolHeader.h b/SmartDeviceLink/SDLV1ProtocolHeader.h index b7fa454f2..ecd5e258e 100644 --- a/SmartDeviceLink/SDLV1ProtocolHeader.h +++ b/SmartDeviceLink/SDLV1ProtocolHeader.h @@ -4,6 +4,8 @@ #import "SDLProtocolHeader.h" +NS_ASSUME_NONNULL_BEGIN + @interface SDLV1ProtocolHeader : SDLProtocolHeader - (instancetype)init; @@ -12,3 +14,5 @@ - (NSString *)description; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLV1ProtocolHeader.m b/SmartDeviceLink/SDLV1ProtocolHeader.m index d716c0c98..288774248 100644 --- a/SmartDeviceLink/SDLV1ProtocolHeader.m +++ b/SmartDeviceLink/SDLV1ProtocolHeader.m @@ -4,21 +4,23 @@ #import "SDLV1ProtocolHeader.h" -const int V1PROTOCOL_HEADERSIZE = 8; +const int ProtocolV1HeaderByteSize = 8; + +NS_ASSUME_NONNULL_BEGIN @implementation SDLV1ProtocolHeader - (instancetype)init { if (self = [super init]) { _version = 1; - _size = V1PROTOCOL_HEADERSIZE; + _size = ProtocolV1HeaderByteSize; } return self; } - (NSData *)data { // Assembles the properties in the binary header format - Byte headerBytes[V1PROTOCOL_HEADERSIZE] = {0}; + Byte headerBytes[ProtocolV1HeaderByteSize] = {0}; Byte version = (self.version & 0xF) << 4; // first 4 bits Byte compressed = (self.encrypted ? 1 : 0) << 3; // next 1 bit @@ -34,12 +36,12 @@ - (NSData *)data { *p = CFSwapInt32HostToBig(self.bytesInPayload); // swap the byte order // Now put it all in an NSData object. - NSData *dataOut = [NSData dataWithBytes:headerBytes length:V1PROTOCOL_HEADERSIZE]; + NSData *dataOut = [NSData dataWithBytes:headerBytes length:ProtocolV1HeaderByteSize]; return dataOut; } -- (id)copyWithZone:(NSZone *)zone { +- (id)copyWithZone:(nullable NSZone *)zone { SDLV1ProtocolHeader *newHeader = [[SDLV1ProtocolHeader allocWithZone:zone] init]; newHeader.encrypted = self.encrypted; newHeader.frameType = self.frameType; @@ -82,3 +84,5 @@ - (NSString *)description { @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLV1ProtocolMessage.h b/SmartDeviceLink/SDLV1ProtocolMessage.h index 39f26e76e..71903a5d0 100644 --- a/SmartDeviceLink/SDLV1ProtocolMessage.h +++ b/SmartDeviceLink/SDLV1ProtocolMessage.h @@ -5,10 +5,13 @@ @class SDLProtocolHeader; +NS_ASSUME_NONNULL_BEGIN @interface SDLV1ProtocolMessage : SDLProtocolMessage -- (instancetype)initWithHeader:(SDLProtocolHeader *)header andPayload:(NSData *)payload; -- (NSDictionary *)rpcDictionary; +- (instancetype)initWithHeader:(SDLProtocolHeader *)header andPayload:(nullable NSData *)payload; +- (nullable NSDictionary *)rpcDictionary; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLV1ProtocolMessage.m b/SmartDeviceLink/SDLV1ProtocolMessage.m index 736dd0b13..3d1e90342 100644 --- a/SmartDeviceLink/SDLV1ProtocolMessage.m +++ b/SmartDeviceLink/SDLV1ProtocolMessage.m @@ -2,23 +2,38 @@ // #import "SDLV1ProtocolMessage.h" -#import "SDLJsonDecoder.h" +#import "SDLLogMacros.h" #import "SDLProtocolHeader.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLV1ProtocolMessage -- (instancetype)initWithHeader:(SDLProtocolHeader *)header andPayload:(NSData *)payload { +- (instancetype)initWithHeader:(SDLProtocolHeader *)header andPayload:(nullable NSData *)payload { if (self = [self init]) { self.header = header; self.payload = payload; + + self.header.bytesInPayload = (UInt32)self.payload.length; } return self; } -- (NSDictionary *)rpcDictionary { - NSDictionary *rpcMessageAsDictionary = [[SDLJsonDecoder instance] decode:self.payload]; +- (nullable NSDictionary *)rpcDictionary { + if (self.payload.length == 0) { + return nil; + } + + NSError *error = nil; + NSDictionary * rpcMessageAsDictionary = [NSJSONSerialization JSONObjectWithData:self.payload options:kNilOptions error:&error]; + if (error != nil) { + SDLLogE(@"Error decoding JSON data: %@", error); + return nil; + } + return rpcMessageAsDictionary; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLV2ProtocolHeader.h b/SmartDeviceLink/SDLV2ProtocolHeader.h index c7a0d4272..bb93768bb 100644 --- a/SmartDeviceLink/SDLV2ProtocolHeader.h +++ b/SmartDeviceLink/SDLV2ProtocolHeader.h @@ -4,9 +4,11 @@ #import "SDLProtocolHeader.h" +NS_ASSUME_NONNULL_BEGIN + @interface SDLV2ProtocolHeader : SDLProtocolHeader -@property (assign) UInt32 messageID; +@property (assign, nonatomic) UInt32 messageID; - (instancetype)init; - (instancetype)initWithVersion:(UInt8)version; @@ -15,3 +17,5 @@ - (NSString *)description; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLV2ProtocolHeader.m b/SmartDeviceLink/SDLV2ProtocolHeader.m index b0e2050d7..646c1bee0 100644 --- a/SmartDeviceLink/SDLV2ProtocolHeader.m +++ b/SmartDeviceLink/SDLV2ProtocolHeader.m @@ -4,7 +4,7 @@ #import "SDLV2ProtocolHeader.h" -const int V2PROTOCOL_HEADERSIZE = 12; +const int ProtocolV2HeaderByteSize = 12; @interface SDLV2ProtocolHeader () @@ -22,14 +22,14 @@ - (instancetype)init { - (instancetype)initWithVersion:(UInt8)version { if (self = [super init]) { _version = version; - _size = V2PROTOCOL_HEADERSIZE; + _size = ProtocolV2HeaderByteSize; } return self; } - (NSData *)data { // Assembles the properties in the binary header format - Byte headerBytes[V2PROTOCOL_HEADERSIZE] = {0}; + Byte headerBytes[ProtocolV2HeaderByteSize] = {0}; Byte version = (self.version & 0xF) << 4; // first 4 bits Byte encrypted = (self.encrypted ? 1 : 0) << 3; // next 1 bit @@ -48,7 +48,7 @@ - (NSData *)data { *p = CFSwapInt32HostToBig(self.messageID); // Now put it all in an NSData object. - NSData *dataOut = [NSData dataWithBytes:headerBytes length:V2PROTOCOL_HEADERSIZE]; + NSData *dataOut = [NSData dataWithBytes:headerBytes length:ProtocolV2HeaderByteSize]; return dataOut; } @@ -87,22 +87,22 @@ - (void)parse:(NSData *)data { - (NSString *)description { NSString *frameTypeString = nil; if (self.frameType >= 0 && self.frameType <= 3) { - NSArray *frameTypeNames = @[@"Control", @"Single", @"First", @"Consecutive"]; + NSArray *frameTypeNames = @[@"Control", @"Single", @"First", @"Consecutive"]; frameTypeString = frameTypeNames[self.frameType]; } NSString *frameDataString = nil; - if (self.frameType == SDLFrameType_Control) { + if (self.frameType == SDLFrameTypeControl) { if (self.frameData >= 0 && self.frameData <= 5) { NSArray *controlFrameDataNames = @[@"Heartbeat", @"StartSession", @"StartSessionACK", @"StartSessionNACK", @"EndSession", @"EndSessionACK", @"EndSessionNACK"]; frameDataString = controlFrameDataNames[self.frameData]; } else { frameDataString = @"Reserved"; } - } else if (self.frameType == SDLFrameType_Single || self.frameType == SDLFrameType_First) { + } else if (self.frameType == SDLFrameTypeSingle || self.frameType == SDLFrameTypeFirst) { frameDataString = @"Reserved"; - } else if (self.frameType == SDLFrameType_Consecutive) { + } else if (self.frameType == SDLFrameTypeConsecutive) { frameDataString = @"Frame#"; } diff --git a/SmartDeviceLink/SDLV2ProtocolMessage.h b/SmartDeviceLink/SDLV2ProtocolMessage.h index 6f9912cf9..0c1cc065a 100644 --- a/SmartDeviceLink/SDLV2ProtocolMessage.h +++ b/SmartDeviceLink/SDLV2ProtocolMessage.h @@ -6,10 +6,13 @@ @class SDLProtocolHeader; +NS_ASSUME_NONNULL_BEGIN @interface SDLV2ProtocolMessage : SDLProtocolMessage -- (instancetype)initWithHeader:(SDLProtocolHeader *)header andPayload:(NSData *)payload; -- (NSDictionary *)rpcDictionary; +- (instancetype)initWithHeader:(SDLProtocolHeader *)header andPayload:(nullable NSData *)payload; +- (nullable NSDictionary *)rpcDictionary; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLV2ProtocolMessage.m b/SmartDeviceLink/SDLV2ProtocolMessage.m index 5b033b7f3..54c4675d8 100644 --- a/SmartDeviceLink/SDLV2ProtocolMessage.m +++ b/SmartDeviceLink/SDLV2ProtocolMessage.m @@ -3,58 +3,65 @@ #import "SDLV2ProtocolMessage.h" #import "SDLFunctionID.h" -#import "SDLJsonDecoder.h" -#import "SDLNames.h" +#import "SDLLogMacros.h" #import "SDLProtocolHeader.h" #import "SDLRPCPayload.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLV2ProtocolMessage -- (instancetype)initWithHeader:(SDLProtocolHeader *)header andPayload:(NSData *)payload { +- (instancetype)initWithHeader:(SDLProtocolHeader *)header andPayload:(nullable NSData *)payload { if (self = [self init]) { self.header = header; self.payload = payload; + + self.header.bytesInPayload = (UInt32)self.payload.length; } return self; } // Convert RPC payload to dictionary (for consumption by RPC layer) -- (NSDictionary *)rpcDictionary { +- (nullable NSDictionary *)rpcDictionary { // Only applicable to RPCs - if ((self.header.serviceType != SDLServiceType_RPC) && (self.header.serviceType != SDLServiceType_BulkData)) { + if ((self.header.serviceType != SDLServiceTypeRPC) && (self.header.serviceType != SDLServiceTypeBulkData)) { return nil; } - NSMutableDictionary *rpcMessageAsDictionary = [[NSMutableDictionary alloc] init]; + NSMutableDictionary *rpcMessageAsDictionary = [[NSMutableDictionary alloc] init]; // Parse the payload as RPC struct SDLRPCPayload *rpcPayload = [SDLRPCPayload rpcPayloadWithData:self.payload]; // Create the inner dictionary with the RPC properties - NSMutableDictionary *innerDictionary = [[NSMutableDictionary alloc] init]; - NSString *functionName = [[[SDLFunctionID alloc] init] getFunctionName:rpcPayload.functionID]; - [innerDictionary setObject:functionName forKey:NAMES_operation_name]; - [innerDictionary setObject:[NSNumber numberWithInt:rpcPayload.correlationID] forKey:NAMES_correlationID]; + NSMutableDictionary *innerDictionary = [[NSMutableDictionary alloc] init]; + NSString *functionName = [[SDLFunctionID sharedInstance] functionNameForId:rpcPayload.functionID]; + [innerDictionary setObject:functionName forKey:SDLNameOperationName]; + [innerDictionary setObject:[NSNumber numberWithInt:rpcPayload.correlationID] forKey:SDLNameCorrelationId]; // Get the json data from the struct if (rpcPayload.jsonData) { - NSDictionary *jsonDictionary = [[SDLJsonDecoder instance] decode:rpcPayload.jsonData]; - if (jsonDictionary) { - [innerDictionary setObject:jsonDictionary forKey:NAMES_parameters]; + NSError *error = nil; + NSDictionary * jsonDictionary = [NSJSONSerialization JSONObjectWithData:rpcPayload.jsonData options:kNilOptions error:&error]; + if (error != nil) { + SDLLogE(@"Error decoding JSON data: %@", error); + } else if (jsonDictionary) { + [innerDictionary setObject:jsonDictionary forKey:SDLNameParameters]; } } // Store it in the containing dictionary UInt8 rpcType = rpcPayload.rpcType; - NSArray *rpcTypeNames = @[NAMES_request, NAMES_response, NAMES_notification]; + NSArray *rpcTypeNames = @[SDLNameRequest, SDLNameResponse, SDLNameNotification]; [rpcMessageAsDictionary setObject:innerDictionary forKey:rpcTypeNames[rpcType]]; // The bulk data also goes in the dictionary if (rpcPayload.binaryData) { - [rpcMessageAsDictionary setObject:rpcPayload.binaryData forKey:NAMES_bulkData]; + [rpcMessageAsDictionary setObject:rpcPayload.binaryData forKey:SDLNameBulkData]; } return rpcMessageAsDictionary; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLVehicleDataActiveStatus.h b/SmartDeviceLink/SDLVehicleDataActiveStatus.h index dbb36b550..2d84cd3da 100644 --- a/SmartDeviceLink/SDLVehicleDataActiveStatus.h +++ b/SmartDeviceLink/SDLVehicleDataActiveStatus.h @@ -7,40 +7,29 @@ /** Vehicle Data Activity Status */ -@interface SDLVehicleDataActiveStatus : SDLEnum { -} - -/** - * @abstract Convert String to SDLVehicleDataActiveStatus - * @param value NSString - * @return SDLVehicleDataActiveStatus - */ -+ (SDLVehicleDataActiveStatus *)valueOf:(NSString *)value; - -/** - @abstract return the array that store all possible SDLVehicleDataActiveStatus values - */ -+ (NSArray *)values; +typedef SDLEnum SDLVehicleDataActiveStatus SDL_SWIFT_ENUM; /** @abstract SDLVehicleDataActiveStatus : Inactive not confirmed */ -+ (SDLVehicleDataActiveStatus *)INACTIVE_NOT_CONFIRMED; +extern SDLVehicleDataActiveStatus const SDLVehicleDataActiveStatusInactiveNotConfirmed; + /** @abstract SDLVehicleDataActiveStatus : Inactive confirmed */ -+ (SDLVehicleDataActiveStatus *)INACTIVE_CONFIRMED; +extern SDLVehicleDataActiveStatus const SDLVehicleDataActiveStatusInactiveConfirmed; + /** @abstract SDLVehicleDataActiveStatus : Active not confirmed */ -+ (SDLVehicleDataActiveStatus *)ACTIVE_NOT_CONFIRMED; +extern SDLVehicleDataActiveStatus const SDLVehicleDataActiveStatusActiveNotConfirmed; + /** @abstract SDLVehicleDataActiveStatus : Active confirmed */ -+ (SDLVehicleDataActiveStatus *)ACTIVE_CONFIRMED; +extern SDLVehicleDataActiveStatus const SDLVehicleDataActiveStatusActiveConfirmed; + /** @abstract SDLVehicleDataActiveStatus : Fault */ -+ (SDLVehicleDataActiveStatus *)FAULT; - -@end +extern SDLVehicleDataActiveStatus const SDLVehicleDataActiveStatusFault; diff --git a/SmartDeviceLink/SDLVehicleDataActiveStatus.m b/SmartDeviceLink/SDLVehicleDataActiveStatus.m index 98bf85738..99450ca41 100644 --- a/SmartDeviceLink/SDLVehicleDataActiveStatus.m +++ b/SmartDeviceLink/SDLVehicleDataActiveStatus.m @@ -4,71 +4,8 @@ #import "SDLVehicleDataActiveStatus.h" -SDLVehicleDataActiveStatus *SDLVehicleDataActiveStatus_INACTIVE_NOT_CONFIRMED = nil; -SDLVehicleDataActiveStatus *SDLVehicleDataActiveStatus_INACTIVE_CONFIRMED = nil; -SDLVehicleDataActiveStatus *SDLVehicleDataActiveStatus_ACTIVE_NOT_CONFIRMED = nil; -SDLVehicleDataActiveStatus *SDLVehicleDataActiveStatus_ACTIVE_CONFIRMED = nil; -SDLVehicleDataActiveStatus *SDLVehicleDataActiveStatus_FAULT = nil; - -NSArray *SDLVehicleDataActiveStatus_values = nil; - -@implementation SDLVehicleDataActiveStatus - -+ (SDLVehicleDataActiveStatus *)valueOf:(NSString *)value { - for (SDLVehicleDataActiveStatus *item in SDLVehicleDataActiveStatus.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLVehicleDataActiveStatus_values == nil) { - SDLVehicleDataActiveStatus_values = @[ - SDLVehicleDataActiveStatus.INACTIVE_NOT_CONFIRMED, - SDLVehicleDataActiveStatus.INACTIVE_CONFIRMED, - SDLVehicleDataActiveStatus.ACTIVE_NOT_CONFIRMED, - SDLVehicleDataActiveStatus.ACTIVE_CONFIRMED, - SDLVehicleDataActiveStatus.FAULT, - ]; - } - return SDLVehicleDataActiveStatus_values; -} - -+ (SDLVehicleDataActiveStatus *)INACTIVE_NOT_CONFIRMED { - if (SDLVehicleDataActiveStatus_INACTIVE_NOT_CONFIRMED == nil) { - SDLVehicleDataActiveStatus_INACTIVE_NOT_CONFIRMED = [[SDLVehicleDataActiveStatus alloc] initWithValue:@"INACTIVE_NOT_CONFIRMED"]; - } - return SDLVehicleDataActiveStatus_INACTIVE_NOT_CONFIRMED; -} - -+ (SDLVehicleDataActiveStatus *)INACTIVE_CONFIRMED { - if (SDLVehicleDataActiveStatus_INACTIVE_CONFIRMED == nil) { - SDLVehicleDataActiveStatus_INACTIVE_CONFIRMED = [[SDLVehicleDataActiveStatus alloc] initWithValue:@"INACTIVE_CONFIRMED"]; - } - return SDLVehicleDataActiveStatus_INACTIVE_CONFIRMED; -} - -+ (SDLVehicleDataActiveStatus *)ACTIVE_NOT_CONFIRMED { - if (SDLVehicleDataActiveStatus_ACTIVE_NOT_CONFIRMED == nil) { - SDLVehicleDataActiveStatus_ACTIVE_NOT_CONFIRMED = [[SDLVehicleDataActiveStatus alloc] initWithValue:@"ACTIVE_NOT_CONFIRMED"]; - } - return SDLVehicleDataActiveStatus_ACTIVE_NOT_CONFIRMED; -} - -+ (SDLVehicleDataActiveStatus *)ACTIVE_CONFIRMED { - if (SDLVehicleDataActiveStatus_ACTIVE_CONFIRMED == nil) { - SDLVehicleDataActiveStatus_ACTIVE_CONFIRMED = [[SDLVehicleDataActiveStatus alloc] initWithValue:@"ACTIVE_CONFIRMED"]; - } - return SDLVehicleDataActiveStatus_ACTIVE_CONFIRMED; -} - -+ (SDLVehicleDataActiveStatus *)FAULT { - if (SDLVehicleDataActiveStatus_FAULT == nil) { - SDLVehicleDataActiveStatus_FAULT = [[SDLVehicleDataActiveStatus alloc] initWithValue:@"FAULT"]; - } - return SDLVehicleDataActiveStatus_FAULT; -} - -@end +SDLVehicleDataActiveStatus const SDLVehicleDataActiveStatusInactiveNotConfirmed = @"INACTIVE_NOT_CONFIRMED"; +SDLVehicleDataActiveStatus const SDLVehicleDataActiveStatusInactiveConfirmed = @"INACTIVE_CONFIRMED"; +SDLVehicleDataActiveStatus const SDLVehicleDataActiveStatusActiveNotConfirmed = @"ACTIVE_NOT_CONFIRMED"; +SDLVehicleDataActiveStatus const SDLVehicleDataActiveStatusActiveConfirmed = @"ACTIVE_CONFIRMED"; +SDLVehicleDataActiveStatus const SDLVehicleDataActiveStatusFault = @"FAULT"; diff --git a/SmartDeviceLink/SDLVehicleDataEventStatus.h b/SmartDeviceLink/SDLVehicleDataEventStatus.h index 880e4ec2d..f0f038a70 100644 --- a/SmartDeviceLink/SDLVehicleDataEventStatus.h +++ b/SmartDeviceLink/SDLVehicleDataEventStatus.h @@ -9,50 +9,20 @@ * * @since SDL 2.0 */ -@interface SDLVehicleDataEventStatus : SDLEnum { -} +typedef SDLEnum SDLVehicleDataEventStatus SDL_SWIFT_ENUM; -/** - * Convert String to SDLVehicleDataEventStatus - * - * @param value The value of the string to get an object for - * - * @return SDLVehicleDataEventStatus - */ -+ (SDLVehicleDataEventStatus *)valueOf:(NSString *)value; +extern SDLVehicleDataEventStatus const SDLVehicleDataEventStatusNoEvent; -/** - * @abstract Store the enumeration of all possible SDLVehicleDataEventStatus - * - * @return an array that store all possible SDLVehicleDataEventStatus - */ -+ (NSArray *)values; +extern SDLVehicleDataEventStatus const SDLVehicleDataEventStatusNo; -/** - * @return The SDLVehicleDataEventStatus instance with value of *NO_EVENT* - */ -+ (SDLVehicleDataEventStatus *)NO_EVENT; - -/** - * @return The SDLVehicleDataEventStatus instance with value of *NO* - */ -+ (SDLVehicleDataEventStatus *)_NO; - -/** - * @return The SDLVehicleDataEventStatus instance with value of *YES* - */ -+ (SDLVehicleDataEventStatus *)_YES; +extern SDLVehicleDataEventStatus const SDLVehicleDataEventStatusYes; /** * @abstract Vehicle data event is not supported - * - * @return the SDLVehicleDataEventStatus instance with value of *NOT_SUPPORTED* */ -+ (SDLVehicleDataEventStatus *)NOT_SUPPORTED; +extern SDLVehicleDataEventStatus const SDLVehicleDataEventStatusNotSupported; /** * @abstract The SDLVehicleDataEventStatus instance with value of *FAULT* */ -+ (SDLVehicleDataEventStatus *)FAULT; - -@end +extern SDLVehicleDataEventStatus const SDLVehicleDataEventStatusFault; diff --git a/SmartDeviceLink/SDLVehicleDataEventStatus.m b/SmartDeviceLink/SDLVehicleDataEventStatus.m index a27178886..9c84a4c29 100644 --- a/SmartDeviceLink/SDLVehicleDataEventStatus.m +++ b/SmartDeviceLink/SDLVehicleDataEventStatus.m @@ -4,71 +4,8 @@ #import "SDLVehicleDataEventStatus.h" -SDLVehicleDataEventStatus *SDLVehicleDataEventStatus_NO_EVENT = nil; -SDLVehicleDataEventStatus *SDLVehicleDataEventStatus_NO = nil; -SDLVehicleDataEventStatus *SDLVehicleDataEventStatus_YES = nil; -SDLVehicleDataEventStatus *SDLVehicleDataEventStatus_NOT_SUPPORTED = nil; -SDLVehicleDataEventStatus *SDLVehicleDataEventStatus_FAULT = nil; - -NSArray *SDLVehicleDataEventStatus_values = nil; - -@implementation SDLVehicleDataEventStatus - -+ (SDLVehicleDataEventStatus *)valueOf:(NSString *)value { - for (SDLVehicleDataEventStatus *item in SDLVehicleDataEventStatus.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLVehicleDataEventStatus_values == nil) { - SDLVehicleDataEventStatus_values = @[ - SDLVehicleDataEventStatus.NO_EVENT, - SDLVehicleDataEventStatus._NO, - SDLVehicleDataEventStatus._YES, - SDLVehicleDataEventStatus.NOT_SUPPORTED, - SDLVehicleDataEventStatus.FAULT, - ]; - } - return SDLVehicleDataEventStatus_values; -} - -+ (SDLVehicleDataEventStatus *)NO_EVENT { - if (SDLVehicleDataEventStatus_NO_EVENT == nil) { - SDLVehicleDataEventStatus_NO_EVENT = [[SDLVehicleDataEventStatus alloc] initWithValue:@"NO_EVENT"]; - } - return SDLVehicleDataEventStatus_NO_EVENT; -} - -+ (SDLVehicleDataEventStatus *)_NO { - if (SDLVehicleDataEventStatus_NO == nil) { - SDLVehicleDataEventStatus_NO = [[SDLVehicleDataEventStatus alloc] initWithValue:@"NO"]; - } - return SDLVehicleDataEventStatus_NO; -} - -+ (SDLVehicleDataEventStatus *)_YES { - if (SDLVehicleDataEventStatus_YES == nil) { - SDLVehicleDataEventStatus_YES = [[SDLVehicleDataEventStatus alloc] initWithValue:@"YES"]; - } - return SDLVehicleDataEventStatus_YES; -} - -+ (SDLVehicleDataEventStatus *)NOT_SUPPORTED { - if (SDLVehicleDataEventStatus_NOT_SUPPORTED == nil) { - SDLVehicleDataEventStatus_NOT_SUPPORTED = [[SDLVehicleDataEventStatus alloc] initWithValue:@"NOT_SUPPORTED"]; - } - return SDLVehicleDataEventStatus_NOT_SUPPORTED; -} - -+ (SDLVehicleDataEventStatus *)FAULT { - if (SDLVehicleDataEventStatus_FAULT == nil) { - SDLVehicleDataEventStatus_FAULT = [[SDLVehicleDataEventStatus alloc] initWithValue:@"FAULT"]; - } - return SDLVehicleDataEventStatus_FAULT; -} - -@end +SDLVehicleDataEventStatus const SDLVehicleDataEventStatusNoEvent = @"NO_EVENT"; +SDLVehicleDataEventStatus const SDLVehicleDataEventStatusNo = @"NO"; +SDLVehicleDataEventStatus const SDLVehicleDataEventStatusYes = @"YES"; +SDLVehicleDataEventStatus const SDLVehicleDataEventStatusNotSupported = @"NOT_SUPPORTED"; +SDLVehicleDataEventStatus const SDLVehicleDataEventStatusFault = @"FAULT"; diff --git a/SmartDeviceLink/SDLVehicleDataNotificationStatus.h b/SmartDeviceLink/SDLVehicleDataNotificationStatus.h index 24a3fc372..7335759dc 100644 --- a/SmartDeviceLink/SDLVehicleDataNotificationStatus.h +++ b/SmartDeviceLink/SDLVehicleDataNotificationStatus.h @@ -9,40 +9,24 @@ * * @since SDL 2.0 */ -@interface SDLVehicleDataNotificationStatus : SDLEnum { -} - -/** - * Convert String to SDLVehicleDataNotificationStatus - * @param value The value of the string to get an object for - * @return SDLVehicleDataNotificationStatus - */ -+ (SDLVehicleDataNotificationStatus *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLVehicleDataNotificationStatus - * @return an array that store all possible SDLVehicleDataNotificationStatus - */ -+ (NSArray *)values; +typedef SDLEnum SDLVehicleDataNotificationStatus SDL_SWIFT_ENUM; /** * @abstract SDLVehicleDataNotificationStatus: *NOT_SUPPORTED* */ -+ (SDLVehicleDataNotificationStatus *)NOT_SUPPORTED; +extern SDLVehicleDataNotificationStatus const SDLVehicleDataNotificationStatusNotSupported; /** @abstract SDLVehicleDataNotificationStatus: *NORMAL* */ -+ (SDLVehicleDataNotificationStatus *)NORMAL; +extern SDLVehicleDataNotificationStatus const SDLVehicleDataNotificationStatusNormal; /** @abstract SDLVehicleDataNotificationStatus: *ACTIVE* */ -+ (SDLVehicleDataNotificationStatus *)ACTIVE; +extern SDLVehicleDataNotificationStatus const SDLVehicleDataNotificationStatusActive; /** @abstract SDLVehicleDataNotificationStatus: *NOT_USED* */ -+ (SDLVehicleDataNotificationStatus *)NOT_USED; - -@end +extern SDLVehicleDataNotificationStatus const SDLVehicleDataNotificationStatusNotUsed; diff --git a/SmartDeviceLink/SDLVehicleDataNotificationStatus.m b/SmartDeviceLink/SDLVehicleDataNotificationStatus.m index 40d66d163..6e3d75020 100644 --- a/SmartDeviceLink/SDLVehicleDataNotificationStatus.m +++ b/SmartDeviceLink/SDLVehicleDataNotificationStatus.m @@ -4,62 +4,7 @@ #import "SDLVehicleDataNotificationStatus.h" -SDLVehicleDataNotificationStatus *SDLVehicleDataNotificationStatus_NOT_SUPPORTED = nil; -SDLVehicleDataNotificationStatus *SDLVehicleDataNotificationStatus_NORMAL = nil; -SDLVehicleDataNotificationStatus *SDLVehicleDataNotificationStatus_ACTIVE = nil; -SDLVehicleDataNotificationStatus *SDLVehicleDataNotificationStatus_NOT_USED = nil; - -NSArray *SDLVehicleDataNotificationStatus_values = nil; - -@implementation SDLVehicleDataNotificationStatus - -+ (SDLVehicleDataNotificationStatus *)valueOf:(NSString *)value { - for (SDLVehicleDataNotificationStatus *item in SDLVehicleDataNotificationStatus.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLVehicleDataNotificationStatus_values == nil) { - SDLVehicleDataNotificationStatus_values = @[ - SDLVehicleDataNotificationStatus.NOT_SUPPORTED, - SDLVehicleDataNotificationStatus.NORMAL, - SDLVehicleDataNotificationStatus.ACTIVE, - SDLVehicleDataNotificationStatus.NOT_USED, - ]; - } - return SDLVehicleDataNotificationStatus_values; -} - -+ (SDLVehicleDataNotificationStatus *)NOT_SUPPORTED { - if (SDLVehicleDataNotificationStatus_NOT_SUPPORTED == nil) { - SDLVehicleDataNotificationStatus_NOT_SUPPORTED = [[SDLVehicleDataNotificationStatus alloc] initWithValue:@"NOT_SUPPORTED"]; - } - return SDLVehicleDataNotificationStatus_NOT_SUPPORTED; -} - -+ (SDLVehicleDataNotificationStatus *)NORMAL { - if (SDLVehicleDataNotificationStatus_NORMAL == nil) { - SDLVehicleDataNotificationStatus_NORMAL = [[SDLVehicleDataNotificationStatus alloc] initWithValue:@"NORMAL"]; - } - return SDLVehicleDataNotificationStatus_NORMAL; -} - -+ (SDLVehicleDataNotificationStatus *)ACTIVE { - if (SDLVehicleDataNotificationStatus_ACTIVE == nil) { - SDLVehicleDataNotificationStatus_ACTIVE = [[SDLVehicleDataNotificationStatus alloc] initWithValue:@"ACTIVE"]; - } - return SDLVehicleDataNotificationStatus_ACTIVE; -} - -+ (SDLVehicleDataNotificationStatus *)NOT_USED { - if (SDLVehicleDataNotificationStatus_NOT_USED == nil) { - SDLVehicleDataNotificationStatus_NOT_USED = [[SDLVehicleDataNotificationStatus alloc] initWithValue:@"NOT_USED"]; - } - return SDLVehicleDataNotificationStatus_NOT_USED; -} - -@end +SDLVehicleDataNotificationStatus const SDLVehicleDataNotificationStatusNotSupported = @"NOT_SUPPORTED"; +SDLVehicleDataNotificationStatus const SDLVehicleDataNotificationStatusNormal = @"NORMAL"; +SDLVehicleDataNotificationStatus const SDLVehicleDataNotificationStatusActive = @"ACTIVE"; +SDLVehicleDataNotificationStatus const SDLVehicleDataNotificationStatusNotUsed = @"NOT_USED"; diff --git a/SmartDeviceLink/SDLVehicleDataResult.h b/SmartDeviceLink/SDLVehicleDataResult.h index 9a03e5d07..d0bbf59cb 100644 --- a/SmartDeviceLink/SDLVehicleDataResult.h +++ b/SmartDeviceLink/SDLVehicleDataResult.h @@ -3,17 +3,16 @@ #import "SDLRPCMessage.h" -@class SDLVehicleDataType; -@class SDLVehicleDataResultCode; +#import "SDLVehicleDataType.h" +#import "SDLVehicleDataResultCode.h" +NS_ASSUME_NONNULL_BEGIN -@interface SDLVehicleDataResult : SDLRPCStruct { -} +@interface SDLVehicleDataResult : SDLRPCStruct -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -@property (strong) SDLVehicleDataType *dataType; -@property (strong) SDLVehicleDataResultCode *resultCode; +@property (strong, nonatomic) SDLVehicleDataType dataType; +@property (strong, nonatomic) SDLVehicleDataResultCode resultCode; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLVehicleDataResult.m b/SmartDeviceLink/SDLVehicleDataResult.m index e395717eb..3f4585076 100644 --- a/SmartDeviceLink/SDLVehicleDataResult.m +++ b/SmartDeviceLink/SDLVehicleDataResult.m @@ -3,57 +3,29 @@ #import "SDLVehicleDataResult.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -#import "SDLVehicleDataResultCode.h" -#import "SDLVehicleDataType.h" +NS_ASSUME_NONNULL_BEGIN @implementation SDLVehicleDataResult -- (instancetype)init { - if (self = [super init]) { - } - return self; +- (void)setDataType:(SDLVehicleDataType)dataType { + [store sdl_setObject:dataType forName:SDLNameDataType]; } -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; +- (SDLVehicleDataType)dataType { + return [store sdl_objectForName:SDLNameDataType]; } -- (void)setDataType:(SDLVehicleDataType *)dataType { - if (dataType != nil) { - [store setObject:dataType forKey:NAMES_dataType]; - } else { - [store removeObjectForKey:NAMES_dataType]; - } +- (void)setResultCode:(SDLVehicleDataResultCode)resultCode { + [store sdl_setObject:resultCode forName:SDLNameResultCode]; } -- (SDLVehicleDataType *)dataType { - NSObject *obj = [store objectForKey:NAMES_dataType]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataType.class]) { - return (SDLVehicleDataType *)obj; - } else { - return [SDLVehicleDataType valueOf:(NSString *)obj]; - } -} - -- (void)setResultCode:(SDLVehicleDataResultCode *)resultCode { - if (resultCode != nil) { - [store setObject:resultCode forKey:NAMES_resultCode]; - } else { - [store removeObjectForKey:NAMES_resultCode]; - } -} - -- (SDLVehicleDataResultCode *)resultCode { - NSObject *obj = [store objectForKey:NAMES_resultCode]; - if (obj == nil || [obj isKindOfClass:SDLVehicleDataResultCode.class]) { - return (SDLVehicleDataResultCode *)obj; - } else { - return [SDLVehicleDataResultCode valueOf:(NSString *)obj]; - } +- (SDLVehicleDataResultCode)resultCode { + return [store sdl_objectForName:SDLNameResultCode]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLVehicleDataResultCode.h b/SmartDeviceLink/SDLVehicleDataResultCode.h index 162ecff59..a5ca1a9c6 100644 --- a/SmartDeviceLink/SDLVehicleDataResultCode.h +++ b/SmartDeviceLink/SDLVehicleDataResultCode.h @@ -7,65 +7,50 @@ /** Vehicle Data Result Code */ -@interface SDLVehicleDataResultCode : SDLEnum { -} - -/** - * Convert String to SDLVehicleDataResultCode - * @param value String - * @return SDLVehicleDataResultCode - */ -+ (SDLVehicleDataResultCode *)valueOf:(NSString *)value; - -/** - @abstract Store the enumeration of all possible SDLVehicleDataResultCode - @return an array that store all possible SDLVehicleDataResultCode - */ -+ (NSArray *)values; +typedef SDLEnum SDLVehicleDataResultCode SDL_SWIFT_ENUM; /** * Individual vehicle data item / DTC / DID request or subscription successful */ -+ (SDLVehicleDataResultCode *)SUCCESS; +extern SDLVehicleDataResultCode const SDLVehicleDataResultCodeSuccess; + /** * DTC / DID request successful, however, not all active DTCs or full contents of DID location available */ -+ (SDLVehicleDataResultCode *)TRUNCATED_DATA; - +extern SDLVehicleDataResultCode const SDLVehicleDataResultCodeTruncatedData; + /** * This vehicle data item is not allowed for this app by SDL */ -+ (SDLVehicleDataResultCode *)DISALLOWED; +extern SDLVehicleDataResultCode const SDLVehicleDataResultCodeDisallowed; /** * The user has not granted access to this type of vehicle data item at this time */ -+ (SDLVehicleDataResultCode *)USER_DISALLOWED; +extern SDLVehicleDataResultCode const SDLVehicleDataResultCodeUserDisallowed; /** * The ECU ID referenced is not a valid ID on the bus / system */ -+ (SDLVehicleDataResultCode *)INVALID_ID; +extern SDLVehicleDataResultCode const SDLVehicleDataResultCodeInvalidId; /** * The requested vehicle data item / DTC / DID is not currently available or responding on the bus / system */ -+ (SDLVehicleDataResultCode *)VEHICLE_DATA_NOT_AVAILABLE; +extern SDLVehicleDataResultCode const SDLVehicleDataResultCodeVehicleDataNotAvailable; /** * The vehicle data item is already subscribed */ -+ (SDLVehicleDataResultCode *)DATA_ALREADY_SUBSCRIBED; +extern SDLVehicleDataResultCode const SDLVehicleDataResultCodeDataAlreadySubscribed; /** * The vehicle data item cannot be unsubscribed because it is not currently subscribed */ -+ (SDLVehicleDataResultCode *)DATA_NOT_SUBSCRIBED; +extern SDLVehicleDataResultCode const SDLVehicleDataResultCodeDataNotSubscribed; /** * The request for this item is ignored because it is already in progress */ -+ (SDLVehicleDataResultCode *)IGNORED; - -@end +extern SDLVehicleDataResultCode const SDLVehicleDataResultCodeIgnored; diff --git a/SmartDeviceLink/SDLVehicleDataResultCode.m b/SmartDeviceLink/SDLVehicleDataResultCode.m index 8aa912568..cc32d3bdd 100644 --- a/SmartDeviceLink/SDLVehicleDataResultCode.m +++ b/SmartDeviceLink/SDLVehicleDataResultCode.m @@ -4,107 +4,12 @@ #import "SDLVehicleDataResultCode.h" -SDLVehicleDataResultCode *SDLVehicleDataResultCode_SUCCESS = nil; -SDLVehicleDataResultCode *SDLVehicleDataResultCode_TRUNCATED_DATA = nil; -SDLVehicleDataResultCode *SDLVehicleDataResultCode_DISALLOWED = nil; -SDLVehicleDataResultCode *SDLVehicleDataResultCode_USER_DISALLOWED = nil; -SDLVehicleDataResultCode *SDLVehicleDataResultCode_INVALID_ID = nil; -SDLVehicleDataResultCode *SDLVehicleDataResultCode_VEHICLE_DATA_NOT_AVAILABLE = nil; -SDLVehicleDataResultCode *SDLVehicleDataResultCode_DATA_ALREADY_SUBSCRIBED = nil; -SDLVehicleDataResultCode *SDLVehicleDataResultCode_DATA_NOT_SUBSCRIBED = nil; -SDLVehicleDataResultCode *SDLVehicleDataResultCode_IGNORED = nil; - -NSArray *SDLVehicleDataResultCode_values = nil; - -@implementation SDLVehicleDataResultCode - -+ (SDLVehicleDataResultCode *)valueOf:(NSString *)value { - for (SDLVehicleDataResultCode *item in SDLVehicleDataResultCode.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLVehicleDataResultCode_values == nil) { - SDLVehicleDataResultCode_values = @[ - SDLVehicleDataResultCode.SUCCESS, - SDLVehicleDataResultCode.TRUNCATED_DATA, - SDLVehicleDataResultCode.DISALLOWED, - SDLVehicleDataResultCode.USER_DISALLOWED, - SDLVehicleDataResultCode.INVALID_ID, - SDLVehicleDataResultCode.VEHICLE_DATA_NOT_AVAILABLE, - SDLVehicleDataResultCode.DATA_ALREADY_SUBSCRIBED, - SDLVehicleDataResultCode.DATA_NOT_SUBSCRIBED, - SDLVehicleDataResultCode.IGNORED, - ]; - } - return SDLVehicleDataResultCode_values; -} - -+ (SDLVehicleDataResultCode *)SUCCESS { - if (SDLVehicleDataResultCode_SUCCESS == nil) { - SDLVehicleDataResultCode_SUCCESS = [[SDLVehicleDataResultCode alloc] initWithValue:@"SUCCESS"]; - } - return SDLVehicleDataResultCode_SUCCESS; -} - -+ (SDLVehicleDataResultCode *)TRUNCATED_DATA { - if (SDLVehicleDataResultCode_TRUNCATED_DATA == nil) { - SDLVehicleDataResultCode_TRUNCATED_DATA = [[SDLVehicleDataResultCode alloc] initWithValue:@"TRUNCATED_DATA"]; - } - return SDLVehicleDataResultCode_TRUNCATED_DATA; -} - -+ (SDLVehicleDataResultCode *)DISALLOWED { - if (SDLVehicleDataResultCode_DISALLOWED == nil) { - SDLVehicleDataResultCode_DISALLOWED = [[SDLVehicleDataResultCode alloc] initWithValue:@"DISALLOWED"]; - } - return SDLVehicleDataResultCode_DISALLOWED; -} - -+ (SDLVehicleDataResultCode *)USER_DISALLOWED { - if (SDLVehicleDataResultCode_USER_DISALLOWED == nil) { - SDLVehicleDataResultCode_USER_DISALLOWED = [[SDLVehicleDataResultCode alloc] initWithValue:@"USER_DISALLOWED"]; - } - return SDLVehicleDataResultCode_USER_DISALLOWED; -} - -+ (SDLVehicleDataResultCode *)INVALID_ID { - if (SDLVehicleDataResultCode_INVALID_ID == nil) { - SDLVehicleDataResultCode_INVALID_ID = [[SDLVehicleDataResultCode alloc] initWithValue:@"INVALID_ID"]; - } - return SDLVehicleDataResultCode_INVALID_ID; -} - -+ (SDLVehicleDataResultCode *)VEHICLE_DATA_NOT_AVAILABLE { - if (SDLVehicleDataResultCode_VEHICLE_DATA_NOT_AVAILABLE == nil) { - SDLVehicleDataResultCode_VEHICLE_DATA_NOT_AVAILABLE = [[SDLVehicleDataResultCode alloc] initWithValue:@"VEHICLE_DATA_NOT_AVAILABLE"]; - } - return SDLVehicleDataResultCode_VEHICLE_DATA_NOT_AVAILABLE; -} - -+ (SDLVehicleDataResultCode *)DATA_ALREADY_SUBSCRIBED { - if (SDLVehicleDataResultCode_DATA_ALREADY_SUBSCRIBED == nil) { - SDLVehicleDataResultCode_DATA_ALREADY_SUBSCRIBED = [[SDLVehicleDataResultCode alloc] initWithValue:@"DATA_ALREADY_SUBSCRIBED"]; - } - return SDLVehicleDataResultCode_DATA_ALREADY_SUBSCRIBED; -} - -+ (SDLVehicleDataResultCode *)DATA_NOT_SUBSCRIBED { - if (SDLVehicleDataResultCode_DATA_NOT_SUBSCRIBED == nil) { - SDLVehicleDataResultCode_DATA_NOT_SUBSCRIBED = [[SDLVehicleDataResultCode alloc] initWithValue:@"DATA_NOT_SUBSCRIBED"]; - } - return SDLVehicleDataResultCode_DATA_NOT_SUBSCRIBED; -} - -+ (SDLVehicleDataResultCode *)IGNORED { - if (SDLVehicleDataResultCode_IGNORED == nil) { - SDLVehicleDataResultCode_IGNORED = [[SDLVehicleDataResultCode alloc] initWithValue:@"IGNORED"]; - } - return SDLVehicleDataResultCode_IGNORED; -} - -@end +SDLVehicleDataResultCode const SDLVehicleDataResultCodeSuccess = @"SUCCESS"; +SDLVehicleDataResultCode const SDLVehicleDataResultCodeTruncatedData = @"TRUNCATED_DATA"; +SDLVehicleDataResultCode const SDLVehicleDataResultCodeDisallowed = @"DISALLOWED"; +SDLVehicleDataResultCode const SDLVehicleDataResultCodeUserDisallowed = @"USER_DISALLOWED"; +SDLVehicleDataResultCode const SDLVehicleDataResultCodeInvalidId = @"INVALID_ID"; +SDLVehicleDataResultCode const SDLVehicleDataResultCodeVehicleDataNotAvailable = @"VEHICLE_DATA_NOT_AVAILABLE"; +SDLVehicleDataResultCode const SDLVehicleDataResultCodeDataAlreadySubscribed = @"DATA_ALREADY_SUBSCRIBED"; +SDLVehicleDataResultCode const SDLVehicleDataResultCodeDataNotSubscribed = @"DATA_NOT_SUBSCRIBED"; +SDLVehicleDataResultCode const SDLVehicleDataResultCodeIgnored = @"IGNORED"; diff --git a/SmartDeviceLink/SDLVehicleDataStatus.h b/SmartDeviceLink/SDLVehicleDataStatus.h index e7720c924..72f89a3e2 100644 --- a/SmartDeviceLink/SDLVehicleDataStatus.h +++ b/SmartDeviceLink/SDLVehicleDataStatus.h @@ -9,36 +9,19 @@ * * @since SDL 2.0 */ -@interface SDLVehicleDataStatus : SDLEnum { -} - -/** - * Convert String to SDLVehicleDataStatus - * @param value The value of the string to get an object for - * @return SDLVehicleDataStatus - */ -+ (SDLVehicleDataStatus *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLVehicleDataStatus - * @return an array that store all possible SDLVehicleDataStatus - */ -+ (NSArray *)values; +typedef SDLEnum SDLVehicleDataStatus SDL_SWIFT_ENUM; /** * @abstract No data avaliable - * @return SDLVehicleDataStatus: *NO_DATA_EXISTS* */ -+ (SDLVehicleDataStatus *)NO_DATA_EXISTS; +extern SDLVehicleDataStatus const SDLVehicleDataStatusNoDataExists; /** * @abstract return SDLVehicleDataStatus: *OFF* */ -+ (SDLVehicleDataStatus *)OFF; +extern SDLVehicleDataStatus const SDLVehicleDataStatusOff; /** * @abstract return SDLVehicleDataStatus: *ON* */ -+ (SDLVehicleDataStatus *)ON; - -@end +extern SDLVehicleDataStatus const SDLVehicleDataStatusOn; diff --git a/SmartDeviceLink/SDLVehicleDataStatus.m b/SmartDeviceLink/SDLVehicleDataStatus.m index 0fe108a1e..3c398ce44 100644 --- a/SmartDeviceLink/SDLVehicleDataStatus.m +++ b/SmartDeviceLink/SDLVehicleDataStatus.m @@ -4,53 +4,6 @@ #import "SDLVehicleDataStatus.h" -SDLVehicleDataStatus *SDLVehicleDataStatus_NO_DATA_EXISTS = nil; -SDLVehicleDataStatus *SDLVehicleDataStatus_OFF = nil; -SDLVehicleDataStatus *SDLVehicleDataStatus_ON = nil; - -NSArray *SDLVehicleDataStatus_values = nil; - -@implementation SDLVehicleDataStatus - -+ (SDLVehicleDataStatus *)valueOf:(NSString *)value { - for (SDLVehicleDataStatus *item in SDLVehicleDataStatus.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLVehicleDataStatus_values == nil) { - SDLVehicleDataStatus_values = @[ - SDLVehicleDataStatus.NO_DATA_EXISTS, - SDLVehicleDataStatus.OFF, - SDLVehicleDataStatus.ON, - ]; - } - return SDLVehicleDataStatus_values; -} - -+ (SDLVehicleDataStatus *)NO_DATA_EXISTS { - if (SDLVehicleDataStatus_NO_DATA_EXISTS == nil) { - SDLVehicleDataStatus_NO_DATA_EXISTS = [[SDLVehicleDataStatus alloc] initWithValue:@"NO_DATA_EXISTS"]; - } - return SDLVehicleDataStatus_NO_DATA_EXISTS; -} - -+ (SDLVehicleDataStatus *)OFF { - if (SDLVehicleDataStatus_OFF == nil) { - SDLVehicleDataStatus_OFF = [[SDLVehicleDataStatus alloc] initWithValue:@"OFF"]; - } - return SDLVehicleDataStatus_OFF; -} - -+ (SDLVehicleDataStatus *)ON { - if (SDLVehicleDataStatus_ON == nil) { - SDLVehicleDataStatus_ON = [[SDLVehicleDataStatus alloc] initWithValue:@"ON"]; - } - return SDLVehicleDataStatus_ON; -} - -@end +SDLVehicleDataStatus const SDLVehicleDataStatusNoDataExists = @"NO_DATA_EXISTS"; +SDLVehicleDataStatus const SDLVehicleDataStatusOff = @"OFF"; +SDLVehicleDataStatus const SDLVehicleDataStatusOn = @"ON"; diff --git a/SmartDeviceLink/SDLVehicleDataType.h b/SmartDeviceLink/SDLVehicleDataType.h index 71ec1f4fe..6db6707b8 100644 --- a/SmartDeviceLink/SDLVehicleDataType.h +++ b/SmartDeviceLink/SDLVehicleDataType.h @@ -7,153 +7,134 @@ /** * Defines the vehicle data types that can be published and/or subscribed to using SDLSubscribeVehicleData */ -@interface SDLVehicleDataType : SDLEnum { -} - -/** - * Convert String to SDLVehicleDataType - * - * @param value String value to retrieve the object for - * - * @return SDLVehicleDataType - */ -+ (SDLVehicleDataType *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLVehicleDataType - * - * @return an array that store all possible SDLVehicleDataType - */ -+ (NSArray *)values; +typedef SDLEnum SDLVehicleDataType SDL_SWIFT_ENUM; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_GPS* */ -+ (SDLVehicleDataType *)VEHICLEDATA_GPS; +extern SDLVehicleDataType const SDLVehicleDataTypeGPS; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_SPEED* */ -+ (SDLVehicleDataType *)VEHICLEDATA_SPEED; +extern SDLVehicleDataType const SDLVehicleDataTypeSpeed; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_RPM* */ -+ (SDLVehicleDataType *)VEHICLEDATA_RPM; +extern SDLVehicleDataType const SDLVehicleDataTypeRPM; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_FUELLEVEL* */ -+ (SDLVehicleDataType *)VEHICLEDATA_FUELLEVEL; +extern SDLVehicleDataType const SDLVehicleDataTypeFuelLevel; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_FUELLEVEL_STATE* */ -+ (SDLVehicleDataType *)VEHICLEDATA_FUELLEVEL_STATE; +extern SDLVehicleDataType const SDLVehicleDataTypeFuelLevelState; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_FUELCONSUMPTION* */ -+ (SDLVehicleDataType *)VEHICLEDATA_FUELCONSUMPTION; +extern SDLVehicleDataType const SDLVehicleDataTypeFuelConsumption; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_EXTERNTEMP* */ -+ (SDLVehicleDataType *)VEHICLEDATA_EXTERNTEMP; +extern SDLVehicleDataType const SDLVehicleDataTypeExternalTemperature; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_VIN* */ -+ (SDLVehicleDataType *)VEHICLEDATA_VIN; +extern SDLVehicleDataType const SDLVehicleDataTypeVIN; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_PRNDL* */ -+ (SDLVehicleDataType *)VEHICLEDATA_PRNDL; +extern SDLVehicleDataType const SDLVehicleDataTypePRNDL; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_TIREPRESSURE* */ -+ (SDLVehicleDataType *)VEHICLEDATA_TIREPRESSURE; +extern SDLVehicleDataType const SDLVehicleDataTypeTirePressure; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_ODOMETER* */ -+ (SDLVehicleDataType *)VEHICLEDATA_ODOMETER; +extern SDLVehicleDataType const SDLVehicleDataTypeOdometer; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_BELTSTATUS* */ -+ (SDLVehicleDataType *)VEHICLEDATA_BELTSTATUS; +extern SDLVehicleDataType const SDLVehicleDataTypeBeltStatus; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_BODYINFO* */ -+ (SDLVehicleDataType *)VEHICLEDATA_BODYINFO; +extern SDLVehicleDataType const SDLVehicleDataTypeBodyInfo; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_DEVICESTATUS* */ -+ (SDLVehicleDataType *)VEHICLEDATA_DEVICESTATUS; +extern SDLVehicleDataType const SDLVehicleDataTypeDeviceStatus; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_ECALLINFO* */ -+ (SDLVehicleDataType *)VEHICLEDATA_ECALLINFO; +extern SDLVehicleDataType const SDLVehicleDataTypeECallInfo; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_AIRBAGSTATUS* */ -+ (SDLVehicleDataType *)VEHICLEDATA_AIRBAGSTATUS; +extern SDLVehicleDataType const SDLVehicleDataTypeAirbagStatus; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_EMERGENCYEVENT* */ -+ (SDLVehicleDataType *)VEHICLEDATA_EMERGENCYEVENT; +extern SDLVehicleDataType const SDLVehicleDataTypeEmergencyEvent; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_CLUSTERMODESTATUS* */ -+ (SDLVehicleDataType *)VEHICLEDATA_CLUSTERMODESTATUS; +extern SDLVehicleDataType const SDLVehicleDataTypeClusterModeStatus; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_MYKEY* */ -+ (SDLVehicleDataType *)VEHICLEDATA_MYKEY; +extern SDLVehicleDataType const SDLVehicleDataTypeMyKey; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_BRAKING* */ -+ (SDLVehicleDataType *)VEHICLEDATA_BRAKING; +extern SDLVehicleDataType const SDLVehicleDataTypeBraking; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_WIPERSTATUS* */ -+ (SDLVehicleDataType *)VEHICLEDATA_WIPERSTATUS; +extern SDLVehicleDataType const SDLVehicleDataTypeWiperStatus; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_HEADLAMPSTATUS* */ -+ (SDLVehicleDataType *)VEHICLEDATA_HEADLAMPSTATUS; +extern SDLVehicleDataType const SDLVehicleDataTypeHeadlampStatus; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_BATTVOLTAGE* */ -+ (SDLVehicleDataType *)VEHICLEDATA_BATTVOLTAGE; +extern SDLVehicleDataType const SDLVehicleDataTypeBatteryVoltage; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_ENGINETORQUE* */ -+ (SDLVehicleDataType *)VEHICLEDATA_ENGINETORQUE; +extern SDLVehicleDataType const SDLVehicleDataTypeEngineTorque; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_ACCPEDAL* */ -+ (SDLVehicleDataType *)VEHICLEDATA_ACCPEDAL; +extern SDLVehicleDataType const SDLVehicleDataTypeAccelerationPedal; /** * @abstract SDLVehicleDataType: *VEHICLEDATA_STEERINGWHEEL* */ -+ (SDLVehicleDataType *)VEHICLEDATA_STEERINGWHEEL; - -@end +extern SDLVehicleDataType const SDLVehicleDataTypeSteeringWheel; diff --git a/SmartDeviceLink/SDLVehicleDataType.m b/SmartDeviceLink/SDLVehicleDataType.m index fa5573745..49fefdc84 100644 --- a/SmartDeviceLink/SDLVehicleDataType.m +++ b/SmartDeviceLink/SDLVehicleDataType.m @@ -4,260 +4,29 @@ #import "SDLVehicleDataType.h" -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_GPS = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_SPEED = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_RPM = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_FUELLEVEL = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_FUELLEVEL_STATE = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_FUELCONSUMPTION = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_EXTERNTEMP = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_VIN = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_PRNDL = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_TIREPRESSURE = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_ODOMETER = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_BELTSTATUS = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_BODYINFO = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_DEVICESTATUS = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_ECALLINFO = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_AIRBAGSTATUS = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_EMERGENCYEVENT = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_CLUSTERMODESTATUS = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_MYKEY = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_BRAKING = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_WIPERSTATUS = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_HEADLAMPSTATUS = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_BATTVOLTAGE = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_ENGINETORQUE = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_ACCPEDAL = nil; -SDLVehicleDataType *SDLVehicleDataType_VEHICLEDATA_STEERINGWHEEL = nil; - -NSArray *SDLVehicleDataType_values = nil; - -@implementation SDLVehicleDataType - -+ (SDLVehicleDataType *)valueOf:(NSString *)value { - for (SDLVehicleDataType *item in SDLVehicleDataType.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLVehicleDataType_values == nil) { - SDLVehicleDataType_values = @[ - SDLVehicleDataType.VEHICLEDATA_GPS, - SDLVehicleDataType.VEHICLEDATA_SPEED, - SDLVehicleDataType.VEHICLEDATA_RPM, - SDLVehicleDataType.VEHICLEDATA_FUELLEVEL, - SDLVehicleDataType.VEHICLEDATA_FUELLEVEL_STATE, - SDLVehicleDataType.VEHICLEDATA_FUELCONSUMPTION, - SDLVehicleDataType.VEHICLEDATA_EXTERNTEMP, - SDLVehicleDataType.VEHICLEDATA_VIN, - SDLVehicleDataType.VEHICLEDATA_PRNDL, - SDLVehicleDataType.VEHICLEDATA_TIREPRESSURE, - SDLVehicleDataType.VEHICLEDATA_ODOMETER, - SDLVehicleDataType.VEHICLEDATA_BELTSTATUS, - SDLVehicleDataType.VEHICLEDATA_BODYINFO, - SDLVehicleDataType.VEHICLEDATA_DEVICESTATUS, - SDLVehicleDataType.VEHICLEDATA_ECALLINFO, - SDLVehicleDataType.VEHICLEDATA_AIRBAGSTATUS, - SDLVehicleDataType.VEHICLEDATA_EMERGENCYEVENT, - SDLVehicleDataType.VEHICLEDATA_CLUSTERMODESTATUS, - SDLVehicleDataType.VEHICLEDATA_MYKEY, - SDLVehicleDataType.VEHICLEDATA_BRAKING, - SDLVehicleDataType.VEHICLEDATA_WIPERSTATUS, - SDLVehicleDataType.VEHICLEDATA_HEADLAMPSTATUS, - SDLVehicleDataType.VEHICLEDATA_BATTVOLTAGE, - SDLVehicleDataType.VEHICLEDATA_ENGINETORQUE, - SDLVehicleDataType.VEHICLEDATA_ACCPEDAL, - SDLVehicleDataType.VEHICLEDATA_STEERINGWHEEL, - ]; - } - return SDLVehicleDataType_values; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_GPS { - if (SDLVehicleDataType_VEHICLEDATA_GPS == nil) { - SDLVehicleDataType_VEHICLEDATA_GPS = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_GPS"]; - } - return SDLVehicleDataType_VEHICLEDATA_GPS; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_SPEED { - if (SDLVehicleDataType_VEHICLEDATA_SPEED == nil) { - SDLVehicleDataType_VEHICLEDATA_SPEED = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_SPEED"]; - } - return SDLVehicleDataType_VEHICLEDATA_SPEED; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_RPM { - if (SDLVehicleDataType_VEHICLEDATA_RPM == nil) { - SDLVehicleDataType_VEHICLEDATA_RPM = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_RPM"]; - } - return SDLVehicleDataType_VEHICLEDATA_RPM; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_FUELLEVEL { - if (SDLVehicleDataType_VEHICLEDATA_FUELLEVEL == nil) { - SDLVehicleDataType_VEHICLEDATA_FUELLEVEL = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_FUELLEVEL"]; - } - return SDLVehicleDataType_VEHICLEDATA_FUELLEVEL; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_FUELLEVEL_STATE { - if (SDLVehicleDataType_VEHICLEDATA_FUELLEVEL_STATE == nil) { - SDLVehicleDataType_VEHICLEDATA_FUELLEVEL_STATE = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_FUELLEVEL_STATE"]; - } - return SDLVehicleDataType_VEHICLEDATA_FUELLEVEL_STATE; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_FUELCONSUMPTION { - if (SDLVehicleDataType_VEHICLEDATA_FUELCONSUMPTION == nil) { - SDLVehicleDataType_VEHICLEDATA_FUELCONSUMPTION = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_FUELCONSUMPTION"]; - } - return SDLVehicleDataType_VEHICLEDATA_FUELCONSUMPTION; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_EXTERNTEMP { - if (SDLVehicleDataType_VEHICLEDATA_EXTERNTEMP == nil) { - SDLVehicleDataType_VEHICLEDATA_EXTERNTEMP = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_EXTERNTEMP"]; - } - return SDLVehicleDataType_VEHICLEDATA_EXTERNTEMP; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_VIN { - if (SDLVehicleDataType_VEHICLEDATA_VIN == nil) { - SDLVehicleDataType_VEHICLEDATA_VIN = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_VIN"]; - } - return SDLVehicleDataType_VEHICLEDATA_VIN; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_PRNDL { - if (SDLVehicleDataType_VEHICLEDATA_PRNDL == nil) { - SDLVehicleDataType_VEHICLEDATA_PRNDL = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_PRNDL"]; - } - return SDLVehicleDataType_VEHICLEDATA_PRNDL; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_TIREPRESSURE { - if (SDLVehicleDataType_VEHICLEDATA_TIREPRESSURE == nil) { - SDLVehicleDataType_VEHICLEDATA_TIREPRESSURE = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_TIREPRESSURE"]; - } - return SDLVehicleDataType_VEHICLEDATA_TIREPRESSURE; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_ODOMETER { - if (SDLVehicleDataType_VEHICLEDATA_ODOMETER == nil) { - SDLVehicleDataType_VEHICLEDATA_ODOMETER = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_ODOMETER"]; - } - return SDLVehicleDataType_VEHICLEDATA_ODOMETER; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_BELTSTATUS { - if (SDLVehicleDataType_VEHICLEDATA_BELTSTATUS == nil) { - SDLVehicleDataType_VEHICLEDATA_BELTSTATUS = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_BELTSTATUS"]; - } - return SDLVehicleDataType_VEHICLEDATA_BELTSTATUS; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_BODYINFO { - if (SDLVehicleDataType_VEHICLEDATA_BODYINFO == nil) { - SDLVehicleDataType_VEHICLEDATA_BODYINFO = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_BODYINFO"]; - } - return SDLVehicleDataType_VEHICLEDATA_BODYINFO; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_DEVICESTATUS { - if (SDLVehicleDataType_VEHICLEDATA_DEVICESTATUS == nil) { - SDLVehicleDataType_VEHICLEDATA_DEVICESTATUS = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_DEVICESTATUS"]; - } - return SDLVehicleDataType_VEHICLEDATA_DEVICESTATUS; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_ECALLINFO { - if (SDLVehicleDataType_VEHICLEDATA_ECALLINFO == nil) { - SDLVehicleDataType_VEHICLEDATA_ECALLINFO = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_ECALLINFO"]; - } - return SDLVehicleDataType_VEHICLEDATA_ECALLINFO; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_AIRBAGSTATUS { - if (SDLVehicleDataType_VEHICLEDATA_AIRBAGSTATUS == nil) { - SDLVehicleDataType_VEHICLEDATA_AIRBAGSTATUS = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_AIRBAGSTATUS"]; - } - return SDLVehicleDataType_VEHICLEDATA_AIRBAGSTATUS; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_EMERGENCYEVENT { - if (SDLVehicleDataType_VEHICLEDATA_EMERGENCYEVENT == nil) { - SDLVehicleDataType_VEHICLEDATA_EMERGENCYEVENT = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_EMERGENCYEVENT"]; - } - return SDLVehicleDataType_VEHICLEDATA_EMERGENCYEVENT; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_CLUSTERMODESTATUS { - if (SDLVehicleDataType_VEHICLEDATA_CLUSTERMODESTATUS == nil) { - SDLVehicleDataType_VEHICLEDATA_CLUSTERMODESTATUS = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_CLUSTERMODESTATUS"]; - } - return SDLVehicleDataType_VEHICLEDATA_CLUSTERMODESTATUS; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_MYKEY { - if (SDLVehicleDataType_VEHICLEDATA_MYKEY == nil) { - SDLVehicleDataType_VEHICLEDATA_MYKEY = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_MYKEY"]; - } - return SDLVehicleDataType_VEHICLEDATA_MYKEY; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_BRAKING { - if (SDLVehicleDataType_VEHICLEDATA_BRAKING == nil) { - SDLVehicleDataType_VEHICLEDATA_BRAKING = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_BRAKING"]; - } - return SDLVehicleDataType_VEHICLEDATA_BRAKING; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_WIPERSTATUS { - if (SDLVehicleDataType_VEHICLEDATA_WIPERSTATUS == nil) { - SDLVehicleDataType_VEHICLEDATA_WIPERSTATUS = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_WIPERSTATUS"]; - } - return SDLVehicleDataType_VEHICLEDATA_WIPERSTATUS; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_HEADLAMPSTATUS { - if (SDLVehicleDataType_VEHICLEDATA_HEADLAMPSTATUS == nil) { - SDLVehicleDataType_VEHICLEDATA_HEADLAMPSTATUS = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_HEADLAMPSTATUS"]; - } - return SDLVehicleDataType_VEHICLEDATA_HEADLAMPSTATUS; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_BATTVOLTAGE { - if (SDLVehicleDataType_VEHICLEDATA_BATTVOLTAGE == nil) { - SDLVehicleDataType_VEHICLEDATA_BATTVOLTAGE = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_BATTVOLTAGE"]; - } - return SDLVehicleDataType_VEHICLEDATA_BATTVOLTAGE; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_ENGINETORQUE { - if (SDLVehicleDataType_VEHICLEDATA_ENGINETORQUE == nil) { - SDLVehicleDataType_VEHICLEDATA_ENGINETORQUE = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_ENGINETORQUE"]; - } - return SDLVehicleDataType_VEHICLEDATA_ENGINETORQUE; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_ACCPEDAL { - if (SDLVehicleDataType_VEHICLEDATA_ACCPEDAL == nil) { - SDLVehicleDataType_VEHICLEDATA_ACCPEDAL = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_ACCPEDAL"]; - } - return SDLVehicleDataType_VEHICLEDATA_ACCPEDAL; -} - -+ (SDLVehicleDataType *)VEHICLEDATA_STEERINGWHEEL { - if (SDLVehicleDataType_VEHICLEDATA_STEERINGWHEEL == nil) { - SDLVehicleDataType_VEHICLEDATA_STEERINGWHEEL = [[SDLVehicleDataType alloc] initWithValue:@"VEHICLEDATA_STEERINGWHEEL"]; - } - return SDLVehicleDataType_VEHICLEDATA_STEERINGWHEEL; -} - -@end +SDLVehicleDataType const SDLVehicleDataTypeGPS = @"VEHICLEDATA_GPS"; +SDLVehicleDataType const SDLVehicleDataTypeSpeed = @"VEHICLEDATA_SPEED"; +SDLVehicleDataType const SDLVehicleDataTypeRPM = @"VEHICLEDATA_RPM"; +SDLVehicleDataType const SDLVehicleDataTypeFuelLevel = @"VEHICLEDATA_FUELLEVEL"; +SDLVehicleDataType const SDLVehicleDataTypeFuelLevelState = @"VEHICLEDATA_FUELLEVEL_STATE"; +SDLVehicleDataType const SDLVehicleDataTypeFuelConsumption = @"VEHICLEDATA_FUELCONSUMPTION"; +SDLVehicleDataType const SDLVehicleDataTypeExternalTemperature = @"VEHICLEDATA_EXTERNTEMP"; +SDLVehicleDataType const SDLVehicleDataTypeVIN = @"VEHICLEDATA_VIN"; +SDLVehicleDataType const SDLVehicleDataTypePRNDL = @"VEHICLEDATA_PRNDL"; +SDLVehicleDataType const SDLVehicleDataTypeTirePressure = @"VEHICLEDATA_TIREPRESSURE"; +SDLVehicleDataType const SDLVehicleDataTypeOdometer = @"VEHICLEDATA_ODOMETER"; +SDLVehicleDataType const SDLVehicleDataTypeBeltStatus = @"VEHICLEDATA_BELTSTATUS"; +SDLVehicleDataType const SDLVehicleDataTypeBodyInfo = @"VEHICLEDATA_BODYINFO"; +SDLVehicleDataType const SDLVehicleDataTypeDeviceStatus = @"VEHICLEDATA_DEVICESTATUS"; +SDLVehicleDataType const SDLVehicleDataTypeECallInfo = @"VEHICLEDATA_ECALLINFO"; +SDLVehicleDataType const SDLVehicleDataTypeAirbagStatus = @"VEHICLEDATA_AIRBAGSTATUS"; +SDLVehicleDataType const SDLVehicleDataTypeEmergencyEvent = @"VEHICLEDATA_EMERGENCYEVENT"; +SDLVehicleDataType const SDLVehicleDataTypeClusterModeStatus = @"VEHICLEDATA_CLUSTERMODESTATUS"; +SDLVehicleDataType const SDLVehicleDataTypeMyKey = @"VEHICLEDATA_MYKEY"; +SDLVehicleDataType const SDLVehicleDataTypeBraking = @"VEHICLEDATA_BRAKING"; +SDLVehicleDataType const SDLVehicleDataTypeWiperStatus = @"VEHICLEDATA_WIPERSTATUS"; +SDLVehicleDataType const SDLVehicleDataTypeHeadlampStatus = @"VEHICLEDATA_HEADLAMPSTATUS"; +SDLVehicleDataType const SDLVehicleDataTypeBatteryVoltage = @"VEHICLEDATA_BATTVOLTAGE"; +SDLVehicleDataType const SDLVehicleDataTypeEngineTorque = @"VEHICLEDATA_ENGINETORQUE"; +SDLVehicleDataType const SDLVehicleDataTypeAccelerationPedal = @"VEHICLEDATA_ACCPEDAL"; +SDLVehicleDataType const SDLVehicleDataTypeSteeringWheel = @"VEHICLEDATA_STEERINGWHEEL"; diff --git a/SmartDeviceLink/SDLVehicleType.h b/SmartDeviceLink/SDLVehicleType.h index 1a934b5eb..4d7164bb4 100644 --- a/SmartDeviceLink/SDLVehicleType.h +++ b/SmartDeviceLink/SDLVehicleType.h @@ -9,19 +9,10 @@ * * @since SDL 2.0 */ -@interface SDLVehicleType : SDLRPCStruct { -} -/** - * @abstract Constructs a newly allocated SDLVehicleType object - */ -- (instancetype)init; +NS_ASSUME_NONNULL_BEGIN -/** - * @abstract Constructs a newly allocated SDLVehicleType object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +@interface SDLVehicleType : SDLRPCStruct /** * @abstract The make of the vehicle @@ -30,7 +21,7 @@ * * Optional, Max String length 500 chars */ -@property (strong) NSString *make; +@property (strong, nonatomic, nullable) NSString *make; /** * @abstract The model of the vehicle @@ -39,7 +30,7 @@ * * Optional, Max String length 500 chars */ -@property (strong) NSString *model; +@property (strong, nonatomic, nullable) NSString *model; /** * @abstract The model year of the vehicle @@ -48,7 +39,7 @@ * * Optional, Max String length 500 chars */ -@property (strong) NSString *modelYear; +@property (strong, nonatomic, nullable) NSString *modelYear; /** * @abstract The trim of the vehicle @@ -57,6 +48,8 @@ * * Optional, Max String length 500 chars */ -@property (strong) NSString *trim; +@property (strong, nonatomic, nullable) NSString *trim; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLVehicleType.m b/SmartDeviceLink/SDLVehicleType.m index ebee2de7f..73e98aa20 100644 --- a/SmartDeviceLink/SDLVehicleType.m +++ b/SmartDeviceLink/SDLVehicleType.m @@ -4,68 +4,45 @@ #import "SDLVehicleType.h" +#import "NSMutableDictionary+Store.h" #import "SDLNames.h" -@implementation SDLVehicleType - -- (instancetype)init { - if (self = [super init]) { - } - return self; -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} +@implementation SDLVehicleType -- (void)setMake:(NSString *)make { - if (make != nil) { - [store setObject:make forKey:NAMES_make]; - } else { - [store removeObjectForKey:NAMES_make]; - } +- (void)setMake:(nullable NSString *)make { + [store sdl_setObject:make forName:SDLNameMake]; } -- (NSString *)make { - return [store objectForKey:NAMES_make]; +- (nullable NSString *)make { + return [store sdl_objectForName:SDLNameMake]; } -- (void)setModel:(NSString *)model { - if (model != nil) { - [store setObject:model forKey:NAMES_model]; - } else { - [store removeObjectForKey:NAMES_model]; - } +- (void)setModel:(nullable NSString *)model { + [store sdl_setObject:model forName:SDLNameModel]; } -- (NSString *)model { - return [store objectForKey:NAMES_model]; +- (nullable NSString *)model { + return [store sdl_objectForName:SDLNameModel]; } -- (void)setModelYear:(NSString *)modelYear { - if (modelYear != nil) { - [store setObject:modelYear forKey:NAMES_modelYear]; - } else { - [store removeObjectForKey:NAMES_modelYear]; - } +- (void)setModelYear:(nullable NSString *)modelYear { + [store sdl_setObject:modelYear forName:SDLNameModelYear]; } -- (NSString *)modelYear { - return [store objectForKey:NAMES_modelYear]; +- (nullable NSString *)modelYear { + return [store sdl_objectForName:SDLNameModelYear]; } -- (void)setTrim:(NSString *)trim { - if (trim != nil) { - [store setObject:trim forKey:NAMES_trim]; - } else { - [store removeObjectForKey:NAMES_trim]; - } +- (void)setTrim:(nullable NSString *)trim { + [store sdl_setObject:trim forName:SDLNameTrim]; } -- (NSString *)trim { - return [store objectForKey:NAMES_trim]; +- (nullable NSString *)trim { + return [store sdl_objectForName:SDLNameTrim]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLVentilationMode.h b/SmartDeviceLink/SDLVentilationMode.h new file mode 100644 index 000000000..b36bd2d6a --- /dev/null +++ b/SmartDeviceLink/SDLVentilationMode.h @@ -0,0 +1,28 @@ +// +// SDLVentilationMode.h +// + +#import "SDLEnum.h" + +typedef SDLEnum SDLVentilationMode SDL_SWIFT_ENUM; + +/** + * @abstract A SDLDefrostZone with the value of *UPPER* + */ +extern SDLVentilationMode const SDLVentilationModeUpper; + +/** + * @abstract A SDLDefrostZone with the value of *LOWER* + */ +extern SDLVentilationMode const SDLVentilationModeLower; + +/** + * @abstract A SDLDefrostZone with the value of *BOTH* + */ +extern SDLVentilationMode const SDLVentilationModeBoth; + +/** + * @abstract A SDLDefrostZone with the value of *NONE* + */ +extern SDLVentilationMode const SDLVentilationModeNone; + diff --git a/SmartDeviceLink/SDLVentilationMode.m b/SmartDeviceLink/SDLVentilationMode.m new file mode 100644 index 000000000..b4b26eef1 --- /dev/null +++ b/SmartDeviceLink/SDLVentilationMode.m @@ -0,0 +1,11 @@ +// +// SDLVentilationMode.m +// + +#import "SDLVentilationMode.h" + + +SDLVentilationMode const SDLVentilationModeUpper = @"UPPER"; +SDLVentilationMode const SDLVentilationModeLower = @"LOWER"; +SDLVentilationMode const SDLVentilationModeBoth = @"BOTH"; +SDLVentilationMode const SDLVentilationModeNone = @"NONE"; diff --git a/SmartDeviceLink/SDLVideoEncoderDelegate.h b/SmartDeviceLink/SDLVideoEncoderDelegate.h new file mode 100644 index 000000000..a8bf27f22 --- /dev/null +++ b/SmartDeviceLink/SDLVideoEncoderDelegate.h @@ -0,0 +1,17 @@ +// +// SDLVideoEncoderDelegate.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 8/1/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +@class SDLH264VideoEncoder; + +@protocol SDLVideoEncoderDelegate + +- (void)videoEncoder:(SDLH264VideoEncoder *)encoder hasEncodedFrame:(NSData*)encodedVideo; + +@end diff --git a/SmartDeviceLink/SDLVideoStreamingCapability.h b/SmartDeviceLink/SDLVideoStreamingCapability.h index 3fa324b2c..c4e9c967e 100644 --- a/SmartDeviceLink/SDLVideoStreamingCapability.h +++ b/SmartDeviceLink/SDLVideoStreamingCapability.h @@ -2,7 +2,7 @@ // SDLVideoStreamingCapability.h // SmartDeviceLink-iOS // -// Created by Brett McIsaac on 7/27/17. +// Created by Brett McIsaac on 7/31/17. // Copyright © 2017 smartdevicelink. All rights reserved. // @@ -11,40 +11,36 @@ @class SDLImageResolution; @class SDLVideoStreamingFormat; +NS_ASSUME_NONNULL_BEGIN + @interface SDLVideoStreamingCapability : SDLRPCStruct -/** - * @abstract Constructs a newly allocated SDLVideoStreamingCapability object - */ -- (instancetype)init; +- (instancetype)initWithPreferredResolution:(nullable SDLImageResolution *)preferredResolution maxBitrate:(int32_t)maxBitrate supportedFormats:(nullable NSArray *)supportedFormats hapticDataSupported:(BOOL)hapticDataSupported; -/** - * @abstract Constructs a newly allocated SDLVideoStreamingCapability object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - -- (instancetype)initWithVideoStreaming:(SDLImageResolution *)preferredResolution maxBitrate:(NSNumber *)maxBitrate supportedFormats:(NSArray *)supportedFormats hapticDataSupported:(NSNumber *)hapticDataSupported; /** * @abstract The preferred resolution of a video stream for decoding and rendering on HMI, optional */ -@property (strong, nonatomic) SDLImageResolution *preferredResolution; +@property (nullable, strong, nonatomic) SDLImageResolution *preferredResolution; /** * @abstract The maximum bitrate of video stream that is supported, in kbps, optional + * * minvalue= 0 + * * maxvalue= 2147483647 */ -@property (strong, nonatomic) NSNumber *maxBitrate; +@property (nullable, strong, nonatomic) NSNumber *maxBitrate; /** * @abstract Detailed information on each format supported by this system, in its preferred order, optional */ -@property (strong, nonatomic) NSMutableArray *supportedFormats; +@property (nullable, strong, nonatomic) NSArray *supportedFormats; /** True if the system can utilize the haptic spatial data from the source being streamed. */ -@property (strong, nonatomic) NSNumber *hapticSpatialDataSupported; +@property (nullable, strong, nonatomic) NSNumber *hapticSpatialDataSupported; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLVideoStreamingCapability.m b/SmartDeviceLink/SDLVideoStreamingCapability.m index 01c05f0d7..c5f5ae26c 100644 --- a/SmartDeviceLink/SDLVideoStreamingCapability.m +++ b/SmartDeviceLink/SDLVideoStreamingCapability.m @@ -2,105 +2,67 @@ // SDLVideoStreamingCapability.m // SmartDeviceLink-iOS // -// Created by Brett McIsaac on 7/27/17. +// Created by Brett McIsaac on 7/31/17. // Copyright © 2017 smartdevicelink. All rights reserved. // #import "SDLImageResolution.h" -#import "SDLNames.h" -#import "SDLVideoStreamingFormat.h" #import "SDLVideoStreamingCapability.h" +#import "SDLVideoStreamingFormat.h" -@implementation SDLVideoStreamingCapability +#import "NSMutableDictionary+Store.h" +#import "SDLNames.h" -- (instancetype)init { - if (self = [super init]) { - } - return self; -} +NS_ASSUME_NONNULL_BEGIN -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} +@implementation SDLVideoStreamingCapability -- (instancetype)initWithVideoStreaming:(SDLImageResolution *)preferredResolution maxBitrate:(NSNumber *)maxBitrate supportedFormats:(NSArray *)supportedFormats hapticDataSupported:(NSNumber *)hapticDataSupported { +- (instancetype)initWithPreferredResolution:(nullable SDLImageResolution *)preferredResolution maxBitrate:(int32_t)maxBitrate supportedFormats:(nullable NSArray *)supportedFormats hapticDataSupported:(BOOL)hapticDataSupported { self = [self init]; if (!self) { return self; } - self.maxBitrate = maxBitrate; + self.maxBitrate = @(maxBitrate); self.preferredResolution = preferredResolution; - self.supportedFormats = [supportedFormats mutableCopy]; - self.hapticSpatialDataSupported = hapticDataSupported; + self.supportedFormats = supportedFormats; + self.hapticSpatialDataSupported = @(hapticDataSupported); return self; } -- (void)setPreferredResolution:(SDLImageResolution *)preferredResolution { - if (preferredResolution != nil) { - [store setObject:preferredResolution forKey:NAMES_preferredResolution]; - } else { - [store removeObjectForKey:NAMES_preferredResolution]; - } +- (void)setPreferredResolution:(nullable SDLImageResolution *)preferredResolution { + [store sdl_setObject:preferredResolution forName:SDLNamePreferredResolution]; } -- (SDLImageResolution *)preferredResolution { - NSObject *obj = [store objectForKey:NAMES_preferredResolution]; - if (obj == nil || [obj isKindOfClass:SDLImageResolution.class]) { - return (SDLImageResolution *)obj; - } else { - return [[SDLImageResolution alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLImageResolution *)preferredResolution { + return [store sdl_objectForName:SDLNamePreferredResolution ofClass:SDLImageResolution.class]; } -- (void)setMaxBitrate:(NSNumber *)maxBitrate { - if (maxBitrate != nil) { - [store setObject:maxBitrate forKey:NAMES_maxBitrate]; - } else { - [store removeObjectForKey:NAMES_maxBitrate]; - } +- (void)setMaxBitrate:(nullable NSNumber *)maxBitrate { + [store sdl_setObject:maxBitrate forName:SDLNameMaxBitrate]; } -- (NSNumber *)maxBitrate { - return [store objectForKey:NAMES_maxBitrate]; +- (nullable NSNumber *)maxBitrate { + return [store sdl_objectForName:SDLNameMaxBitrate]; } -- (void)setSupportedFormats:(NSMutableArray *)supportedFormats { - if (supportedFormats != nil) { - [store setObject:supportedFormats forKey:NAMES_supportedFormats]; - } else { - [store removeObjectForKey:NAMES_supportedFormats]; - } +- (void)setSupportedFormats:(nullable NSArray *)supportedFormats { + [store sdl_setObject:supportedFormats forName:SDLNameSupportedFormats]; } -- (NSMutableArray *)supportedFormats { - NSMutableArray *array = [store objectForKey:NAMES_supportedFormats]; - if ([array isEqual:[NSNull null]]) { - return [NSMutableArray array]; - } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLVideoStreamingFormat.class]) { - return array; - } else { - NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]]; - for (NSDictionary *dict in array) { - [newList addObject:[[SDLVideoStreamingFormat alloc] initWithDictionary:(NSMutableDictionary *)dict]]; - } - return newList; - } +- (nullable NSArray *)supportedFormats { + return [store sdl_objectsForName:SDLNameSupportedFormats ofClass:SDLVideoStreamingFormat.class]; } -- (void)setHapticSpatialDataSupported:(NSNumber *)hapticSpatialDataSupported { - if (hapticSpatialDataSupported != nil) { - [store setObject:hapticSpatialDataSupported forKey:NAMES_hapticSpatialDataSupported]; - } else { - [store removeObjectForKey:NAMES_hapticSpatialDataSupported]; - } +- (void)setHapticSpatialDataSupported:(nullable NSNumber *)hapticSpatialDataSupported { + [store sdl_setObject:hapticSpatialDataSupported forName:SDLNameHapticSpatialDataSupported]; } -- (NSNumber *)hapticSpatialDataSupported { - return [store objectForKey:NAMES_hapticSpatialDataSupported]; +- (nullable NSNumber *)hapticSpatialDataSupported { + return [store sdl_objectForName:SDLNameHapticSpatialDataSupported]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLVideoStreamingCodec.h b/SmartDeviceLink/SDLVideoStreamingCodec.h index 0bfeb90f0..8543876b2 100644 --- a/SmartDeviceLink/SDLVideoStreamingCodec.h +++ b/SmartDeviceLink/SDLVideoStreamingCodec.h @@ -2,57 +2,35 @@ // SDLVideoStreamingCodec.h // SmartDeviceLink-iOS // -// Created by Brett McIsaac on 7/27/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// #import "SDLEnum.h" /** * Enum for each type of video streaming codec - * - * @since SDL 4.7 - */ -@interface SDLVideoStreamingCodec : SDLEnum - -/** - * Convert String to SDLVideoStreamingCodec - * - * @param value String value to retrieve the object for - * - * @return SDLVideoStreamingCodec */ -+ (SDLVideoStreamingCodec *)valueOf:(NSString *)value; +typedef SDLEnum SDLVideoStreamingCodec SDL_SWIFT_ENUM; /** - @abstract Store the enumeration of all possible SDLVideoStreamingCodec - @return an array that store all possible SDLVideoStreamingCodec + * @abstract SDLVideoStreamingCodec : H264 */ -+ (NSArray *)values; +extern SDLVideoStreamingCodec const SDLVideoStreamingCodecH264; /** - @abstract SDLVideoStreamingCodec : H264 + * @abstract SDLVideoStreamingCodec : H265 */ -+ (SDLVideoStreamingCodec *)H264; +extern SDLVideoStreamingCodec const SDLVideoStreamingCodecH265; /** - @abstract SDLVideoStreamingCodec : H265 + * @abstract SDLVideoStreamingCodec : Theora */ -+ (SDLVideoStreamingCodec *)H265; +extern SDLVideoStreamingCodec const SDLVideoStreamingCodecTheora; /** - @abstract SDLVideoStreamingCodec : Theora + * @abstract SDLVideoStreamingCodec : VP8 */ -+ (SDLVideoStreamingCodec *)THEORA; +extern SDLVideoStreamingCodec const SDLVideoStreamingCodecVP8; /** - @abstract SDLVideoStreamingCodec : VP8 + * @abstract SDLVideoStreamingCodec : VP9 */ -+ (SDLVideoStreamingCodec *)VP8; - -/** - @abstract SDLVideoStreamingCodec : VP9 - */ -+ (SDLVideoStreamingCodec *)VP9; - -@end +extern SDLVideoStreamingCodec const SDLVideoStreamingCodecVP9; diff --git a/SmartDeviceLink/SDLVideoStreamingCodec.m b/SmartDeviceLink/SDLVideoStreamingCodec.m index e15ecdf54..6ad66105f 100644 --- a/SmartDeviceLink/SDLVideoStreamingCodec.m +++ b/SmartDeviceLink/SDLVideoStreamingCodec.m @@ -2,77 +2,12 @@ // SDLVideoStreamingCodec.m // SmartDeviceLink-iOS // -// Created by Brett McIsaac on 7/27/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// - -#import "SDLVideoStreamingCodec.h" - -SDLVideoStreamingCodec *SDLVideoStreamingCodec_H264 = nil; -SDLVideoStreamingCodec *SDLVideoStreamingCodec_H265 = nil; -SDLVideoStreamingCodec *SDLVideoStreamingCodec_THEORA = nil; -SDLVideoStreamingCodec *SDLVideoStreamingCodec_VP8 = nil; -SDLVideoStreamingCodec *SDLVideoStreamingCodec_VP9 = nil; - -NSArray *SDLVideoStreamingCodec_values = nil; - -@implementation SDLVideoStreamingCodec -+ (SDLVideoStreamingCodec *)valueOf:(NSString *)value { - for (SDLVideoStreamingCodec *item in SDLVideoStreamingCodec.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} -+ (NSArray *)values { - if (SDLVideoStreamingCodec_values == nil) { - SDLVideoStreamingCodec_values = @[ - SDLVideoStreamingCodec.H264, - SDLVideoStreamingCodec.H265, - SDLVideoStreamingCodec.THEORA, - SDLVideoStreamingCodec.VP8, - SDLVideoStreamingCodec.VP9 - ]; - } - return SDLVideoStreamingCodec_values; -} - -+ (SDLVideoStreamingCodec *)H264 { - if (SDLVideoStreamingCodec_H264 == nil) { - SDLVideoStreamingCodec_H264 = [[SDLVideoStreamingCodec alloc] initWithValue:@"H264"]; - } - return SDLVideoStreamingCodec_H264; -} - -+ (SDLVideoStreamingCodec *)H265 { - if (SDLVideoStreamingCodec_H265 == nil) { - SDLVideoStreamingCodec_H265 = [[SDLVideoStreamingCodec alloc] initWithValue:@"H265"]; - } - return SDLVideoStreamingCodec_H265; -} - -+ (SDLVideoStreamingCodec *)THEORA { - if (SDLVideoStreamingCodec_THEORA == nil) { - SDLVideoStreamingCodec_THEORA = [[SDLVideoStreamingCodec alloc] initWithValue:@"THEORA"]; - } - return SDLVideoStreamingCodec_THEORA; -} - -+ (SDLVideoStreamingCodec *)VP8 { - if (SDLVideoStreamingCodec_VP8 == nil) { - SDLVideoStreamingCodec_VP8 = [[SDLVideoStreamingCodec alloc] initWithValue:@"VP8"]; - } - return SDLVideoStreamingCodec_VP8; -} - -+ (SDLVideoStreamingCodec *)VP9 { - if (SDLVideoStreamingCodec_VP9 == nil) { - SDLVideoStreamingCodec_VP9 = [[SDLVideoStreamingCodec alloc] initWithValue:@"VP9"]; - } - return SDLVideoStreamingCodec_VP9; -} +#import "SDLVideoStreamingCodec.h" -@end +SDLVideoStreamingCodec const SDLVideoStreamingCodecH264 = @"H264"; +SDLVideoStreamingCodec const SDLVideoStreamingCodecH265 = @"H265"; +SDLVideoStreamingCodec const SDLVideoStreamingCodecTheora = @"THEORA"; +SDLVideoStreamingCodec const SDLVideoStreamingCodecVP8 = @"VP8"; +SDLVideoStreamingCodec const SDLVideoStreamingCodecVP9 = @"VP9"; diff --git a/SmartDeviceLink/SDLVideoStreamingFormat.h b/SmartDeviceLink/SDLVideoStreamingFormat.h index 3f1b5829f..87657eb47 100644 --- a/SmartDeviceLink/SDLVideoStreamingFormat.h +++ b/SmartDeviceLink/SDLVideoStreamingFormat.h @@ -2,36 +2,27 @@ // SDLVideoStreamingFormat.h // SmartDeviceLink-iOS // -// Created by Brett McIsaac on 7/27/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// #import "SDLRPCMessage.h" +#import "SDLVideoStreamingProtocol.h" +#import "SDLVideoStreamingCodec.h" -@class SDLVideoStreamingCodec; -@class SDLVideoStreamingProtocol; +NS_ASSUME_NONNULL_BEGIN @interface SDLVideoStreamingFormat : SDLRPCStruct -/** - * @abstract Constructs a newly allocated SDLVideoStreamingFormat object - */ -- (instancetype)init; - -/** - * @abstract Constructs a newly allocated SDLVideoStreamingFormat object indicated by the dictionary parameter - * @param dict The dictionary to use - */ -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; - /** * @abstract Protocol type, see VideoStreamingProtocol, mandatory */ -@property (strong, nonatomic) SDLVideoStreamingProtocol *protocol; +@property (strong, nonatomic) SDLVideoStreamingProtocol protocol; /** * @abstract Codec type, see VideoStreamingCodec, mandatory */ -@property (strong, nonatomic) SDLVideoStreamingCodec *codec; +@property (strong, nonatomic) SDLVideoStreamingCodec codec; + +- (instancetype)initWithCodec:(SDLVideoStreamingCodec)codec protocol:(SDLVideoStreamingProtocol)protocol; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLVideoStreamingFormat.m b/SmartDeviceLink/SDLVideoStreamingFormat.m index 49f7a650c..35c639537 100644 --- a/SmartDeviceLink/SDLVideoStreamingFormat.m +++ b/SmartDeviceLink/SDLVideoStreamingFormat.m @@ -2,61 +2,44 @@ // SDLVideoStreamingFormat.m // SmartDeviceLink-iOS // -// Created by Brett McIsaac on 7/27/17. +// Created by Brett McIsaac on 7/31/17. // Copyright © 2017 smartdevicelink. All rights reserved. // -#import "SDLNames.h" -#import "SDLVideoStreamingCodec.h" #import "SDLVideoStreamingFormat.h" -#import "SDLVideoStreamingProtocol.h" +#import "NSMutableDictionary+Store.h" +#import "SDLNames.h" + +NS_ASSUME_NONNULL_BEGIN @implementation SDLVideoStreamingFormat -- (instancetype)init { - if (self = [super init]) { - } - return self; -} +- (instancetype)initWithCodec:(SDLVideoStreamingCodec)codec protocol:(SDLVideoStreamingProtocol)protocol { + self = [self init]; + if (!self) { return nil; } + + self.codec = codec; + self.protocol = protocol; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } return self; } -- (void)setVideoStreamingProtocol:(SDLVideoStreamingProtocol *)protocol { - if (protocol != nil) { - [store setObject:protocol forKey:NAMES_videoProtocol]; - } else { - [store removeObjectForKey:NAMES_videoProtocol]; - } +- (SDLVideoStreamingProtocol)protocol { + return [store sdl_objectForName:SDLNameVideoProtocol]; } -- (SDLVideoStreamingProtocol *)protocol { - NSObject *obj = [store objectForKey:NAMES_videoProtocol]; - if (obj == nil || [obj isKindOfClass:SDLVideoStreamingProtocol.class]) { - return (SDLVideoStreamingProtocol *)obj; - } else { - return [SDLVideoStreamingProtocol valueOf:(NSString *)obj]; - } +- (void)setProtocol:(SDLVideoStreamingProtocol)protocol { + [store sdl_setObject:protocol forName:SDLNameVideoProtocol]; } -- (void)setVideoStreamingCodec:(SDLVideoStreamingCodec *)codec { - if (codec != nil) { - [store setObject:codec forKey:NAMES_videoCodec]; - } else { - [store removeObjectForKey:NAMES_videoCodec]; - } +- (SDLVideoStreamingCodec)codec { + return [store sdl_objectForName:SDLNameVideoCodec]; } -- (SDLVideoStreamingCodec *)codec { - NSObject *obj = [store objectForKey:NAMES_videoCodec]; - if (obj == nil || [obj isKindOfClass:SDLVideoStreamingCodec.class]) { - return (SDLVideoStreamingCodec *)obj; - } else { - return [SDLVideoStreamingCodec valueOf:(NSString *)obj]; - } +- (void)setCodec:(SDLVideoStreamingCodec)codec { + [store sdl_setObject:codec forName:SDLNameVideoCodec]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLVideoStreamingProtocol.h b/SmartDeviceLink/SDLVideoStreamingProtocol.h index d36f969ec..5e909764e 100644 --- a/SmartDeviceLink/SDLVideoStreamingProtocol.h +++ b/SmartDeviceLink/SDLVideoStreamingProtocol.h @@ -2,57 +2,35 @@ // SDLVideoStreamingProtocol.h // SmartDeviceLink-iOS // -// Created by Brett McIsaac on 7/27/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// #import "SDLEnum.h" /** * Enum for each type of video streaming protocol - * - * @since SDL 4.7 - */ -@interface SDLVideoStreamingProtocol : SDLEnum - -/** - * Convert String to SDLVideoStreamingProtocol - * - * @param value String value to retrieve the object for - * - * @return SDLVideoStreamingProtocol */ -+ (SDLVideoStreamingProtocol *)valueOf:(NSString *)value; +typedef SDLEnum SDLVideoStreamingProtocol SDL_SWIFT_ENUM; /** - @abstract Store the enumeration of all possible SDLVideoStreamingProtocol - @return an array that store all possible SDLVideoStreamingProtocol + * @abstract SDLVideoStreamingProtocol : RAW */ -+ (NSArray *)values; +extern SDLVideoStreamingProtocol const SDLVideoStreamingProtocolRAW; /** - @abstract SDLVideoStreamingProtocol : RAW + * @abstract SDLVideoStreamingProtocol : RTP */ -+ (SDLVideoStreamingProtocol *)RAW; +extern SDLVideoStreamingProtocol const SDLVideoStreamingProtocolRTP; /** - @abstract SDLVideoStreamingProtocol : RTP + * @abstract SDLVideoStreamingProtocol : RTSP */ -+ (SDLVideoStreamingProtocol *)RTP; +extern SDLVideoStreamingProtocol const SDLVideoStreamingProtocolRTSP; /** - @abstract SDLVideoStreamingProtocol : RTSP + * @abstract SDLVideoStreamingProtocol : RTMP */ -+ (SDLVideoStreamingProtocol *)RTSP; +extern SDLVideoStreamingProtocol const SDLVideoStreamingProtocolRTMP; /** - @abstract SDLVideoStreamingProtocol : RTMP + * @abstract SDLVideoStreamingProtocol : WebM */ -+ (SDLVideoStreamingProtocol *)RTMP; - -/** - @abstract SDLVideoStreamingProtocol : WEBM - */ -+ (SDLVideoStreamingProtocol *)WEBM; - -@end +extern SDLVideoStreamingProtocol const SDLVideoStreamingProtocolWebM; diff --git a/SmartDeviceLink/SDLVideoStreamingProtocol.m b/SmartDeviceLink/SDLVideoStreamingProtocol.m index 0509be0cc..c39addd75 100644 --- a/SmartDeviceLink/SDLVideoStreamingProtocol.m +++ b/SmartDeviceLink/SDLVideoStreamingProtocol.m @@ -1,78 +1,11 @@ // // SDLVideoStreamingProtocol.m // SmartDeviceLink-iOS -// -// Created by Brett McIsaac on 7/27/17. -// Copyright © 2017 smartdevicelink. All rights reserved. -// #import "SDLVideoStreamingProtocol.h" -SDLVideoStreamingProtocol *SDLVideoStreamingProtocol_RAW = nil; -SDLVideoStreamingProtocol *SDLVideoStreamingProtocol_RTP = nil; -SDLVideoStreamingProtocol *SDLVideoStreamingProtocol_RTSP = nil; -SDLVideoStreamingProtocol *SDLVideoStreamingProtocol_RTMP = nil; -SDLVideoStreamingProtocol *SDLVideoStreamingProtocol_WEBM = nil; - -NSArray *SDLVideoStreamingProtocol_values = nil; - -@implementation SDLVideoStreamingProtocol - -+ (SDLVideoStreamingProtocol *)valueOf:(NSString *)value { - for (SDLVideoStreamingProtocol *item in SDLVideoStreamingProtocol.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLVideoStreamingProtocol_values == nil) { - SDLVideoStreamingProtocol_values = @[ - SDLVideoStreamingProtocol.RAW, - SDLVideoStreamingProtocol.RTP, - SDLVideoStreamingProtocol.RTSP, - SDLVideoStreamingProtocol.RTMP, - SDLVideoStreamingProtocol.WEBM - ]; - } - return SDLVideoStreamingProtocol_values; -} - -+ (SDLVideoStreamingProtocol *)RAW { - if (SDLVideoStreamingProtocol_RAW == nil) { - SDLVideoStreamingProtocol_RAW = [[SDLVideoStreamingProtocol alloc] initWithValue:@"RAW"]; - } - return SDLVideoStreamingProtocol_RAW; -} - -+ (SDLVideoStreamingProtocol *)RTP { - if (SDLVideoStreamingProtocol_RTP == nil) { - SDLVideoStreamingProtocol_RTP = [[SDLVideoStreamingProtocol alloc] initWithValue:@"RTP"]; - } - return SDLVideoStreamingProtocol_RTP; -} - -+ (SDLVideoStreamingProtocol *)RTSP { - if (SDLVideoStreamingProtocol_RTSP == nil) { - SDLVideoStreamingProtocol_RTSP = [[SDLVideoStreamingProtocol alloc] initWithValue:@"RTSP"]; - } - return SDLVideoStreamingProtocol_RTSP; -} - -+ (SDLVideoStreamingProtocol *)RTMP { - if (SDLVideoStreamingProtocol_RTMP == nil) { - SDLVideoStreamingProtocol_RTMP = [[SDLVideoStreamingProtocol alloc] initWithValue:@"RTMP"]; - } - return SDLVideoStreamingProtocol_RTMP; -} - -+ (SDLVideoStreamingProtocol *)WEBM { - if (SDLVideoStreamingProtocol_WEBM == nil) { - SDLVideoStreamingProtocol_WEBM = [[SDLVideoStreamingProtocol alloc] initWithValue:@"WEBM"]; - } - return SDLVideoStreamingProtocol_WEBM; -} - -@end +SDLVideoStreamingProtocol const SDLVideoStreamingProtocolRAW = @"RAW"; +SDLVideoStreamingProtocol const SDLVideoStreamingProtocolRTP = @"RTP"; +SDLVideoStreamingProtocol const SDLVideoStreamingProtocolRTSP = @"RTSP"; +SDLVideoStreamingProtocol const SDLVideoStreamingProtocolRTMP = @"RTMP"; +SDLVideoStreamingProtocol const SDLVideoStreamingProtocolWebM = @"WEBM"; diff --git a/SmartDeviceLink/SDLVrCapabilities.h b/SmartDeviceLink/SDLVrCapabilities.h index 0698d272f..f24a01246 100644 --- a/SmartDeviceLink/SDLVrCapabilities.h +++ b/SmartDeviceLink/SDLVrCapabilities.h @@ -9,26 +9,9 @@ * * @since SDL 1.0 */ -@interface SDLVRCapabilities : SDLEnum { -} - -/** - * Convert String to SDLVRCapabilities - * @param value The value of the string to get an object for - * @return SDLVRCapabilities - */ -+ (SDLVRCapabilities *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLVRCapabilities - * @return an array that store all possible SDLVRCapabilities - */ -+ (NSArray *)values; +typedef SDLEnum SDLVRCapabilities SDL_SWIFT_ENUM; /** * @abstract The SDL platform is capable of recognizing spoken text in the current language. - * @return an SDLVRCapabilities instance pointer with value of *TEXT* */ -+ (SDLVRCapabilities *)TEXT; - -@end +extern SDLVRCapabilities const SDLVRCapabilitiesText; diff --git a/SmartDeviceLink/SDLVrCapabilities.m b/SmartDeviceLink/SDLVrCapabilities.m index 985d33726..40f72ca37 100644 --- a/SmartDeviceLink/SDLVrCapabilities.m +++ b/SmartDeviceLink/SDLVrCapabilities.m @@ -4,39 +4,4 @@ #import "SDLVrCapabilities.h" -SDLVRCapabilities *SDLVRCapabilities_TEXT = nil; - -NSArray *SDLVRCapabilities_values = nil; - -@implementation SDLVRCapabilities - -+ (SDLVRCapabilities *)valueOf:(NSString *)value { - for (SDLVRCapabilities *item in SDLVRCapabilities.values) { - //NOTE: This was added for Sync Module Compatability, V1 module resturns "Text" and a - // Gen 1.1 module returns "TEXT", the new if statement makes a case insensitive - // check instead to accept both - //if ([item.value isEqualToString:value]) { - if (item.value && [item.value caseInsensitiveCompare:value] == NSOrderedSame) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLVRCapabilities_values == nil) { - SDLVRCapabilities_values = @[ - SDLVRCapabilities.TEXT, - ]; - } - return SDLVRCapabilities_values; -} - -+ (SDLVRCapabilities *)TEXT { - if (SDLVRCapabilities_TEXT == nil) { - SDLVRCapabilities_TEXT = [[SDLVRCapabilities alloc] initWithValue:@"TEXT"]; - } - return SDLVRCapabilities_TEXT; -} - -@end +SDLVRCapabilities const SDLVRCapabilitiesText = @"TEXT"; diff --git a/SmartDeviceLink/SDLVrHelpItem.h b/SmartDeviceLink/SDLVrHelpItem.h index 514d3e29f..e460538ac 100644 --- a/SmartDeviceLink/SDLVrHelpItem.h +++ b/SmartDeviceLink/SDLVrHelpItem.h @@ -5,19 +5,18 @@ @class SDLImage; +NS_ASSUME_NONNULL_BEGIN -@interface SDLVRHelpItem : SDLRPCStruct { -} +@interface SDLVRHelpItem : SDLRPCStruct -- (instancetype)init; -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; +- (instancetype)initWithText:(NSString *)text image:(nullable SDLImage *)image; -- (instancetype)initWithText:(NSString *)text image:(SDLImage *)image; +- (instancetype)initWithText:(NSString *)text image:(nullable SDLImage *)image position:(UInt8)position; -- (instancetype)initWithText:(NSString *)text image:(SDLImage *)image position:(UInt8)position; - -@property (strong) NSString *text; -@property (strong) SDLImage *image; -@property (strong) NSNumber *position; +@property (strong, nonatomic) NSString *text; +@property (strong, nonatomic, nullable) SDLImage *image; +@property (strong, nonatomic) NSNumber *position; @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLVrHelpItem.m b/SmartDeviceLink/SDLVrHelpItem.m index b24bc9504..4136578fe 100644 --- a/SmartDeviceLink/SDLVrHelpItem.m +++ b/SmartDeviceLink/SDLVrHelpItem.m @@ -4,24 +4,15 @@ #import "SDLVrHelpItem.h" +#import "NSMutableDictionary+Store.h" #import "SDLImage.h" #import "SDLNames.h" -@implementation SDLVRHelpItem +NS_ASSUME_NONNULL_BEGIN -- (instancetype)init { - if (self = [super init]) { - } - return self; -} - -- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { - if (self = [super initWithDictionary:dict]) { - } - return self; -} +@implementation SDLVRHelpItem -- (instancetype)initWithText:(NSString *)text image:(SDLImage *)image position:(UInt8)position { +- (instancetype)initWithText:(NSString *)text image:(nullable SDLImage *)image position:(UInt8)position { self = [self initWithText:text image:image]; if (!self) { return nil; @@ -32,7 +23,7 @@ - (instancetype)initWithText:(NSString *)text image:(SDLImage *)image position:( return self; } -- (instancetype)initWithText:(NSString *)text image:(SDLImage *)image { +- (instancetype)initWithText:(NSString *)text image:(nullable SDLImage *)image { self = [self init]; if (!self) { return nil; @@ -45,44 +36,29 @@ - (instancetype)initWithText:(NSString *)text image:(SDLImage *)image { } - (void)setText:(NSString *)text { - if (text != nil) { - [store setObject:text forKey:NAMES_text]; - } else { - [store removeObjectForKey:NAMES_text]; - } + [store sdl_setObject:text forName:SDLNameText]; } - (NSString *)text { - return [store objectForKey:NAMES_text]; + return [store sdl_objectForName:SDLNameText]; } -- (void)setImage:(SDLImage *)image { - if (image != nil) { - [store setObject:image forKey:NAMES_image]; - } else { - [store removeObjectForKey:NAMES_image]; - } +- (void)setImage:(nullable SDLImage *)image { + [store sdl_setObject:image forName:SDLNameImage]; } -- (SDLImage *)image { - NSObject *obj = [store objectForKey:NAMES_image]; - if (obj == nil || [obj isKindOfClass:SDLImage.class]) { - return (SDLImage *)obj; - } else { - return [[SDLImage alloc] initWithDictionary:(NSMutableDictionary *)obj]; - } +- (nullable SDLImage *)image { + return [store sdl_objectForName:SDLNameImage ofClass:SDLImage.class]; } -- (void)setPosition:(NSNumber *)position { - if (position != nil) { - [store setObject:position forKey:NAMES_position]; - } else { - [store removeObjectForKey:NAMES_position]; - } +- (void)setPosition:(NSNumber *)position { + [store sdl_setObject:position forName:SDLNamePosition]; } -- (NSNumber *)position { - return [store objectForKey:NAMES_position]; +- (NSNumber *)position { + return [store sdl_objectForName:SDLNamePosition]; } @end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLWarningLightStatus.h b/SmartDeviceLink/SDLWarningLightStatus.h index 1176d5371..33f7b2919 100644 --- a/SmartDeviceLink/SDLWarningLightStatus.h +++ b/SmartDeviceLink/SDLWarningLightStatus.h @@ -9,44 +9,24 @@ * * @since SDL 2.0 */ -@interface SDLWarningLightStatus : SDLEnum { -} - -/** - * Convert String to SDLWarningLightStatus - * @param value The value of the string to get an object for - * @return SDLWarningLightStatus - */ -+ (SDLWarningLightStatus *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLWarningLightStatus - * @return an array that store all possible SDLWarningLightStatus - */ -+ (NSArray *)values; +typedef SDLEnum SDLWarningLightStatus SDL_SWIFT_ENUM; /** * @abstract Warninglight Off - * @return SDLWarningLightStatus instance with value of *OFF* */ -+ (SDLWarningLightStatus *)OFF; +extern SDLWarningLightStatus const SDLWarningLightStatusOff; /** * @abstract Warninglight On - * @return SDLWarningLightStatus instance with value of *ON* */ -+ (SDLWarningLightStatus *)ON; +extern SDLWarningLightStatus const SDLWarningLightStatusOn; /** * @abstract Warninglight is flashing - * @return SDLWarningLightStatus instance with value of *FLASH* */ -+ (SDLWarningLightStatus *)FLASH; +extern SDLWarningLightStatus const SDLWarningLightStatusFlash; /** * @abstract Not used - * @return SDLWarningLightStatus instance with value of *NOT_USED* */ -+ (SDLWarningLightStatus *)NOT_USED; - -@end +extern SDLWarningLightStatus const SDLWarningLightStatusNotUsed; diff --git a/SmartDeviceLink/SDLWarningLightStatus.m b/SmartDeviceLink/SDLWarningLightStatus.m index c9d47a407..6547275b3 100644 --- a/SmartDeviceLink/SDLWarningLightStatus.m +++ b/SmartDeviceLink/SDLWarningLightStatus.m @@ -4,62 +4,7 @@ #import "SDLWarningLightStatus.h" -SDLWarningLightStatus *SDLWarningLightStatus_OFF = nil; -SDLWarningLightStatus *SDLWarningLightStatus_ON = nil; -SDLWarningLightStatus *SDLWarningLightStatus_FLASH = nil; -SDLWarningLightStatus *SDLWarningLightStatus_NOT_USED = nil; - -NSArray *SDLWarningLightStatus_values = nil; - -@implementation SDLWarningLightStatus - -+ (SDLWarningLightStatus *)valueOf:(NSString *)value { - for (SDLWarningLightStatus *item in SDLWarningLightStatus.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLWarningLightStatus_values == nil) { - SDLWarningLightStatus_values = @[ - SDLWarningLightStatus.OFF, - SDLWarningLightStatus.ON, - SDLWarningLightStatus.FLASH, - SDLWarningLightStatus.NOT_USED, - ]; - } - return SDLWarningLightStatus_values; -} - -+ (SDLWarningLightStatus *)OFF { - if (SDLWarningLightStatus_OFF == nil) { - SDLWarningLightStatus_OFF = [[SDLWarningLightStatus alloc] initWithValue:@"OFF"]; - } - return SDLWarningLightStatus_OFF; -} - -+ (SDLWarningLightStatus *)ON { - if (SDLWarningLightStatus_ON == nil) { - SDLWarningLightStatus_ON = [[SDLWarningLightStatus alloc] initWithValue:@"ON"]; - } - return SDLWarningLightStatus_ON; -} - -+ (SDLWarningLightStatus *)FLASH { - if (SDLWarningLightStatus_FLASH == nil) { - SDLWarningLightStatus_FLASH = [[SDLWarningLightStatus alloc] initWithValue:@"FLASH"]; - } - return SDLWarningLightStatus_FLASH; -} - -+ (SDLWarningLightStatus *)NOT_USED { - if (SDLWarningLightStatus_NOT_USED == nil) { - SDLWarningLightStatus_NOT_USED = [[SDLWarningLightStatus alloc] initWithValue:@"NOT_USED"]; - } - return SDLWarningLightStatus_NOT_USED; -} - -@end +SDLWarningLightStatus const SDLWarningLightStatusOff = @"OFF"; +SDLWarningLightStatus const SDLWarningLightStatusOn = @"ON"; +SDLWarningLightStatus const SDLWarningLightStatusFlash = @"FLASH"; +SDLWarningLightStatus const SDLWarningLightStatusNotUsed = @"NOT_USED"; diff --git a/SmartDeviceLink/SDLWayPointType.h b/SmartDeviceLink/SDLWayPointType.h new file mode 100644 index 000000000..6659b79a3 --- /dev/null +++ b/SmartDeviceLink/SDLWayPointType.h @@ -0,0 +1,9 @@ +// SDLWaypointType.h +// + +#import "SDLEnum.h" + +typedef SDLEnum SDLWayPointType SDL_SWIFT_ENUM; + +extern SDLWayPointType const SDLWayPointTypeAll; +extern SDLWayPointType const SDLWayPointTypeDestination; diff --git a/SmartDeviceLink/SDLWayPointType.m b/SmartDeviceLink/SDLWayPointType.m new file mode 100644 index 000000000..bfed8bc66 --- /dev/null +++ b/SmartDeviceLink/SDLWayPointType.m @@ -0,0 +1,7 @@ +// SDLWayPointType.m +// + +#import "SDLWayPointType.h" + +SDLWayPointType const SDLWayPointTypeAll = @"ALL"; +SDLWayPointType const SDLWayPointTypeDestination = @"DESTINATION"; diff --git a/SmartDeviceLink/SDLWaypointType.h b/SmartDeviceLink/SDLWaypointType.h deleted file mode 100644 index 85e0616e0..000000000 --- a/SmartDeviceLink/SDLWaypointType.h +++ /dev/null @@ -1,36 +0,0 @@ -// SDLWaypointType.h -// - -#import "SDLEnum.h" - -@interface SDLWaypointType : SDLEnum - -/** - * @abstract Convert String to SDLWayPointType - * - * @param value The value of the string to get an object for - * - * @return SDLWayPointType - */ -+ (SDLWaypointType *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLWayPointType - * - * @return an array that store all possible SDLWayPointType - */ -+ (NSArray *)values; - -/** - * - * @return a SDLWayPointType with value of *PROMPT* - */ -+ (SDLWaypointType *)ALL; - -/** - * - * @return a SDLWayPointType with value of *DESTINATION* - */ -+ (SDLWaypointType *)DESTINATION; - -@end diff --git a/SmartDeviceLink/SDLWaypointType.m b/SmartDeviceLink/SDLWaypointType.m deleted file mode 100644 index 4897fef34..000000000 --- a/SmartDeviceLink/SDLWaypointType.m +++ /dev/null @@ -1,46 +0,0 @@ -// SDLWaypointType.m -// - -#import "SDLWaypointType.h" - -SDLWaypointType *SDLWaypointType_ALL = nil; -SDLWaypointType *SDLWaypointType_DESTINATION = nil; - -NSArray *SDLWaypointType_values = nil; - -@implementation SDLWaypointType - -+ (SDLWaypointType *)valueOf:(NSString *)value { - for (SDLWaypointType *item in SDLWaypointType.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLWaypointType_values == nil) { - SDLWaypointType_values = @[ - SDLWaypointType.ALL, - SDLWaypointType.DESTINATION, - ]; - } - return SDLWaypointType_values; -} - -+ (SDLWaypointType *)ALL { - if (SDLWaypointType_ALL == nil) { - SDLWaypointType_ALL = [[SDLWaypointType alloc] initWithValue:@"ALL"]; - } - return SDLWaypointType_ALL; -} - -+ (SDLWaypointType *)DESTINATION { - if (SDLWaypointType_DESTINATION == nil) { - SDLWaypointType_DESTINATION = [[SDLWaypointType alloc] initWithValue:@"DESTINATION"]; - } - return SDLWaypointType_DESTINATION; -} - -@end diff --git a/SmartDeviceLink/SDLWiperStatus.h b/SmartDeviceLink/SDLWiperStatus.h index 51a7a1f5d..efe11a741 100644 --- a/SmartDeviceLink/SDLWiperStatus.h +++ b/SmartDeviceLink/SDLWiperStatus.h @@ -7,95 +7,79 @@ /** * Wiper Status */ -@interface SDLWiperStatus : SDLEnum { -} - -/** - * Convert String to SDLWiperStatus - * @param value The value of the string to get an object for - * @return SDLWiperStatus - */ -+ (SDLWiperStatus *)valueOf:(NSString *)value; - -/** - * @abstract Store the enumeration of all possible SDLWiperStatus - * @return An array that store all possible SDLWiperStatus - */ -+ (NSArray *)values; +typedef SDLEnum SDLWiperStatus SDL_SWIFT_ENUM; /** * @abstract SDLWiperStatus: *OFF* */ -+ (SDLWiperStatus *)OFF; +extern SDLWiperStatus const SDLWiperStatusOff; /** * @abstract SDLWiperStatus: *AUTO_OFF* */ -+ (SDLWiperStatus *)AUTO_OFF; +extern SDLWiperStatus const SDLWiperStatusAutomaticOff; /** * @abstract SDLWiperStatus: *OFF_MOVING* */ -+ (SDLWiperStatus *)OFF_MOVING; +extern SDLWiperStatus const SDLWiperStatusOffMoving; /** * @abstract SDLWiperStatus: *MAN_INT_OFF* */ -+ (SDLWiperStatus *)MAN_INT_OFF; +extern SDLWiperStatus const SDLWiperStatusManualIntervalOff; /** * @abstract SDLWiperStatus: *MAN_INT_ON* */ -+ (SDLWiperStatus *)MAN_INT_ON; +extern SDLWiperStatus const SDLWiperStatusManualIntervalOn; /** * @abstract SDLWiperStatus: *MAN_LOW* */ -+ (SDLWiperStatus *)MAN_LOW; +extern SDLWiperStatus const SDLWiperStatusManualLow; /** * @abstract SDLWiperStatus: *MAN_HIGH* */ -+ (SDLWiperStatus *)MAN_HIGH; +extern SDLWiperStatus const SDLWiperStatusManualHigh; /** * @abstract SDLWiperStatus: *MAN_FLICK* */ -+ (SDLWiperStatus *)MAN_FLICK; +extern SDLWiperStatus const SDLWiperStatusManualFlick; /** * @abstract SDLWiperStatus: *WASH* */ -+ (SDLWiperStatus *)WASH; +extern SDLWiperStatus const SDLWiperStatusWash; /** * @abstract SDLWiperStatus: *AUTO_LOW* */ -+ (SDLWiperStatus *)AUTO_LOW; +extern SDLWiperStatus const SDLWiperStatusAutomaticLow; /** * @abstract SDLWiperStatus: *AUTO_HIGH* */ -+ (SDLWiperStatus *)AUTO_HIGH; +extern SDLWiperStatus const SDLWiperStatusAutomaticHigh; /** * @abstract SDLWiperStatus: *COURTESYWIPE* */ -+ (SDLWiperStatus *)COURTESYWIPE; +extern SDLWiperStatus const SDLWiperStatusCourtesyWipe; /** * @abstract SDLWiperStatus: *AUTO_ADJUST* */ -+ (SDLWiperStatus *)AUTO_ADJUST; +extern SDLWiperStatus const SDLWiperStatusAutomaticAdjust; /** * @abstract SDLWiperStatus: *STALLED* */ -+ (SDLWiperStatus *)STALLED; +extern SDLWiperStatus const SDLWiperStatusStalled; /** * @abstract SDLWiperStatus: *NO_DATA_EXISTS* */ -+ (SDLWiperStatus *)NO_DATA_EXISTS; - -@end +extern SDLWiperStatus const SDLWiperStatusNoDataExists; diff --git a/SmartDeviceLink/SDLWiperStatus.m b/SmartDeviceLink/SDLWiperStatus.m index d56749a9f..8f62e0563 100644 --- a/SmartDeviceLink/SDLWiperStatus.m +++ b/SmartDeviceLink/SDLWiperStatus.m @@ -4,161 +4,18 @@ #import "SDLWiperStatus.h" -SDLWiperStatus *SDLWiperStatus_OFF = nil; -SDLWiperStatus *SDLWiperStatus_AUTO_OFF = nil; -SDLWiperStatus *SDLWiperStatus_OFF_MOVING = nil; -SDLWiperStatus *SDLWiperStatus_MAN_INT_OFF = nil; -SDLWiperStatus *SDLWiperStatus_MAN_INT_ON = nil; -SDLWiperStatus *SDLWiperStatus_MAN_LOW = nil; -SDLWiperStatus *SDLWiperStatus_MAN_HIGH = nil; -SDLWiperStatus *SDLWiperStatus_MAN_FLICK = nil; -SDLWiperStatus *SDLWiperStatus_WASH = nil; -SDLWiperStatus *SDLWiperStatus_AUTO_LOW = nil; -SDLWiperStatus *SDLWiperStatus_AUTO_HIGH = nil; -SDLWiperStatus *SDLWiperStatus_COURTESYWIPE = nil; -SDLWiperStatus *SDLWiperStatus_AUTO_ADJUST = nil; -SDLWiperStatus *SDLWiperStatus_STALLED = nil; -SDLWiperStatus *SDLWiperStatus_NO_DATA_EXISTS = nil; - -NSArray *SDLWiperStatus_values = nil; - -@implementation SDLWiperStatus - -+ (SDLWiperStatus *)valueOf:(NSString *)value { - for (SDLWiperStatus *item in SDLWiperStatus.values) { - if ([item.value isEqualToString:value]) { - return item; - } - } - return nil; -} - -+ (NSArray *)values { - if (SDLWiperStatus_values == nil) { - SDLWiperStatus_values = @[ - SDLWiperStatus.OFF, - SDLWiperStatus.AUTO_OFF, - SDLWiperStatus.OFF_MOVING, - SDLWiperStatus.MAN_INT_OFF, - SDLWiperStatus.MAN_INT_ON, - SDLWiperStatus.MAN_LOW, - SDLWiperStatus.MAN_HIGH, - SDLWiperStatus.MAN_FLICK, - SDLWiperStatus.WASH, - SDLWiperStatus.AUTO_LOW, - SDLWiperStatus.AUTO_HIGH, - SDLWiperStatus.COURTESYWIPE, - SDLWiperStatus.AUTO_ADJUST, - SDLWiperStatus.STALLED, - SDLWiperStatus.NO_DATA_EXISTS, - ]; - } - return SDLWiperStatus_values; -} - -+ (SDLWiperStatus *)OFF { - if (SDLWiperStatus_OFF == nil) { - SDLWiperStatus_OFF = [[SDLWiperStatus alloc] initWithValue:@"OFF"]; - } - return SDLWiperStatus_OFF; -} - -+ (SDLWiperStatus *)AUTO_OFF { - if (SDLWiperStatus_AUTO_OFF == nil) { - SDLWiperStatus_AUTO_OFF = [[SDLWiperStatus alloc] initWithValue:@"AUTO_OFF"]; - } - return SDLWiperStatus_AUTO_OFF; -} - -+ (SDLWiperStatus *)OFF_MOVING { - if (SDLWiperStatus_OFF_MOVING == nil) { - SDLWiperStatus_OFF_MOVING = [[SDLWiperStatus alloc] initWithValue:@"OFF_MOVING"]; - } - return SDLWiperStatus_OFF_MOVING; -} - -+ (SDLWiperStatus *)MAN_INT_OFF { - if (SDLWiperStatus_MAN_INT_OFF == nil) { - SDLWiperStatus_MAN_INT_OFF = [[SDLWiperStatus alloc] initWithValue:@"MAN_INT_OFF"]; - } - return SDLWiperStatus_MAN_INT_OFF; -} - -+ (SDLWiperStatus *)MAN_INT_ON { - if (SDLWiperStatus_MAN_INT_ON == nil) { - SDLWiperStatus_MAN_INT_ON = [[SDLWiperStatus alloc] initWithValue:@"MAN_INT_ON"]; - } - return SDLWiperStatus_MAN_INT_ON; -} - -+ (SDLWiperStatus *)MAN_LOW { - if (SDLWiperStatus_MAN_LOW == nil) { - SDLWiperStatus_MAN_LOW = [[SDLWiperStatus alloc] initWithValue:@"MAN_LOW"]; - } - return SDLWiperStatus_MAN_LOW; -} - -+ (SDLWiperStatus *)MAN_HIGH { - if (SDLWiperStatus_MAN_HIGH == nil) { - SDLWiperStatus_MAN_HIGH = [[SDLWiperStatus alloc] initWithValue:@"MAN_HIGH"]; - } - return SDLWiperStatus_MAN_HIGH; -} - -+ (SDLWiperStatus *)MAN_FLICK { - if (SDLWiperStatus_MAN_FLICK == nil) { - SDLWiperStatus_MAN_FLICK = [[SDLWiperStatus alloc] initWithValue:@"MAN_FLICK"]; - } - return SDLWiperStatus_MAN_FLICK; -} - -+ (SDLWiperStatus *)WASH { - if (SDLWiperStatus_WASH == nil) { - SDLWiperStatus_WASH = [[SDLWiperStatus alloc] initWithValue:@"WASH"]; - } - return SDLWiperStatus_WASH; -} - -+ (SDLWiperStatus *)AUTO_LOW { - if (SDLWiperStatus_AUTO_LOW == nil) { - SDLWiperStatus_AUTO_LOW = [[SDLWiperStatus alloc] initWithValue:@"AUTO_LOW"]; - } - return SDLWiperStatus_AUTO_LOW; -} - -+ (SDLWiperStatus *)AUTO_HIGH { - if (SDLWiperStatus_AUTO_HIGH == nil) { - SDLWiperStatus_AUTO_HIGH = [[SDLWiperStatus alloc] initWithValue:@"AUTO_HIGH"]; - } - return SDLWiperStatus_AUTO_HIGH; -} - -+ (SDLWiperStatus *)COURTESYWIPE { - if (SDLWiperStatus_COURTESYWIPE == nil) { - SDLWiperStatus_COURTESYWIPE = [[SDLWiperStatus alloc] initWithValue:@"COURTESYWIPE"]; - } - return SDLWiperStatus_COURTESYWIPE; -} - -+ (SDLWiperStatus *)AUTO_ADJUST { - if (SDLWiperStatus_AUTO_ADJUST == nil) { - SDLWiperStatus_AUTO_ADJUST = [[SDLWiperStatus alloc] initWithValue:@"AUTO_ADJUST"]; - } - return SDLWiperStatus_AUTO_ADJUST; -} - -+ (SDLWiperStatus *)STALLED { - if (SDLWiperStatus_STALLED == nil) { - SDLWiperStatus_STALLED = [[SDLWiperStatus alloc] initWithValue:@"STALLED"]; - } - return SDLWiperStatus_STALLED; -} - -+ (SDLWiperStatus *)NO_DATA_EXISTS { - if (SDLWiperStatus_NO_DATA_EXISTS == nil) { - SDLWiperStatus_NO_DATA_EXISTS = [[SDLWiperStatus alloc] initWithValue:@"NO_DATA_EXISTS"]; - } - return SDLWiperStatus_NO_DATA_EXISTS; -} - -@end +SDLWiperStatus const SDLWiperStatusOff = @"OFF"; +SDLWiperStatus const SDLWiperStatusAutomaticOff = @"AUTO_OFF"; +SDLWiperStatus const SDLWiperStatusOffMoving = @"OFF_MOVING"; +SDLWiperStatus const SDLWiperStatusManualIntervalOff = @"MAN_INT_OFF"; +SDLWiperStatus const SDLWiperStatusManualIntervalOn = @"MAN_INT_ON"; +SDLWiperStatus const SDLWiperStatusManualLow = @"MAN_LOW"; +SDLWiperStatus const SDLWiperStatusManualHigh = @"MAN_HIGH"; +SDLWiperStatus const SDLWiperStatusManualFlick = @"MAN_FLICK"; +SDLWiperStatus const SDLWiperStatusWash = @"WASH"; +SDLWiperStatus const SDLWiperStatusAutomaticLow = @"AUTO_LOW"; +SDLWiperStatus const SDLWiperStatusAutomaticHigh = @"AUTO_HIGH"; +SDLWiperStatus const SDLWiperStatusCourtesyWipe = @"COURTESYWIPE"; +SDLWiperStatus const SDLWiperStatusAutomaticAdjust = @"AUTO_ADJUST"; +SDLWiperStatus const SDLWiperStatusStalled = @"STALLED"; +SDLWiperStatus const SDLWiperStatusNoDataExists = @"NO_DATA_EXISTS"; diff --git a/SmartDeviceLink/SmartDeviceLink.h b/SmartDeviceLink/SmartDeviceLink.h index 13fc4f675..81b343567 100644 --- a/SmartDeviceLink/SmartDeviceLink.h +++ b/SmartDeviceLink/SmartDeviceLink.h @@ -9,25 +9,15 @@ FOUNDATION_EXPORT double SmartDeviceLinkVersionNumber; //! Project version string for SmartDeviceLink. FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; -/**** Utilities *****/ -#import "SDLJingle.h" - /***** Proxy *****/ #import "SDLProxy.h" #import "SDLProxyFactory.h" #import "SDLProxyListener.h" #import "SDLSecurityType.h" #import "SDLStreamingMediaManager.h" -#import "SDLTTSChunkFactory.h" #import "SDLTouchManager.h" #import "SDLTouchManagerDelegate.h" -/***** Debug *****/ -#import "SDLConsoleController.h" -#import "SDLDebugTool.h" -#import "SDLDebugToolConsole.h" -#import "SDLSiphonServer.h" - /***** Transport *****/ #import "SDLAbstractTransport.h" #import "SDLIAPSessionDelegate.h" @@ -55,14 +45,12 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLRPCResponse.h" #import "SDLRPCStruct.h" -// Factories -#import "SDLRPCRequestFactory.h" - // Requests #import "SDLAddCommand.h" #import "SDLAddSubMenu.h" #import "SDLAlert.h" #import "SDLAlertManeuver.h" +#import "SDLButtonPress.h" #import "SDLChangeRegistration.h" #import "SDLCreateInteractionChoiceSet.h" #import "SDLDeleteCommand.h" @@ -74,9 +62,10 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLEncodedSyncPData.h" #import "SDLEndAudioPassThru.h" #import "SDLGetDTCs.h" +#import "SDLGetInteriorVehicleData.h" #import "SDLGetSystemCapability.h" #import "SDLGetVehicleData.h" -#import "SDLGetWaypoints.h" +#import "SDLGetWayPoints.h" #import "SDLListFiles.h" #import "SDLPerformAudioPassThru.h" #import "SDLPerformInteraction.h" @@ -90,6 +79,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLSetAppIcon.h" #import "SDLSetDisplayLayout.h" #import "SDLSetGlobalProperties.h" +#import "SDLSetInteriorVehicleData.h" #import "SDLSetMediaClockTimer.h" #import "SDLShow.h" #import "SDLShowConstantTBT.h" @@ -97,12 +87,12 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLSpeak.h" #import "SDLSubscribeButton.h" #import "SDLSubscribeVehicleData.h" -#import "SDLSubscribeWaypoints.h" +#import "SDLSubscribeWayPoints.h" #import "SDLSyncPData.h" #import "SDLUnregisterAppInterface.h" #import "SDLUnsubscribeButton.h" #import "SDLUnsubscribeVehicleData.h" -#import "SDLUnsubscribeWaypoints.h" +#import "SDLUnsubscribeWayPoints.h" #import "SDLUpdateTurnList.h" // Responses @@ -110,6 +100,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLAddSubMenuResponse.h" #import "SDLAlertManeuverResponse.h" #import "SDLAlertResponse.h" +#import "SDLButtonPressResponse.h" #import "SDLChangeRegistrationResponse.h" #import "SDLCreateInteractionChoiceSetResponse.h" #import "SDLDeleteCommandResponse.h" @@ -122,9 +113,10 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLEndAudioPassThruResponse.h" #import "SDLGenericResponse.h" #import "SDLGetDTCsResponse.h" +#import "SDLGetInteriorVehicleDataResponse.h" #import "SDLGetSystemCapabilityResponse.h" #import "SDLGetVehicleDataResponse.h" -#import "SDLGetWaypointsResponse.h" +#import "SDLGetWayPointsResponse.h" #import "SDLListFilesResponse.h" #import "SDLPerformAudioPassThruResponse.h" #import "SDLPerformInteractionResponse.h" @@ -138,6 +130,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLSetAppIconResponse.h" #import "SDLSetDisplayLayoutResponse.h" #import "SDLSetGlobalPropertiesResponse.h" +#import "SDLSetInteriorVehicleDataResponse.h" #import "SDLSetMediaClockTimerResponse.h" #import "SDLShowConstantTBTResponse.h" #import "SDLShowResponse.h" @@ -145,12 +138,12 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLSpeakResponse.h" #import "SDLSubscribeButtonResponse.h" #import "SDLSubscribeVehicleDataResponse.h" -#import "SDLSubscribeWaypointsResponse.h" +#import "SDLSubscribeWayPointsResponse.h" #import "SDLSyncPDataResponse.h" #import "SDLUnregisterAppInterfaceResponse.h" #import "SDLUnsubscribeButtonResponse.h" #import "SDLUnsubscribeVehicleDataResponse.h" -#import "SDLUnsubscribeWaypointsResponse.h" +#import "SDLUnsubscribeWayPointsResponse.h" #import "SDLUpdateTurnListResponse.h" // Notifications @@ -163,6 +156,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLOnEncodedSyncPData.h" #import "SDLOnHMIStatus.h" #import "SDLOnHashChange.h" +#import "SDLOnInteriorVehicleData.h" #import "SDLOnKeyboardInput.h" #import "SDLOnLanguageChange.h" #import "SDLOnLockScreenStatus.h" @@ -172,7 +166,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLOnTBTClientState.h" #import "SDLOnTouchEvent.h" #import "SDLOnVehicleData.h" -#import "SDLOnWaypointChange.h" +#import "SDLOnWayPointChange.h" // Structs #import "SDLAirbagStatus.h" @@ -183,6 +177,8 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLButtonCapabilities.h" #import "SDLChoice.h" #import "SDLClusterModeStatus.h" +#import "SDLClimateControlCapabilities.h" +#import "SDLClimateControlData.h" #import "SDLDIDResult.h" #import "SDLDateTime.h" #import "SDLDeviceInfo.h" @@ -203,13 +199,19 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLLocationDetails.h" #import "SDLMenuParams.h" #import "SDLMetadataTags.h" +#import "SDLModuleData.h" #import "SDLMyKey.h" #import "SDLNavigationCapability.h" +#import "SDLOasisAddress.h" #import "SDLParameterPermissions.h" #import "SDLPermissionItem.h" #import "SDLPhoneCapability.h" #import "SDLPresetBankCapabilities.h" +#import "SDLRadioControlCapabilities.h" +#import "SDLRadioControlData.h" +#import "SDLRDSData.h" #import "SDLRectangle.h" +#import "SDLRemoteControlCapabilities.h" #import "SDLScreenParams.h" #import "SDLSingleTireStatus.h" #import "SDLSoftButton.h" @@ -218,6 +220,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLSyncMsgVersion.h" #import "SDLSystemCapability.h" #import "SDLTTSChunk.h" +#import "SDLTemperature.h" #import "SDLTextField.h" #import "SDLTireStatus.h" #import "SDLTouchCoord.h" @@ -244,6 +247,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLCharacterSet.h" #import "SDLCompassDirection.h" #import "SDLComponentVolumeStatus.h" +#import "SDLDefrostZone.h" #import "SDLDeliveryMode.h" #import "SDLDeviceLevelStatus.h" #import "SDLDimension.h" @@ -270,6 +274,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLMaintenanceModeStatus.h" #import "SDLMediaClockFormat.h" #import "SDLMetadataType.h" +#import "SDLModuleType.h" #import "SDLPRNDL.h" #import "SDLPermissionStatus.h" #import "SDLPowerModeQualificationStatus.h" @@ -277,6 +282,8 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLPredefinedLayout.h" #import "SDLPrerecordedSpeech.h" #import "SDLPrimaryAudioSource.h" +#import "SDLRadioBand.h" +#import "SDLRadioState.h" #import "SDLRPCMessageType.h" #import "SDLRequestType.h" #import "SDLResult.h" @@ -287,6 +294,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLSystemCapabilityType.h" #import "SDLSystemContext.h" #import "SDLTBTState.h" +#import "SDLTemperatureUnit.h" #import "SDLTextAlignment.h" #import "SDLTextFieldName.h" #import "SDLTimerMode.h" @@ -299,11 +307,12 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLVehicleDataResultCode.h" #import "SDLVehicleDataStatus.h" #import "SDLVehicleDataType.h" +#import "SDLVentilationMode.h" #import "SDLVideoStreamingCodec.h" #import "SDLVideoStreamingProtocol.h" #import "SDLVrCapabilities.h" #import "SDLWarningLightStatus.h" -#import "SDLWaypointType.h" +#import "SDLWayPointType.h" #import "SDLWiperStatus.h" // Developer API @@ -311,6 +320,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLConfiguration.h" #import "SDLLifecycleConfiguration.h" #import "SDLLockScreenConfiguration.h" +#import "SDLStreamingMediaConfiguration.h" // Files #import "SDLArtwork.h" @@ -329,12 +339,31 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLPermissionConstants.h" #import "SDLPermissionManager.h" +// Touches +#import "SDLPinchGesture.h" +#import "SDLTouch.h" + // Utilities #import "NSNumber+NumberType.h" #import "SDLErrorConstants.h" #import "SDLNotificationConstants.h" -#import "SDLRequestHandler.h" +#import "SDLStreamingMediaManagerConstants.h" // Notifications #import "SDLRPCNotificationNotification.h" #import "SDLRPCResponseNotification.h" + +// Logger +#import "SDLLogConstants.h" +#import "SDLLogConfiguration.h" +#import "SDLLogFileModule.h" +#import "SDLLogFilter.h" +#import "SDLLogManager.h" +#import "SDLLogMacros.h" +#import "SDLLogTarget.h" +#import "SDLLogTargetAppleSystemLog.h" +#import "SDLLogTargetFile.h" +#import "SDLLogTargetOSLog.h" + +// Macros +#import "SDLMacros.h" diff --git a/SmartDeviceLink/iOS 7 Assets/lock_arrow_down/black/lock_arrow_down_black.png b/SmartDeviceLink/iOS 7 Assets/lock_arrow_down/black/lock_arrow_down_black.png deleted file mode 100644 index 68f1c3ca7..000000000 Binary files a/SmartDeviceLink/iOS 7 Assets/lock_arrow_down/black/lock_arrow_down_black.png and /dev/null differ diff --git a/SmartDeviceLink/iOS 7 Assets/lock_arrow_down/black/lock_arrow_down_black@2x.png b/SmartDeviceLink/iOS 7 Assets/lock_arrow_down/black/lock_arrow_down_black@2x.png deleted file mode 100644 index 85fbc3446..000000000 Binary files a/SmartDeviceLink/iOS 7 Assets/lock_arrow_down/black/lock_arrow_down_black@2x.png and /dev/null differ diff --git a/SmartDeviceLink/iOS 7 Assets/lock_arrow_down/black/lock_arrow_down_black@3x.png b/SmartDeviceLink/iOS 7 Assets/lock_arrow_down/black/lock_arrow_down_black@3x.png deleted file mode 100644 index af14aa8bb..000000000 Binary files a/SmartDeviceLink/iOS 7 Assets/lock_arrow_down/black/lock_arrow_down_black@3x.png and /dev/null differ diff --git a/SmartDeviceLink/iOS 7 Assets/lock_arrow_down/white/lock_arrow_down_white.png b/SmartDeviceLink/iOS 7 Assets/lock_arrow_down/white/lock_arrow_down_white.png deleted file mode 100644 index 07e620d05..000000000 Binary files a/SmartDeviceLink/iOS 7 Assets/lock_arrow_down/white/lock_arrow_down_white.png and /dev/null differ diff --git a/SmartDeviceLink/iOS 7 Assets/lock_arrow_down/white/lock_arrow_down_white@2x.png b/SmartDeviceLink/iOS 7 Assets/lock_arrow_down/white/lock_arrow_down_white@2x.png deleted file mode 100644 index 57fa8120f..000000000 Binary files a/SmartDeviceLink/iOS 7 Assets/lock_arrow_down/white/lock_arrow_down_white@2x.png and /dev/null differ diff --git a/SmartDeviceLink/iOS 7 Assets/lock_arrow_down/white/lock_arrow_down_white@3x.png b/SmartDeviceLink/iOS 7 Assets/lock_arrow_down/white/lock_arrow_down_white@3x.png deleted file mode 100644 index b354c1a13..000000000 Binary files a/SmartDeviceLink/iOS 7 Assets/lock_arrow_down/white/lock_arrow_down_white@3x.png and /dev/null differ diff --git a/SmartDeviceLink/iOS 7 Assets/lock_arrow_up/black/lock_arrow_up_black.png b/SmartDeviceLink/iOS 7 Assets/lock_arrow_up/black/lock_arrow_up_black.png deleted file mode 100644 index ecc048331..000000000 Binary files a/SmartDeviceLink/iOS 7 Assets/lock_arrow_up/black/lock_arrow_up_black.png and /dev/null differ diff --git a/SmartDeviceLink/iOS 7 Assets/lock_arrow_up/black/lock_arrow_up_black@2x.png b/SmartDeviceLink/iOS 7 Assets/lock_arrow_up/black/lock_arrow_up_black@2x.png deleted file mode 100644 index fa38a0772..000000000 Binary files a/SmartDeviceLink/iOS 7 Assets/lock_arrow_up/black/lock_arrow_up_black@2x.png and /dev/null differ diff --git a/SmartDeviceLink/iOS 7 Assets/lock_arrow_up/black/lock_arrow_up_black@3x.png b/SmartDeviceLink/iOS 7 Assets/lock_arrow_up/black/lock_arrow_up_black@3x.png deleted file mode 100644 index b59bda372..000000000 Binary files a/SmartDeviceLink/iOS 7 Assets/lock_arrow_up/black/lock_arrow_up_black@3x.png and /dev/null differ diff --git a/SmartDeviceLink/iOS 7 Assets/lock_arrow_up/white/lock_arrow_up_white.png b/SmartDeviceLink/iOS 7 Assets/lock_arrow_up/white/lock_arrow_up_white.png deleted file mode 100644 index bb0662fe5..000000000 Binary files a/SmartDeviceLink/iOS 7 Assets/lock_arrow_up/white/lock_arrow_up_white.png and /dev/null differ diff --git a/SmartDeviceLink/iOS 7 Assets/lock_arrow_up/white/lock_arrow_up_white@2x.png b/SmartDeviceLink/iOS 7 Assets/lock_arrow_up/white/lock_arrow_up_white@2x.png deleted file mode 100644 index f45e6b299..000000000 Binary files a/SmartDeviceLink/iOS 7 Assets/lock_arrow_up/white/lock_arrow_up_white@2x.png and /dev/null differ diff --git a/SmartDeviceLink/iOS 7 Assets/lock_arrow_up/white/lock_arrow_up_white@3x.png b/SmartDeviceLink/iOS 7 Assets/lock_arrow_up/white/lock_arrow_up_white@3x.png deleted file mode 100644 index d30fc404c..000000000 Binary files a/SmartDeviceLink/iOS 7 Assets/lock_arrow_up/white/lock_arrow_up_white@3x.png and /dev/null differ diff --git a/SmartDeviceLink/iOS 7 Assets/sdl_logo/black/sdl_logo_black.png b/SmartDeviceLink/iOS 7 Assets/sdl_logo/black/sdl_logo_black.png deleted file mode 100644 index 68cf3a52d..000000000 Binary files a/SmartDeviceLink/iOS 7 Assets/sdl_logo/black/sdl_logo_black.png and /dev/null differ diff --git a/SmartDeviceLink/iOS 7 Assets/sdl_logo/black/sdl_logo_black@2x.png b/SmartDeviceLink/iOS 7 Assets/sdl_logo/black/sdl_logo_black@2x.png deleted file mode 100644 index 1427721a7..000000000 Binary files a/SmartDeviceLink/iOS 7 Assets/sdl_logo/black/sdl_logo_black@2x.png and /dev/null differ diff --git a/SmartDeviceLink/iOS 7 Assets/sdl_logo/black/sdl_logo_black@3x.png b/SmartDeviceLink/iOS 7 Assets/sdl_logo/black/sdl_logo_black@3x.png deleted file mode 100644 index dfe0ab3f8..000000000 Binary files a/SmartDeviceLink/iOS 7 Assets/sdl_logo/black/sdl_logo_black@3x.png and /dev/null differ diff --git a/SmartDeviceLink/iOS 7 Assets/sdl_logo/white/sdl_logo_white.png b/SmartDeviceLink/iOS 7 Assets/sdl_logo/white/sdl_logo_white.png deleted file mode 100644 index 1c35ef9b3..000000000 Binary files a/SmartDeviceLink/iOS 7 Assets/sdl_logo/white/sdl_logo_white.png and /dev/null differ diff --git a/SmartDeviceLink/iOS 7 Assets/sdl_logo/white/sdl_logo_white@2x.png b/SmartDeviceLink/iOS 7 Assets/sdl_logo/white/sdl_logo_white@2x.png deleted file mode 100644 index b7d0bd92a..000000000 Binary files a/SmartDeviceLink/iOS 7 Assets/sdl_logo/white/sdl_logo_white@2x.png and /dev/null differ diff --git a/SmartDeviceLink/iOS 7 Assets/sdl_logo/white/sdl_logo_white@3x.png b/SmartDeviceLink/iOS 7 Assets/sdl_logo/white/sdl_logo_white@3x.png deleted file mode 100644 index b8b9ef757..000000000 Binary files a/SmartDeviceLink/iOS 7 Assets/sdl_logo/white/sdl_logo_white@3x.png and /dev/null differ diff --git a/SmartDeviceLinkSwift/Info.plist b/SmartDeviceLinkSwift/Info.plist new file mode 100644 index 000000000..0ae39de6c --- /dev/null +++ b/SmartDeviceLinkSwift/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 2.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/SmartDeviceLinkSwift/SDLLog.swift b/SmartDeviceLinkSwift/SDLLog.swift new file mode 100644 index 000000000..d2391a0e4 --- /dev/null +++ b/SmartDeviceLinkSwift/SDLLog.swift @@ -0,0 +1,113 @@ +// +// SDLLog.swift +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 3/2/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +import Foundation + +import SmartDeviceLink + + +/// You may use this class or the below functions for convenience logging in Swift 3 projects. +/// It would be used like so: +/// +/// ``` +/// let log = SDLLog.self +/// log.e("Test something \(NSDate())") +/// ``` +public class SDLLog { + /// Log a verbose message through SDL's custom logging framework. + /// + /// - Parameters: + /// - message: The message to be logged. + /// - file: The file the log is coming from, you should probably leave this as the default. + /// - function: The function the log is coming from, you should probably leave this as the default. + /// - line: The line the log is coming from, you should probably leave this as the default. + public class func v(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { + SDLLogManager.log(with: .verbose, timestamp: Date(), file: file, functionName: function, line: line, queue: logQueue(), message: "\(message())") + } + + /// Log a debug message through SDL's custom logging framework. + /// + /// - Parameters: + /// - message: The message to be logged. + /// - file: The file the log is coming from, you should probably leave this as the default. + /// - function: The function the log is coming from, you should probably leave this as the default. + /// - line: The line the log is coming from, you should probably leave this as the default. + public class func d(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { + SDLLogManager.log(with: .debug, timestamp: Date(), file: file, functionName: function, line: line, queue: logQueue(), message: "\(message())") + } + + /// Log a warning message through SDL's custom logging framework. + /// + /// - Parameters: + /// - message: The message to be logged. + /// - file: The file the log is coming from, you should probably leave this as the default. + /// - function: The function the log is coming from, you should probably leave this as the default. + /// - line: The line the log is coming from, you should probably leave this as the default. + public class func w(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { + SDLLogManager.log(with: .warning, timestamp: Date(), file: file, functionName: function, line: line, queue: logQueue(), message: "\(message())") + } + + /// Log an error message through SDL's custom logging framework. + /// + /// - Parameters: + /// - message: The message to be logged. + /// - file: The file the log is coming from, you should probably leave this as the default. + /// - function: The function the log is coming from, you should probably leave this as the default. + /// - line: The line the log is coming from, you should probably leave this as the default. + public class func e(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { + SDLLogManager.log(with: .error, timestamp: Date(), file: file, functionName: function, line: line, queue: logQueue(), message: "\(message())") + } +} + +/// Log a verbose message through SDL's custom logging framework. +/// +/// - Parameters: +/// - message: The message to be logged. +/// - file: The file the log is coming from, you should probably leave this as the default. +/// - function: The function the log is coming from, you should probably leave this as the default. +/// - line: The line the log is coming from, you should probably leave this as the default. +public func SDLV(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { + SDLLogManager.log(with: .verbose, timestamp: Date(), file: file, functionName: function, line: line, queue: logQueue(), message: "\(message())") +} + +/// Log a debug message through SDL's custom logging framework. +/// +/// - Parameters: +/// - message: The message to be logged. +/// - file: The file the log is coming from, you should probably leave this as the default. +/// - function: The function the log is coming from, you should probably leave this as the default. +/// - line: The line the log is coming from, you should probably leave this as the default. +public func SDLD(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { + SDLLogManager.log(with: .debug, timestamp: Date(), file: file, functionName: function, line: line, queue: logQueue(), message: "\(message())") +} + +/// Log a warning message through SDL's custom logging framework. +/// +/// - Parameters: +/// - message: The message to be logged. +/// - file: The file the log is coming from, you should probably leave this as the default. +/// - function: The function the log is coming from, you should probably leave this as the default. +/// - line: The line the log is coming from, you should probably leave this as the default. +public func SDLW(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { + SDLLogManager.log(with: .warning, timestamp: Date(), file: file, functionName: function, line: line, queue: logQueue(), message: "\(message())") +} + +/// Log an error message through SDL's custom logging framework. +/// +/// - Parameters: +/// - message: The message to be logged. +/// - file: The file the log is coming from, you should probably leave this as the default. +/// - function: The function the log is coming from, you should probably leave this as the default. +/// - line: The line the log is coming from, you should probably leave this as the default. +public func SDLE(_ message: @autoclosure () -> Any, _ file: String = #file, _ function: String = #function, _ line: Int = #line) { + SDLLogManager.log(with: .error, timestamp: Date(), file: file, functionName: function, line: line, queue: logQueue(), message: "\(message())") +} + +private func logQueue() -> String { + return String(cString: __dispatch_queue_get_label(nil), encoding: .utf8) ?? "" +} diff --git a/SmartDeviceLinkSwift/SmartDeviceLinkSwift.h b/SmartDeviceLinkSwift/SmartDeviceLinkSwift.h new file mode 100644 index 000000000..8b0eaa285 --- /dev/null +++ b/SmartDeviceLinkSwift/SmartDeviceLinkSwift.h @@ -0,0 +1,19 @@ +// +// SmartDeviceLinkSwift.h +// SmartDeviceLinkSwift +// +// Created by Joel Fischer on 3/7/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +//! Project version number for SmartDeviceLinkSwift. +FOUNDATION_EXPORT double SmartDeviceLinkSwiftVersionNumber; + +//! Project version string for SmartDeviceLinkSwift. +FOUNDATION_EXPORT const unsigned char SmartDeviceLinkSwiftVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/SmartDeviceLinkTests/Assets/TestLockScreenAppIcon.png b/SmartDeviceLinkTests/Assets/TestLockScreenAppIcon.png old mode 100644 new mode 100755 index f38b8a0d8..6459d763b Binary files a/SmartDeviceLinkTests/Assets/TestLockScreenAppIcon.png and b/SmartDeviceLinkTests/Assets/TestLockScreenAppIcon.png differ diff --git a/SmartDeviceLinkTests/Assets/testImageBMP.bmp b/SmartDeviceLinkTests/Assets/testImageBMP.bmp index d05b724d0..1bbb04904 100644 Binary files a/SmartDeviceLinkTests/Assets/testImageBMP.bmp and b/SmartDeviceLinkTests/Assets/testImageBMP.bmp differ diff --git a/SmartDeviceLinkTests/Assets/testImageJPEG.jpeg b/SmartDeviceLinkTests/Assets/testImageJPEG.jpeg index 8a9702ede..0bea14817 100644 Binary files a/SmartDeviceLinkTests/Assets/testImageJPEG.jpeg and b/SmartDeviceLinkTests/Assets/testImageJPEG.jpeg differ diff --git a/SmartDeviceLinkTests/Assets/testImageJPG.jpg b/SmartDeviceLinkTests/Assets/testImageJPG.jpg index 8a9702ede..0bea14817 100644 Binary files a/SmartDeviceLinkTests/Assets/testImageJPG.jpg and b/SmartDeviceLinkTests/Assets/testImageJPG.jpg differ diff --git a/SmartDeviceLinkTests/Assets/testImagePNG.png b/SmartDeviceLinkTests/Assets/testImagePNG.png index 017399a8e..a6cf8b25f 100644 Binary files a/SmartDeviceLinkTests/Assets/testImagePNG.png and b/SmartDeviceLinkTests/Assets/testImagePNG.png differ diff --git a/SmartDeviceLinkTests/Assets/testImageTIFF.tiff b/SmartDeviceLinkTests/Assets/testImageTIFF.tiff index af249fdc2..c46674224 100644 Binary files a/SmartDeviceLinkTests/Assets/testImageTIFF.tiff and b/SmartDeviceLinkTests/Assets/testImageTIFF.tiff differ diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLArtworkSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLArtworkSpec.m index 9c0dc8c1a..026ab2609 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLArtworkSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLArtworkSpec.m @@ -32,7 +32,7 @@ }); it(@"should correctly store format", ^{ - expect(testArtwork.fileType).to(equal([SDLFileType GRAPHIC_PNG])); + expect(testArtwork.fileType).to(equal(SDLFileTypePNG)); }); it(@"should correctly store persistence", ^{ @@ -62,7 +62,7 @@ }); it(@"should correctly store format", ^{ - expect(testArtwork.fileType).to(equal([SDLFileType GRAPHIC_JPEG])); + expect(testArtwork.fileType).to(equal(SDLFileTypeJPEG)); }); it(@"should correctly store persistence", ^{ diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLConfigurationSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLConfigurationSpec.m index 9d86dfbc2..6afb1f3cf 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLConfigurationSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLConfigurationSpec.m @@ -3,35 +3,20 @@ #import "SDLConfiguration.h" #import "SDLLifecycleConfiguration.h" +#import "SDLLogConfiguration.h" #import "SDLLockScreenConfiguration.h" +#import "SDLStreamingMediaConfiguration.h" QuickSpecBegin(SDLConfigurationSpec) describe(@"a configuration", ^{ __block SDLConfiguration *testConfig = nil; - - context(@"created with a custom lifecycle and default lockscreen config", ^{ - __block SDLLifecycleConfiguration *someLifecycleConfig = nil; - __block NSString *someAppName = nil; - __block NSString *someAppId = nil; - - beforeEach(^{ - someAppName = @"some name"; - someAppId = @"some id"; - someLifecycleConfig = [SDLLifecycleConfiguration defaultConfigurationWithAppName:someAppName appId:someAppId]; - - testConfig = [SDLConfiguration configurationWithLifecycle:someLifecycleConfig lockScreen:[SDLLockScreenConfiguration enabledConfiguration]]; - }); - - it(@"should contain the correct configs", ^{ - expect(testConfig.lifecycleConfig).to(equal(someLifecycleConfig)); - expect(@(testConfig.lockScreenConfig.enableAutomaticLockScreen)).to(equal(@YES)); - }); - }); - - context(@"created with a custom lifecycle and lockscreen config", ^{ + + context(@"created with custom configs", ^{ __block SDLLifecycleConfiguration *someLifecycleConfig = nil; __block SDLLockScreenConfiguration *someLockscreenConfig = nil; + __block SDLLogConfiguration *someLogConfig = nil; + __block SDLStreamingMediaConfiguration *someStreamingConfig = nil; __block NSString *someAppName = nil; __block NSString *someAppId = nil; @@ -46,13 +31,44 @@ someLifecycleConfig = [SDLLifecycleConfiguration defaultConfigurationWithAppName:someAppName appId:someAppId]; someLockscreenConfig = [SDLLockScreenConfiguration enabledConfigurationWithAppIcon:someImage backgroundColor:someBackgroundColor]; - - testConfig = [SDLConfiguration configurationWithLifecycle:someLifecycleConfig lockScreen:someLockscreenConfig]; + someLogConfig = [SDLLogConfiguration defaultConfiguration]; + someStreamingConfig = [SDLStreamingMediaConfiguration insecureConfiguration]; }); - it(@"should contain the correct configs", ^{ + it(@"should create correctly with initWithLifecycle:lockScreen:logging:", ^{ + testConfig = [[SDLConfiguration alloc] initWithLifecycle:someLifecycleConfig lockScreen:someLockscreenConfig logging:someLogConfig]; + + expect(testConfig.lifecycleConfig).to(equal(someLifecycleConfig)); + expect(testConfig.lockScreenConfig).to(equal(someLockscreenConfig)); + expect(testConfig.loggingConfig).to(equal(someLogConfig)); + expect(testConfig.streamingMediaConfig).to(beNil()); + }); + + it(@"should create correctly with configurationWithLifecycle:lockScreen:logging:", ^{ + testConfig = [SDLConfiguration configurationWithLifecycle:someLifecycleConfig lockScreen:someLockscreenConfig logging:someLogConfig]; + + expect(testConfig.lifecycleConfig).to(equal(someLifecycleConfig)); + expect(testConfig.lockScreenConfig).to(equal(someLockscreenConfig)); + expect(testConfig.loggingConfig).to(equal(someLogConfig)); + expect(testConfig.streamingMediaConfig).to(beNil()); + }); + + it(@"should create correctly with initWithLifecycle:lockScreen:logging:streamingMedia:", ^{ + testConfig = [[SDLConfiguration alloc] initWithLifecycle:someLifecycleConfig lockScreen:someLockscreenConfig logging:someLogConfig streamingMedia:nil]; + + expect(testConfig.lifecycleConfig).to(equal(someLifecycleConfig)); + expect(testConfig.lockScreenConfig).to(equal(someLockscreenConfig)); + expect(testConfig.loggingConfig).to(equal(someLogConfig)); + expect(testConfig.streamingMediaConfig).to(beNil()); + }); + + it(@"should create correctly with configurationWithLifecycle:lockScreen:logging:streamingMedia:", ^{ + testConfig = [SDLConfiguration configurationWithLifecycle:someLifecycleConfig lockScreen:someLockscreenConfig logging:someLogConfig streamingMedia:nil]; + expect(testConfig.lifecycleConfig).to(equal(someLifecycleConfig)); expect(testConfig.lockScreenConfig).to(equal(someLockscreenConfig)); + expect(testConfig.loggingConfig).to(equal(someLogConfig)); + expect(testConfig.streamingMediaConfig).to(beNil()); }); }); }); diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLFakeSecurityManager.h b/SmartDeviceLinkTests/DevAPISpecs/SDLFakeSecurityManager.h new file mode 100644 index 000000000..48e0c710c --- /dev/null +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLFakeSecurityManager.h @@ -0,0 +1,31 @@ +// +// SDLFakeSecurityManager.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 8/15/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLSecurityType.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SDLFakeSecurityManager : NSObject + +@property (copy, nonatomic) NSString *appId; + +- (void)initializeWithAppId:(NSString *)appId completionHandler:(void (^)(NSError *_Nullable error))completionHandler; +- (void)stop; + +- (nullable NSData *)runHandshakeWithClientData:(NSData *)data error:(NSError **)error; + +- (nullable NSData *)encryptData:(NSData *)data withError:(NSError **)error; +- (nullable NSData *)decryptData:(NSData *)data withError:(NSError **)error; + ++ (NSSet *)availableMakes; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLFakeSecurityManager.m b/SmartDeviceLinkTests/DevAPISpecs/SDLFakeSecurityManager.m new file mode 100644 index 000000000..e50dab063 --- /dev/null +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLFakeSecurityManager.m @@ -0,0 +1,37 @@ +// +// SDLFakeSecurityManager.m +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 8/15/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLFakeSecurityManager.h" + +@implementation SDLFakeSecurityManager + +- (void)initializeWithAppId:(NSString *)appId completionHandler:(void (^)(NSError *_Nullable error))completionHandler { + +} + +- (void)stop { + +} + +- (nullable NSData *)runHandshakeWithClientData:(NSData *)data error:(NSError **)error { + return nil; +} + +- (nullable NSData *)encryptData:(NSData *)data withError:(NSError **)error { + return nil; +} + +- (nullable NSData *)decryptData:(NSData *)data withError:(NSError **)error { + return nil; +} + ++ (NSSet *)availableMakes { + return [NSSet set]; +} + +@end diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLFakeStreamingManagerDataSource.h b/SmartDeviceLinkTests/DevAPISpecs/SDLFakeStreamingManagerDataSource.h new file mode 100644 index 000000000..7081bad29 --- /dev/null +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLFakeStreamingManagerDataSource.h @@ -0,0 +1,17 @@ +// +// SDLFakeStreamingManagerDataSource.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 9/5/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLStreamingMediaManagerDataSource.h" + +@interface SDLFakeStreamingManagerDataSource : NSObject + +@property (strong, nonatomic, readonly) SDLVideoStreamingFormat *extraFormat; + +@end diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLFakeStreamingManagerDataSource.m b/SmartDeviceLinkTests/DevAPISpecs/SDLFakeStreamingManagerDataSource.m new file mode 100644 index 000000000..e8e58c04c --- /dev/null +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLFakeStreamingManagerDataSource.m @@ -0,0 +1,30 @@ +// +// SDLFakeStreamingManagerDataSource.m +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 9/5/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLFakeStreamingManagerDataSource.h" + +#import "SDLImageResolution.h" +#import "SDLVideoStreamingCodec.h" +#import "SDLVideoStreamingFormat.h" +#import "SDLVideoStreamingProtocol.h" + +@implementation SDLFakeStreamingManagerDataSource + +- (SDLVideoStreamingFormat *)extraFormat { + return [[SDLVideoStreamingFormat alloc] initWithCodec:SDLVideoStreamingCodecVP8 protocol:SDLVideoStreamingProtocolRTMP]; +} + +- (NSArray *)preferredVideoFormatOrderFromHeadUnitPreferredOrder:(NSArray *)headUnitPreferredOrder { + return [@[self.extraFormat] arrayByAddingObjectsFromArray:headUnitPreferredOrder]; +} + +- (NSArray *)resolutionFromHeadUnitPreferredResolution:(SDLImageResolution *)headUnitPreferredResolution { + return @[headUnitPreferredResolution]; +} + +@end diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLFileManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLFileManagerSpec.m index 728128aea..42e7e2d75 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLFileManagerSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLFileManagerSpec.m @@ -14,102 +14,100 @@ #import "SDLPutFileResponse.h" #import "SDLRPCResponse.h" #import "TestConnectionManager.h" - +#import "TestMultipleFilesConnectionManager.h" +#import "TestProgressResponse.h" +#import "TestResponse.h" typedef NSString SDLFileManagerState; SDLFileManagerState *const SDLFileManagerStateShutdown = @"Shutdown"; SDLFileManagerState *const SDLFileManagerStateFetchingInitialList = @"FetchingInitialList"; SDLFileManagerState *const SDLFileManagerStateReady = @"Ready"; - @interface SDLFileManager () - @property (strong, nonatomic) NSOperationQueue *transactionQueue; - @end - QuickSpecBegin(SDLFileManagerSpec) describe(@"SDLFileManager", ^{ __block TestConnectionManager *testConnectionManager = nil; __block SDLFileManager *testFileManager = nil; __block NSUInteger initialSpaceAvailable = 250; - + beforeEach(^{ testConnectionManager = [[TestConnectionManager alloc] init]; testFileManager = [[SDLFileManager alloc] initWithConnectionManager:testConnectionManager]; testFileManager.suspended = YES; }); - + describe(@"before starting", ^{ it(@"should be in the shutdown state", ^{ expect(testFileManager.currentState).to(match(SDLFileManagerStateShutdown)); }); - + it(@"bytesAvailable should be 0", ^{ expect(@(testFileManager.bytesAvailable)).to(equal(@0)); }); - + it(@"remoteFileNames should be empty", ^{ expect(testFileManager.remoteFileNames).to(beEmpty()); }); - + it(@"should have no pending operations", ^{ expect(testFileManager.pendingTransactions).to(beEmpty()); }); }); - + describe(@"after receiving a start message", ^{ __block BOOL startupSuccess = NO; __block NSError *startupError = nil; - + beforeEach(^{ [testFileManager startWithCompletionHandler:^(BOOL success, NSError * _Nullable error) { startupSuccess = success; startupError = error; }]; - + testFileManager.suspended = NO; - + [NSThread sleepForTimeInterval:0.1]; }); - + it(@"should have queued a ListFiles request", ^{ expect(testFileManager.pendingTransactions).to(haveCount(@1)); expect(testFileManager.pendingTransactions.firstObject).to(beAnInstanceOf([SDLListFilesOperation class])); }); - + it(@"should be in the fetching initial list state", ^{ expect(testFileManager.currentState).to(match(SDLFileManagerStateFetchingInitialList)); }); - + describe(@"after receiving a ListFiles response", ^{ __block SDLListFilesResponse *testListFilesResponse = nil; __block NSSet *testInitialFileNames = nil; - + beforeEach(^{ testInitialFileNames = [NSSet setWithArray:@[@"testFile1", @"testFile2", @"testFile3"]]; - + testListFilesResponse = [[SDLListFilesResponse alloc] init]; testListFilesResponse.success = @YES; testListFilesResponse.spaceAvailable = @(initialSpaceAvailable); - testListFilesResponse.filenames = [NSMutableArray arrayWithArray:[testInitialFileNames allObjects]]; - + testListFilesResponse.filenames = [NSArray arrayWithArray:[testInitialFileNames allObjects]]; + [testConnectionManager respondToLastRequestWithResponse:testListFilesResponse]; }); - + it(@"the file manager should be in the correct state", ^{ expect(testFileManager.currentState).toEventually(match(SDLFileManagerStateReady)); expect(testFileManager.remoteFileNames).toEventually(equal(testInitialFileNames)); expect(@(testFileManager.bytesAvailable)).toEventually(equal(@(initialSpaceAvailable))); }); - + describe(@"deleting a file", ^{ __block BOOL completionSuccess = NO; __block NSUInteger completionBytesAvailable = 0; __block NSError *completionError = nil; - + context(@"when the file is unknown", ^{ beforeEach(^{ NSString *someUnknownFileName = @"Some Unknown File Name"; @@ -118,28 +116,28 @@ @interface SDLFileManager () completionBytesAvailable = bytesAvailable; completionError = error; }]; - + [NSThread sleepForTimeInterval:0.1]; }); - + it(@"should return the correct data", ^{ expect(@(completionSuccess)).toEventually(equal(@NO)); expect(@(completionBytesAvailable)).toEventually(equal(@250)); expect(completionError).toEventually(equal([NSError sdl_fileManager_noKnownFileError])); }); - + it(@"should not have deleted any files in the file manager", ^{ expect(testFileManager.remoteFileNames).toEventually(haveCount(@(testInitialFileNames.count))); }); }); - + context(@"when the file is known", ^{ __block NSUInteger newSpaceAvailable = 600; __block NSString *someKnownFileName = nil; __block BOOL completionSuccess = NO; __block NSUInteger completionBytesAvailable = 0; __block NSError *completionError = nil; - + beforeEach(^{ someKnownFileName = [testInitialFileNames anyObject]; [testFileManager deleteRemoteFileWithName:someKnownFileName completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError * _Nullable error) { @@ -147,162 +145,162 @@ @interface SDLFileManager () completionBytesAvailable = bytesAvailable; completionError = error; }]; - + SDLDeleteFileResponse *deleteResponse = [[SDLDeleteFileResponse alloc] init]; deleteResponse.success = @YES; deleteResponse.spaceAvailable = @(newSpaceAvailable); - + [NSThread sleepForTimeInterval:0.1]; - + [testConnectionManager respondToLastRequestWithResponse:deleteResponse]; }); - + it(@"should return the correct data", ^{ expect(@(completionSuccess)).to(equal(@YES)); expect(@(completionBytesAvailable)).to(equal(@(newSpaceAvailable))); expect(@(testFileManager.bytesAvailable)).to(equal(@(newSpaceAvailable))); expect(completionError).to(beNil()); }); - + it(@"should have removed the file from the file manager", ^{ expect(testFileManager.remoteFileNames).toNot(contain(someKnownFileName)); }); }); }); - + describe(@"uploading a new file", ^{ __block NSString *testFileName = nil; __block SDLFile *testUploadFile = nil; __block BOOL completionSuccess = NO; __block NSUInteger completionBytesAvailable = 0; __block NSError *completionError = nil; - + __block SDLPutFile *sentPutFile = nil; __block NSData *testFileData = nil; - + context(@"when there is a remote file named the same thing", ^{ beforeEach(^{ testFileName = [testInitialFileNames anyObject]; testFileData = [@"someData" dataUsingEncoding:NSUTF8StringEncoding]; testUploadFile = [SDLFile fileWithData:testFileData name:testFileName fileExtension:@"bin"]; }); - + context(@"when the file's overwrite property is YES", ^{ beforeEach(^{ testUploadFile.overwrite = YES; - + [testFileManager uploadFile:testUploadFile completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError * _Nullable error) { completionSuccess = success; completionBytesAvailable = bytesAvailable; completionError = error; }]; - + [NSThread sleepForTimeInterval:0.1]; - + sentPutFile = testConnectionManager.receivedRequests.lastObject; }); - + it(@"should set the file manager state to be waiting", ^{ expect(testFileManager.currentState).to(match(SDLFileManagerStateReady)); }); - + it(@"should create a putfile with the correct data", ^{ expect(sentPutFile.length).to(equal(@(testFileData.length))); expect(sentPutFile.bulkData).to(equal(testFileData)); - expect(sentPutFile.fileType.value).to(match([SDLFileType BINARY].value)); + expect(sentPutFile.fileType).to(match(SDLFileTypeBinary)); }); - + context(@"when the response returns without error", ^{ __block SDLPutFileResponse *testResponse = nil; __block NSNumber *testResponseSuccess = nil; __block NSNumber *testResponseBytesAvailable = nil; - + beforeEach(^{ testResponseBytesAvailable = @750; testResponseSuccess = @YES; - + testResponse = [[SDLPutFileResponse alloc] init]; testResponse.success = testResponseSuccess; testResponse.spaceAvailable = testResponseBytesAvailable; - + [testConnectionManager respondToLastRequestWithResponse:testResponse]; }); - + it(@"should set the file manager data correctly", ^{ expect(@(testFileManager.bytesAvailable)).toEventually(equal(testResponseBytesAvailable)); expect(testFileManager.currentState).toEventually(match(SDLFileManagerStateReady)); expect(testFileManager.remoteFileNames).toEventually(contain(testFileName)); }); - + it(@"should call the completion handler with the correct data", ^{ - expect(@(completionBytesAvailable)).to(equal(testResponseBytesAvailable)); - expect(@(completionSuccess)).to(equal(@YES)); + expect(@(completionBytesAvailable)).toEventually(equal(testResponseBytesAvailable)); + expect(@(completionSuccess)).toEventually(equal(@YES)); expect(completionError).to(beNil()); }); }); - + context(@"when the connection returns failure", ^{ __block SDLPutFileResponse *testResponse = nil; __block NSNumber *testResponseBytesAvailable = nil; __block NSNumber *testResponseSuccess = nil; - + beforeEach(^{ testResponseBytesAvailable = @750; testResponseSuccess = @NO; - + testResponse = [[SDLPutFileResponse alloc] init]; testResponse.spaceAvailable = testResponseBytesAvailable; testResponse.success = testResponseSuccess; - + [testConnectionManager respondToLastRequestWithResponse:testResponse]; }); - + it(@"should set the file manager data correctly", ^{ expect(@(testFileManager.bytesAvailable)).toEventually(equal(@(initialSpaceAvailable))); expect(testFileManager.remoteFileNames).toEventually(contain(testFileName)); expect(testFileManager.currentState).toEventually(match(SDLFileManagerStateReady)); }); - + it(@"should call the completion handler with the correct data", ^{ expect(@(completionBytesAvailable)).to(equal(@0)); expect(@(completionSuccess)).to(equal(testResponseSuccess)); - expect(completionError).to(beNil()); + expect(completionError).toEventually(beNil()); }); }); - + context(@"when the connection errors without a response", ^{ beforeEach(^{ [testConnectionManager respondToLastRequestWithResponse:nil error:[NSError sdl_lifecycle_notReadyError]]; }); - + it(@"should have the correct file manager state", ^{ expect(testFileManager.remoteFileNames).to(contain(testFileName)); expect(testFileManager.currentState).to(match(SDLFileManagerStateReady)); }); - + it(@"should call the completion handler with correct data", ^{ expect(completionError).toEventually(equal([NSError sdl_lifecycle_notReadyError])); }); }); }); - + context(@"when allow overwrite is false", ^{ __block SDLRPCRequest *lastRequest = nil; - + beforeEach(^{ testUploadFile.overwrite = NO; - + [testFileManager uploadFile:testUploadFile completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError * _Nullable error) { completionSuccess = success; completionBytesAvailable = bytesAvailable; completionError = error; }]; - + [NSThread sleepForTimeInterval:0.1]; - + lastRequest = testConnectionManager.receivedRequests.lastObject; }); - + it(@"should have called the completion handler with correct data", ^{ expect(lastRequest).toNot(beAnInstanceOf([SDLPutFile class])); expect(@(completionSuccess)).to(equal(@NO)); @@ -311,98 +309,98 @@ @interface SDLFileManager () }); }); }); - + context(@"when there is not a remote file named the same thing", ^{ beforeEach(^{ testFileName = @"not a test file"; testFileData = [@"someData" dataUsingEncoding:NSUTF8StringEncoding]; testUploadFile = [SDLFile fileWithData:testFileData name:testFileName fileExtension:@"bin"]; - + [testFileManager uploadFile:testUploadFile completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError * _Nullable error) { completionSuccess = success; completionBytesAvailable = bytesAvailable; completionError = error; }]; - + [NSThread sleepForTimeInterval:0.1]; - + sentPutFile = (SDLPutFile *)testConnectionManager.receivedRequests.lastObject; }); - + it(@"should not have testFileName in the files set", ^{ expect(testInitialFileNames).toNot(contain(testFileName)); }); - + context(@"when the connection returns without error", ^{ __block SDLPutFileResponse *testResponse = nil; __block NSNumber *testResponseSuccess = nil; __block NSNumber *testResponseBytesAvailable = nil; - + beforeEach(^{ testResponseBytesAvailable = @750; testResponseSuccess = @YES; - + testResponse = [[SDLPutFileResponse alloc] init]; testResponse.success = testResponseSuccess; testResponse.spaceAvailable = testResponseBytesAvailable; - + [testConnectionManager respondToLastRequestWithResponse:testResponse]; }); - + it(@"should set the file manager state correctly", ^{ expect(@(testFileManager.bytesAvailable)).toEventually(equal(testResponseBytesAvailable)); expect(testFileManager.remoteFileNames).toEventually(contain(testFileName)); expect(testFileManager.currentState).toEventually(match(SDLFileManagerStateReady)); }); - + it(@"should call the completion handler with the correct data", ^{ - expect(@(completionBytesAvailable)).to(equal(testResponseBytesAvailable)); - expect(@(completionSuccess)).to(equal(@YES)); + expect(@(completionBytesAvailable)).toEventually(equal(testResponseBytesAvailable)); + expect(@(completionSuccess)).toEventually(equal(@YES)); expect(completionError).to(beNil()); }); }); - + context(@"when the connection returns failure", ^{ __block SDLPutFileResponse *testResponse = nil; __block NSNumber *testResponseBytesAvailable = nil; __block NSNumber *testResponseSuccess = nil; - + beforeEach(^{ testResponseBytesAvailable = @750; testResponseSuccess = @NO; - + testResponse = [[SDLPutFileResponse alloc] init]; testResponse.spaceAvailable = testResponseBytesAvailable; testResponse.success = testResponseSuccess; - + testFileManager.accessibilityHint = @"This doesn't matter"; - + [testConnectionManager respondToLastRequestWithResponse:testResponse]; }); - + it(@"should set the file manager state correctly", ^{ expect(@(testFileManager.bytesAvailable)).toEventually(equal(@(initialSpaceAvailable))); expect(testFileManager.remoteFileNames).toEventuallyNot(contain(testFileName)); expect(testFileManager.currentState).toEventually(match(SDLFileManagerStateReady)); }); - + it(@"should call the completion handler with the correct data", ^{ expect(@(completionBytesAvailable)).to(equal(@0)); expect(@(completionSuccess)).to(equal(testResponseSuccess)); - expect(completionError).to(beNil()); + expect(completionError).toEventually(beNil()); }); }); - + context(@"when the connection errors without a response", ^{ beforeEach(^{ [testConnectionManager respondToLastRequestWithResponse:nil error:[NSError sdl_lifecycle_notReadyError]]; }); - + it(@"should set the file manager state correctly", ^{ expect(testFileManager.remoteFileNames).toNot(contain(testFileName)); expect(testFileManager.currentState).to(match(SDLFileManagerStateReady)); }); - + it(@"should call the completion handler with nil error", ^{ expect(completionError).toEventually(equal([NSError sdl_lifecycle_notReadyError])); }); @@ -410,6 +408,684 @@ @interface SDLFileManager () }); }); }); + + afterEach(^{ + expect(testFileManager.transactionQueue.maxConcurrentOperationCount).to(equal(@(1))); + }); + }); +}); + +describe(@"SDLFileManager uploading/deleting multiple files", ^{ + __block TestMultipleFilesConnectionManager *testConnectionManager; + __block SDLFileManager *testFileManager; + __block NSUInteger initialSpaceAvailable; + + beforeEach(^{ + testConnectionManager = [[TestMultipleFilesConnectionManager alloc] init]; + testFileManager = [[SDLFileManager alloc] initWithConnectionManager:testConnectionManager]; + initialSpaceAvailable = 66666; + }); + + context(@"When the file manager is passed multiple files to upload", ^{ + __block SDLListFilesResponse *testListFilesResponse; + __block NSMutableArray *testSDLFiles; + __block NSMutableArray *expectedSuccessfulFileNames; + __block NSNumber *expectedSpaceLeft; + __block SDLPutFileResponse *failedResponse; + __block SDLPutFileResponse *successfulResponse; + + beforeEach(^{ + testSDLFiles = [NSMutableArray array]; + expectedSuccessfulFileNames = [NSMutableArray array]; + expectedSpaceLeft = @(initialSpaceAvailable); + + testListFilesResponse = [[SDLListFilesResponse alloc] init]; + testListFilesResponse.success = @YES; + testListFilesResponse.spaceAvailable = @(initialSpaceAvailable); + testListFilesResponse.filenames = [[NSArray alloc] initWithObjects:@"A", @"B", @"C", nil]; + + failedResponse = [[SDLPutFileResponse alloc] init]; + failedResponse.success = @NO; + failedResponse.spaceAvailable = @(initialSpaceAvailable); + + successfulResponse = [[SDLPutFileResponse alloc] init]; + successfulResponse.success = @YES; + successfulResponse.spaceAvailable = @(initialSpaceAvailable); + + waitUntilTimeout(10, ^(void (^done)(void)){ + [testFileManager startWithCompletionHandler:^(BOOL success, NSError * _Nullable error) { + done(); + }]; + + // Need to wait state machine transitions to complete before sending testListFilesResponse + [NSThread sleepForTimeInterval:0.3]; + + [testConnectionManager respondToLastRequestWithResponse:testListFilesResponse]; + }); + }); + + context(@"and all files are uploaded successfully", ^{ + __block NSError *successfulResponseError = nil; + __block NSMutableDictionary *testConnectionManagerResponses = [[NSMutableDictionary alloc] init]; + + it(@"should not return an error when one small file is uploaded from memory", ^{ + NSString *testFileName = [NSString stringWithFormat:@"TestSmallFileMemory%d", 0]; + SDLFile *testSDLFile = [SDLFile fileWithData:[@"someTextData" dataUsingEncoding:NSUTF8StringEncoding] name:testFileName fileExtension:@"bin"]; + testSDLFile.overwrite = true; + [testSDLFiles addObject:testSDLFile]; + + [expectedSuccessfulFileNames addObject:testFileName]; + testConnectionManagerResponses[testFileName] = [[TestResponse alloc] initWithResponse:successfulResponse error:successfulResponseError]; + testConnectionManager.responses = testConnectionManagerResponses; + }); + + it(@"should not return an error when one large file is uploaded from disk", ^{ + NSString *testFileName = [NSString stringWithFormat:@"TestLargeFileDisk%d", 0]; + SDLFile *testSDLFile = [SDLFile fileAtFileURL: [[NSURL alloc] initFileURLWithPath:[[NSBundle bundleForClass:[self class]] pathForResource:@"testImagePNG" ofType:@"png"]] name:testFileName]; + testSDLFile.overwrite = true; + [testSDLFiles addObject:testSDLFile]; + + [expectedSuccessfulFileNames addObject:testFileName]; + testConnectionManagerResponses[testFileName] = [[TestResponse alloc] initWithResponse:successfulResponse error:successfulResponseError]; + testConnectionManager.responses = testConnectionManagerResponses; + }); + + it(@"should not return an error when multiple small files are uploaded from memory", ^{ + NSInteger testSpaceAvailable = initialSpaceAvailable; + for(int i = 0; i < 5; i += 1) { + NSString *testFileName = [NSString stringWithFormat:@"TestSmallFilesMemory%d", i]; + SDLFile *testSDLFile = [SDLFile fileWithData:[@"someTextData" dataUsingEncoding:NSUTF8StringEncoding] name:testFileName fileExtension:@"bin"]; + testSDLFile.overwrite = true; + [testSDLFiles addObject:testSDLFile]; + + successfulResponse.spaceAvailable = @(testSpaceAvailable -= 5); + + [expectedSuccessfulFileNames addObject:testFileName]; + testConnectionManagerResponses[testFileName] = [[TestResponse alloc] initWithResponse:successfulResponse error:successfulResponseError]; + } + expectedSpaceLeft = @(testSpaceAvailable); + testConnectionManager.responses = testConnectionManagerResponses; + }); + + it(@"should not return an error when a large number of small files are uploaded from memory", ^{ + NSInteger testSpaceAvailable = initialSpaceAvailable; + for(int i = 0; i < 500; i += 1) { + NSString *testFileName = [NSString stringWithFormat:@"Test500FilesMemory%d", i]; + SDLFile *testSDLFile = [SDLFile fileWithData:[@"someTextData" dataUsingEncoding:NSUTF8StringEncoding] name:testFileName fileExtension:@"bin"]; + testSDLFile.overwrite = true; + [testSDLFiles addObject:testSDLFile]; + + successfulResponse.spaceAvailable = @(testSpaceAvailable -= 4); + + [expectedSuccessfulFileNames addObject:testFileName]; + testConnectionManagerResponses[testFileName] = [[TestResponse alloc] initWithResponse:successfulResponse error:successfulResponseError]; + } + expectedSpaceLeft = @(testSpaceAvailable); + testConnectionManager.responses = testConnectionManagerResponses; + }); + + it(@"should not return an error when multiple small files are uploaded from disk", ^{ + NSInteger testSpaceAvailable = initialSpaceAvailable; + for(int i = 0; i < 5; i += 1) { + NSString *testFileName = [NSString stringWithFormat:@"TestMultipleSmallFilesDisk%d", i]; + SDLFile *testSDLFile = [SDLFile fileAtFileURL:[[NSURL alloc] initFileURLWithPath:[[NSBundle bundleForClass:[self class]] pathForResource:@"testImagePNG" ofType:@"png"]] name:testFileName]; + testSDLFile.overwrite = true; + [testSDLFiles addObject:testSDLFile]; + + successfulResponse.spaceAvailable = @(testSpaceAvailable -= 3); + + [expectedSuccessfulFileNames addObject:testFileName]; + testConnectionManagerResponses[testFileName] = [[TestResponse alloc] initWithResponse:successfulResponse error:successfulResponseError]; + } + expectedSpaceLeft = @(testSpaceAvailable); + testConnectionManager.responses = testConnectionManagerResponses; + }); + + it(@"should not return an error when multiple files are uploaded from both memory and disk", ^{ + NSInteger testSpaceAvailable = initialSpaceAvailable; + for(int i = 0; i < 10; i += 1) { + NSString *testFileName = [NSString stringWithFormat:@"TestMultipleFilesDiskAndMemory%d", i]; + SDLFile *testSDLFile; + if (i < 5) { + testSDLFile = [SDLFile fileAtFileURL:[[NSURL alloc] initFileURLWithPath:[[NSBundle bundleForClass:[self class]] pathForResource:@"testImagePNG" ofType:@"png"]] name:testFileName]; + } else { + testSDLFile = [SDLFile fileWithData:[@"someTextData" dataUsingEncoding:NSUTF8StringEncoding] name:testFileName fileExtension:@"bin"]; + } + testSDLFile.overwrite = true; + [testSDLFiles addObject:testSDLFile]; + + successfulResponse.spaceAvailable = @(testSpaceAvailable -= 2); + + [expectedSuccessfulFileNames addObject:testFileName]; + testConnectionManagerResponses[testFileName] = [[TestResponse alloc] initWithResponse:successfulResponse error:successfulResponseError]; + } + expectedSpaceLeft = @(testSpaceAvailable); + testConnectionManager.responses = testConnectionManagerResponses; + }); + + afterEach(^{ + waitUntilTimeout(10, ^(void (^done)(void)){ + [testFileManager uploadFiles:testSDLFiles completionHandler:^(NSError * _Nullable error) { + expect(error).to(beNil()); + expect(testFileManager.bytesAvailable).to(equal(expectedSpaceLeft)); + done(); + }]; + }); + }); + }); + + context(@"and all files are not uploaded successfully", ^{ + __block NSMutableDictionary *testConnectionManagerResponses; + __block NSMutableDictionary *expectedFailedUploads; + __block NSError *expectedError; + __block int testTotalFileCount; + __block NSString *testFileNameBase; + __block int testFailureIndexStart; + __block int testFailureIndexEnd; + + beforeEach(^{ + testConnectionManagerResponses = [[NSMutableDictionary alloc] init]; + expectedFailedUploads = [[NSMutableDictionary alloc] init]; + expectedError = nil; + }); + + context(@"When the file manager receives a notification from the remote that a file upload failed", ^{ + beforeEach(^{ + testFailureIndexStart = -1; + testFailureIndexEnd = INT8_MAX; + }); + + it(@"should return an error when all files fail", ^{ + testTotalFileCount = 5; + testFileNameBase = @"TestAllFilesUnsuccessful"; + testFailureIndexStart = testTotalFileCount; + }); + + it(@"should return an error when the first file fails to upload", ^{ + testTotalFileCount = 5; + testFileNameBase = @"TestFirstFileUnsuccessful"; + testFailureIndexStart = 0; + }); + + it(@"should return an error when the last file fails to upload", ^{ + testTotalFileCount = 100; + testFileNameBase = @"TestLastFileUnsuccessful"; + testFailureIndexEnd = (testTotalFileCount - 1); + }); + + afterEach(^{ + NSInteger testSpaceAvailable = initialSpaceAvailable; + for(int i = 0; i < testTotalFileCount; i += 1) { + NSString *testFileName = [NSString stringWithFormat:@"%@%d", testFileNameBase, i]; + SDLFile *testSDLFile = [SDLFile fileWithData:[@"someTextData" dataUsingEncoding:NSUTF8StringEncoding] name:testFileName fileExtension:@"bin"]; + testSDLFile.overwrite = true; + [testSDLFiles addObject:testSDLFile]; + + SDLPutFileResponse *response = [[SDLPutFileResponse alloc] init]; + NSError *responseError = nil; + if (i <= testFailureIndexStart || i >= testFailureIndexEnd) { + // Failed response + response = failedResponse; + response.spaceAvailable = @(testSpaceAvailable); + responseError = [NSError sdl_lifecycle_unknownRemoteErrorWithDescription:[NSString stringWithFormat:@"file upload failed: %d", i] andReason:[NSString stringWithFormat:@"some error reason: %d", i]]; + expectedFailedUploads[testFileName] = responseError; + } else { + // Successful response + response = successfulResponse; + response.spaceAvailable = @(testSpaceAvailable -= 1); + responseError = nil; + [expectedSuccessfulFileNames addObject:testFileName]; + } + + testConnectionManagerResponses[testFileName] = [[TestResponse alloc] initWithResponse:response error:responseError];; + } + + testConnectionManager.responses = testConnectionManagerResponses; + expectedError = [NSError sdl_fileManager_unableToUpload_ErrorWithUserInfo:expectedFailedUploads]; + expectedSpaceLeft = @(testSpaceAvailable); + }); + }); + + afterEach(^{ + waitUntilTimeout(10, ^(void (^done)(void)){ + [testFileManager uploadFiles:testSDLFiles completionHandler:^(NSError * _Nullable error) { + expect(error).to(equal(expectedError)); + expect(testFileManager.bytesAvailable).to(equal(expectedSpaceLeft)); + done(); + }]; + }); + }); + }); + + context(@"and all files are uploaded successfully while expecting a progress response for each file", ^{ + __block NSMutableDictionary *testFileManagerResponses; + __block NSMutableDictionary *testFileManagerProgressResponses; + __block int testTotalFileCount; + __block NSString *testFileNameBase; + + beforeEach(^{ + testFileManagerResponses = [[NSMutableDictionary alloc] init]; + testFileManagerProgressResponses = [[NSMutableDictionary alloc] init]; + }); + + context(@"A progress handler should be returned for each file", ^{ + it(@"should upload 1 small file from memory without error", ^{ + testTotalFileCount = 1; + testFileNameBase = @"TestProgressHandlerOneSmallFileMemory"; + }); + + it(@"should upload a large number of small files from memory without error", ^{ + testTotalFileCount = 200; + testFileNameBase = @"TestProgressHandlerMultipleSmallFileMemory"; + }); + + afterEach(^{ + NSData *testFileData = [@"someTextData" dataUsingEncoding:NSUTF8StringEncoding]; + float testTotalBytesToUpload = testTotalFileCount * testFileData.length; + float testTotalBytesUploaded = 0.0; + + NSInteger testSpaceAvailable = initialSpaceAvailable; + for(int i = 0; i < testTotalFileCount; i += 1) { + NSString *testFileName = [NSString stringWithFormat:@"%@%d", testFileNameBase, i]; + SDLFile *testSDLFile = [SDLFile fileWithData:testFileData name:testFileName fileExtension:@"bin"]; + testSDLFile.overwrite = true; + [testSDLFiles addObject:testSDLFile]; + + successfulResponse.spaceAvailable = @(testSpaceAvailable -= 10); + [expectedSuccessfulFileNames addObject:testFileName]; + testFileManagerResponses[testFileName] = [[TestResponse alloc] initWithResponse:successfulResponse error:nil]; + + testTotalBytesUploaded += testSDLFile.fileSize; + testFileManagerProgressResponses[testFileName] = [[TestProgressResponse alloc] initWithFileName:testFileName testUploadPercentage:testTotalBytesUploaded / testTotalBytesToUpload error:nil]; + } + expectedSpaceLeft = @(testSpaceAvailable); + testConnectionManager.responses = testFileManagerResponses; + }); + }); + + afterEach(^{ + waitUntilTimeout(10, ^(void (^done)(void)){ + [testFileManager uploadFiles:testSDLFiles progressHandler:^BOOL(SDLFileName * _Nonnull fileName, float uploadPercentage, NSError * _Nullable error) { + TestProgressResponse *testProgressResponse = testFileManagerProgressResponses[fileName]; + expect(fileName).to(equal(testProgressResponse.testFileName)); + expect(uploadPercentage).to(equal(testProgressResponse.testUploadPercentage)); + expect(error).to(testProgressResponse.testError == nil ? beNil() : equal(testProgressResponse.testError)); + return YES; + } completionHandler:^(NSError * _Nullable error) { + expect(error).to(beNil()); + expect(testFileManager.bytesAvailable).to(equal(expectedSpaceLeft)); + done(); + }]; + }); + }); + }); + + context(@"When an upload is canceled while in progress by the cancel parameter of the progress handler", ^{ + __block NSMutableDictionary *testResponses; + __block NSMutableDictionary *testProgressResponses; + __block NSString *testFileNameBase; + __block int testFileCount = 0; + __block int testCancelIndex = 0; + __block NSError *expectedError; + + beforeEach(^{ + testResponses = [[NSMutableDictionary alloc] init]; + testProgressResponses = [[NSMutableDictionary alloc] init]; + }); + + it(@"should cancel the remaining files if cancel is triggered after first upload", ^{ + testFileCount = 11; + testCancelIndex = 0; + testFileNameBase = @"TestUploadFilesCancelAfterFirst"; + expectedError = [NSError sdl_fileManager_unableToUpload_ErrorWithUserInfo:testResponses]; + }); + + it(@"should cancel the remaining files if cancel is triggered after half of the files are uploaded", ^{ + testFileCount = 30; + testCancelIndex = testFileCount / 2; + testFileNameBase = @"TestUploadFilesCancelInMiddle"; + expectedError = [NSError sdl_fileManager_unableToUpload_ErrorWithUserInfo:testResponses]; + }); + + it(@"should not fail if there are no more files to cancel", ^{ + testFileCount = 20; + testCancelIndex = (testFileCount - 1); + testFileNameBase = @"TestUploadFilesCancelAtEnd"; + expectedError = nil; + }); + + afterEach(^{ + for(int i = 0; i < testFileCount; i += 1) { + NSString *testFileName = [NSString stringWithFormat:@"%@%d", testFileNameBase, i]; + SDLFile *testSDLFile = [SDLFile fileWithData:[@"someTextData" dataUsingEncoding:NSUTF8StringEncoding] name:testFileName fileExtension:@"bin"]; + testSDLFile.overwrite = true; + [testSDLFiles addObject:testSDLFile]; + + if (i <= testCancelIndex) { + [expectedSuccessfulFileNames addObject:testFileName]; + } + + testResponses[testFileName] = [[TestResponse alloc] initWithResponse:successfulResponse error:nil]; + testProgressResponses[testFileName] = [[TestProgressResponse alloc] initWithFileName:testFileName testUploadPercentage:0.0 error:nil]; + } + testConnectionManager.responses = testResponses; + + waitUntilTimeout(10, ^(void (^done)(void)){ + [testFileManager uploadFiles:testSDLFiles progressHandler:^(NSString * _Nonnull fileName, float uploadPercentage, NSError * _Nullable error) { + // Once operations are canceled, the order in which the operations complete is random, so the upload percentage and the error message can vary. This means we can not test the error message or upload percentage it will be different every test run. + TestProgressResponse *testProgressResponse = testProgressResponses[fileName]; + expect(fileName).to(equal(testProgressResponse.testFileName)); + + NSString *cancelFileName = [NSString stringWithFormat:@"%@%d", testFileNameBase, testCancelIndex]; + if ([fileName isEqual:cancelFileName]) { + return NO; + } + return YES; + } completionHandler:^(NSError * _Nullable error) { + if (expectedError != nil) { + expect(error.code).to(equal(SDLFileManagerMultipleFileUploadTasksFailed)); + } else { + expect(error).to(beNil()); + } + done(); + }]; + }); + }); + }); + + context(@"When an upload is canceled it should only cancel files that were passed with the same file array", ^{ + // When canceled is called in this test group, the rest of the files should be canceled + __block NSMutableDictionary *testResponses; + __block NSMutableDictionary *testProgressResponses; + __block NSString *testFileNameBase; + __block int testFileCount = 0; + __block int testCancelIndex = 0; + __block NSError *expectedError; + + // Another group of uploads. These uploads should not be canceled when the other files are canceled + __block NSMutableArray *testOtherSDLFiles; + __block NSString *testOtherFileNameBase; + __block int testOtherFileCount = 0; + __block NSError *expectedOtherError; + + beforeEach(^{ + testResponses = [[NSMutableDictionary alloc] init]; + testProgressResponses = [[NSMutableDictionary alloc] init]; + + testOtherSDLFiles = [[NSMutableArray alloc] init]; + }); + + it(@"should only cancel the remaining files that were passed with the same file. Other files in the queue that were not passed in the same array should not be canceled", ^{ + testFileCount = 11; + testCancelIndex = 0; + testFileNameBase = @"TestUploadFilesCancelGroupOnly"; + expectedError = [NSError sdl_fileManager_unableToUpload_ErrorWithUserInfo:testResponses]; + + testOtherFileNameBase = @"TestOtherUploadFilesCancelGroupOnly"; + testOtherFileCount = 22; + expectedOtherError = nil; + }); + + it(@"should not fail if no files are canceled", ^{ + testFileCount = 1; + testCancelIndex = 0; + testFileNameBase = @"TestUploadFilesCancelGroupOnlyOneFile"; + expectedError = nil; + + testOtherFileNameBase = @"TestOtherUploadFilesCancelGroupOnlyOneFile"; + testOtherFileCount = 2; + expectedOtherError = nil; + }); + + afterEach(^{ + for(int i = 0; i < testFileCount; i += 1) { + NSString *testFileName = [NSString stringWithFormat:@"%@%d", testFileNameBase, i]; + SDLFile *testSDLFile = [SDLFile fileWithData:[@"someTextData" dataUsingEncoding:NSUTF8StringEncoding] name:testFileName fileExtension:@"bin"]; + testSDLFile.overwrite = true; + [testSDLFiles addObject:testSDLFile]; + + if (i <= testCancelIndex) { + [expectedSuccessfulFileNames addObject:testFileName]; + } + + testResponses[testFileName] = [[TestResponse alloc] initWithResponse:successfulResponse error:nil]; + testProgressResponses[testFileName] = [[TestProgressResponse alloc] initWithFileName:testFileName testUploadPercentage:0.0 error:nil]; + } + + for(int i = 0; i < testOtherFileCount; i += 1) { + NSString *testFileName = [NSString stringWithFormat:@"%@%d", testOtherFileNameBase, i]; + SDLFile *testSDLFile = [SDLFile fileWithData:[@"someOtherTextData" dataUsingEncoding:NSUTF8StringEncoding] name:testFileName fileExtension:@"bin"]; + testSDLFile.overwrite = true; + [testOtherSDLFiles addObject:testSDLFile]; + + [expectedSuccessfulFileNames addObject:testFileName]; + + testResponses[testFileName] = [[TestResponse alloc] initWithResponse:successfulResponse error:nil]; + } + + testConnectionManager.responses = testResponses; + + waitUntilTimeout(10, ^(void (^done)(void)){ + [testFileManager uploadFiles:testSDLFiles progressHandler:^(NSString * _Nonnull fileName, float uploadPercentage, NSError * _Nullable error) { + // Once operations are canceled, the order in which the operations complete is random, so the upload percentage and the error message can vary. This means we can not test the error message or upload percentage it will be different every test run. + TestProgressResponse *testProgressResponse = testProgressResponses[fileName]; + expect(fileName).to(equal(testProgressResponse.testFileName)); + + NSString *cancelFileName = [NSString stringWithFormat:@"%@%d", testFileNameBase, testCancelIndex]; + if ([fileName isEqual:cancelFileName]) { + return NO; + } + return YES; + } completionHandler:^(NSError * _Nullable error) { + if (expectedError != nil) { + expect(error.code).to(equal(SDLFileManagerMultipleFileUploadTasksFailed)); + } else { + expect(error).to(beNil()); + } + }]; + + [testFileManager uploadFiles:testOtherSDLFiles completionHandler:^(NSError * _Nullable error) { + expect(error).to(beNil()); + // Since the queue is serial, we know that these files will finish after the first uploadFiles() batch. + done(); + }]; + }); + }); + }); + + afterEach(^{ + for(int i = 0; i < expectedSuccessfulFileNames.count; i += 1) { + expect(testFileManager.remoteFileNames).to(contain(expectedSuccessfulFileNames[i])); + } + }); + }); + + context(@"When the file manager is passed multiple files to delete", ^{ + __block SDLListFilesResponse *testListFilesResponse; + __block NSArray *testRemoteFileNames; + __block NSMutableArray *expectedRemoteFileNames; + __block NSNumber *expectedSpaceLeft; + __block NSMutableArray *testDeleteFileNames; + __block SDLDeleteFileResponse *failedDeleteResponse; + __block SDLDeleteFileResponse *successfulDeleteResponse; + __block NSError *expectedError = nil; + + beforeEach(^{ + testRemoteFileNames = [[NSArray alloc] initWithObjects:@"AA", @"BB", @"CC", @"DD", @"EE", @"FF", nil]; + expectedRemoteFileNames = [[NSMutableArray alloc] init]; + + testListFilesResponse = [[SDLListFilesResponse alloc] init]; + testListFilesResponse.success = @YES; + testListFilesResponse.spaceAvailable = @(initialSpaceAvailable); + testListFilesResponse.filenames = testRemoteFileNames; + + // Failed delete response + failedDeleteResponse = [[SDLDeleteFileResponse alloc] init]; + failedDeleteResponse.spaceAvailable = @10; + failedDeleteResponse.success = @NO; + + // Successful delete response + successfulDeleteResponse = [[SDLDeleteFileResponse alloc] init]; + successfulDeleteResponse.spaceAvailable = @9; + successfulDeleteResponse.success = @YES; + + waitUntilTimeout(10, ^(void (^done)(void)){ + [testFileManager startWithCompletionHandler:^(BOOL success, NSError * _Nullable error) { + done(); + }]; + + // Need to wait state machine transitions to complete before sending testListFilesResponse + [NSThread sleepForTimeInterval:0.3]; + + [testConnectionManager respondToLastRequestWithResponse:testListFilesResponse]; + }); + }); + + context(@"and all files are deleted successfully", ^{ + __block NSMutableDictionary *testResponses; + __block int testFileCount = 0; + + beforeEach(^{ + testResponses = [[NSMutableDictionary alloc] init]; + testDeleteFileNames = [[NSMutableArray alloc] init]; + }); + + context(@"When the file manager receives a successful notification for each deleted file", ^{ + it(@"should not return an error when one remote file is deleted", ^{ + testFileCount = 1; + }); + + it(@"should not return an error when all remote files are deleted", ^{ + testFileCount = (int)testRemoteFileNames.count; + }); + + afterEach(^{ + NSInteger testSpaceAvailable = initialSpaceAvailable; + for(int i = 0; i < testFileCount; i += 1) { + NSString *testFileName = [testRemoteFileNames objectAtIndex:i]; + successfulDeleteResponse.spaceAvailable = @(testSpaceAvailable += 91); + testResponses[testFileName] = [[TestResponse alloc] initWithResponse:successfulDeleteResponse error:nil]; + [testDeleteFileNames addObject:testFileName]; + } + expectedSpaceLeft = @(testSpaceAvailable); + [expectedRemoteFileNames removeAllObjects]; + testConnectionManager.responses = testResponses; + }); + }); + }); + + context(@"and all files are not deleted successfully", ^{ + __block NSMutableDictionary *testConnectionManagerResponses; + __block NSMutableDictionary *expectedFailedDeletes; + + beforeEach(^{ + testConnectionManagerResponses = [[NSMutableDictionary alloc] init]; + testDeleteFileNames = [[NSMutableArray alloc] init]; + expectedFailedDeletes = [[NSMutableDictionary alloc] init]; + }); + + context(@"When the file manager receives a unsuccessful notification for a deleted file", ^{ + __block int testFailureIndexStart; + __block int testFailureIndexEnd; + + beforeEach(^{ + testFailureIndexStart = -1; + testFailureIndexEnd = INT8_MAX; + }); + + it(@"should return an error if the first remote file fails to delete", ^{ + testFailureIndexStart = 0; + }); + + it(@"should return an error if the last remote file fails to delete", ^{ + testFailureIndexEnd = (int)testRemoteFileNames.count - 1; + }); + + it(@"should return an error if all files fail to delete", ^{ + testFailureIndexStart = (int)testRemoteFileNames.count; + }); + + afterEach(^{ + NSInteger testSpaceAvailable = initialSpaceAvailable; + for(int i = 0; i < testRemoteFileNames.count; i += 1) { + NSString *testFileName = [testRemoteFileNames objectAtIndex:i]; + + SDLDeleteFileResponse *response; + NSError *responseError; + if (i <= testFailureIndexStart || i >= testFailureIndexEnd) { + failedDeleteResponse.spaceAvailable = @(testSpaceAvailable); + response = failedDeleteResponse; + responseError = [NSError sdl_lifecycle_unknownRemoteErrorWithDescription:[NSString stringWithFormat:@"file upload failed: %d", i] andReason: [NSString stringWithFormat:@"some error reason: %d", i]]; + expectedFailedDeletes[testFileName] = responseError; + [expectedRemoteFileNames addObject:testFileName]; + } else { + successfulDeleteResponse.spaceAvailable = @(testSpaceAvailable += 891); + response = successfulDeleteResponse; + responseError = nil; + } + + testConnectionManagerResponses[testFileName] = [[TestResponse alloc] initWithResponse:response error:responseError]; + [testDeleteFileNames addObject:testFileName]; + } + + testConnectionManager.responses = testConnectionManagerResponses; + expectedError = [NSError sdl_fileManager_unableToDelete_ErrorWithUserInfo:expectedFailedDeletes]; + expectedSpaceLeft = @(testSpaceAvailable); + }); + }); + }); + + afterEach(^{ + waitUntilTimeout(10, ^(void (^done)(void)){ + [testFileManager deleteRemoteFilesWithNames:testDeleteFileNames completionHandler:^(NSError * _Nullable error) { + expect(error).to(expectedError == nil ? beNil() : equal(expectedError)); + expect(testFileManager.bytesAvailable).to(equal(expectedSpaceLeft)); + done(); + }]; + }); + + for(int i = 0; i < expectedRemoteFileNames.count; i += 1) { + expect(testFileManager.remoteFileNames).to(contain(expectedRemoteFileNames[i])); + } + }); + }); + + context(@"The file manager should handle exceptions correctly", ^{ + beforeEach(^{ + SDLListFilesResponse *testListFilesResponse = [[SDLListFilesResponse alloc] init]; + testListFilesResponse.success = @YES; + testListFilesResponse.spaceAvailable = @(initialSpaceAvailable); + testListFilesResponse.filenames = [[NSArray alloc] initWithObjects:@"AA", nil]; + + waitUntilTimeout(10, ^(void (^done)(void)){ + [testFileManager startWithCompletionHandler:^(BOOL success, NSError * _Nullable error) { + done(); + }]; + + // Need to wait state machine transitions to complete before sending testListFilesResponse + [NSThread sleepForTimeInterval:0.3]; + + [testConnectionManager respondToLastRequestWithResponse:testListFilesResponse]; + }); + }); + + it(@"should throw an exception when the upload function is passed an empty array", ^{ + expectAction(^{ + [testFileManager uploadFiles:[NSArray array] completionHandler:nil]; + }).to(raiseException().named([NSException sdl_missingFilesException].name)); + }); + + it(@"should throw an exception when the upload function with a progress handler is passed an empty array", ^{ + expectAction(^{ + [testFileManager uploadFiles:[NSArray array] progressHandler:nil completionHandler:nil]; + }).to(raiseException().named([NSException sdl_missingFilesException].name)); + }); + + it(@"should throw an exception when the delete function is passed an empty array", ^{ + expectAction(^{ + [testFileManager deleteRemoteFilesWithNames:[NSArray array] completionHandler:nil]; + }).to(raiseException().named([NSException sdl_missingFilesException].name)); + }); }); }); diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLFileSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLFileSpec.m index 0e32c0f9f..fdb6e8cf6 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLFileSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLFileSpec.m @@ -4,7 +4,6 @@ #import "SDLFile.h" #import "SDLFileType.h" - QuickSpecBegin(SDLFileSpec) describe(@"SDLFile", ^{ @@ -15,10 +14,12 @@ __block NSString *testName = nil; __block NSString *testFileType = nil; __block BOOL testPersistence = NO; - - context(@"using test data", ^{ + __block unsigned long long testFileSize = 0.0; + + context(@"using data", ^{ testName = @"Example Name"; testData = [@"Example Data" dataUsingEncoding:NSUTF8StringEncoding]; + testFileSize = testData.length; testFileType = @"mp3"; testPersistence = YES; @@ -34,35 +35,47 @@ it(@"should correctly store data", ^{ expect(testFile.data).to(equal(testData)); }); + + it(@"should correctly return the file size of the data", ^{ + expect(testFile.fileSize).to(equal(testFileSize)); + }); + + it(@"should correctly store persistance", ^{ + expect(testFile.persistent).to(equal(@YES)); + }); it(@"should correctly store name", ^{ expect(testFile.name).to(equal(testName)); }); it(@"should correctly store file type", ^{ - expect(testFile.fileType).to(equal([SDLFileType AUDIO_MP3])); + expect(testFile.fileType).to(equal(SDLFileTypeMP3)); }); it(@"should correctly start as non-overwrite", ^{ expect(@(testFile.overwrite)).to(equal(@NO)); }); + + it(@"should correctly create an input stream", ^{ + expect(testFile.inputStream).toNot(beNil()); + }); }); }); - context(@"when created with a file", ^{ + context(@"when created with a file url", ^{ __block NSURL *testFileURL = nil; __block NSString *testFileName = nil; - + __block unsigned long long testFileSize = 0.0; + context(@"when created with a non-extant file url", ^{ beforeEach(^{ NSBundle *testBundle = [NSBundle bundleForClass:[self class]]; testFileURL = [testBundle URLForResource:@"imageThatDoesNotExist" withExtension:@"jpg"]; testFileName = @"someImage"; - testFile = [[SDLFile alloc] initWithFileURL:testFileURL name:testFileName persistent:NO]; }); - it(@"should be nil", ^{ + it(@"it should be nil", ^{ expect(testFile).to(beNil()); }); }); @@ -73,20 +86,28 @@ NSBundle *testBundle = [NSBundle bundleForClass:[self class]]; testFileURL = [testBundle URLForResource:@"testImageJPG" withExtension:@"jpg"]; testFileName = @"someImage"; - + testFileSize = [NSData dataWithContentsOfFile:testFileURL.path].length; testFile = [SDLFile fileAtFileURL:testFileURL name:testFileName]; }); - - it(@"should correctly store data", ^{ - expect(testFile.data).to(equal([NSData dataWithContentsOfURL:testFileURL])); + + it(@"should correctly store the file url", ^{ + expect(testFile.fileURL).to(equal(testFileURL)); }); - - it(@"should correctly store name", ^{ + + it(@"should not store any data", ^{ + expect(testFile.data.length).to(beGreaterThan(0)); + }); + + it(@"should correctly return the file size of the data stored at the url path", ^{ + expect(testFile.fileSize).to(equal(testFileSize)); + }); + + it(@"should correctly store the file name", ^{ expect(testFile.name).to(match(testFileName)); }); - it(@"should correctly store file type", ^{ - expect(testFile.fileType).to(equal([SDLFileType GRAPHIC_JPEG])); + it(@"should correctly store the file type", ^{ + expect(testFile.fileType).to(equal(SDLFileTypeJPEG)); }); it(@"should correctly store persistence", ^{ @@ -96,6 +117,10 @@ it(@"should correctly start as non-overwrite", ^{ expect(@(testFile.overwrite)).to(equal(@NO)); }); + + it(@"should correctly create an input stream", ^{ + expect(testFile.inputStream).toNot(beNil()); + }); }); context(@"That is persistent", ^{ @@ -103,20 +128,28 @@ NSBundle *testBundle = [NSBundle bundleForClass:[self class]]; testFileURL = [testBundle URLForResource:@"testImageJPG" withExtension:@"jpg"]; testFileName = @"someImage"; - + testFileSize = [NSData dataWithContentsOfFile:testFileURL.path].length; testFile = [SDLFile persistentFileAtFileURL:testFileURL name:testFileName]; }); - - it(@"should correctly store data", ^{ - expect(testFile.data).to(equal([NSData dataWithContentsOfURL:testFileURL])); + + it(@"should correctly store the file url", ^{ + expect(testFile.fileURL).to(equal(testFileURL)); }); - + + it(@"should not store any data", ^{ + expect(testFile.data.length).to(beGreaterThan(0)); + }); + + it(@"should correctly return the file size of the data stored at the url path", ^{ + expect(testFile.fileSize).to(equal(testFileSize)); + }); + it(@"should correctly store name", ^{ expect(testFile.name).to(equal(testFileName)); }); it(@"should correctly store file type", ^{ - expect(testFile.fileType).to(equal([SDLFileType GRAPHIC_JPEG])); + expect(testFile.fileType).to(equal(SDLFileTypeJPEG)); }); it(@"should correctly store persistence", ^{ @@ -126,6 +159,10 @@ it(@"should correctly start as non-overwrite", ^{ expect(@(testFile.overwrite)).to(equal(@NO)); }); + + it(@"should correctly create an input stream", ^{ + expect(testFile.inputStream).toNot(beNil()); + }); }); }); @@ -140,7 +177,7 @@ }); it(@"should properly interpret file type", ^{ - expect(testFile.fileType).to(equal([SDLFileType GRAPHIC_JPEG])); + expect(testFile.fileType).to(equal(SDLFileTypeJPEG)); }); }); @@ -154,7 +191,7 @@ }); it(@"should properly interpret file type", ^{ - expect(testFile.fileType).to(equal([SDLFileType GRAPHIC_JPEG])); + expect(testFile.fileType).to(equal(SDLFileTypeJPEG)); }); }); @@ -168,7 +205,7 @@ }); it(@"should properly interpret file type", ^{ - expect(testFile.fileType).to(equal([SDLFileType GRAPHIC_PNG])); + expect(testFile.fileType).to(equal(SDLFileTypePNG)); }); }); @@ -182,7 +219,7 @@ }); it(@"should properly interpret file type", ^{ - expect(testFile.fileType).to(equal([SDLFileType GRAPHIC_BMP])); + expect(testFile.fileType).to(equal(SDLFileTypeBMP)); }); }); @@ -196,7 +233,7 @@ }); it(@"should properly interpret file type", ^{ - expect(testFile.fileType).to(equal([SDLFileType JSON])); + expect(testFile.fileType).to(equal(SDLFileTypeJSON)); }); }); @@ -210,9 +247,22 @@ }); it(@"should properly interpret file type", ^{ - expect(testFile.fileType).to(equal([SDLFileType BINARY])); + expect(testFile.fileType).to(equal(SDLFileTypeBinary)); }); }); + + // FIXME: - Add test cases for audio file types + context(@"wav", ^{ + + }); + + context(@"mp3", ^{ + + }); + + context(@"aac", ^{ + + }); }); }); }); diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleConfigurationSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleConfigurationSpec.m index e398e429a..16be756f0 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleConfigurationSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleConfigurationSpec.m @@ -29,37 +29,36 @@ expect(@(testConfig.tcpDebugMode)).to(beFalsy()); expect(testConfig.tcpDebugIPAddress).to(match(@"192.168.0.1")); expect(@(testConfig.tcpDebugPort)).to(equal(@12345)); - expect(@([testConfig.appType isEqualToEnum:[SDLAppHMIType DEFAULT]])).to(equal(@YES)); + expect(@([testConfig.appType isEqualToEnum:SDLAppHMITypeDefault])).to(equal(@YES)); expect(@(testConfig.isMedia)).to(beFalsy()); - expect(@([testConfig.language isEqualToEnum:[SDLLanguage EN_US]])).to(equal(@YES)); - expect(@([[testConfig.languagesSupported firstObject] isEqualToEnum:[SDLLanguage EN_US]])).to(equal(@YES)); + expect(@([testConfig.language isEqualToEnum:SDLLanguageEnUs])).to(equal(@YES)); + expect(@([[testConfig.languagesSupported firstObject] isEqualToEnum:SDLLanguageEnUs])).to(equal(@YES)); expect(testConfig.shortAppName).to(beNil()); expect(testConfig.ttsName).to(beNil()); expect(testConfig.voiceRecognitionCommandNames).to(beNil()); expect(testConfig.resumeHash).to(beNil()); - expect(testConfig.securityManagers).to(beNil()); }); describe(@"after setting properties manually", ^{ __block NSString *someShortAppName = nil; __block SDLTTSChunk *someTTSChunk = nil; - __block NSArray *someTTSName = nil; - __block NSArray *someSynonyms = nil; + __block NSArray *someTTSName = nil; + __block NSArray *someSynonyms = nil; __block NSString *someResumeHashString = nil; beforeEach(^{ someTTSChunk = [[SDLTTSChunk alloc] init]; someTTSChunk.text = @"some tts name"; - someTTSChunk.type = [SDLSpeechCapabilities TEXT]; + someTTSChunk.type = SDLSpeechCapabilitiesText; someTTSName = @[someTTSChunk]; someShortAppName = @"Short Name"; someSynonyms = @[@"Test 1", @"Test 2", @"Test 3", @"Test 4"]; someResumeHashString = @"testing"; - testConfig.appType = [SDLAppHMIType MEDIA]; - testConfig.language = [SDLLanguage AR_SA]; - testConfig.languagesSupported = @[[SDLLanguage AR_SA], [SDLLanguage EN_AU], [SDLLanguage EN_US]]; + testConfig.appType = SDLAppHMITypeMedia; + testConfig.language = SDLLanguageArSa; + testConfig.languagesSupported = @[SDLLanguageArSa, SDLLanguageEnAu, SDLLanguageEnUs]; testConfig.shortAppName = someShortAppName; testConfig.ttsName = someTTSName; testConfig.voiceRecognitionCommandNames = someSynonyms; @@ -72,16 +71,15 @@ expect(@(testConfig.tcpDebugMode)).to(beFalsy()); expect(testConfig.tcpDebugIPAddress).to(match(@"192.168.0.1")); expect(@(testConfig.tcpDebugPort)).to(equal(@12345)); - expect(@([testConfig.appType isEqualToEnum:[SDLAppHMIType MEDIA]])).to(equal(@YES)); + expect(@([testConfig.appType isEqualToEnum:SDLAppHMITypeMedia])).to(equal(@YES)); expect(@(testConfig.isMedia)).to(beTruthy()); - expect(@([testConfig.language isEqualToEnum:[SDLLanguage AR_SA]])).to(equal(@YES)); + expect(@([testConfig.language isEqualToEnum:SDLLanguageArSa])).to(equal(@YES)); expect(testConfig.languagesSupported).to(haveCount(@3)); expect(testConfig.shortAppName).to(match(someShortAppName)); expect(testConfig.ttsName).to(contain(someTTSChunk)); expect(testConfig.ttsName).to(haveCount(@1)); expect(testConfig.voiceRecognitionCommandNames).to(haveCount(@(someSynonyms.count))); expect(testConfig.resumeHash).to(match(someResumeHashString)); - expect(testConfig.securityManagers).to(beNil()); }); }); }); @@ -107,35 +105,34 @@ expect(@(testConfig.tcpDebugMode)).to(beTruthy()); expect(testConfig.tcpDebugIPAddress).to(match(someIPAddress)); expect(@(testConfig.tcpDebugPort)).to(equal(@(somePort))); - expect(@([testConfig.appType isEqualToEnum:[SDLAppHMIType DEFAULT]])).to(equal(@YES)); - expect(@([testConfig.language isEqualToEnum:[SDLLanguage EN_US]])).to(equal(@YES)); - expect(@([[testConfig.languagesSupported firstObject] isEqualToEnum:[SDLLanguage EN_US]])).to(equal(@YES)); + expect(@([testConfig.appType isEqualToEnum:SDLAppHMITypeDefault])).to(equal(@YES)); + expect(@([testConfig.language isEqualToEnum:SDLLanguageEnUs])).to(equal(@YES)); + expect(@([[testConfig.languagesSupported firstObject] isEqualToEnum:SDLLanguageEnUs])).to(equal(@YES)); expect(testConfig.shortAppName).to(beNil()); expect(testConfig.ttsName).to(beNil()); expect(testConfig.voiceRecognitionCommandNames).to(beNil()); expect(testConfig.resumeHash).to(beNil()); - expect(testConfig.securityManagers).to(beNil()); }); describe(@"after setting properties manually", ^{ __block NSString *someShortAppName = nil; __block SDLTTSChunk *someTTSChunk = nil; - __block NSArray *someTTSName = nil; - __block NSArray *someSynonyms = nil; + __block NSArray *someTTSName = nil; + __block NSArray *someSynonyms = nil; __block NSString *someResumeHashString = nil; beforeEach(^{ someTTSChunk = [[SDLTTSChunk alloc] init]; someTTSChunk.text = @"some tts name"; - someTTSChunk.type = [SDLSpeechCapabilities TEXT]; + someTTSChunk.type = SDLSpeechCapabilitiesText; someShortAppName = @"Short Name 2"; someTTSName = @[someTTSChunk]; someSynonyms = @[@"Test 1", @"Test 2"]; - testConfig.appType = [SDLAppHMIType MEDIA]; - testConfig.language = [SDLLanguage AR_SA]; - testConfig.languagesSupported = @[[SDLLanguage AR_SA], [SDLLanguage EN_AU], [SDLLanguage EN_US]]; + testConfig.appType = SDLAppHMITypeMedia; + testConfig.language = SDLLanguageArSa; + testConfig.languagesSupported = @[SDLLanguageArSa, SDLLanguageEnAu, SDLLanguageEnUs]; testConfig.shortAppName = someShortAppName; testConfig.ttsName = someTTSName; testConfig.voiceRecognitionCommandNames = someSynonyms; @@ -148,15 +145,14 @@ expect(@(testConfig.tcpDebugMode)).to(beTruthy()); expect(testConfig.tcpDebugIPAddress).to(match(someIPAddress)); expect(@(testConfig.tcpDebugPort)).to(equal(@(somePort))); - expect(@([testConfig.appType isEqualToEnum:[SDLAppHMIType MEDIA]])).to(equal(@YES)); + expect(@([testConfig.appType isEqualToEnum:SDLAppHMITypeMedia])).to(equal(@YES)); expect(@(testConfig.isMedia)).to(beTruthy()); - expect(@([testConfig.language isEqualToEnum:[SDLLanguage AR_SA]])).to(equal(@YES)); + expect(@([testConfig.language isEqualToEnum:SDLLanguageArSa])).to(equal(@YES)); expect(testConfig.languagesSupported).to(haveCount(@3)); expect(testConfig.shortAppName).to(match(someShortAppName)); expect(testConfig.ttsName).to(contain(someTTSChunk)); expect(testConfig.ttsName).to(haveCount(@1)); expect(testConfig.voiceRecognitionCommandNames).to(haveCount(@(someSynonyms.count))); - expect(testConfig.securityManagers).to(beNil()); }); }); }); diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleManagerSpec.m index 593e99941..17e42a750 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleManagerSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleManagerSpec.m @@ -12,6 +12,7 @@ #import "SDLLifecycleConfiguration.h" #import "SDLLockScreenConfiguration.h" #import "SDLLockScreenManager.h" +#import "SDLLogConfiguration.h" #import "SDLManagerDelegate.h" #import "SDLNotificationDispatcher.h" #import "SDLOnHashChange.h" @@ -19,11 +20,14 @@ #import "SDLPermissionManager.h" #import "SDLProxy.h" #import "SDLProxyFactory.h" +#import "SDLProtocol.h" #import "SDLRegisterAppInterface.h" #import "SDLRegisterAppInterfaceResponse.h" #import "SDLResult.h" #import "SDLShow.h" #import "SDLStateMachine.h" +#import "SDLStreamingMediaConfiguration.h" +#import "SDLStreamingMediaManager.h" #import "SDLTextAlignment.h" #import "SDLUnregisterAppInterface.h" #import "SDLUnregisterAppInterfaceResponse.h" @@ -56,43 +60,49 @@ + (void)configure:(Configuration *)configuration { QuickSpecBegin(SDLLifecycleManagerSpec) -xdescribe(@"a lifecycle manager", ^{ +describe(@"a lifecycle manager", ^{ __block SDLLifecycleManager *testManager = nil; __block SDLConfiguration *testConfig = nil; __block id managerDelegateMock = OCMProtocolMock(@protocol(SDLManagerDelegate)); + __block id protocolMock = OCMClassMock([SDLAbstractProtocol class]); __block id proxyBuilderClassMock = OCMStrictClassMock([SDLProxyFactory class]); __block id proxyMock = OCMClassMock([SDLProxy class]); __block id lockScreenManagerMock = OCMClassMock([SDLLockScreenManager class]); __block id fileManagerMock = OCMClassMock([SDLFileManager class]); __block id permissionManagerMock = OCMClassMock([SDLPermissionManager class]); + __block id streamingManagerMock = OCMClassMock([SDLStreamingMediaManager class]); beforeEach(^{ OCMStub([proxyBuilderClassMock buildSDLProxyWithListener:[OCMArg any]]).andReturn(proxyMock); + OCMStub([(SDLProxy*)proxyMock protocol]).andReturn(protocolMock); SDLLifecycleConfiguration *testLifecycleConfig = [SDLLifecycleConfiguration defaultConfigurationWithAppName:@"Test App" appId:@"Test Id"]; testLifecycleConfig.shortAppName = @"Short Name"; + testLifecycleConfig.appType = SDLAppHMITypeNavigation; - testConfig = [SDLConfiguration configurationWithLifecycle:testLifecycleConfig lockScreen:[SDLLockScreenConfiguration disabledConfiguration]]; + testConfig = [SDLConfiguration configurationWithLifecycle:testLifecycleConfig lockScreen:[SDLLockScreenConfiguration disabledConfiguration] logging:[SDLLogConfiguration defaultConfiguration] streamingMedia:[SDLStreamingMediaConfiguration insecureConfiguration]]; testManager = [[SDLLifecycleManager alloc] initWithConfiguration:testConfig delegate:managerDelegateMock]; testManager.lockScreenManager = lockScreenManagerMock; testManager.fileManager = fileManagerMock; testManager.permissionManager = permissionManagerMock; + testManager.streamManager = streamingManagerMock; }); - it(@"should initialize properties", ^{ - expect(testManager.configuration).to(equal(testConfig)); + xit(@"should initialize properties", ^{ + expect(testManager.configuration).toNot(equal(testConfig)); // This is copied expect(testManager.delegate).to(equal(managerDelegateMock)); // TODO: Broken on OCMock 3.3.1 & Swift 3 Quick / Nimble expect(testManager.lifecycleState).to(match(SDLLifecycleStateStopped)); expect(@(testManager.lastCorrelationId)).to(equal(@0)); expect(testManager.fileManager).toNot(beNil()); expect(testManager.permissionManager).toNot(beNil()); - expect(testManager.streamManager).to(beNil()); + expect(testManager.streamManager).toNot(beNil()); expect(testManager.proxy).to(beNil()); expect(testManager.registerResponse).to(beNil()); expect(testManager.lockScreenManager).toNot(beNil()); expect(testManager.notificationDispatcher).toNot(beNil()); expect(testManager.responseDispatcher).toNot(beNil()); + expect(testManager.streamManager).toNot(beNil()); expect(@([testManager conformsToProtocol:@protocol(SDLConnectionManagerType)])).to(equal(@YES)); }); @@ -100,7 +110,7 @@ + (void)configure:(Configuration *)configuration { describe(@"after receiving an HMI Status", ^{ __block SDLOnHMIStatus *testHMIStatus = nil; - __block SDLHMILevel *testHMILevel = nil; + __block SDLHMILevel testHMILevel = nil; beforeEach(^{ testHMIStatus = [[SDLOnHMIStatus alloc] init]; @@ -108,7 +118,7 @@ + (void)configure:(Configuration *)configuration { context(@"a non-none hmi level", ^{ beforeEach(^{ - testHMILevel = [SDLHMILevel NONE]; + testHMILevel = SDLHMILevelNone; testHMIStatus.hmiLevel = testHMILevel; [testManager.notificationDispatcher postRPCNotificationNotification:SDLDidChangeHMIStatusNotification notification:testHMIStatus]; @@ -121,7 +131,7 @@ + (void)configure:(Configuration *)configuration { context(@"a non-full, non-none hmi level", ^{ beforeEach(^{ - testHMILevel = [SDLHMILevel BACKGROUND]; + testHMILevel = SDLHMILevelBackground; testHMIStatus.hmiLevel = testHMILevel; [testManager.notificationDispatcher postRPCNotificationNotification:SDLDidChangeHMIStatusNotification notification:testHMIStatus]; @@ -134,7 +144,7 @@ + (void)configure:(Configuration *)configuration { context(@"a full hmi level", ^{ beforeEach(^{ - testHMILevel = [SDLHMILevel FULL]; + testHMILevel = SDLHMILevelFull; testHMIStatus.hmiLevel = testHMILevel; [testManager.notificationDispatcher postRPCNotificationNotification:SDLDidChangeHMIStatusNotification notification:testHMIStatus]; @@ -227,17 +237,20 @@ + (void)configure:(Configuration *)configuration { OCMStub([(SDLLockScreenManager *)lockScreenManagerMock start]); OCMStub([fileManagerMock startWithCompletionHandler:([OCMArg invokeBlockWithArgs:@(YES), fileManagerStartError, nil])]); OCMStub([permissionManagerMock startWithCompletionHandler:([OCMArg invokeBlockWithArgs:@(YES), permissionManagerStartError, nil])]); + OCMStub([streamingManagerMock startWithProtocol:protocolMock]); - // Send an RAI response to move the lifecycle forward + // Send an RAI response & make sure we have an HMI status to move the lifecycle forward + testManager.hmiLevel = SDLHMILevelFull; [testManager.lifecycleStateMachine transitionToState:SDLLifecycleStateRegistered]; [NSThread sleepForTimeInterval:0.3]; }); it(@"should eventually reach the ready state", ^{ - expect(testManager.lifecycleState).toEventually(match(SDLLifecycleStateReady)); + expect(testManager.lifecycleState).toEventually(equal(SDLLifecycleStateReady)); OCMVerify([(SDLLockScreenManager *)lockScreenManagerMock start]); OCMVerify([fileManagerMock startWithCompletionHandler:[OCMArg any]]); OCMVerify([permissionManagerMock startWithCompletionHandler:[OCMArg any]]); + OCMVerify([streamingManagerMock startWithProtocol:[OCMArg any]]); }); itBehavesLike(@"unable to send an RPC", ^{ return @{ @"manager": testManager }; }); @@ -268,7 +281,7 @@ + (void)configure:(Configuration *)configuration { context(@"before register response is a success", ^{ it(@"ready handler should not be called yet", ^{ SDLRegisterAppInterfaceResponse *response = [[SDLRegisterAppInterfaceResponse alloc] init]; - response.resultCode = [SDLResult SUCCESS]; + response.resultCode = SDLResultSuccess; testManager.registerResponse = response; [testManager.lifecycleStateMachine setToState:SDLLifecycleStateSettingUpHMI fromOldState:nil callEnterTransition:YES]; @@ -281,22 +294,23 @@ + (void)configure:(Configuration *)configuration { context(@"assume hmi status is nil", ^{ it(@"mock notification and ensure state changes to ready", ^{ __block SDLOnHMIStatus *testHMIStatus = nil; - __block SDLHMILevel *testHMILevel = nil; + __block SDLHMILevel testHMILevel = nil; testHMIStatus = [[SDLOnHMIStatus alloc] init]; SDLRegisterAppInterfaceResponse *response = [[SDLRegisterAppInterfaceResponse alloc] init]; - response.resultCode = [SDLResult SUCCESS]; + response.resultCode = SDLResultSuccess; testManager.registerResponse = response; [testManager.lifecycleStateMachine setToState:SDLLifecycleStateSettingUpHMI fromOldState:nil callEnterTransition:YES]; - testHMILevel = [SDLHMILevel FULL]; + testHMILevel = SDLHMILevelFull; testHMIStatus.hmiLevel = testHMILevel; [testManager.notificationDispatcher postRPCNotificationNotification:SDLDidChangeHMIStatusNotification notification:testHMIStatus]; - - expect(@(readyHandlerSuccess)).to(equal(@YES)); - expect(readyHandlerError).toNot(beNil()); + + expect(testManager.lifecycleState).toEventually(equal(SDLLifecycleStateReady)); + expect(@(readyHandlerSuccess)).toEventually(equal(@YES)); + expect(readyHandlerError).toEventually(beNil()); }); }); }); @@ -305,7 +319,7 @@ + (void)configure:(Configuration *)configuration { context(@"when the register response is a success", ^{ it(@"should call the ready handler with success", ^{ SDLRegisterAppInterfaceResponse *response = [[SDLRegisterAppInterfaceResponse alloc] init]; - response.resultCode = [SDLResult SUCCESS]; + response.resultCode = SDLResultSuccess; testManager.registerResponse = response; [testManager.lifecycleStateMachine setToState:SDLLifecycleStateReady fromOldState:nil callEnterTransition:YES]; @@ -318,7 +332,7 @@ + (void)configure:(Configuration *)configuration { context(@"when the register response is a warning", ^{ it(@"should call the ready handler with success but error", ^{ SDLRegisterAppInterfaceResponse *response = [[SDLRegisterAppInterfaceResponse alloc] init]; - response.resultCode = [SDLResult WARNINGS]; + response.resultCode = SDLResultWarnings; response.info = @"some info"; testManager.registerResponse = response; @@ -326,7 +340,7 @@ + (void)configure:(Configuration *)configuration { expect(@(readyHandlerSuccess)).to(equal(@YES)); expect(readyHandlerError).toNot(beNil()); - expect(@(readyHandlerError.code)).to(equal(@(SDLManagerErrorRegistrationFailed))); + expect(@(readyHandlerError.code)).to(equal(@(SDLManagerErrorRegistrationSuccessWithWarning))); expect(readyHandlerError.userInfo[NSLocalizedFailureReasonErrorKey]).to(match(response.info)); }); }); @@ -344,12 +358,6 @@ + (void)configure:(Configuration *)configuration { OCMVerify([proxyMock sendRPC:[OCMArg isKindOfClass:[SDLShow class]]]); }); - it(@"cannot send a nil RPC", ^{ - SDLShow *testShow = nil; - - expectAction(^{ [testManager sendRequest:testShow]; }).to(raiseException().named(NSInternalInconsistencyException)); - }); - describe(@"stopping the manager", ^{ beforeEach(^{ [testManager stop]; @@ -379,8 +387,8 @@ + (void)configure:(Configuration *)configuration { describe(@"receiving an HMI level change", ^{ __block SDLOnHMIStatus *testHMIStatus = nil; - __block SDLHMILevel *testHMILevel = nil; - __block SDLHMILevel *oldHMILevel = nil; + __block SDLHMILevel testHMILevel = nil; + __block SDLHMILevel oldHMILevel = nil; beforeEach(^{ oldHMILevel = testManager.hmiLevel; @@ -389,7 +397,7 @@ + (void)configure:(Configuration *)configuration { context(@"a full hmi level", ^{ beforeEach(^{ - testHMILevel = [SDLHMILevel FULL]; + testHMILevel = SDLHMILevelFull; testHMIStatus.hmiLevel = testHMILevel; [testManager.notificationDispatcher postRPCNotificationNotification:SDLDidChangeHMIStatusNotification notification:testHMIStatus]; @@ -404,7 +412,63 @@ + (void)configure:(Configuration *)configuration { }); }); }); - }); + + describe(@"receiving an audio state change", ^{ + __block SDLOnHMIStatus *testHMIStatus = nil; + __block SDLAudioStreamingState testAudioStreamingState = nil; + __block SDLAudioStreamingState oldAudioStreamingState = nil; + + beforeEach(^{ + oldAudioStreamingState = testManager.audioStreamingState; + testHMIStatus = [[SDLOnHMIStatus alloc] init]; + }); + + context(@"a not audible audio state", ^{ + beforeEach(^{ + testAudioStreamingState = SDLAudioStreamingStateNotAudible; + testHMIStatus.audioStreamingState = testAudioStreamingState; + + [testManager.notificationDispatcher postRPCNotificationNotification:SDLDidChangeHMIStatusNotification notification:testHMIStatus]; + }); + + it(@"should set the audio state", ^{ + expect(testManager.audioStreamingState).toEventually(equal(testAudioStreamingState)); + }); + + it(@"should call the delegate", ^{ + OCMVerify([managerDelegateMock audioStreamingState:oldAudioStreamingState didChangeToState:testAudioStreamingState]); + }); + }); + }); + + describe(@"receiving a system context change", ^{ + __block SDLOnHMIStatus *testHMIStatus = nil; + __block SDLSystemContext testSystemContext = nil; + __block SDLSystemContext oldSystemContext = nil; + + beforeEach(^{ + oldSystemContext = testManager.systemContext; + testHMIStatus = [[SDLOnHMIStatus alloc] init]; + }); + + context(@"a alert system context state", ^{ + beforeEach(^{ + testSystemContext = SDLSystemContextAlert; + testHMIStatus.systemContext = testSystemContext; + + [testManager.notificationDispatcher postRPCNotificationNotification:SDLDidChangeHMIStatusNotification notification:testHMIStatus]; + }); + + it(@"should set the system context", ^{ + expect(testManager.systemContext).toEventually(equal(testSystemContext)); + }); + + it(@"should call the delegate", ^{ + OCMVerify([managerDelegateMock systemContext:oldSystemContext didChangeToContext:testSystemContext]); + }); + }); + }); + }); }); }); diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLListFilesOperationSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLListFilesOperationSpec.m index 472a590e0..bb45a0374 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLListFilesOperationSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLListFilesOperationSpec.m @@ -45,11 +45,11 @@ context(@"when a good response comes back", ^{ __block SDLListFilesResponse *goodResponse = nil; __block NSNumber *responseSpaceAvailable = nil; - __block NSMutableArray *responseFileNames = nil; + __block NSArray *responseFileNames = nil; beforeEach(^{ responseSpaceAvailable = @(11212512); - responseFileNames = [NSMutableArray arrayWithArray:@[@"test1", @"test2"]]; + responseFileNames = @[@"test1", @"test2"]; goodResponse = [[SDLListFilesResponse alloc] init]; goodResponse.success = @YES; @@ -76,14 +76,14 @@ context(@"when a bad response comes back", ^{ __block SDLListFilesResponse *badResponse = nil; __block NSNumber *responseSpaceAvailable = nil; - __block NSMutableArray *responseFileNames = nil; + __block NSArray *responseFileNames = nil; __block NSString *responseErrorDescription = nil; __block NSString *responseErrorReason = nil; beforeEach(^{ responseSpaceAvailable = @(0); - responseFileNames = [NSMutableArray arrayWithArray:@[]]; + responseFileNames = @[]; responseErrorDescription = @"some description"; responseErrorReason = @"some reason"; diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLLockScreenManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLLockScreenManagerSpec.m index 0a31d63a0..3889c37d1 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLLockScreenManagerSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLLockScreenManagerSpec.m @@ -49,7 +49,7 @@ beforeEach(^{ testRequiredStatus = [[SDLOnLockScreenStatus alloc] init]; - testRequiredStatus.lockScreenStatus = [SDLLockScreenStatus REQUIRED]; + testRequiredStatus.lockScreenStatus = SDLLockScreenStatusRequired; [testNotificationDispatcher postNotificationName:SDLDidChangeLockScreenStatusNotification infoObject:testRequiredStatus]; }); @@ -87,7 +87,7 @@ beforeEach(^{ testRequiredStatus = [[SDLOnLockScreenStatus alloc] init]; - testRequiredStatus.lockScreenStatus = [SDLLockScreenStatus REQUIRED]; + testRequiredStatus.lockScreenStatus = SDLLockScreenStatusRequired; SDLRPCNotificationNotification *testLockStatusNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidChangeLockScreenStatusNotification object:nil rpcNotification:testRequiredStatus]; [[NSNotificationCenter defaultCenter] postNotification:testLockStatusNotification]; @@ -130,7 +130,7 @@ beforeEach(^{ testOffStatus = [[SDLOnLockScreenStatus alloc] init]; - testOffStatus.lockScreenStatus = [SDLLockScreenStatus OFF]; + testOffStatus.lockScreenStatus = SDLLockScreenStatusOff; SDLRPCNotificationNotification *testLockStatusNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidChangeLockScreenStatusNotification object:nil rpcNotification:testOffStatus]; [[NSNotificationCenter defaultCenter] postNotification:testLockStatusNotification]; diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLNotificationDispatcherSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLNotificationDispatcherSpec.m index 7c39d7b46..fa53d0de8 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLNotificationDispatcherSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLNotificationDispatcherSpec.m @@ -25,6 +25,7 @@ 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()); @@ -37,6 +38,7 @@ 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()); @@ -68,6 +70,7 @@ 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()); diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLPermissionsManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLPermissionsManagerSpec.m index 27f99df7b..dbf5e940f 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLPermissionsManagerSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLPermissionsManagerSpec.m @@ -55,18 +55,18 @@ // Permission states testHMIPermissionsAllAllowed = [[SDLHMIPermissions alloc] init]; - testHMIPermissionsAllAllowed.allowed = [NSMutableArray arrayWithArray:@[[SDLHMILevel BACKGROUND], [SDLHMILevel FULL], [SDLHMILevel LIMITED], [SDLHMILevel NONE]]]; + testHMIPermissionsAllAllowed.allowed = @[SDLHMILevelBackground, SDLHMILevelFull, SDLHMILevelLimited, SDLHMILevelNone]; testHMIPermissionsAllDisallowed = [[SDLHMIPermissions alloc] init]; - testHMIPermissionsAllDisallowed.userDisallowed = [NSMutableArray arrayWithArray:@[[SDLHMILevel BACKGROUND], [SDLHMILevel FULL], [SDLHMILevel LIMITED], [SDLHMILevel NONE]]]; + testHMIPermissionsAllDisallowed.userDisallowed = @[SDLHMILevelBackground, SDLHMILevelFull, SDLHMILevelLimited, SDLHMILevelNone]; testHMIPermissionsFullLimitedAllowed = [[SDLHMIPermissions alloc] init]; - testHMIPermissionsFullLimitedAllowed.allowed = [NSMutableArray arrayWithArray:@[[SDLHMILevel FULL], [SDLHMILevel LIMITED]]]; - testHMIPermissionsFullLimitedAllowed.userDisallowed = [NSMutableArray arrayWithArray:@[[SDLHMILevel BACKGROUND], [SDLHMILevel NONE]]]; + testHMIPermissionsFullLimitedAllowed.allowed = @[SDLHMILevelFull, SDLHMILevelLimited]; + testHMIPermissionsFullLimitedAllowed.userDisallowed = @[SDLHMILevelBackground, SDLHMILevelNone]; testHMIPermissionsFullLimitedBackgroundAllowed = [[SDLHMIPermissions alloc] init]; - testHMIPermissionsFullLimitedBackgroundAllowed.allowed = [NSMutableArray arrayWithArray:@[[SDLHMILevel FULL], [SDLHMILevel LIMITED], [SDLHMILevel BACKGROUND]]]; - testHMIPermissionsFullLimitedBackgroundAllowed.userDisallowed = [NSMutableArray arrayWithArray:@[[SDLHMILevel NONE]]]; + testHMIPermissionsFullLimitedBackgroundAllowed.allowed = @[SDLHMILevelFull, SDLHMILevelLimited, SDLHMILevelBackground]; + testHMIPermissionsFullLimitedBackgroundAllowed.userDisallowed = @[SDLHMILevelNone]; // Assemble Permissions SDLParameterPermissions *testParameterPermissions = [[SDLParameterPermissions alloc] init]; @@ -93,17 +93,17 @@ // Create OnHMIStatus objects testLimitedHMIStatus = [[SDLOnHMIStatus alloc] init]; - testLimitedHMIStatus.hmiLevel = [SDLHMILevel LIMITED]; + testLimitedHMIStatus.hmiLevel = SDLHMILevelLimited; testBackgroundHMIStatus = [[SDLOnHMIStatus alloc] init]; - testBackgroundHMIStatus.hmiLevel = [SDLHMILevel BACKGROUND]; + testBackgroundHMIStatus.hmiLevel = SDLHMILevelBackground; testNoneHMIStatus = [[SDLOnHMIStatus alloc] init]; - testNoneHMIStatus.hmiLevel = [SDLHMILevel NONE]; + testNoneHMIStatus.hmiLevel = SDLHMILevelNone; // Create OnPermissionsChange object testPermissionsChange = [[SDLOnPermissionsChange alloc] init]; - testPermissionsChange.permissionItem = [NSMutableArray arrayWithArray:@[testPermissionAllAllowed, testPermissionAllDisallowed, testPermissionFullLimitedAllowed, testPermissionFullLimitedBackgroundAllowed]]; + testPermissionsChange.permissionItem = @[testPermissionAllAllowed, testPermissionAllDisallowed, testPermissionFullLimitedAllowed, testPermissionFullLimitedBackgroundAllowed]; // Permission Notifications testPermissionsNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidChangePermissionsNotification object:nil rpcNotification:testPermissionsChange]; @@ -391,8 +391,8 @@ // Create a permission update disallowing our current HMI level for the observed permission SDLParameterPermissions *testParameterPermissions = [[SDLParameterPermissions alloc] init]; SDLHMIPermissions *testHMIPermissionsUpdated = [[SDLHMIPermissions alloc] init]; - testHMIPermissionsUpdated.allowed = [NSMutableArray arrayWithArray:@[[SDLHMILevel BACKGROUND], [SDLHMILevel FULL]]]; - testHMIPermissionsUpdated.userDisallowed = [NSMutableArray arrayWithArray:@[[SDLHMILevel LIMITED], [SDLHMILevel NONE]]]; + testHMIPermissionsUpdated.allowed = @[SDLHMILevelBackground, SDLHMILevelFull]; + testHMIPermissionsUpdated.userDisallowed = @[SDLHMILevelLimited, SDLHMILevelNone]; testPermissionUpdated = [[SDLPermissionItem alloc] init]; testPermissionUpdated.rpcName = testRPCNameAllAllowed; @@ -400,10 +400,10 @@ testPermissionUpdated.parameterPermissions = testParameterPermissions; testPermissionChangeUpdate = [[SDLOnPermissionsChange alloc] init]; - testPermissionChangeUpdate.permissionItem = [NSMutableArray arrayWithObject:testPermissionUpdated]; + testPermissionChangeUpdate.permissionItem = [NSArray arrayWithObject:testPermissionUpdated]; // Send the permission update - NSNotification *updatedNotification = [NSNotification notificationWithName:SDLDidChangePermissionsNotification object:nil userInfo:@{SDLNotificationUserInfoObject: testPermissionChangeUpdate}]; + SDLRPCNotificationNotification *updatedNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidChangePermissionsNotification object:nil rpcNotification:testPermissionChangeUpdate]; [[NSNotificationCenter defaultCenter] postNotification:updatedNotification]; }); @@ -459,8 +459,8 @@ // Create a permission update allowing our current HMI level for the observed permission SDLParameterPermissions *testParameterPermissions = [[SDLParameterPermissions alloc] init]; SDLHMIPermissions *testHMIPermissionsUpdated = [[SDLHMIPermissions alloc] init]; - testHMIPermissionsUpdated.allowed = [NSMutableArray arrayWithArray:@[[SDLHMILevel LIMITED], [SDLHMILevel NONE], [SDLHMILevel BACKGROUND], [SDLHMILevel FULL]]]; - testHMIPermissionsUpdated.userDisallowed = [NSMutableArray arrayWithArray:@[]]; + testHMIPermissionsUpdated.allowed = @[SDLHMILevelLimited, SDLHMILevelNone, SDLHMILevelBackground, SDLHMILevelFull]; + testHMIPermissionsUpdated.userDisallowed = @[]; testPermissionUpdated = [[SDLPermissionItem alloc] init]; testPermissionUpdated.rpcName = testRPCNameAllDisallowed; @@ -468,10 +468,10 @@ testPermissionUpdated.parameterPermissions = testParameterPermissions; testPermissionChangeUpdate = [[SDLOnPermissionsChange alloc] init]; - testPermissionChangeUpdate.permissionItem = [NSMutableArray arrayWithObject:testPermissionUpdated]; + testPermissionChangeUpdate.permissionItem = [NSArray arrayWithObject:testPermissionUpdated]; // Send the permission update - NSNotification *updatedNotification = [NSNotification notificationWithName:SDLDidChangePermissionsNotification object:nil userInfo:@{SDLNotificationUserInfoObject: testPermissionChangeUpdate}]; + SDLRPCNotificationNotification *updatedNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidChangePermissionsNotification object:nil rpcNotification:testPermissionChangeUpdate]; [[NSNotificationCenter defaultCenter] postNotification:updatedNotification]; }); @@ -502,8 +502,8 @@ // Create a permission update disallowing our current HMI level for the observed permission SDLParameterPermissions *testParameterPermissions = [[SDLParameterPermissions alloc] init]; SDLHMIPermissions *testHMIPermissionsUpdated = [[SDLHMIPermissions alloc] init]; - testHMIPermissionsUpdated.allowed = [NSMutableArray arrayWithArray:@[]]; - testHMIPermissionsUpdated.userDisallowed = [NSMutableArray arrayWithArray:@[[SDLHMILevel BACKGROUND], [SDLHMILevel FULL], [SDLHMILevel LIMITED], [SDLHMILevel NONE]]]; + testHMIPermissionsUpdated.allowed = @[]; + testHMIPermissionsUpdated.userDisallowed = @[SDLHMILevelBackground, SDLHMILevelFull, SDLHMILevelLimited, SDLHMILevelNone]; testPermissionUpdated = [[SDLPermissionItem alloc] init]; testPermissionUpdated.rpcName = testRPCNameAllAllowed; @@ -511,10 +511,10 @@ testPermissionUpdated.parameterPermissions = testParameterPermissions; testPermissionChangeUpdate = [[SDLOnPermissionsChange alloc] init]; - testPermissionChangeUpdate.permissionItem = [NSMutableArray arrayWithObject:testPermissionUpdated]; + testPermissionChangeUpdate.permissionItem = [NSArray arrayWithObject:testPermissionUpdated]; // Send the permission update - NSNotification *updatedNotification = [NSNotification notificationWithName:SDLDidChangePermissionsNotification object:nil userInfo:@{SDLNotificationUserInfoObject: testPermissionChangeUpdate}]; + SDLRPCNotificationNotification *updatedNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidChangePermissionsNotification object:nil rpcNotification:testPermissionChangeUpdate]; [[NSNotificationCenter defaultCenter] postNotification:updatedNotification]; }); @@ -565,8 +565,8 @@ // Create a permission update disallowing our current HMI level for the observed permission SDLParameterPermissions *testParameterPermissions = [[SDLParameterPermissions alloc] init]; SDLHMIPermissions *testHMIPermissionsUpdated = [[SDLHMIPermissions alloc] init]; - testHMIPermissionsUpdated.allowed = [NSMutableArray arrayWithArray:@[]]; - testHMIPermissionsUpdated.userDisallowed = [NSMutableArray arrayWithArray:@[[SDLHMILevel BACKGROUND], [SDLHMILevel FULL], [SDLHMILevel LIMITED], [SDLHMILevel NONE]]]; + testHMIPermissionsUpdated.allowed = @[]; + testHMIPermissionsUpdated.userDisallowed = @[SDLHMILevelBackground, SDLHMILevelFull, SDLHMILevelLimited, SDLHMILevelNone]; testPermissionUpdated = [[SDLPermissionItem alloc] init]; testPermissionUpdated.rpcName = testRPCNameAllAllowed; @@ -574,10 +574,10 @@ testPermissionUpdated.parameterPermissions = testParameterPermissions; testPermissionChangeUpdate = [[SDLOnPermissionsChange alloc] init]; - testPermissionChangeUpdate.permissionItem = [NSMutableArray arrayWithObject:testPermissionUpdated]; + testPermissionChangeUpdate.permissionItem = [NSArray arrayWithObject:testPermissionUpdated]; // Send the permission update - NSNotification *updatedNotification = [NSNotification notificationWithName:SDLDidChangePermissionsNotification object:nil userInfo:@{SDLNotificationUserInfoObject: testPermissionChangeUpdate}]; + SDLRPCNotificationNotification *updatedNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidChangePermissionsNotification object:nil rpcNotification:testPermissionChangeUpdate]; [[NSNotificationCenter defaultCenter] postNotification:updatedNotification]; }); @@ -599,8 +599,8 @@ // Create a permission update disallowing our current HMI level for the observed permission SDLParameterPermissions *testParameterPermissions = [[SDLParameterPermissions alloc] init]; SDLHMIPermissions *testHMIPermissionsUpdated = [[SDLHMIPermissions alloc] init]; - testHMIPermissionsUpdated.allowed = [NSMutableArray arrayWithArray:@[[SDLHMILevel LIMITED], [SDLHMILevel BACKGROUND]]]; - testHMIPermissionsUpdated.userDisallowed = [NSMutableArray arrayWithArray:@[[SDLHMILevel FULL], [SDLHMILevel NONE]]]; + testHMIPermissionsUpdated.allowed = @[SDLHMILevelLimited, SDLHMILevelBackground]; + testHMIPermissionsUpdated.userDisallowed = @[SDLHMILevelFull, SDLHMILevelNone]; testPermissionUpdated = [[SDLPermissionItem alloc] init]; testPermissionUpdated.rpcName = testRPCNameAllAllowed; @@ -608,10 +608,10 @@ testPermissionUpdated.parameterPermissions = testParameterPermissions; testPermissionChangeUpdate = [[SDLOnPermissionsChange alloc] init]; - testPermissionChangeUpdate.permissionItem = [NSMutableArray arrayWithObject:testPermissionUpdated]; + testPermissionChangeUpdate.permissionItem = [NSArray arrayWithObject:testPermissionUpdated]; // Send the permission update - NSNotification *updatedNotification = [NSNotification notificationWithName:SDLDidChangePermissionsNotification object:nil userInfo:@{SDLNotificationUserInfoObject: testPermissionChangeUpdate}]; + SDLRPCNotificationNotification *updatedNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidChangePermissionsNotification object:nil rpcNotification:testPermissionChangeUpdate]; [[NSNotificationCenter defaultCenter] postNotification:updatedNotification]; }); diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLRAWH264PacketizerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLRAWH264PacketizerSpec.m new file mode 100644 index 000000000..e55ecc1de --- /dev/null +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLRAWH264PacketizerSpec.m @@ -0,0 +1,89 @@ +// +// SDLH264ByteStreamPacketizerSpec.m +// SmartDeviceLink-iOS +// +// Created by Sho Amano on 4/13/17. +// Copyright © 2017 Xevo Inc. All rights reserved. +// + +#import +#import +#import +#import "SDLRAWH264Packetizer.h" + +QuickSpecBegin(SDLRAWH264PacketizerSpec) + +describe(@"a H264 byte stream packetizer", ^{ + // sample NAL units (SPS, PPS, I-frame, P-frame) + const UInt8 spsData[] = {0x67, 0x42, 0xC0, 0x0A, 0xA6, 0x11, 0x11, 0xE8, 0x40, 0x00, 0x00, 0xFA, 0x40, 0x00, 0x3A, 0x98, 0x23, 0xC4, 0x89, 0x84, 0x60}; + const UInt8 ppsData[] = {0x68, 0xC8, 0x42, 0x0F, 0x13, 0x20}; + const UInt8 iframeData[] = {0x65, 0x88, 0x82, 0x07, 0x67, 0x39, 0x31, 0x40, 0x00, 0x5E, 0x0A, 0xFB, 0xEF, 0xAE, 0xBA, 0xEB, 0xAE, 0xBA, 0xEB, 0xC0}; + const UInt8 pframeData[] = {0x41, 0x9A, 0x1C, 0x0E, 0xCE, 0x71, 0xB0}; + + NSData *sps = [NSData dataWithBytes:spsData length:sizeof(spsData)]; + NSData *pps = [NSData dataWithBytes:ppsData length:sizeof(ppsData)]; + NSData *iframe = [NSData dataWithBytes:iframeData length:sizeof(iframeData)]; + NSData *pframe = [NSData dataWithBytes:pframeData length:sizeof(pframeData)]; + + __block SDLRAWH264Packetizer *packetizer = nil; + + beforeEach(^{ + packetizer = [[SDLRAWH264Packetizer alloc] init]; + }); + + describe(@"its output array", ^{ + it(@"always has one packet", ^{ + NSArray *nalUnits1 = @[sps, pps, iframe]; + NSArray *results = [packetizer createPackets:nalUnits1 presentationTimestamp:0.0]; + expect(@(results.count)).to(equal(@1)); + + NSArray *nalUnits2 = @[pframe]; + results = [packetizer createPackets:nalUnits2 presentationTimestamp:1.0/30]; + expect(@(results.count)).to(equal(@1)); + }); + }); + + describe(@"its output packet", ^{ + it(@"starts with a start code of 0x00 0x00 0x00 0x01", ^{ + const UInt8 startCode[] = {0x00, 0x00, 0x00, 0x01}; + + NSArray *nalUnits = @[iframe]; + NSArray *results = [packetizer createPackets:nalUnits presentationTimestamp:0.0]; + const UInt8 *p = results[0].bytes; + + int ret = memcmp(p, startCode, sizeof(startCode)); + expect(@(ret)).to(equal(@0)); + }); + + it(@"then duplicates original H.264 NAL unit", ^{ + NSData *nalUnit = iframe; + + NSArray *nalUnits = @[nalUnit]; + NSArray *results = [packetizer createPackets:nalUnits presentationTimestamp:0.0]; + const UInt8 *p = results[0].bytes; + + int ret = memcmp(p + 4, nalUnit.bytes, nalUnit.length); + expect(@(ret)).to(equal(@0)); + }); + + it(@"repeats for all given NAL units", ^{ + const UInt8 startCode[] = {0x00, 0x00, 0x00, 0x01}; + + NSArray *nalUnits = @[sps, pps, iframe]; + NSArray *results = [packetizer createPackets:nalUnits presentationTimestamp:0.0]; + const UInt8 *p = results[0].bytes; + + for (NSData *nalUnit in nalUnits) { + int ret = memcmp(p, startCode, sizeof(startCode)); + expect(@(ret)).to(equal(@0)); + p += sizeof(startCode); + + ret = memcmp(p, nalUnit.bytes, nalUnit.length); + expect(@(ret)).to(equal(@0)); + p += nalUnit.length; + } + }); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLRTPH264PacketizerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLRTPH264PacketizerSpec.m new file mode 100644 index 000000000..a82e2ef65 --- /dev/null +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLRTPH264PacketizerSpec.m @@ -0,0 +1,401 @@ +// +// SDLRTPH264PacketizerSpec.m +// SmartDeviceLink-iOS +// +// Created by Sho Amano on 4/13/17. +// Copyright © 2017 Xevo Inc. All rights reserved. +// + +#import +#import +#import +#import "SDLRTPH264Packetizer.h" + +// 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]; +} + +// read 4-byte in network byte order and convert it to a UInt32 +static inline UInt32 sdl_readLongInNetworkByteOrder(const UInt8 *buffer) { + return (buffer[0] << 24) | (buffer[1] << 16) | (buffer[2] << 8) | buffer[3]; +} + +QuickSpecBegin(SDLRTPH264PacketizerSpec) + +describe(@"a RTP H264 packetizer", ^{ + // sample NAL units (SPS, PPS, I-frame, P-frame) + const UInt8 spsData[] = {0x67, 0x42, 0xC0, 0x0A, 0xA6, 0x11, 0x11, 0xE8, 0x40, 0x00, 0x00, 0xFA, 0x40, 0x00, 0x3A, 0x98, 0x23, 0xC4, 0x89, 0x84, 0x60}; + const UInt8 ppsData[] = {0x68, 0xC8, 0x42, 0x0F, 0x13, 0x20}; + const UInt8 iframeData[] = {0x65, 0x88, 0x82, 0x07, 0x67, 0x39, 0x31, 0x40, 0x00, 0x5E, 0x0A, 0xFB, 0xEF, 0xAE, 0xBA, 0xEB, 0xAE, 0xBA, 0xEB, 0xC0}; + const UInt8 pframeData[] = {0x41, 0x9A, 0x1C, 0x0E, 0xCE, 0x71, 0xB0}; + + NSData *sps = [NSData dataWithBytes:spsData length:sizeof(spsData)]; + NSData *pps = [NSData dataWithBytes:ppsData length:sizeof(ppsData)]; + NSData *iframe = [NSData dataWithBytes:iframeData length:sizeof(iframeData)]; + NSData *pframe = [NSData dataWithBytes:pframeData length:sizeof(pframeData)]; + + const NSUInteger FrameLengthLen = 2; + const NSUInteger MaxRTPPacketSize = 65535; + const NSUInteger RTPHeaderLen = 12; + const UInt8 DefaultPayloadType = 96; + const UInt8 FragmentationUnitVersionA = 0x1C; + const NSUInteger ClockRate = 90000; + + __block SDLRTPH264Packetizer *packetizer = nil; + + beforeEach(^{ + packetizer = [[SDLRTPH264Packetizer alloc] init]; + }); + + describe(@"its output array", ^{ + it(@"has same number or more elements compared to the input NAL units", ^{ + NSArray *nalUnits = @[sps, pps, iframe]; + NSArray *results = [packetizer createPackets:nalUnits presentationTimestamp:0.0]; + expect(@(results.count)).to(beGreaterThanOrEqualTo(@(nalUnits.count))); + }); + }); + + describe(@"First two bytes of its output", ^{ + it(@"indicates the length of a RTP packet", ^{ + NSArray *nalUnits = @[iframe]; + NSArray *results = [packetizer createPackets:nalUnits presentationTimestamp:0.0]; + const UInt8 *header = results[0].bytes; + UInt16 length = sdl_readShortInNetworkByteOrder(header); + expect(@((length))).to(equal(@(results[0].length - FrameLengthLen))); + }); + }); + + describe(@"header of the RTP packet", ^{ + __block const UInt8 *header; + + beforeEach(^{ + NSArray *nalUnits = @[iframe]; + NSArray *results = [packetizer createPackets:nalUnits presentationTimestamp:0.0]; + header = results[0].bytes; + }); + + it(@"indicates version 2", ^{ + expect(@((header[FrameLengthLen] >> 6) & 3)).to(equal(@2)); + }); + it(@"indicates no padding", ^{ + expect(@((header[FrameLengthLen] >> 5) & 1)).to(equal(@0)); + }); + it(@"indicates no extension", ^{ + expect(@((header[FrameLengthLen] >> 4) & 1)).to(equal(@0)); + }); + it(@"indicates no CSRC", ^{ + expect(@(header[FrameLengthLen] & 0xF)).to(equal(@0)); + }); + }); + + describe(@"the marker bit in the header of the RTP packet", ^{ + context(@"when there is only one NAL unit input", ^{ + it(@"is always set", ^{ + NSArray *nalUnits1 = @[iframe]; + NSArray *results = [packetizer createPackets:nalUnits1 presentationTimestamp:0.0]; + const UInt8 *header = results[0].bytes; + expect(@((header[FrameLengthLen+1] >> 7) & 1)).to(equal(@1)); + + NSArray *nalUnits2 = @[pframe]; + results = [packetizer createPackets:nalUnits2 presentationTimestamp:1.0/30]; + header = results[0].bytes; + expect(@((header[FrameLengthLen+1] >> 7) & 1)).to(equal(@1)); + }); + }); + + context(@"when multiple NAL units are input for an access unit", ^{ + it(@"is set only for the last packet", ^{ + // 3 NAL units for a frame + NSArray *nalUnits1 = @[sps, pps, iframe]; + NSArray *results = [packetizer createPackets:nalUnits1 presentationTimestamp:0.0]; + + [results enumerateObjectsUsingBlock:^(NSData *packet, NSUInteger index, BOOL *stop) { + const UInt8 *header = packet.bytes; + if (index == results.count - 1) { + expect(@((header[FrameLengthLen+1] >> 7) & 1)).to(equal(@1)); + } else { + expect(@((header[FrameLengthLen+1] >> 7) & 1)).to(equal(@0)); + } + }]; + + // Only 1 NAL unit for the next frame + NSArray *nalUnits2 = @[pframe]; + results = [packetizer createPackets:nalUnits2 presentationTimestamp:1.0/30]; + const UInt8 *header = results[0].bytes; + expect(@((header[FrameLengthLen+1] >> 7) & 1)).to(equal(@1)); + }); + }); + }); + + describe(@"the payload type in the header of the RTP packet", ^{ + context(@"when it is not configured", ^{ + it(@"equals to 96", ^{ + NSArray *nalUnits1 = @[iframe]; + NSArray *results = [packetizer createPackets:nalUnits1 presentationTimestamp:0.0]; + const UInt8 *header = results[0].bytes; + expect(@(header[FrameLengthLen+1] & 0x7F)).to(equal(@(DefaultPayloadType))); + }); + }); + + context(@"when it is explicitly configured", ^{ + it(@"is same as the given number if the number is between 0 and 127", ^{ + UInt8 payloadType = 100; + packetizer.payloadType = payloadType; + + NSArray *nalUnits1 = @[iframe]; + NSArray *results = [packetizer createPackets:nalUnits1 presentationTimestamp:0.0]; + const UInt8 *header = results[0].bytes; + expect(@(header[FrameLengthLen+1] & 0x7F)).to(equal(@(payloadType))); + }); + + it(@"equals to 96 if the given number is out of range", ^{ + packetizer.payloadType = 200; + + NSArray *nalUnits1 = @[iframe]; + NSArray *results = [packetizer createPackets:nalUnits1 presentationTimestamp:0.0]; + const UInt8 *header = results[0].bytes; + expect(@(header[FrameLengthLen+1] & 0x7F)).to(equal(@(DefaultPayloadType))); + }); + }); + }); + + describe(@"the sequence number in the header of the RTP packet", ^{ + it(@"has an initial value of random number", ^{ + // no way to test a random number + }); + + it(@"increments by one for the next packet", ^{ + NSArray *nalUnits1 = @[iframe]; + NSArray *results = [packetizer createPackets:nalUnits1 presentationTimestamp:0.0]; + const UInt8 *header = results[0].bytes; + UInt16 sequenceNumber = sdl_readShortInNetworkByteOrder(&header[FrameLengthLen+2]); + + NSArray *nalUnits2 = @[pframe]; + results = [packetizer createPackets:nalUnits2 presentationTimestamp:1.0/30]; + header = results[0].bytes; + + sequenceNumber++; + expect(@(sequenceNumber)).to(equal(@(sdl_readShortInNetworkByteOrder(&header[FrameLengthLen+2])))); + }); + + it(@"wraps around after reaching 65535", ^{ + NSArray *nalUnits = @[iframe]; + UInt16 prevSequenceNumber = 0; + + for (NSUInteger i = 0; i <= 65536; i++) { + NSArray *results = [packetizer createPackets:nalUnits presentationTimestamp:i/30.0]; + const UInt8 *header = results[0].bytes; + UInt16 sequenceNumber = sdl_readShortInNetworkByteOrder(&header[FrameLengthLen+2]); + + if (prevSequenceNumber == 65535) { + expect(@(sequenceNumber)).to(equal(@(0))); + break; // end testing + } else { + prevSequenceNumber = sequenceNumber; + } + } + }); + }); + + describe(@"the timestamp field in the header of the RTP packet", ^{ + it(@"has an initial value of random number", ^{ + // no way to test a random number + }); + + it(@"then increases in 90 kHz clock value", ^{ + NSArray *nalUnits = @[iframe]; + UInt32 initialPresentationTimestamp = 0; + + for (NSUInteger i = 0; i <= 100; i++) { + // the timestamp increases by 1/30 seconds + NSArray *results = [packetizer createPackets:nalUnits presentationTimestamp:i/30.0]; + const UInt8 *header = results[0].bytes; + UInt32 presentationTimestamp = sdl_readLongInNetworkByteOrder(&header[FrameLengthLen+4]); + + if (i == 0) { + initialPresentationTimestamp = presentationTimestamp; + } else { + UInt32 expectedPresentationTimestamp = initialPresentationTimestamp + i / 30.0 * ClockRate; + // accept calculation error (+-1) + expect(@(presentationTimestamp)).to(beGreaterThanOrEqualTo(@(expectedPresentationTimestamp - 1))); + expect(@(presentationTimestamp)).to(beLessThanOrEqualTo(@(expectedPresentationTimestamp + 1))); + } + } + }); + }); + + 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 *nalUnits1 = @[iframe]; + NSArray *results = [packetizer createPackets:nalUnits1 presentationTimestamp:0.0]; + const UInt8 *header = results[0].bytes; + UInt32 ssrc = sdl_readLongInNetworkByteOrder(&header[FrameLengthLen+8]); + + NSArray *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 *nalUnits1 = @[iframe]; + NSArray *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 *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))); + }); + }); + }); + + describe(@"the payload of its output packet", ^{ + NSData *(^createFakeNALUnit)(UInt8, NSUInteger) = ^NSData *(UInt8 firstByte, NSUInteger length) { + UInt8 *data = malloc(length); + data[0] = firstByte; + for (NSUInteger i = 1; i < length; i++) { + data[i] = i % 256; + } + return [NSData dataWithBytes:data length:length]; + }; + + UInt8 firstByte; + [iframe getBytes:&firstByte length:1]; + + it(@"is not fragmented if input NAL unit size is less than 65524 bytes (65536-12)", ^{ + NSData *fakeNALUnit = createFakeNALUnit(firstByte, MaxRTPPacketSize - RTPHeaderLen); + NSArray *nalUnits = @[fakeNALUnit]; + NSArray *results = [packetizer createPackets:nalUnits presentationTimestamp:0.0]; + + // we should get only one packet + expect(@(results.count)).to(equal(@(1))); + }); + + it(@"is fragmented if input NAL unit size equals to or is greater than 65524 bytes", ^{ + NSData *fakeNALUnit = createFakeNALUnit(firstByte, MaxRTPPacketSize - RTPHeaderLen + 1); + NSArray *nalUnits = @[fakeNALUnit]; + NSArray *results = [packetizer createPackets:nalUnits presentationTimestamp:0.0]; + + // the NAL unit should be fragmented into two + expect(@(results.count)).to(equal(@(2))); + }); + + context(@"when payload is not fragmented", ^{ + it(@"is duplicate of input NAL unit", ^{ + NSArray *nalUnits = @[sps, pps, iframe]; + NSArray *results = [packetizer createPackets:nalUnits presentationTimestamp:0.0]; + + NSUInteger nalUnitIndex = 0; + for (NSData *packet in results) { + const UInt8 *p = packet.bytes; + int ret = memcmp(p + FrameLengthLen + RTPHeaderLen, + nalUnits[nalUnitIndex].bytes, + nalUnits[nalUnitIndex].length); + expect(@(ret)).to(equal(@0)); + nalUnitIndex++; + } + }); + }); + + context(@"when payload is fragmented", ^{ + __block NSData *fakeNALUnit; + __block NSArray *results; + + beforeEach(^{ + fakeNALUnit = createFakeNALUnit(firstByte, MaxRTPPacketSize - RTPHeaderLen + 1); + NSArray *nalUnits = @[fakeNALUnit]; + results = [packetizer createPackets:nalUnits presentationTimestamp:0.0]; + }); + + describe(@"its first byte", ^{ + it(@"has F bit and NRI field which are same as those of the input NAL unit", ^{ + for (NSData *packet in results) { + const UInt8 *header = packet.bytes; + expect(@((header[FrameLengthLen+RTPHeaderLen] >> 5) & 3)).to(equal(@((firstByte >> 5) & 3))); + } + }); + + it(@"indicates a Fragmentation Unit Version A type (0x1C)", ^{ + for (NSData *packet in results) { + const UInt8 *header = packet.bytes; + expect(@(header[FrameLengthLen+RTPHeaderLen] & 0x1F)).to(equal(@(FragmentationUnitVersionA))); + } + }); + }); + + describe(@"its second byte", ^{ + it(@"has a start bit which is set only at the beginning of fragment group", ^{ + BOOL shouldBeFirstFragment = YES; + + for (NSUInteger i = 0; i < results.count; i++) { + const UInt8 *header = results[i].bytes; + UInt8 startBit = (header[FrameLengthLen+RTPHeaderLen+1] >> 7) & 1; + expect(@(startBit)).to(equal(@(shouldBeFirstFragment ? 1 : 0))); + shouldBeFirstFragment = NO; + } + }); + + it(@"has a end bit which is set only at the end of fragment group", ^{ + BOOL shouldBeLastFragment = NO; + + for (NSUInteger i = 0; i < results.count; i++) { + if (i == results.count - 1) { + shouldBeLastFragment = YES; + } else { + shouldBeLastFragment = NO; + } + + const UInt8 *header = results[i].bytes; + UInt8 endBit = (header[FrameLengthLen+RTPHeaderLen+1] >> 6) & 1; + expect(@(endBit)).to(equal(@(shouldBeLastFragment ? 1 : 0))); + } + }); + + it(@"has a reserved bit which is always zero", ^{ + for (NSUInteger i = 0; i < results.count; i++) { + const UInt8 *header = results[i].bytes; + expect(@((header[FrameLengthLen+RTPHeaderLen+1] >> 5) & 1)).to(equal(@(0))); + } + }); + + it(@"has a type field which is same as the input NAL unit's type", ^{ + for (NSUInteger i = 0; i < results.count; i++) { + const UInt8 *header = results[i].bytes; + expect(@(header[FrameLengthLen+RTPHeaderLen+1] & 0x1F)).to(equal(@(firstByte & 0x1F))); + } + }); + }); + + describe(@"its third and onward bytes", ^{ + it(@"equals to original NAL unit's second and onward bytes when concatenated", ^{ + NSMutableData *concatData = [[NSMutableData alloc] init]; + + for (NSUInteger i = 0; i < results.count; i++) { + NSData *packet = results[i]; + const UInt8 *p = packet.bytes; + [concatData appendBytes:p + FrameLengthLen + RTPHeaderLen + 2 + length:packet.length - (FrameLengthLen + RTPHeaderLen + 2)]; + } + + expect(@([concatData isEqualToData:[fakeNALUnit subdataWithRange:NSMakeRange(1, fakeNALUnit.length - 1)]])).to(beTruthy()); + }); + }); + }); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLResponseDispatcherSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLResponseDispatcherSpec.m index 47059877d..8adb0a6ad 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLResponseDispatcherSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLResponseDispatcherSpec.m @@ -7,12 +7,17 @@ #import "SDLDeleteCommand.h" #import "SDLDeleteCommandResponse.h" #import "SDLNotificationConstants.h" +#import "SDLOnAudioPassThru.h" #import "SDLOnButtonEvent.h" #import "SDLOnButtonPress.h" #import "SDLOnCommand.h" +#import "SDLPerformAudioPassThru.h" +#import "SDLPerformAudioPassThruResponse.h" #import "SDLReadDID.h" #import "SDLReadDIDResponse.h" #import "SDLResponseDispatcher.h" +#import "SDLRPCNotificationNotification.h" +#import "SDLRPCResponseNotification.h" #import "SDLScrollableMessage.h" #import "SDLShow.h" #import "SDLSoftButton.h" @@ -39,7 +44,8 @@ expect(testDispatcher.commandHandlerMap).toNot(beNil()); expect(testDispatcher.buttonHandlerMap).toNot(beNil()); expect(testDispatcher.customButtonHandlerMap).toNot(beNil()); - +// expect(testDispatcher.audioPassThruHandler).to(beNil()); + expect(testDispatcher.rpcResponseHandlerMap).to(haveCount(@0)); expect(testDispatcher.rpcRequestDictionary).to(haveCount(@0)); expect(testDispatcher.commandHandlerMap).to(haveCount(@0)); @@ -98,7 +104,8 @@ testResponse = [[SDLReadDIDResponse alloc] init]; testResponse.correlationID = testCorrelationId; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveReadDIDResponse object:nil userInfo:@{ SDLNotificationUserInfoObject: testResponse }]; + SDLRPCResponseNotification *responseNotification = [[SDLRPCResponseNotification alloc] initWithName:SDLDidReceiveReadDIDResponse object:nil rpcResponse:testResponse]; + [[NSNotificationCenter defaultCenter] postNotification:responseNotification]; }); it(@"should run the handler", ^{ @@ -115,7 +122,7 @@ __block NSUInteger numTimesHandlerCalled = 0; beforeEach(^{ - testShow = [[SDLShow alloc] initWithMainField1:@"Test Show" mainField2:nil alignment:[SDLTextAlignment CENTERED]]; + testShow = [[SDLShow alloc] initWithMainField1:@"Test Show" mainField2:nil alignment:SDLTextAlignmentCenter]; testShow.correlationID = @1; }); @@ -123,7 +130,7 @@ beforeEach(^{ numTimesHandlerCalled = 0; - testSoftButton1 = [[SDLSoftButton alloc] initWithType:[SDLSoftButtonType TEXT] text:@"test" image:nil highlighted:NO buttonId:1 systemAction:[SDLSystemAction DEFAULT_ACTION] handler:^(__kindof SDLRPCNotification * _Nonnull notification) { + testSoftButton1 = [[SDLSoftButton alloc] initWithType:SDLSoftButtonTypeText text:@"test" image:nil highlighted:NO buttonId:1 systemAction:SDLSystemActionDefaultAction handler:^(SDLOnButtonPress * _Nullable buttonPressNotification, SDLOnButtonEvent * _Nullable buttonEventNotification) { numTimesHandlerCalled++; }]; testShow.softButtons = [@[testSoftButton1] mutableCopy]; @@ -144,14 +151,17 @@ beforeEach(^{ testButtonEvent = [[SDLOnButtonEvent alloc] init]; testButtonEvent.customButtonID = testSoftButton1.softButtonID; - testButtonEvent.buttonName = [SDLButtonName CUSTOM_BUTTON]; + testButtonEvent.buttonName = SDLButtonNameCustomButton; testButtonPress = [[SDLOnButtonPress alloc] init]; testButtonPress.customButtonID = testSoftButton1.softButtonID; - testButtonPress.buttonName = [SDLButtonName CUSTOM_BUTTON]; + testButtonPress.buttonName = SDLButtonNameCustomButton; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveButtonEventNotification object:nil userInfo:@{ SDLNotificationUserInfoObject: testButtonEvent }]; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveButtonPressNotification object:nil userInfo:@{ SDLNotificationUserInfoObject: testButtonPress }]; + SDLRPCNotificationNotification *buttonEventNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveButtonEventNotification object:nil rpcNotification:testButtonEvent]; + SDLRPCNotificationNotification *buttonPressNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveButtonPressNotification object:nil rpcNotification:testButtonPress]; + + [[NSNotificationCenter defaultCenter] postNotification:buttonEventNotification]; + [[NSNotificationCenter defaultCenter] postNotification:buttonPressNotification]; }); it(@"should run the handler for each", ^{ @@ -162,13 +172,16 @@ context(@"that do not correspond to the created button", ^{ beforeEach(^{ testButtonEvent = [[SDLOnButtonEvent alloc] init]; - testButtonEvent.buttonName = [SDLButtonName OK]; + testButtonEvent.buttonName = SDLButtonNameOk; testButtonPress = [[SDLOnButtonPress alloc] init]; - testButtonPress.buttonName = [SDLButtonName OK]; + testButtonPress.buttonName = SDLButtonNameOk; + + SDLRPCNotificationNotification *buttonEventNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveButtonEventNotification object:nil rpcNotification:testButtonEvent]; + SDLRPCNotificationNotification *buttonPressNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveButtonPressNotification object:nil rpcNotification:testButtonPress]; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveButtonEventNotification object:nil userInfo:@{ SDLNotificationUserInfoObject: testButtonEvent }]; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveButtonPressNotification object:nil userInfo:@{ SDLNotificationUserInfoObject: testButtonPress }]; + [[NSNotificationCenter defaultCenter] postNotification:buttonEventNotification]; + [[NSNotificationCenter defaultCenter] postNotification:buttonPressNotification]; }); it(@"should not run the handler", ^{ @@ -180,7 +193,7 @@ context(@"with a correct soft button but no handler", ^{ beforeEach(^{ - testSoftButton1 = [[SDLSoftButton alloc] initWithType:[SDLSoftButtonType TEXT] text:@"test" image:nil highlighted:NO buttonId:1 systemAction:[SDLSystemAction DEFAULT_ACTION] handler:nil]; + testSoftButton1 = [[SDLSoftButton alloc] initWithType:SDLSoftButtonTypeText text:@"test" image:nil highlighted:NO buttonId:1 systemAction:SDLSystemActionDefaultAction handler:nil]; }); it(@"should not add the soft button", ^{ @@ -190,11 +203,14 @@ context(@"with a malformed soft button", ^{ beforeEach(^{ - testSoftButton1 = [[SDLSoftButton alloc] initWithType:[SDLSoftButtonType TEXT] text:@"test" image:nil highlighted:NO buttonId:1 systemAction:[SDLSystemAction DEFAULT_ACTION] handler:^(__kindof SDLRPCNotification * _Nonnull notification) {}]; + testSoftButton1 = [[SDLSoftButton alloc] initWithType:SDLSoftButtonTypeText text:@"test" image:nil highlighted:NO buttonId:1 systemAction:SDLSystemActionDefaultAction handler:nil]; }); it(@"should throw an exception if there's no button id", ^{ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wnonnull" testSoftButton1.softButtonID = nil; +#pragma clang diagnostic pop testShow.softButtons = [@[testSoftButton1] mutableCopy]; expectAction(^{ [testDispatcher storeRequest:testShow handler:nil]; }).to(raiseException().named(@"MissingIdException")); @@ -238,8 +254,11 @@ }); it(@"should throw an exception if there's no command id", ^{ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wnonnull" testAddCommand.cmdID = nil; +#pragma clang diagnostic pop expectAction(^{ [testDispatcher storeRequest:testAddCommand handler:nil]; }).to(raiseException().named(@"MissingIdException")); }); @@ -255,7 +274,9 @@ testOnCommand = [[SDLOnCommand alloc] init]; testOnCommand.cmdID = @(testCommandId); - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveCommandNotification object:nil userInfo:@{ SDLNotificationUserInfoObject: testOnCommand }]; + SDLRPCNotificationNotification *commandNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveCommandNotification object:nil rpcNotification:testOnCommand]; + + [[NSNotificationCenter defaultCenter] postNotification:commandNotification]; }); it(@"should run the handler for each", ^{ @@ -268,7 +289,9 @@ testOnCommand = [[SDLOnCommand alloc] init]; testOnCommand.cmdID = @999; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveCommandNotification object:nil userInfo:@{ SDLNotificationUserInfoObject: testOnCommand }]; + SDLRPCNotificationNotification *commandNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveCommandNotification object:nil rpcNotification:testOnCommand]; + + [[NSNotificationCenter defaultCenter] postNotification:commandNotification]; }); it(@"should not run the handler", ^{ @@ -297,7 +320,9 @@ testDeleteResponse.correlationID = testDeleteCommandCorrelationId; testDeleteResponse.success = @YES; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveDeleteCommandResponse object:nil userInfo:@{ SDLNotificationUserInfoObject: testDeleteResponse }]; + SDLRPCResponseNotification *deleteCommandNotification = [[SDLRPCResponseNotification alloc] initWithName:SDLDidReceiveDeleteCommandResponse object:nil rpcResponse:testDeleteResponse]; + + [[NSNotificationCenter defaultCenter] postNotification:deleteCommandNotification]; }); it(@"should have removed all the handlers", ^{ @@ -322,7 +347,7 @@ context(@"storing a subscribe button request", ^{ __block SDLSubscribeButton *testSubscribeButton = nil; - __block SDLButtonName *testButtonName = nil; + __block SDLButtonName testButtonName = nil; __block NSUInteger numTimesHandlerCalled = 0; __block NSNumber *testSubscribeCorrelationId = nil; @@ -330,11 +355,11 @@ context(@"with a handler", ^{ beforeEach(^{ - testButtonName = [SDLButtonName OK]; + testButtonName = SDLButtonNameOk; testSubscribeCorrelationId = @42; numTimesHandlerCalled = 0; - testSubscribeButton = [[SDLSubscribeButton alloc] initWithButtonName:testButtonName handler:^(__kindof SDLRPCNotification * _Nonnull notification) { + testSubscribeButton = [[SDLSubscribeButton alloc] initWithButtonName:testButtonName handler:^(SDLOnButtonPress * _Nullable buttonPressNotification, SDLOnButtonEvent * _Nullable buttonEventNotification) { numTimesHandlerCalled++; }]; testSubscribeButton.correlationID = testSubscribeCorrelationId; @@ -343,12 +368,15 @@ it(@"should add the subscription to the map", ^{ [testDispatcher storeRequest:testSubscribeButton handler:nil]; - expect(testDispatcher.buttonHandlerMap[testSubscribeButton.buttonName.value]).toNot(beNil()); + expect(testDispatcher.buttonHandlerMap[testSubscribeButton.buttonName]).toNot(beNil()); expect(testDispatcher.buttonHandlerMap).to(haveCount(@1)); }); it(@"should throw an exception if there's no button name", ^{ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wnonnull" testSubscribeButton.buttonName = nil; +#pragma clang diagnostic pop expectAction(^{ [testDispatcher storeRequest:testSubscribeButton handler:nil]; }).to(raiseException().named(@"MissingIdException")); }); @@ -369,8 +397,11 @@ testButtonPress = [[SDLOnButtonPress alloc] init]; testButtonPress.buttonName = testButtonName; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveButtonEventNotification object:nil userInfo:@{ SDLNotificationUserInfoObject: testButtonEvent }]; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveButtonPressNotification object:nil userInfo:@{ SDLNotificationUserInfoObject: testButtonPress }]; + SDLRPCNotificationNotification *buttonEventNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveButtonEventNotification object:nil rpcNotification:testButtonEvent]; + SDLRPCNotificationNotification *buttonPressNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveButtonPressNotification object:nil rpcNotification:testButtonPress]; + + [[NSNotificationCenter defaultCenter] postNotification:buttonEventNotification]; + [[NSNotificationCenter defaultCenter] postNotification:buttonPressNotification]; }); it(@"should run the handler for each", ^{ @@ -381,13 +412,16 @@ context(@"that do not correspond to the created button", ^{ beforeEach(^{ testButtonEvent = [[SDLOnButtonEvent alloc] init]; - testButtonEvent.buttonName = [SDLButtonName PRESET_0]; + testButtonEvent.buttonName = SDLButtonNamePreset0; testButtonPress = [[SDLOnButtonPress alloc] init]; - testButtonPress.buttonName = [SDLButtonName PRESET_0]; + testButtonPress.buttonName = SDLButtonNamePreset0; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveButtonEventNotification object:nil userInfo:@{ SDLNotificationUserInfoObject: testButtonEvent }]; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveButtonPressNotification object:nil userInfo:@{ SDLNotificationUserInfoObject: testButtonPress }]; + SDLRPCNotificationNotification *buttonEventNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveButtonEventNotification object:nil rpcNotification:testButtonEvent]; + SDLRPCNotificationNotification *buttonPressNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveButtonPressNotification object:nil rpcNotification:testButtonPress]; + + [[NSNotificationCenter defaultCenter] postNotification:buttonEventNotification]; + [[NSNotificationCenter defaultCenter] postNotification:buttonPressNotification]; }); it(@"should not run the handler", ^{ @@ -416,7 +450,8 @@ testUnsubscribeResponse.correlationID = testUnsubscribeCorrelationId; testUnsubscribeResponse.success = @YES; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveUnsubscribeButtonResponse object:nil userInfo:@{ SDLNotificationUserInfoObject: testUnsubscribeResponse }]; + SDLRPCResponseNotification *unsubscribeNotification = [[SDLRPCResponseNotification alloc] initWithName:SDLDidReceiveUnsubscribeButtonResponse object:nil rpcResponse:testUnsubscribeResponse]; + [[NSNotificationCenter defaultCenter] postNotification:unsubscribeNotification]; }); it(@"should have removed all the handlers", ^{ @@ -430,7 +465,7 @@ context(@"without a handler", ^{ beforeEach(^{ - testSubscribeButton = [[SDLSubscribeButton alloc] initWithButtonName:[SDLButtonName OK] handler:nil]; + testSubscribeButton = [[SDLSubscribeButton alloc] initWithButtonName:SDLButtonNameOk handler:nil]; }); it(@"should not add the subscription", ^{ @@ -454,7 +489,7 @@ beforeEach(^{ numTimesHandlerCalled = 0; - testSoftButton1 = [[SDLSoftButton alloc] initWithType:[SDLSoftButtonType TEXT] text:@"test" image:nil highlighted:NO buttonId:1 systemAction:[SDLSystemAction DEFAULT_ACTION] handler:^(__kindof SDLRPCNotification * _Nonnull notification) { + testSoftButton1 = [[SDLSoftButton alloc] initWithType:SDLSoftButtonTypeText text:@"test" image:nil highlighted:NO buttonId:1 systemAction:SDLSystemActionDefaultAction handler:^(SDLOnButtonPress * _Nullable buttonPressNotification, SDLOnButtonEvent * _Nullable buttonEventNotification) { numTimesHandlerCalled++; }]; @@ -474,15 +509,18 @@ context(@"that correspond to the created button", ^{ beforeEach(^{ testButtonEvent = [[SDLOnButtonEvent alloc] init]; - testButtonEvent.buttonName = [SDLButtonName CUSTOM_BUTTON]; + testButtonEvent.buttonName = SDLButtonNameCustomButton; testButtonEvent.customButtonID = testSoftButton1.softButtonID; testButtonPress = [[SDLOnButtonPress alloc] init]; - testButtonPress.buttonName = [SDLButtonName CUSTOM_BUTTON]; + testButtonPress.buttonName = SDLButtonNameCustomButton; testButtonPress.customButtonID = testSoftButton1.softButtonID; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveButtonEventNotification object:nil userInfo:@{ SDLNotificationUserInfoObject: testButtonEvent }]; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveButtonPressNotification object:nil userInfo:@{ SDLNotificationUserInfoObject: testButtonPress }]; + SDLRPCNotificationNotification *buttonEventNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveButtonEventNotification object:nil rpcNotification:testButtonEvent]; + SDLRPCNotificationNotification *buttonPressNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveButtonPressNotification object:nil rpcNotification:testButtonPress]; + + [[NSNotificationCenter defaultCenter] postNotification:buttonEventNotification]; + [[NSNotificationCenter defaultCenter] postNotification:buttonPressNotification]; }); it(@"should run the handler for each", ^{ @@ -493,13 +531,16 @@ context(@"that do not correspond to the created button", ^{ beforeEach(^{ testButtonEvent = [[SDLOnButtonEvent alloc] init]; - testButtonEvent.buttonName = [SDLButtonName OK]; + testButtonEvent.buttonName = SDLButtonNameOk; testButtonPress = [[SDLOnButtonPress alloc] init]; - testButtonPress.buttonName = [SDLButtonName OK]; + testButtonPress.buttonName = SDLButtonNameOk; + + SDLRPCNotificationNotification *buttonEventNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveButtonEventNotification object:nil rpcNotification:testButtonEvent]; + SDLRPCNotificationNotification *buttonPressNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveButtonPressNotification object:nil rpcNotification:testButtonPress]; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveButtonEventNotification object:nil userInfo:@{ SDLNotificationUserInfoObject: testButtonEvent }]; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveButtonPressNotification object:nil userInfo:@{ SDLNotificationUserInfoObject: testButtonPress }]; + [[NSNotificationCenter defaultCenter] postNotification:buttonEventNotification]; + [[NSNotificationCenter defaultCenter] postNotification:buttonPressNotification]; }); it(@"should not run the handler", ^{ @@ -511,7 +552,7 @@ context(@"with a correct soft button but no handler", ^{ beforeEach(^{ - testSoftButton1 = [[SDLSoftButton alloc] initWithType:[SDLSoftButtonType TEXT] text:@"test" image:nil highlighted:NO buttonId:1 systemAction:[SDLSystemAction DEFAULT_ACTION] handler:nil]; + testSoftButton1 = [[SDLSoftButton alloc] initWithType:SDLSoftButtonTypeText text:@"test" image:nil highlighted:NO buttonId:1 systemAction:SDLSystemActionDefaultAction handler:nil]; }); it(@"should not add the soft button", ^{ @@ -521,11 +562,14 @@ context(@"with a malformed soft button", ^{ beforeEach(^{ - testSoftButton1 = [[SDLSoftButton alloc] initWithType:[SDLSoftButtonType TEXT] text:@"test" image:nil highlighted:NO buttonId:1 systemAction:[SDLSystemAction DEFAULT_ACTION] handler:^(__kindof SDLRPCNotification * _Nonnull notification) {}]; + testSoftButton1 = [[SDLSoftButton alloc] initWithType:SDLSoftButtonTypeText text:@"test" image:nil highlighted:NO buttonId:1 systemAction:SDLSystemActionDefaultAction handler:nil]; }); it(@"should throw an exception if there's no button id", ^{ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wnonnull" testSoftButton1.softButtonID = nil; +#pragma clang diagnostic pop testAlert.softButtons = [@[testSoftButton1] mutableCopy]; expectAction(^{ [testDispatcher storeRequest:testAlert handler:nil]; }).to(raiseException().named(@"MissingIdException")); @@ -556,7 +600,7 @@ beforeEach(^{ numTimesHandlerCalled = 0; - testSoftButton1 = [[SDLSoftButton alloc] initWithType:[SDLSoftButtonType TEXT] text:@"test" image:nil highlighted:NO buttonId:1 systemAction:[SDLSystemAction DEFAULT_ACTION] handler:^(__kindof SDLRPCNotification * _Nonnull notification) { + testSoftButton1 = [[SDLSoftButton alloc] initWithType:SDLSoftButtonTypeText text:@"test" image:nil highlighted:NO buttonId:1 systemAction:SDLSystemActionDefaultAction handler:^(SDLOnButtonPress * _Nullable buttonPressNotification, SDLOnButtonEvent * _Nullable buttonEventNotification) { numTimesHandlerCalled++; }]; @@ -576,15 +620,18 @@ context(@"that correspond to the created button", ^{ beforeEach(^{ testButtonEvent = [[SDLOnButtonEvent alloc] init]; - testButtonEvent.buttonName = [SDLButtonName CUSTOM_BUTTON]; + testButtonEvent.buttonName = SDLButtonNameCustomButton; testButtonEvent.customButtonID = testSoftButton1.softButtonID; testButtonPress = [[SDLOnButtonPress alloc] init]; - testButtonPress.buttonName = [SDLButtonName CUSTOM_BUTTON]; + testButtonPress.buttonName = SDLButtonNameCustomButton; testButtonPress.customButtonID = testSoftButton1.softButtonID; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveButtonEventNotification object:nil userInfo:@{ SDLNotificationUserInfoObject: testButtonEvent }]; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveButtonPressNotification object:nil userInfo:@{ SDLNotificationUserInfoObject: testButtonPress }]; + SDLRPCNotificationNotification *buttonEventNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveButtonEventNotification object:nil rpcNotification:testButtonEvent]; + SDLRPCNotificationNotification *buttonPressNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveButtonPressNotification object:nil rpcNotification:testButtonPress]; + + [[NSNotificationCenter defaultCenter] postNotification:buttonEventNotification]; + [[NSNotificationCenter defaultCenter] postNotification:buttonPressNotification]; }); it(@"should run the handler for each", ^{ @@ -595,13 +642,16 @@ context(@"that do not correspond to the created button", ^{ beforeEach(^{ testButtonEvent = [[SDLOnButtonEvent alloc] init]; - testButtonEvent.buttonName = [SDLButtonName OK]; + testButtonEvent.buttonName = SDLButtonNameOk; testButtonPress = [[SDLOnButtonPress alloc] init]; - testButtonPress.buttonName = [SDLButtonName OK]; + testButtonPress.buttonName = SDLButtonNameOk; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveButtonEventNotification object:nil userInfo:@{ SDLNotificationUserInfoObject: testButtonEvent }]; - [[NSNotificationCenter defaultCenter] postNotificationName:SDLDidReceiveButtonPressNotification object:nil userInfo:@{ SDLNotificationUserInfoObject: testButtonPress }]; + SDLRPCNotificationNotification *buttonEventNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveButtonEventNotification object:nil rpcNotification:testButtonEvent]; + SDLRPCNotificationNotification *buttonPressNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveButtonPressNotification object:nil rpcNotification:testButtonPress]; + + [[NSNotificationCenter defaultCenter] postNotification:buttonEventNotification]; + [[NSNotificationCenter defaultCenter] postNotification:buttonPressNotification]; }); it(@"should not run the handler", ^{ @@ -613,7 +663,7 @@ context(@"with a correct soft button but no handler", ^{ beforeEach(^{ - testSoftButton1 = [[SDLSoftButton alloc] initWithType:[SDLSoftButtonType TEXT] text:@"test" image:nil highlighted:NO buttonId:1 systemAction:[SDLSystemAction DEFAULT_ACTION] handler:nil]; + testSoftButton1 = [[SDLSoftButton alloc] initWithType:SDLSoftButtonTypeText text:@"test" image:nil highlighted:NO buttonId:1 systemAction:SDLSystemActionDefaultAction handler:nil]; }); it(@"should not add the soft button", ^{ @@ -623,11 +673,14 @@ context(@"with a malformed soft button", ^{ beforeEach(^{ - testSoftButton1 = [[SDLSoftButton alloc] initWithType:[SDLSoftButtonType TEXT] text:@"test" image:nil highlighted:NO buttonId:1 systemAction:[SDLSystemAction DEFAULT_ACTION] handler:^(__kindof SDLRPCNotification * _Nonnull notification) {}]; + testSoftButton1 = [[SDLSoftButton alloc] initWithType:SDLSoftButtonTypeText text:@"test" image:nil highlighted:NO buttonId:1 systemAction:SDLSystemActionDefaultAction handler:nil]; }); it(@"should throw an exception if there's no button id", ^{ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wnonnull" testSoftButton1.softButtonID = nil; +#pragma clang diagnostic pop testScrollableMessage.softButtons = [@[testSoftButton1] mutableCopy]; expectAction(^{ [testDispatcher storeRequest:testScrollableMessage handler:nil]; }).to(raiseException().named(@"MissingIdException")); @@ -642,6 +695,93 @@ }); }); }); + + context(@"storing an audio pass thru handler", ^{ + __block SDLPerformAudioPassThru* testPerformAudioPassThru = nil; + __block NSUInteger numTimesHandlerCalled = 0; + + context(@"with a handler", ^{ + beforeEach(^{ + testPerformAudioPassThru = [[SDLPerformAudioPassThru alloc] initWithSamplingRate:SDLSamplingRate8KHZ bitsPerSample:SDLBitsPerSample8Bit audioType:SDLAudioTypePCM maxDuration:1000 audioDataHandler:^(NSData * _Nullable audioData) { + numTimesHandlerCalled++; + }]; + + testPerformAudioPassThru.correlationID = @1; + [testDispatcher storeRequest:testPerformAudioPassThru handler:nil]; + }); + + it(@"should store the handler" ,^{ +// expect(testDispatcher.audioPassThruHandler).toNot(beNil()); +// expect(testDispatcher.audioPassThruHandler).to(equal(testPerformAudioPassThru.audioDataHandler)); + }); + + describe(@"when an on audio data notification arrives", ^{ + beforeEach(^{ + SDLOnAudioPassThru *testOnAudioPassThru = [[SDLOnAudioPassThru alloc] init]; + + SDLRPCNotificationNotification *notification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveAudioPassThruNotification object:nil rpcNotification:testOnAudioPassThru]; + [[NSNotificationCenter defaultCenter] postNotification:notification]; + }); + + it(@"should run the handler", ^{ + expect(@(numTimesHandlerCalled)).to(equal(@1)); + }); + }); + + describe(@"when an on audio data response arrives", ^{ + beforeEach(^{ + SDLPerformAudioPassThruResponse *performAudioPassThruResponse = [[SDLPerformAudioPassThruResponse alloc] init]; + performAudioPassThruResponse.success = @YES; + + SDLRPCResponseNotification *notification = [[SDLRPCResponseNotification alloc] initWithName:SDLDidReceivePerformAudioPassThruResponse object:nil rpcResponse:performAudioPassThruResponse]; + [[NSNotificationCenter defaultCenter] postNotification:notification]; + }); + + it(@"should clear the handler", ^{ +// expect(testDispatcher.audioPassThruHandler).to(beNil()); + }); + }); + }); + + context(@"without a handler", ^{ + beforeEach(^{ + numTimesHandlerCalled = 0; + + testPerformAudioPassThru = [[SDLPerformAudioPassThru alloc] initWithSamplingRate:SDLSamplingRate8KHZ bitsPerSample:SDLBitsPerSample8Bit audioType:SDLAudioTypePCM maxDuration:1000]; + + testPerformAudioPassThru.correlationID = @1; + [testDispatcher storeRequest:testPerformAudioPassThru handler:nil]; + }); + + describe(@"when an on audio data notification arrives", ^{ + beforeEach(^{ + SDLOnAudioPassThru *testOnAudioPassThru = [[SDLOnAudioPassThru alloc] init]; + + SDLRPCNotificationNotification *notification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveAudioPassThruNotification object:nil rpcNotification:testOnAudioPassThru]; + [[NSNotificationCenter defaultCenter] postNotification:notification]; + }); + + it(@"should not run a handler", ^{ + expect(@(numTimesHandlerCalled)).to(equal(@0)); + }); + }); + + describe(@"when an on audio data response arrives", ^{ + beforeEach(^{ + SDLPerformAudioPassThruResponse *performAudioPassThruResponse = [[SDLPerformAudioPassThruResponse alloc] init]; + performAudioPassThruResponse.success = @YES; + + SDLRPCResponseNotification *notification = [[SDLRPCResponseNotification alloc] initWithName:SDLDidReceivePerformAudioPassThruResponse object:nil rpcResponse:performAudioPassThruResponse]; + [[NSNotificationCenter defaultCenter] postNotification:notification]; + }); + + it(@"should clear the handler", ^{ +// expect(testDispatcher.audioPassThruHandler).to(beNil()); + }); + }); + + }); + }); }); QuickSpecEnd diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLStateMachineSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLStateMachineSpec.m index af851d09b..efb5a5f64 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLStateMachineSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLStateMachineSpec.m @@ -14,7 +14,7 @@ __block SDLState *secondState = @"Second"; __block SDLState *thirdState = @"Third"; - __block NSDictionary *allowableStateTransitions = @{ + __block NSDictionary *> *allowableStateTransitions = @{ initialState: @[secondState], secondState: @[thirdState], thirdState: @[initialState] diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingMediaConfigurationSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingMediaConfigurationSpec.m new file mode 100644 index 000000000..447dac87b --- /dev/null +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingMediaConfigurationSpec.m @@ -0,0 +1,76 @@ +#import +#import +#import + +#import "SDLStreamingMediaConfiguration.h" + +#import "SDLFakeSecurityManager.h" +#import "SDLFakeStreamingManagerDataSource.h" + +QuickSpecBegin(SDLStreamingMediaConfigurationSpec) + +describe(@"a streaming media configuration", ^{ + __block SDLStreamingMediaConfiguration *testConfig = nil; + + context(@"That is created with a full initializer", ^{ + __block SDLFakeSecurityManager *testFakeSecurityManager = nil; + __block SDLStreamingEncryptionFlag testEncryptionFlag = SDLStreamingEncryptionFlagNone; + __block SDLFakeStreamingManagerDataSource *testDataSource = nil; + __block NSDictionary *testVideoEncoderSettings = nil; + __block UIWindow *testWindow = nil; + + beforeEach(^{ + testFakeSecurityManager = [[SDLFakeSecurityManager alloc] init]; + testDataSource = [[SDLFakeStreamingManagerDataSource alloc] init]; + testVideoEncoderSettings = @{ + (__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate : @1 + }; + testWindow = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, 100, 100)]; + testEncryptionFlag = SDLStreamingEncryptionFlagAuthenticateAndEncrypt; + + testConfig = [[SDLStreamingMediaConfiguration alloc] initWithSecurityManagers:@[testFakeSecurityManager.class] encryptionFlag:testEncryptionFlag videoSettings:testVideoEncoderSettings dataSource:testDataSource window:testWindow]; + }); + + it(@"should have properly set properties", ^{ + expect(testConfig.securityManagers).to(contain(testFakeSecurityManager.class)); + expect(@(testConfig.maximumDesiredEncryption)).to(equal(@(SDLStreamingEncryptionFlagAuthenticateAndEncrypt))); + expect(testConfig.customVideoEncoderSettings).to(equal(testVideoEncoderSettings)); + expect(testConfig.dataSource).to(equal(testDataSource)); + expect(testConfig.window).to(equal(testWindow)); + }); + }); + + context(@"that is created with insecure settings", ^{ + beforeEach(^{ + testConfig = [SDLStreamingMediaConfiguration insecureConfiguration]; + }); + + it(@"should have properly set properties", ^{ + expect(testConfig.securityManagers).to(beNil()); + expect(@(testConfig.maximumDesiredEncryption)).to(equal(@(SDLStreamingEncryptionFlagNone))); + expect(testConfig.customVideoEncoderSettings).to(beNil()); + expect(testConfig.dataSource).to(beNil()); + expect(testConfig.window).to(beNil()); + }); + }); + + context(@"that is created with secure settings", ^{ + __block SDLFakeSecurityManager *testFakeSecurityManager = nil; + + beforeEach(^{ + testFakeSecurityManager = [[SDLFakeSecurityManager alloc] init]; + + testConfig = [SDLStreamingMediaConfiguration secureConfigurationWithSecurityManagers:@[testFakeSecurityManager.class]]; + }); + + it(@"should have properly set properties", ^{ + expect(testConfig.securityManagers).to(contain(testFakeSecurityManager.class)); + expect(@(testConfig.maximumDesiredEncryption)).to(equal(@(SDLStreamingEncryptionFlagAuthenticateAndEncrypt))); + expect(testConfig.customVideoEncoderSettings).to(beNil()); + expect(testConfig.dataSource).to(beNil()); + expect(testConfig.window).to(beNil()); + }); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLUploadFileOperationSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLUploadFileOperationSpec.m index 8d0506ad7..6d9474568 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLUploadFileOperationSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLUploadFileOperationSpec.m @@ -13,158 +13,313 @@ QuickSpecBegin(SDLUploadFileOperationSpec) -describe(@"Upload File Operation", ^{ +describe(@"Streaming upload of data", ^{ __block NSString *testFileName = nil; __block NSData *testFileData = nil; __block SDLFile *testFile = nil; __block SDLFileWrapper *testFileWrapper = nil; - + __block NSInteger numberOfPutFiles = 0; + __block TestConnectionManager *testConnectionManager = nil; __block SDLUploadFileOperation *testOperation = nil; - + __block BOOL successResult = NO; __block NSUInteger bytesAvailableResult = NO; __block NSError *errorResult = nil; - + beforeEach(^{ - // Set the head unit size small so we have a low MTU size - [SDLGlobals globals].maxHeadUnitVersion = @"2.0.0"; + [SDLGlobals sharedGlobals].maxHeadUnitVersion = @"2.0.0"; + + testFileName = nil; + testFileData = nil; + testFile = nil; + testFileWrapper = nil; + numberOfPutFiles = 0; + + testOperation = nil; + testConnectionManager = nil; + + successResult = NO; + bytesAvailableResult = NO; + errorResult = nil; + }); + + context(@"When uploading data", ^{ + context(@"data should be split into smaller packets if too large to send all at once", ^{ + context(@"both data in memory and on disk can be uploaded", ^{ + it(@"should split the data from a short chunk of text in memory correctly", ^{ + testFileName = @"TestSmallMemory"; + testFileData = [@"test1234" dataUsingEncoding:NSUTF8StringEncoding]; + testFile = [SDLFile fileWithData:testFileData name:testFileName fileExtension:@"bin"]; + }); + + it(@"should split the data from a large image in memory correctly", ^{ + testFileName = @"TestLargeMemory"; + UIImage *testImage = [UIImage imageNamed:@"testImagePNG" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil]; + testFileData = UIImageJPEGRepresentation(testImage, 1.0); + testFile = [SDLFile fileWithData:testFileData name:testFileName fileExtension:@"bin"]; + }); + + it(@"should split the data from a small text file correctly", ^{ + NSString *fileName = @"testFileJSON"; + testFileName = fileName; + NSString *textFilePath = [[NSBundle bundleForClass:[self class]] pathForResource:fileName ofType:@"json"]; + NSURL *textFileURL = [[NSURL alloc] initFileURLWithPath:textFilePath]; + testFile = [SDLFile fileAtFileURL:textFileURL name:fileName]; + testFileData = [[NSData alloc] initWithContentsOfURL:textFileURL]; + }); + + it(@"should split the data from a large image file correctly", ^{ + NSString *fileName = @"testImagePNG"; + testFileName = fileName; + NSString *imageFilePath = [[NSBundle bundleForClass:[self class]] pathForResource:fileName ofType:@"png"]; + NSURL *imageFileURL = [[NSURL alloc] initFileURLWithPath:imageFilePath]; + testFile = [SDLFile fileAtFileURL:imageFileURL name:fileName]; + + // For testing: get data to check if data chunks are being created correctly + testFileData = [[NSData alloc] initWithContentsOfURL:imageFileURL]; + }); + + afterEach(^{ + testFileWrapper = [SDLFileWrapper wrapperWithFile:testFile completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError * _Nullable error) { + successResult = success; + bytesAvailableResult = bytesAvailable; + errorResult = error; + }]; + + numberOfPutFiles = ((([testFile fileSize] - 1) / [[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeBulkData]) + 1); + + testConnectionManager = [[TestConnectionManager alloc] init]; + testOperation = [[SDLUploadFileOperation alloc] initWithFile:testFileWrapper connectionManager:testConnectionManager]; + [testOperation start]; + }); + }); + + afterEach(^{ + expect(@(testOperation.queuePriority)).to(equal(@(NSOperationQueuePriorityNormal))); + + NSArray *putFiles = testConnectionManager.receivedRequests; + expect(@(putFiles.count)).to(equal(@(numberOfPutFiles))); + + // Test all packets for offset, length, and data + for (NSUInteger index = 0; index < numberOfPutFiles; index++) { + SDLPutFile *putFile = putFiles[index]; + + NSUInteger mtuSize = [[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeBulkData]; + + expect(putFile.offset).to(equal(@(index * mtuSize))); + expect(putFile.persistentFile).to(equal(@NO)); + expect(putFile.syncFileName).to(equal(testFileName)); + expect(putFile.bulkData).to(equal([testFileData subdataWithRange:NSMakeRange((index * mtuSize), MIN(putFile.length.unsignedIntegerValue, mtuSize))])); + + // Length is used to inform the SDL Core of the total incoming packet size + if (index == 0) { + // The first putfile sent should have the full file size + expect(putFile.length).to(equal(@([testFile fileSize]))); + } else if (index == numberOfPutFiles - 1) { + // The last pufile contains the remaining data size + expect(putFile.length).to(equal(@([testFile fileSize] - (index * mtuSize)))); + } else { + // All other putfiles contain the max data size for a putfile packet + expect(putFile.length).to(equal(@(mtuSize))); + } + } + }); + }); + + afterEach(^{ + __block SDLPutFileResponse *goodResponse = nil; + + // We must do some cleanup here otherwise the unit test cases will crash + NSInteger spaceLeft = 11212512; + for (int i = 0; i < numberOfPutFiles; i++) { + spaceLeft -= 1024; + goodResponse = [[SDLPutFileResponse alloc] init]; + goodResponse.success = @YES; + goodResponse.spaceAvailable = @(spaceLeft); + [testConnectionManager respondToRequestWithResponse:goodResponse requestNumber:i error:nil]; + } + + expect(@(successResult)).toEventually(equal(@YES)); + expect(@(bytesAvailableResult)).toEventually(equal(spaceLeft)); + expect(errorResult).toEventually(beNil()); + expect(@(testOperation.finished)).toEventually(equal(@YES)); + expect(@(testOperation.executing)).toEventually(equal(@NO)); + }); }); - - context(@"running a small file operation", ^{ + + context(@"When a response to the data upload comes back", ^{ beforeEach(^{ - testFileName = @"test file"; - testFileData = [@"test1234" dataUsingEncoding:NSUTF8StringEncoding]; + testFileName = @"TestLargeMemory"; + UIImage *testImage = [UIImage imageNamed:@"testImagePNG" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil]; + testFileData = UIImageJPEGRepresentation(testImage, 1.0); testFile = [SDLFile fileWithData:testFileData name:testFileName fileExtension:@"bin"]; testFileWrapper = [SDLFileWrapper wrapperWithFile:testFile completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError * _Nullable error) { successResult = success; bytesAvailableResult = bytesAvailable; errorResult = error; }]; - + + NSUInteger mtuSize = [[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeBulkData]; + + numberOfPutFiles = ((([testFile fileSize] - 1) / mtuSize) + 1); + testConnectionManager = [[TestConnectionManager alloc] init]; testOperation = [[SDLUploadFileOperation alloc] initWithFile:testFileWrapper connectionManager:testConnectionManager]; - [testOperation start]; - [NSThread sleepForTimeInterval:0.5]; }); - - it(@"should have a priority of 'normal'", ^{ - expect(@(testOperation.queuePriority)).to(equal(@(NSOperationQueuePriorityNormal))); - }); - - it(@"should send putfiles", ^{ - SDLPutFile *putFile = testConnectionManager.receivedRequests.lastObject; - expect(testConnectionManager.receivedRequests.lastObject).to(beAnInstanceOf([SDLPutFile class])); - expect(putFile.bulkData).to(equal(testFileData)); - expect(putFile.length).to(equal(@(testFileData.length))); - expect(putFile.offset).to(equal(@0)); - expect(putFile.persistentFile).to(equal(@NO)); - expect(putFile.syncFileName).to(equal(testFileName)); - }); - - context(@"when a good response comes back", ^{ - __block SDLPutFileResponse *goodResponse = nil; - __block NSNumber *responseSpaceAvailable = nil; - __block NSMutableArray *responseFileNames = nil; - + + context(@"If data was sent successfully", ^{ + __block SDLPutFileResponse *goodResponse = nil; + __block NSInteger spaceLeft = 0; + beforeEach(^{ - responseSpaceAvailable = @(11212512); - responseFileNames = [NSMutableArray arrayWithArray:@[@"test1", @"test2"]]; - - goodResponse = [[SDLPutFileResponse alloc] init]; - goodResponse.success = @YES; - goodResponse.spaceAvailable = responseSpaceAvailable; - - [testConnectionManager respondToLastRequestWithResponse:goodResponse]; + goodResponse = nil; + spaceLeft = 11212512; + }); + + it(@"should have called the completion handler with success only if all packets were sent successfully", ^{ + for (int i = 0; i < numberOfPutFiles; i++) { + spaceLeft -= 1024; + goodResponse = [[SDLPutFileResponse alloc] init]; + goodResponse.success = @YES; + goodResponse.spaceAvailable = @(spaceLeft); + [testConnectionManager respondToRequestWithResponse:goodResponse requestNumber:i error:nil]; + } }); - - it(@"should have called the completion handler with proper data", ^{ + + afterEach(^{ expect(@(successResult)).toEventually(equal(@YES)); - expect(@(bytesAvailableResult)).toEventually(equal(responseSpaceAvailable)); + expect(@(bytesAvailableResult)).toEventually(equal(spaceLeft)); expect(errorResult).toEventually(beNil()); - }); - - it(@"should be set to finished", ^{ + expect(@(testOperation.finished)).toEventually(equal(@YES)); expect(@(testOperation.executing)).toEventually(equal(@NO)); }); }); - - context(@"when a bad response comes back", ^{ - __block SDLPutFileResponse *badResponse = nil; - __block NSNumber *responseSpaceAvailable = nil; - + + context(@"If data was not sent successfully", ^{ + __block SDLPutFileResponse *response = nil; __block NSString *responseErrorDescription = nil; __block NSString *responseErrorReason = nil; - + __block NSInteger spaceLeft = 0; + beforeEach(^{ - responseSpaceAvailable = @(0); - - responseErrorDescription = @"some description"; - responseErrorReason = @"some reason"; - - badResponse = [[SDLPutFileResponse alloc] init]; - badResponse.success = @NO; - badResponse.spaceAvailable = responseSpaceAvailable; - - [testConnectionManager respondToLastRequestWithResponse:badResponse error:[NSError sdl_lifecycle_unknownRemoteErrorWithDescription:responseErrorDescription andReason:responseErrorReason]]; + response = nil; + responseErrorDescription = nil; + responseErrorReason = nil; + spaceLeft = 11212512; + }); + + it(@"should have called the completion handler with error if the first packet was not sent successfully", ^{ + for (int i = 0; i < numberOfPutFiles; i++) { + spaceLeft -= 1024; + response = [[SDLPutFileResponse alloc] init]; + response.spaceAvailable = @(spaceLeft); + NSError *error = nil; + + if (i == 0) { + // Only the first packet is sent unsuccessfully + response.success = @NO; + responseErrorDescription = @"some description"; + responseErrorReason = @"some reason"; + error = [NSError sdl_lifecycle_unknownRemoteErrorWithDescription:responseErrorDescription andReason:responseErrorReason]; + } else { + response.success = @YES; + } + + [testConnectionManager respondToRequestWithResponse:response requestNumber:i error:error]; + } }); - - it(@"should have called completion handler with error", ^{ + + it(@"should have called the completion handler with error if the last packet was not sent successfully", ^{ + for (int i = 0; i < numberOfPutFiles; i++) { + spaceLeft -= 1024; + response = [[SDLPutFileResponse alloc] init]; + response.spaceAvailable = @(spaceLeft); + NSError *error = nil; + + if (i == (numberOfPutFiles - 1)) { + // Only the last packet is sent unsuccessfully + response.success = @NO; + responseErrorDescription = @"some description"; + responseErrorReason = @"some reason"; + error = [NSError sdl_lifecycle_unknownRemoteErrorWithDescription:responseErrorDescription andReason:responseErrorReason]; + } else { + response.success = @YES; + } + + [testConnectionManager respondToRequestWithResponse:response requestNumber:i error:error]; + } + }); + + it(@"should have called the completion handler with error if all packets were not sent successfully", ^{ + for (int i = 0; i < numberOfPutFiles; i++) { + spaceLeft -= 1024; + response = [[SDLPutFileResponse alloc] init]; + response.success = @NO; + response.spaceAvailable = @(spaceLeft); + + responseErrorDescription = @"some description"; + responseErrorReason = @"some reason"; + + [testConnectionManager respondToRequestWithResponse:response requestNumber:i error:[NSError sdl_lifecycle_unknownRemoteErrorWithDescription:responseErrorDescription andReason:responseErrorReason]]; + } + }); + + afterEach(^{ expect(errorResult.localizedDescription).toEventually(match(responseErrorDescription)); expect(errorResult.localizedFailureReason).toEventually(match(responseErrorReason)); expect(@(successResult)).toEventually(equal(@NO)); - expect(@(bytesAvailableResult)).toEventually(equal(@0)); }); }); }); - - context(@"sending a large file", ^{ + + context(@"When an incorrect file url is passed", ^{ beforeEach(^{ - UIImage *testImage = [UIImage imageNamed:@"testImagePNG" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil]; - - testFileName = @"test file"; - testFileData = UIImageJPEGRepresentation(testImage, 0.80); + NSString *fileName = @"testImagePNG"; + testFileName = fileName; + NSString *imageFilePath = [[NSBundle bundleForClass:[self class]] pathForResource:fileName ofType:@"png"]; + NSURL *imageFileURL = [[NSURL alloc] initWithString:imageFilePath]; // This will fail because local file paths need to be init with initFileURLWithPath + testFile = [SDLFile fileAtFileURL:imageFileURL name:fileName]; + + testFileWrapper = [SDLFileWrapper wrapperWithFile:testFile completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError * _Nullable error) { + successResult = success; + bytesAvailableResult = bytesAvailable; + errorResult = error; + }]; + + testConnectionManager = [[TestConnectionManager alloc] init]; + testOperation = [[SDLUploadFileOperation alloc] initWithFile:testFileWrapper connectionManager:testConnectionManager]; + [testOperation start]; + }); + + it(@"should have called the completion handler with an error", ^{ + expect(errorResult).toEventually(equal([NSError sdl_fileManager_fileDoesNotExistError])); + expect(@(successResult)).toEventually(equal(@NO)); + }); + }); + + context(@"When empty data is passed", ^{ + beforeEach(^{ + testFileName = @"TestEmptyMemory"; + testFileData = [@"" dataUsingEncoding:NSUTF8StringEncoding]; testFile = [SDLFile fileWithData:testFileData name:testFileName fileExtension:@"bin"]; + testFileWrapper = [SDLFileWrapper wrapperWithFile:testFile completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError * _Nullable error) { successResult = success; bytesAvailableResult = bytesAvailable; errorResult = error; }]; - + testConnectionManager = [[TestConnectionManager alloc] init]; testOperation = [[SDLUploadFileOperation alloc] initWithFile:testFileWrapper connectionManager:testConnectionManager]; - [testOperation start]; - [NSThread sleepForTimeInterval:0.5]; }); - - it(@"should send correct putfiles", ^{ - NSArray *putFiles = testConnectionManager.receivedRequests; - - NSUInteger numberOfPutFiles = (((testFileData.length - 1) / [[SDLGlobals globals] mtuSizeForServiceType:SDLServiceType_BulkData]) + 1); - expect(@(putFiles.count)).to(equal(@(numberOfPutFiles))); - - // Test all PutFiles pieces for offset & length. - for (NSUInteger index = 0; index < numberOfPutFiles; index++) { - SDLPutFile *putFile = putFiles[index]; - - expect(putFile.offset).to(equal(@(index * [[SDLGlobals globals] mtuSizeForServiceType:SDLServiceType_BulkData]))); - expect(putFile.persistentFile).to(equal(@NO)); - expect(putFile.syncFileName).to(equal(testFileName)); - expect(putFile.bulkData).to(equal([testFileData subdataWithRange:NSMakeRange((index * [[SDLGlobals globals] mtuSizeForServiceType:SDLServiceType_BulkData]), MIN(putFile.length.unsignedIntegerValue, [[SDLGlobals globals] mtuSizeForServiceType:SDLServiceType_BulkData]))])); - - // First Putfile has some differences due to informing core of the total incoming packet size. - if (index == 0) { - expect(putFile.length).to(equal(@(testFileData.length))); - } else if (index == numberOfPutFiles - 1) { - expect(putFile.length).to(equal(@(testFileData.length - (index * [[SDLGlobals globals] mtuSizeForServiceType:SDLServiceType_BulkData])))); - } else { - expect(putFile.length).to(equal(@([[SDLGlobals globals] mtuSizeForServiceType:SDLServiceType_BulkData]))); - } - } - + + it(@"should have called the completion handler with an error", ^{ + expect(errorResult).toEventually(equal([NSError sdl_fileManager_fileDoesNotExistError])); + expect(@(successResult)).toEventually(equal(@NO)); }); }); }); diff --git a/SmartDeviceLinkTests/Info.plist b/SmartDeviceLinkTests/Info.plist index ba72822e8..7c292c70a 100644 --- a/SmartDeviceLinkTests/Info.plist +++ b/SmartDeviceLinkTests/Info.plist @@ -9,7 +9,7 @@ CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion - 6.0 + 7.0 CFBundleName $(PRODUCT_NAME) CFBundlePackageType diff --git a/SmartDeviceLinkTests/LoggingSpecs/SDLLogConfigurationSpec.m b/SmartDeviceLinkTests/LoggingSpecs/SDLLogConfigurationSpec.m new file mode 100644 index 000000000..21fd0ffcc --- /dev/null +++ b/SmartDeviceLinkTests/LoggingSpecs/SDLLogConfigurationSpec.m @@ -0,0 +1,54 @@ +#import +#import + +#import "SDLLogTargetAppleSystemLog.h" +#import "SDLLogTargetOSLog.h" +#import "SDLLogConfiguration.h" + +QuickSpecBegin(SDLLogConfigurationSpec) + +describe(@"a log configuration", ^{ + __block SDLLogConfiguration *testConfiguration = nil; + + describe(@"a default configuration", ^{ + it(@"should properly set default properties", ^{ + testConfiguration = [SDLLogConfiguration defaultConfiguration]; + + expect(testConfiguration.modules).toNot(beEmpty()); + expect(testConfiguration.filters).to(beEmpty()); + expect(@(testConfiguration.targets.count)).to(equal(@1)); + expect(@(testConfiguration.formatType)).to(equal(@(SDLLogFormatTypeDefault))); + expect(@(testConfiguration.asynchronous)).to(equal(@YES)); + expect(@(testConfiguration.errorsAsynchronous)).to(equal(@NO)); + expect(@(testConfiguration.globalLogLevel)).to(equal(@(SDLLogLevelError))); + + if ([NSProcessInfo processInfo].operatingSystemVersion.majorVersion >= 10) { + expect([testConfiguration.targets anyObject].class).to(equal([SDLLogTargetOSLog class])); + } else { + expect([testConfiguration.targets anyObject].class).to(equal([SDLLogTargetAppleSystemLog class])); + } + }); + }); + + describe(@"a debug configuration", ^{ + it(@"should properly set debug properties", ^{ + testConfiguration = [SDLLogConfiguration debugConfiguration]; + + expect(testConfiguration.modules).toNot(beEmpty()); + expect(testConfiguration.filters).to(beEmpty()); + expect(@(testConfiguration.targets.count)).to(equal(@1)); + expect(@(testConfiguration.formatType)).to(equal(@(SDLLogFormatTypeDetailed))); + expect(@(testConfiguration.asynchronous)).to(equal(@YES)); + expect(@(testConfiguration.errorsAsynchronous)).to(equal(@NO)); + expect(@(testConfiguration.globalLogLevel)).to(equal(@(SDLLogLevelDebug))); + + if ([NSProcessInfo processInfo].operatingSystemVersion.majorVersion >= 10) { + expect([testConfiguration.targets anyObject].class).to(equal([SDLLogTargetOSLog class])); + } else { + expect([testConfiguration.targets anyObject].class).to(equal([SDLLogTargetAppleSystemLog class])); + } + }); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/LoggingSpecs/SDLLogFileModuleSpec.m b/SmartDeviceLinkTests/LoggingSpecs/SDLLogFileModuleSpec.m new file mode 100644 index 000000000..dce3f7bf9 --- /dev/null +++ b/SmartDeviceLinkTests/LoggingSpecs/SDLLogFileModuleSpec.m @@ -0,0 +1,57 @@ +#import +#import + +#import "SDLLogFileModule.h" + +QuickSpecBegin(SDLLogFileModuleSpec) + +describe(@"a file module", ^{ + __block NSString *testModuleName = @"Test Name"; + __block NSSet *testFiles = nil; + __block NSString *testFileName = @"Test File Name"; + __block SDLLogLevel testLogLevel = SDLLogLevelDebug; + + beforeEach(^{ + testFiles = [NSSet setWithObject:testFileName]; + }); + + describe(@"initialized with initWithName:files:level:", ^{ + __block SDLLogFileModule *testModule = nil; + beforeEach(^{ + testModule = [[SDLLogFileModule alloc] initWithName:testModuleName files:testFiles level:testLogLevel]; + }); + + it(@"should properly initialize properties", ^{ + expect(testModule.name).to(match(testModuleName)); + expect(testModule.files).to(equal(testFiles)); + expect(@(testModule.logLevel)).to(equal(@(testLogLevel))); + }); + + it(@"should contain the file", ^{ + BOOL shouldContainFile = [testModule containsFile:testFileName]; + BOOL shouldNotContainFile = [testModule containsFile:@"not a file"]; + expect(@(shouldContainFile)).to(equal(@YES)); + expect(@(shouldNotContainFile)).to(equal(@NO)); + }); + }); + + describe(@"initialized with initWithName:files:", ^{ + __block SDLLogFileModule *testModule = nil; + + it(@"should properly initialize properties", ^{ + testModule = [[SDLLogFileModule alloc] initWithName:testModuleName files:testFiles]; + expect(testModule.name).to(match(testModuleName)); + expect(testModule.files).to(equal(testFiles)); + expect(@(testModule.logLevel)).to(equal(@(SDLLogLevelDefault))); + }); + + it(@"should properly initialize properties", ^{ + testModule = [SDLLogFileModule moduleWithName:testModuleName files:testFiles]; + expect(testModule.name).to(match(testModuleName)); + expect(testModule.files).to(equal(testFiles)); + expect(@(testModule.logLevel)).to(equal(@(SDLLogLevelDefault))); + }); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/LoggingSpecs/SDLLogFilterSpec.m b/SmartDeviceLinkTests/LoggingSpecs/SDLLogFilterSpec.m new file mode 100644 index 000000000..fe9e0fdfd --- /dev/null +++ b/SmartDeviceLinkTests/LoggingSpecs/SDLLogFilterSpec.m @@ -0,0 +1,214 @@ +#import +#import + +#import "SDLLogFileModule.h" +#import "SDLLogFilter.h" +#import "SDLLogModel.h" + + +QuickSpecBegin(SDLfilterspec) + +describe(@"a filter by a string", ^{ + __block NSString *testFilterString = @"filter string"; + __block SDLLogModel *testFilterModel = [[SDLLogModel alloc] initWithMessage:testFilterString timestamp:[NSDate date] level:SDLLogLevelDebug fileName:@"test" moduleName:@"test" functionName:@"test" line:0 queueLabel:@"test"]; + + __block NSString *testOtherString = @"Other string"; + __block SDLLogModel *testOtherModel = [[SDLLogModel alloc] initWithMessage:testOtherString timestamp:[NSDate date] level:SDLLogLevelDebug fileName:@"test" moduleName:@"test" functionName:@"test" line:0 queueLabel:@"test"]; + + __block NSString *testCaseFilterString = @"Filter string"; + __block SDLLogModel *testCaseFilterModel = [[SDLLogModel alloc] initWithMessage:testCaseFilterString timestamp:[NSDate date] level:SDLLogLevelDebug fileName:@"test" moduleName:@"test" functionName:@"test" line:0 queueLabel:@"test"]; + + context(@"that disallows a string", ^{ + context(@"that is case sensitive", ^{ + SDLLogFilter *testFilter = [SDLLogFilter filterByDisallowingString:testFilterString caseSensitive:YES]; + + it(@"should fail a matching string", ^{ + BOOL pass = testFilter.filter(testFilterModel); + expect(@(pass)).to(equal(@NO)); + }); + + it(@"should pass a non-matching string", ^{ + BOOL pass = testFilter.filter(testOtherModel); + expect(@(pass)).to(equal(@YES)); + }); + + it(@"should pass a differently cased string", ^{ + BOOL pass = testFilter.filter(testCaseFilterModel); + expect(@(pass)).to(equal(@YES)); + }); + }); + + context(@"that is case insensitive", ^{ + SDLLogFilter *testFilter = [SDLLogFilter filterByDisallowingString:testFilterString caseSensitive:NO]; + + it(@"should fail a matching string", ^{ + BOOL pass = testFilter.filter(testFilterModel); + expect(@(pass)).to(equal(@NO)); + }); + + it(@"should pass a non-matching string", ^{ + BOOL pass = testFilter.filter(testOtherModel); + expect(@(pass)).to(equal(@YES)); + }); + + it(@"should fail a differently cased string", ^{ + BOOL pass = testFilter.filter(testCaseFilterModel); + expect(@(pass)).to(equal(@NO)); + }); + }); + }); + + context(@"that allows a string", ^{ + context(@"that is case sensitive", ^{ + SDLLogFilter *testFilter = [SDLLogFilter filterByAllowingString:testFilterString caseSensitive:YES]; + + it(@"should pass a matching string", ^{ + BOOL pass = testFilter.filter(testFilterModel); + expect(@(pass)).to(equal(@YES)); + }); + + it(@"should fail a non-matching string", ^{ + BOOL pass = testFilter.filter(testOtherModel); + expect(@(pass)).to(equal(@NO)); + }); + + it(@"should fail a differently cased string", ^{ + BOOL pass = testFilter.filter(testCaseFilterModel); + expect(@(pass)).to(equal(@NO)); + }); + }); + + context(@"that is case insensitive", ^{ + SDLLogFilter *testFilter = [SDLLogFilter filterByAllowingString:testFilterString caseSensitive:NO]; + + it(@"should pass a matching string", ^{ + BOOL pass = testFilter.filter(testFilterModel); + expect(@(pass)).to(equal(@YES)); + }); + + it(@"should fail a non-matching string", ^{ + BOOL pass = testFilter.filter(testOtherModel); + expect(@(pass)).to(equal(@NO)); + }); + + it(@"should pass a differently cased string", ^{ + BOOL pass = testFilter.filter(testCaseFilterModel); + expect(@(pass)).to(equal(@YES)); + }); + }); + }); +}); + +describe(@"a filter by regex", ^{ + __block NSString *testFilterString = @"filter string"; + __block SDLLogModel *testFilterModel = [[SDLLogModel alloc] initWithMessage:testFilterString timestamp:[NSDate date] level:SDLLogLevelDebug fileName:@"test" moduleName:@"test" functionName:@"test" line:0 queueLabel:@"test"]; + + __block NSString *testOtherString = @"OTHER STRING"; + __block SDLLogModel *testOtherModel = [[SDLLogModel alloc] initWithMessage:testOtherString timestamp:[NSDate date] level:SDLLogLevelDebug fileName:@"test" moduleName:@"test" functionName:@"test" line:0 queueLabel:@"test"]; + + context(@"that disallows a regex", ^{ + NSRegularExpression *expr = [NSRegularExpression regularExpressionWithPattern:@"[a-z]+" options:0 error:nil]; + SDLLogFilter *testFilter = [SDLLogFilter filterByDisallowingRegex:expr]; + + it(@"should fail a matching string", ^{ + BOOL pass = testFilter.filter(testFilterModel); + expect(@(pass)).to(equal(@NO)); + }); + + it(@"should pass a non-matching string", ^{ + BOOL pass = testFilter.filter(testOtherModel); + expect(@(pass)).to(equal(@YES)); + }); + }); + + context(@"that allows a regex", ^{ + NSRegularExpression *expr = [NSRegularExpression regularExpressionWithPattern:@"[a-z]+" options:0 error:nil]; + SDLLogFilter *testFilter = [SDLLogFilter filterByAllowingRegex:expr]; + + it(@"should pass a matching string", ^{ + BOOL pass = testFilter.filter(testFilterModel); + expect(@(pass)).to(equal(@YES)); + }); + + it(@"should fail a non-matching string", ^{ + BOOL pass = testFilter.filter(testOtherModel); + expect(@(pass)).to(equal(@NO)); + }); + }); +}); + +describe(@"a filter by module", ^{ + __block NSString *testFilterModuleName = @"filter module"; + __block SDLLogModel *testFilterModel = [[SDLLogModel alloc] initWithMessage:@"test" timestamp:[NSDate date] level:SDLLogLevelDebug fileName:@"test" moduleName:testFilterModuleName functionName:@"test" line:0 queueLabel:@"test"]; + __block SDLLogFileModule *testFilterModule = [SDLLogFileModule moduleWithName:testFilterModuleName files:[NSSet setWithObject:@"test"]]; + + __block NSString *testOtherModuleName = @"other module"; + __block SDLLogModel *testOtherModel = [[SDLLogModel alloc] initWithMessage:@"test" timestamp:[NSDate date] level:SDLLogLevelDebug fileName:@"test" moduleName:testOtherModuleName functionName:@"test" line:0 queueLabel:@"test"]; + + context(@"that disallows modules", ^{ + SDLLogFilter *testFilter = [SDLLogFilter filterByDisallowingModules:[NSSet setWithObject:testFilterModule.name]]; + + it(@"should fail a matching module", ^{ + BOOL pass = testFilter.filter(testFilterModel); + expect(@(pass)).to(equal(@NO)); + }); + + it(@"should pass a non-matching module", ^{ + BOOL pass = testFilter.filter(testOtherModel); + expect(@(pass)).to(equal(@YES)); + }); + }); + + context(@"that allows modules", ^{ + SDLLogFilter *testFilter = [SDLLogFilter filterByAllowingModules:[NSSet setWithObject:testFilterModule.name]]; + + it(@"should pass a matching string", ^{ + BOOL pass = testFilter.filter(testFilterModel); + expect(@(pass)).to(equal(@YES)); + }); + + it(@"should fail a non-matching string", ^{ + BOOL pass = testFilter.filter(testOtherModel); + expect(@(pass)).to(equal(@NO)); + }); + }); +}); + +describe(@"a filter by file name", ^{ + __block NSString *testFilterFilename = @"filter file"; + __block SDLLogModel *testFilterModel = [[SDLLogModel alloc] initWithMessage:@"test" timestamp:[NSDate date] level:SDLLogLevelDebug fileName:testFilterFilename moduleName:@"test" functionName:@"test" line:0 queueLabel:@"test"]; + + __block NSString *testOtherModuleName = @"other file"; + __block SDLLogModel *testOtherModel = [[SDLLogModel alloc] initWithMessage:@"test" timestamp:[NSDate date] level:SDLLogLevelDebug fileName:testOtherModuleName moduleName:@"test" functionName:@"test" line:0 queueLabel:@"test"]; + + context(@"that disallows modules", ^{ + SDLLogFilter *testFilter = [SDLLogFilter filterByDisallowingFileNames:[NSSet setWithObject:testFilterFilename]]; + + it(@"should fail a matching module", ^{ + BOOL pass = testFilter.filter(testFilterModel); + expect(@(pass)).to(equal(@NO)); + }); + + it(@"should pass a non-matching module", ^{ + BOOL pass = testFilter.filter(testOtherModel); + expect(@(pass)).to(equal(@YES)); + }); + }); + + context(@"that allows modules", ^{ + SDLLogFilter *testFilter = [SDLLogFilter filterByAllowingFileNames:[NSSet setWithObject:testFilterFilename]]; + + it(@"should pass a matching string", ^{ + BOOL pass = testFilter.filter(testFilterModel); + expect(@(pass)).to(equal(@YES)); + }); + + it(@"should fail a non-matching string", ^{ + BOOL pass = testFilter.filter(testOtherModel); + expect(@(pass)).to(equal(@NO)); + }); + }); +}); + + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/LoggingSpecs/SDLLogManagerSpec.m b/SmartDeviceLinkTests/LoggingSpecs/SDLLogManagerSpec.m new file mode 100644 index 000000000..28977cf4d --- /dev/null +++ b/SmartDeviceLinkTests/LoggingSpecs/SDLLogManagerSpec.m @@ -0,0 +1,267 @@ +#import +#import + +#import "SDLLogConfiguration.h" +#import "SDLLogFileModule.h" +#import "SDLLogFilter.h" +#import "SDLLogManager.h" +#import "SDLLogModel.h" + +#import "TestLogTarget.h" + +QuickSpecBegin(SDLLogManagerSpec) + +describe(@"a log manager", ^{ + __block SDLLogManager *testManager = nil; + __block NSDate *testDate = [NSDate date]; + __block NSString *formattedDate = [[SDLLogManager dateFormatter] stringFromDate:testDate]; + + describe(@"when initializing", ^{ + beforeEach(^{ + testManager = [[SDLLogManager alloc] init]; + }); + + it(@"should properly initialize properties", ^{ + expect(testManager.modules).toNot(beNil()); + expect(testManager.targets).toNot(beNil()); + expect(testManager.filters).toNot(beNil()); + expect(@(testManager.asynchronous)).to(beTruthy()); + expect(@(testManager.errorsAsynchronous)).to(beFalsy()); + expect(@(testManager.globalLogLevel)).to(equal(@(SDLLogLevelError))); + expect(@(testManager.formatType)).to(equal(@(SDLLogFormatTypeDefault))); + }); + }); + + describe(@"after setting a configuration", ^{ + __block SDLLogConfiguration *testConfiguration = nil; + __block TestLogTarget *testLogTarget = nil; + + beforeEach(^{ + testManager = [[SDLLogManager alloc] init]; + testLogTarget = [TestLogTarget logger]; + + testConfiguration = [SDLLogConfiguration debugConfiguration]; + testConfiguration.modules = [NSSet setWithObject:[SDLLogFileModule moduleWithName:@"test" files:[NSSet setWithObject:@"test"]]]; + testConfiguration.filters = [NSSet setWithObject:[SDLLogFilter filterByDisallowingString:@"this string should never trigger" caseSensitive:NO]]; + testConfiguration.targets = [NSSet setWithObject:testLogTarget]; + testConfiguration.asynchronous = NO; + + [testManager setConfiguration:testConfiguration]; + }); + + it(@"should properly set the configuration", ^{ + expect(testManager.modules).to(equal(testConfiguration.modules)); + expect(testManager.filters).to(equal(testConfiguration.filters)); + expect(testManager.targets).to(equal(testConfiguration.targets)); + expect(@(testManager.asynchronous)).to(equal(@(testConfiguration.asynchronous))); + expect(@(testManager.errorsAsynchronous)).to(equal(@(testConfiguration.errorsAsynchronous))); + expect(@(testManager.globalLogLevel)).to(equal(@(SDLLogLevelDebug))); + expect(@(testManager.formatType)).to(equal(@(SDLLogFormatTypeDetailed))); + }); + + it(@"should properly log a message to log targets", ^{ + SDLLogLevel testLogLevel = SDLLogLevelDebug; + NSString *testFileName = @"File name"; + NSString *testFunctionName = @"Function name"; + NSInteger testLine = 123; + NSString *testMessage = @"test message"; + NSString *testQueue = @"test queue"; + [testManager logWithLevel:testLogLevel timestamp:testDate file:testFileName functionName:testFunctionName line:testLine queue:testQueue message:testMessage]; + + expect(testLogTarget.loggedMessages.firstObject.message).to(equal(testMessage)); + }); + + describe(@"logging a formatted log string", ^{ + __block SDLLogLevel testLogLevel = SDLLogLevelDebug; + __block NSString *testFileName = @"file"; + __block NSString *testFunctionName = @"function"; + __block NSInteger testLine = 123; + __block NSString *testMessage = @"message"; + __block NSString *testQueue = @"queue"; + + context(@"simple format", ^{ + it(@"should properly log the formatted message", ^{ + testConfiguration.formatType = SDLLogFormatTypeSimple; + [testManager setConfiguration:testConfiguration]; + [testManager logWithLevel:testLogLevel timestamp:testDate file:testFileName functionName:testFunctionName line:testLine queue:testQueue message:testMessage]; + + NSString *formattedLog = [NSString stringWithFormat:@"%@ 🔵 (SDL)- %@", formattedDate, testMessage]; + expect(testLogTarget.formattedLogMessages.firstObject).to(contain(formattedLog)); + }); + }); + + context(@"default format", ^{ + it(@"should properly log the formatted message", ^{ + testConfiguration.formatType = SDLLogFormatTypeDefault; + [testManager setConfiguration:testConfiguration]; + [testManager logWithLevel:testLogLevel timestamp:testDate file:testFileName functionName:testFunctionName line:testLine queue:testQueue message:testMessage]; + + NSString *formattedLog = [NSString stringWithFormat:@"%@ 🔵 (SDL):%@:%ld - %@", formattedDate, testFileName, testLine, testMessage]; + expect(testLogTarget.formattedLogMessages.firstObject).to(contain(formattedLog)); + }); + }); + + context(@"detailed format", ^{ + it(@"should properly log the formatted message", ^{ + testConfiguration.formatType = SDLLogFormatTypeDetailed; + [testManager setConfiguration:testConfiguration]; + [testManager logWithLevel:testLogLevel timestamp:testDate file:testFileName functionName:testFunctionName line:testLine queue:testQueue message:testMessage]; + + NSString *formattedLog = [NSString stringWithFormat:@"%@ 🔵 DEBUG %@ (SDL):%@:%@:%ld - %@", formattedDate, testQueue, testFileName, testFunctionName, testLine, testMessage]; + expect(testLogTarget.formattedLogMessages.firstObject).to(contain(formattedLog)); + }); + }); + }); + + describe(@"log output", ^{ + __block NSString *testFileName = @"file"; + __block NSString *testFunctionName = @"function"; + __block NSString *testQueue = @"queue"; + + __block SDLLogLevel testLogLevelWarning = SDLLogLevelWarning; + __block SDLLogLevel testLogLevelError = SDLLogLevelError; + __block SDLLogLevel testLogLevelDebug = SDLLogLevelDebug; + __block SDLLogLevel testLogLevelVerbose = SDLLogLevelVerbose; + + __block NSInteger testLineWarning; + __block NSString *testMessageWarning; + __block NSString *testWarningFormattedLog; + __block NSInteger testLineError; + __block NSString *testMessageError; + __block NSString *testErrorFormattedLog; + __block NSInteger testLineDebug; + __block NSString *testMessageDebug; + __block NSString *testDebugFormattedLog; + __block NSInteger testLineVerbose; + __block NSString *testMessageVerbose; + __block NSString *testVerboseFormattedLog; + + __block int expectedLogCount; + __block NSMutableArray *expectedMessages; + __block NSMutableArray *notExpectedMessages; + + context(@"The type of debug messages logged depends on the SDLLogLevel", ^{ + beforeEach(^{ + testConfiguration = [[SDLLogConfiguration alloc] init]; + testConfiguration.targets = [NSSet setWithObject:testLogTarget]; + testConfiguration.asynchronous = NO; + testConfiguration.formatType = SDLLogFormatTypeSimple; + + testLineWarning = 1; + testMessageWarning = @"warningMessage"; + testWarningFormattedLog = [NSString stringWithFormat:@"%@ 🔶 (SDL)- %@", formattedDate, testMessageWarning]; + + testLineError = 2; + testMessageError = @"errorMessage"; + testErrorFormattedLog = [NSString stringWithFormat:@"%@ ❌ (SDL)- %@", formattedDate, testMessageError]; + + testLineDebug = 3; + testMessageDebug = @"debugMessage"; + testDebugFormattedLog = [NSString stringWithFormat:@"%@ 🔵 (SDL)- %@", formattedDate, testMessageDebug]; + + testLineVerbose = 4; + testMessageVerbose = @"verboseMessage"; + testVerboseFormattedLog = [NSString stringWithFormat:@"%@ ⚪ (SDL)- %@", formattedDate, testMessageVerbose]; + + expectedMessages = [[NSMutableArray alloc] init]; + notExpectedMessages = [[NSMutableArray alloc] init]; + }); + + describe(@"When the global log level is set", ^{ + beforeEach(^{ + expectedLogCount = 0; + expect(testLogTarget.formattedLogMessages.count).to(equal(0)); + expect(expectedMessages.count).to(equal(0)); + expect(notExpectedMessages.count).to(equal(0)); + }); + + it(@"should not log anything when the log level is OFF", ^{ + testConfiguration.globalLogLevel = SDLLogLevelOff; + expectedLogCount = 0; + + [notExpectedMessages addObject:testWarningFormattedLog]; + [notExpectedMessages addObject:testErrorFormattedLog]; + [notExpectedMessages addObject:testDebugFormattedLog]; + [notExpectedMessages addObject:testVerboseFormattedLog]; + }); + + it(@"should only log errors when the log level is ERROR", ^{ + testConfiguration.globalLogLevel = SDLLogLevelError; + expectedLogCount = 1; + + [expectedMessages addObject:testErrorFormattedLog]; + + [notExpectedMessages addObject:testWarningFormattedLog]; + [notExpectedMessages addObject:testDebugFormattedLog]; + [notExpectedMessages addObject:testVerboseFormattedLog]; + }); + + it(@"should only log errors and warnings when the log level is WARNING", ^{ + testConfiguration.globalLogLevel = SDLLogLevelWarning; + expectedLogCount = 2; + + [expectedMessages addObject:testWarningFormattedLog]; + [expectedMessages addObject:testErrorFormattedLog]; + + [notExpectedMessages addObject:testDebugFormattedLog]; + [notExpectedMessages addObject:testVerboseFormattedLog]; + }); + + it(@"should only log errors, warnings, and debug logs when the log level is DEBUG", ^{ + testConfiguration.globalLogLevel = SDLLogLevelDebug; + expectedLogCount = 3; + + [expectedMessages addObject:testWarningFormattedLog]; + [expectedMessages addObject:testErrorFormattedLog]; + [expectedMessages addObject:testDebugFormattedLog]; + + [notExpectedMessages addObject:testVerboseFormattedLog]; + }); + + it(@"should log errors, warnings, debug, and verbose logs when the log level is VERBOSE", ^{ + testConfiguration.globalLogLevel = SDLLogLevelVerbose; + expectedLogCount = 4; + + [expectedMessages addObject:testWarningFormattedLog]; + [expectedMessages addObject:testErrorFormattedLog]; + [expectedMessages addObject:testDebugFormattedLog]; + [expectedMessages addObject:testVerboseFormattedLog]; + }); + + afterEach(^{ + [testManager setConfiguration:testConfiguration]; + + // Warning + [testManager logWithLevel:testLogLevelWarning timestamp:testDate file:testFileName functionName:testFunctionName line:testLineWarning queue:testQueue message:testMessageWarning]; + + // Error + [testManager logWithLevel:testLogLevelError timestamp:testDate file:testFileName functionName:testFunctionName line:testLineError queue:testQueue message:testMessageError]; + + // Debug + [testManager logWithLevel:testLogLevelDebug timestamp:testDate file:testFileName functionName:testFunctionName line:testLineDebug queue:testQueue message:testMessageDebug]; + + // Verbose + [testManager logWithLevel:testLogLevelVerbose timestamp:testDate file:testFileName functionName:testFunctionName line:testLineVerbose queue:testQueue message:testMessageVerbose]; + }); + }); + + afterEach(^{ + expect(testManager.asynchronous).to(equal(NO)); + expect(testLogTarget.formattedLogMessages.count).to(equal(expectedLogCount)); + + for(int i = 0; i < expectedMessages.count; i += 1) { + expect([testLogTarget.formattedLogMessages objectAtIndex:i]).to(contain(expectedMessages[i])); + } + + for(int i = 0; i < notExpectedMessages.count; i += 1) { + expect(testLogTarget.formattedLogMessages).toNot(contain(notExpectedMessages[i])); + } + }); + }); + }); + }); +}); + + + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/LoggingSpecs/SDLLogModelSpec.m b/SmartDeviceLinkTests/LoggingSpecs/SDLLogModelSpec.m new file mode 100644 index 000000000..4827ac39e --- /dev/null +++ b/SmartDeviceLinkTests/LoggingSpecs/SDLLogModelSpec.m @@ -0,0 +1,33 @@ +#import +#import + +#import "SDLLogModel.h" + +QuickSpecBegin(SDLLogModelSpec) + +describe(@"a log model", ^{ + __block SDLLogModel *testModel = nil; + + it(@"should initialize correctly", ^{ + NSString *testMessage = @"test message"; + NSDate *testTimestamp = [NSDate date]; + SDLLogLevel testLogLevel = SDLLogLevelDebug; + NSString *testFileName = @"test file name"; + NSString *testModuleName = @"test module name"; + NSString *testFunctionName = @"test function name"; + NSInteger testLine = 123; + NSString *testQueue = @"test queue label"; + testModel = [[SDLLogModel alloc] initWithMessage:testMessage timestamp:testTimestamp level:testLogLevel fileName:testFileName moduleName:testModuleName functionName:testFunctionName line:testLine queueLabel:testQueue]; + + expect(testModel.message).to(match(testMessage)); + expect(testModel.timestamp).to(equal(testTimestamp)); + expect(@(testModel.level)).to(equal(@(testLogLevel))); + expect(testModel.fileName).to(match(testFileName)); + expect(testModel.moduleName).to(match(testModuleName)); + expect(testModel.functionName).to(match(testFunctionName)); + expect(@(testModel.line)).to(equal(@(testLine))); + expect(testModel.queueLabel).to(match(testQueue)); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/LoggingSpecs/TestLogTarget.h b/SmartDeviceLinkTests/LoggingSpecs/TestLogTarget.h new file mode 100644 index 000000000..b77b342a8 --- /dev/null +++ b/SmartDeviceLinkTests/LoggingSpecs/TestLogTarget.h @@ -0,0 +1,21 @@ +// +// TestLogTarget.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 3/7/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +#import "SDLLogTarget.h" + +@class SDLLogModel; + + +@interface TestLogTarget : NSObject + +@property (strong, nonatomic, readonly) NSArray *loggedMessages; +@property (strong, nonatomic, readonly) NSArray *formattedLogMessages; + +@end diff --git a/SmartDeviceLinkTests/LoggingSpecs/TestLogTarget.m b/SmartDeviceLinkTests/LoggingSpecs/TestLogTarget.m new file mode 100644 index 000000000..c8d7d327c --- /dev/null +++ b/SmartDeviceLinkTests/LoggingSpecs/TestLogTarget.m @@ -0,0 +1,58 @@ +// +// TestLogTarget.m +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 3/7/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "TestLogTarget.h" + +#import "SDLLogModel.h" + + +@interface TestLogTarget () + +@property (strong, nonatomic) NSMutableArray *mutableLoggedMessages; +@property (strong, nonatomic) NSMutableArray *mutableFormattedLogMessages; + +@end + +@implementation TestLogTarget + +- (instancetype)init { + self = [super init]; + if (!self) { return nil; } + + _mutableLoggedMessages = [NSMutableArray array]; + _mutableFormattedLogMessages = [NSMutableArray array]; + + return self; +} + +- (NSArray *)loggedMessages { + return [_mutableLoggedMessages copy]; +} + +- (NSArray *)formattedLogMessages { + return [_mutableFormattedLogMessages copy]; +} + ++ (id)logger { + return [[self alloc] init]; +} + +- (BOOL)setupLogger { + return YES; +} + +- (void)logWithLog:(SDLLogModel *)log formattedLog:(NSString *)stringLog { + [_mutableLoggedMessages addObject:log]; + [_mutableFormattedLogMessages addObject:stringLog]; +} + +- (void)teardownLogger { + +} + +@end diff --git a/SmartDeviceLinkTests/ProtocolSpecs/ControlFramePayloadSpecs/SDLControlFramePayloadVideoStartServiceSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/ControlFramePayloadSpecs/SDLControlFramePayloadVideoStartServiceSpec.m index 8816d6813..c93d72c9b 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/ControlFramePayloadSpecs/SDLControlFramePayloadVideoStartServiceSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/ControlFramePayloadSpecs/SDLControlFramePayloadVideoStartServiceSpec.m @@ -15,15 +15,15 @@ __block SDLControlFramePayloadVideoStartService *testPayload = nil; __block int32_t testHeight = SDLControlFrameInt32NotFound; __block int32_t testWidth = SDLControlFrameInt32NotFound; - __block SDLVideoStreamingCodec *testCodec = nil; - __block SDLVideoStreamingProtocol *testProtocol = nil; + __block SDLVideoStreamingCodec testCodec = nil; + __block SDLVideoStreamingProtocol testProtocol = nil; context(@"with paramaters", ^{ beforeEach(^{ testHeight = 59794; testWidth = 363; - testCodec = [SDLVideoStreamingCodec H265]; - testProtocol = [SDLVideoStreamingProtocol RTMP]; + testCodec = SDLVideoStreamingCodecH265; + testProtocol = SDLVideoStreamingProtocolRTMP; testPayload = [[SDLControlFramePayloadVideoStartService alloc] initWithVideoHeight:testHeight width:testWidth protocol:testProtocol codec:testCodec]; }); @@ -54,14 +54,14 @@ __block NSData *testData = nil; __block int32_t testHeight = SDLControlFrameInt32NotFound; __block int32_t testWidth = SDLControlFrameInt32NotFound; - __block SDLVideoStreamingCodec *testCodec = nil; - __block SDLVideoStreamingProtocol *testProtocol = nil; + __block SDLVideoStreamingCodec testCodec = nil; + __block SDLVideoStreamingProtocol testProtocol = nil; beforeEach(^{ testHeight = 787; testWidth = 36365; - testCodec = [SDLVideoStreamingCodec THEORA]; - testProtocol = [SDLVideoStreamingProtocol RTSP]; + testCodec = SDLVideoStreamingCodecTheora; + testProtocol = SDLVideoStreamingProtocolRTSP; SDLControlFramePayloadVideoStartService *firstPayload = [[SDLControlFramePayloadVideoStartService alloc] initWithVideoHeight:testHeight width:testWidth protocol:testProtocol codec:testCodec]; testData = firstPayload.data; diff --git a/SmartDeviceLinkTests/ProtocolSpecs/ControlFramePayloadSpecs/SDLControlFrameVideoStartServiceAckSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/ControlFramePayloadSpecs/SDLControlFrameVideoStartServiceAckSpec.m index 586a2b886..c817f44f4 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/ControlFramePayloadSpecs/SDLControlFrameVideoStartServiceAckSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/ControlFramePayloadSpecs/SDLControlFrameVideoStartServiceAckSpec.m @@ -16,16 +16,16 @@ __block int64_t testMTU = SDLControlFrameInt64NotFound; __block int32_t testHeight = SDLControlFrameInt32NotFound; __block int32_t testWidth = SDLControlFrameInt32NotFound; - __block SDLVideoStreamingCodec *testCodec = nil; - __block SDLVideoStreamingProtocol *testProtocol = nil; + __block SDLVideoStreamingCodec testCodec = nil; + __block SDLVideoStreamingProtocol testProtocol = nil; context(@"with paramaters", ^{ beforeEach(^{ testMTU = 1247988; testHeight = 5974; testWidth = 36; - testCodec = [SDLVideoStreamingCodec H264]; - testProtocol = [SDLVideoStreamingProtocol RAW]; + testCodec = SDLVideoStreamingCodecH264; + testProtocol = SDLVideoStreamingProtocolRAW; testPayload = [[SDLControlFramePayloadVideoStartServiceAck alloc] initWithMTU:testMTU height:testHeight width:testWidth protocol:testProtocol codec:testCodec]; }); @@ -58,15 +58,15 @@ __block int64_t testMTU = SDLControlFrameInt64NotFound; __block int32_t testHeight = SDLControlFrameInt32NotFound; __block int32_t testWidth = SDLControlFrameInt32NotFound; - __block SDLVideoStreamingCodec *testCodec = nil; - __block SDLVideoStreamingProtocol *testProtocol = nil; + __block SDLVideoStreamingCodec testCodec = nil; + __block SDLVideoStreamingProtocol testProtocol = nil; beforeEach(^{ testMTU = 4584651; testHeight = 787; testWidth = 36365; - testCodec = [SDLVideoStreamingCodec VP8]; - testProtocol = [SDLVideoStreamingProtocol RTSP]; + testCodec = SDLVideoStreamingCodecVP8; + testProtocol = SDLVideoStreamingProtocolRTSP; SDLControlFramePayloadVideoStartServiceAck *firstPayload = [[SDLControlFramePayloadVideoStartServiceAck alloc] initWithMTU:testMTU height:testHeight width:testWidth protocol:testProtocol codec:testCodec]; testData = firstPayload.data; diff --git a/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLProtocolHeaderSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLProtocolHeaderSpec.m index e00062a34..f2aeb1303 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLProtocolHeaderSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLProtocolHeaderSpec.m @@ -21,18 +21,18 @@ expect([SDLProtocolHeader headerForVersion:2]).to(beAKindOf(SDLV2ProtocolHeader.class)); }); - it(@"Should return a v2 header for unknown version", ^ { - expect([SDLProtocolHeader headerForVersion:255].version).to(equal(255)); + it(@"Should return latest version for unknown version", ^ { + expect([SDLProtocolHeader headerForVersion:5]).to(beAKindOf(SDLV2ProtocolHeader.class)); }); }); describe(@"DetermineVersion Tests", ^ { it(@"Should return the correct version", ^ { - const char bytesV1[8] = {0x10 | SDLFrameType_First, SDLServiceType_BulkData, SDLFrameData_StartSessionACK, 0x5E, 0x00, 0x00, 0x00, 0x00}; + const char bytesV1[8] = {0x10 | SDLFrameTypeFirst, SDLServiceTypeBulkData, SDLFrameInfoStartServiceACK, 0x5E, 0x00, 0x00, 0x00, 0x00}; NSData* messageV1 = [NSData dataWithBytes:bytesV1 length:8]; expect(@([SDLProtocolHeader determineVersion:messageV1])).to(equal(@1)); - const char bytesV2[12] = {0x20 | SDLFrameType_First, SDLServiceType_BulkData, SDLFrameData_StartSessionACK, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x44, 0x44}; + const char bytesV2[12] = {0x20 | SDLFrameTypeFirst, SDLServiceTypeBulkData, SDLFrameInfoStartServiceACK, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x44, 0x44}; NSData* messageV2 = [NSData dataWithBytes:bytesV2 length:12]; expect(@([SDLProtocolHeader determineVersion:messageV2])).to(equal(@2)); }); diff --git a/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLV1ProtocolHeaderSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLV1ProtocolHeaderSpec.m index ff0ea7fd4..66abf2022 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLV1ProtocolHeaderSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLV1ProtocolHeaderSpec.m @@ -21,13 +21,13 @@ testHeader = [[SDLV1ProtocolHeader alloc] init]; testHeader.encrypted = YES; - testHeader.frameType = SDLFrameType_Control; - testHeader.serviceType = SDLServiceType_RPC; - testHeader.frameData = SDLFrameData_StartSession; + testHeader.frameType = SDLFrameTypeControl; + testHeader.serviceType = SDLServiceTypeRPC; + testHeader.frameData = SDLFrameInfoStartService; testHeader.sessionID = 0x53; testHeader.bytesInPayload = 0x1234; - const char testBytes[8] = {0x18 | (SDLFrameType_Control & 0xFF), SDLServiceType_RPC, SDLFrameData_StartSession, 0x53, 0x00, 0x00, 0x12, 0x34}; + const char testBytes[8] = {0x18 | (SDLFrameTypeControl & 0xFF), SDLServiceTypeRPC, SDLFrameInfoStartService, 0x53, 0x00, 0x00, 0x12, 0x34}; testData = [NSData dataWithBytes:testBytes length:8]; }); @@ -39,9 +39,9 @@ it(@"Should set and get correctly", ^ { expect(@(testHeader.encrypted)).to(equal(@YES)); - expect(@(testHeader.frameType)).to(equal(@(SDLFrameType_Control))); - expect(@(testHeader.serviceType)).to(equal(@(SDLServiceType_RPC))); - expect(@(testHeader.frameData)).to(equal(@(SDLFrameData_StartSession))); + expect(@(testHeader.frameType)).to(equal(@(SDLFrameTypeControl))); + expect(@(testHeader.serviceType)).to(equal(@(SDLServiceTypeRPC))); + expect(@(testHeader.frameData)).to(equal(@(SDLFrameInfoStartService))); expect(@(testHeader.sessionID)).to(equal(@0x53)); expect(@(testHeader.bytesInPayload)).to(equal(@0x1234)); }); @@ -55,9 +55,9 @@ expect(@(headerCopy.size)).to(equal(@8)); expect(@(headerCopy.encrypted)).to(equal(@YES)); - expect(@(headerCopy.frameType)).to(equal(@(SDLFrameType_Control))); - expect(@(headerCopy.serviceType)).to(equal(@(SDLServiceType_RPC))); - expect(@(headerCopy.frameData)).to(equal(@(SDLFrameData_StartSession))); + expect(@(headerCopy.frameType)).to(equal(@(SDLFrameTypeControl))); + expect(@(headerCopy.serviceType)).to(equal(@(SDLServiceTypeRPC))); + expect(@(headerCopy.frameData)).to(equal(@(SDLFrameInfoStartService))); expect(@(headerCopy.sessionID)).to(equal(@0x53)); expect(@(headerCopy.bytesInPayload)).to(equal(@0x1234)); @@ -78,12 +78,12 @@ [constructedHeader parse:testData]; expect(@(constructedHeader.encrypted)).to(equal(@YES)); - expect(@(constructedHeader.frameType)).to(equal(@(SDLFrameType_Control))); - expect(@(constructedHeader.serviceType)).to(equal(@(SDLServiceType_RPC))); - expect(@(constructedHeader.frameData)).to(equal(@(SDLFrameData_StartSession))); + expect(@(constructedHeader.frameType)).to(equal(@(SDLFrameTypeControl))); + expect(@(constructedHeader.serviceType)).to(equal(@(SDLServiceTypeRPC))); + expect(@(constructedHeader.frameData)).to(equal(@(SDLFrameInfoStartService))); expect(@(constructedHeader.sessionID)).to(equal(@0x53)); expect(@(constructedHeader.bytesInPayload)).to(equal(@0x1234)); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLV2ProtocolHeaderSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLV2ProtocolHeaderSpec.m index 7b58a1b39..74969e062 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLV2ProtocolHeaderSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/HeaderSpecs/SDLV2ProtocolHeaderSpec.m @@ -21,14 +21,14 @@ testHeader = [[SDLV2ProtocolHeader alloc] init]; testHeader.encrypted = YES; - testHeader.frameType = SDLFrameType_Control; - testHeader.serviceType = SDLServiceType_RPC; - testHeader.frameData = SDLFrameData_StartSession; + testHeader.frameType = SDLFrameTypeControl; + testHeader.serviceType = SDLServiceTypeRPC; + testHeader.frameData = SDLFrameInfoStartService; testHeader.sessionID = 0x53; testHeader.bytesInPayload = 0x1234; testHeader.messageID = 0x6DAB424F; - const char testBytes[12] = {0x28 | (SDLFrameType_Control & 0xFF), SDLServiceType_RPC, SDLFrameData_StartSession, 0x53, 0x00, 0x00, 0x12, 0x34, 0x6D, 0xAB, 0x42, 0x4F}; + const char testBytes[12] = {0x28 | (SDLFrameTypeControl & 0xFF), SDLServiceTypeRPC, SDLFrameInfoStartService, 0x53, 0x00, 0x00, 0x12, 0x34, 0x6D, 0xAB, 0x42, 0x4F}; testData = [NSData dataWithBytes:testBytes length:12]; }); @@ -40,9 +40,9 @@ it(@"Should set and get correctly", ^ { expect(@(testHeader.encrypted)).to(equal(@YES)); - expect(@(testHeader.frameType)).to(equal(@(SDLFrameType_Control))); - expect(@(testHeader.serviceType)).to(equal(@(SDLServiceType_RPC))); - expect(@(testHeader.frameData)).to(equal(@(SDLFrameData_StartSession))); + expect(@(testHeader.frameType)).to(equal(@(SDLFrameTypeControl))); + expect(@(testHeader.serviceType)).to(equal(@(SDLServiceTypeRPC))); + expect(@(testHeader.frameData)).to(equal(@(SDLFrameInfoStartService))); expect(@(testHeader.sessionID)).to(equal(@0x53)); expect(@(testHeader.bytesInPayload)).to(equal(@0x1234)); expect(@(testHeader.messageID)).to(equal(@0x6DAB424F)); @@ -57,9 +57,9 @@ expect(@(headerCopy.size)).to(equal(@12)); expect(@(headerCopy.encrypted)).to(equal(@YES)); - expect(@(headerCopy.frameType)).to(equal(@(SDLFrameType_Control))); - expect(@(headerCopy.serviceType)).to(equal(@(SDLServiceType_RPC))); - expect(@(headerCopy.frameData)).to(equal(@(SDLFrameData_StartSession))); + expect(@(headerCopy.frameType)).to(equal(@(SDLFrameTypeControl))); + expect(@(headerCopy.serviceType)).to(equal(@(SDLServiceTypeRPC))); + expect(@(headerCopy.frameData)).to(equal(@(SDLFrameInfoStartService))); expect(@(headerCopy.sessionID)).to(equal(@0x53)); expect(@(headerCopy.bytesInPayload)).to(equal(@0x1234)); expect(@(testHeader.messageID)).to(equal(@0x6DAB424F)); @@ -68,36 +68,6 @@ }); }); -describe(@"compressed deprecated spec", ^{ - describe(@"setting encrypted", ^{ - __block BOOL value = NO; - beforeEach(^{ - testHeader.encrypted = value; - }); - - it(@"should give the same value for compressed", ^{ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - expect(@(testHeader.compressed)).to(equal(@(value))); -#pragma clang diagnostic pop - }); - }); - - describe(@"setting compressed", ^{ - __block BOOL value = YES; - beforeEach(^{ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - testHeader.compressed = value; -#pragma clang diagnostic pop - }); - - it(@"should give the same value for compressed", ^{ - expect(@(testHeader.encrypted)).to(equal(@(value))); - }); - }); -}); - describe(@"Data Tests", ^ { it (@"Should convert to byte data correctly", ^ { expect(testHeader.data).to(equal(testData)); @@ -111,13 +81,13 @@ [constructedHeader parse:testData]; expect(@(constructedHeader.encrypted)).to(equal(@YES)); - expect(@(constructedHeader.frameType)).to(equal(@(SDLFrameType_Control))); - expect(@(constructedHeader.serviceType)).to(equal(@(SDLServiceType_RPC))); - expect(@(constructedHeader.frameData)).to(equal(@(SDLFrameData_StartSession))); + expect(@(constructedHeader.frameType)).to(equal(@(SDLFrameTypeControl))); + expect(@(constructedHeader.serviceType)).to(equal(@(SDLServiceTypeRPC))); + expect(@(constructedHeader.frameData)).to(equal(@(SDLFrameInfoStartService))); expect(@(constructedHeader.sessionID)).to(equal(@0x53)); expect(@(constructedHeader.bytesInPayload)).to(equal(@0x1234)); expect(@(testHeader.messageID)).to(equal(@0x6DAB424F)); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLProtocolMessageSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLProtocolMessageSpec.m index 16e8d6091..8c6f03f9c 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLProtocolMessageSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLProtocolMessageSpec.m @@ -45,7 +45,7 @@ SDLV2ProtocolHeader* testHeader = [[SDLV2ProtocolHeader alloc] init]; id headerMock = OCMPartialMock(testHeader); - const char headerData[12] = {0x20 | SDLFrameType_First, SDLServiceType_BulkData, SDLFrameData_StartSessionACK, 0x5E, 0x0E, 0x00, 0x00, strlen("Test Data"), 0x65, 0x22, 0x41, 0x38}; + const char headerData[12] = {0x20 | SDLFrameTypeFirst, SDLServiceTypeBulkData, SDLFrameInfoStartServiceACK, 0x5E, 0x0E, 0x00, 0x00, strlen("Test Data"), 0x65, 0x22, 0x41, 0x38}; [[[headerMock stub] andReturn:[NSData dataWithBytes:headerData length:12]] data]; testMessage.header = testHeader; diff --git a/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLProtocolSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLProtocolSpec.m index 6512317a0..635dea80d 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLProtocolSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLProtocolSpec.m @@ -25,12 +25,12 @@ QuickSpecBegin(SDLProtocolSpec) //Test dictionaries -NSDictionary* dictionaryV1 = @{NAMES_request: - @{NAMES_operation_name:@"DeleteCommand", - NAMES_correlationID:@0x98765, - NAMES_parameters: - @{NAMES_cmdID:@55}}}; -NSDictionary* dictionaryV2 = @{NAMES_cmdID:@55}; +NSDictionary* dictionaryV1 = @{SDLNameRequest: + @{SDLNameOperationName:@"DeleteCommand", + SDLNameCorrelationId:@0x98765, + SDLNameParameters: + @{SDLNameCommandId:@55}}}; +NSDictionary* dictionaryV2 = @{SDLNameCommandId:@55}; describe(@"Send StartService Tests", ^ { context(@"Unsecure", ^{ @@ -47,12 +47,12 @@ [invocation getArgument:&data atIndex:2]; NSData* dataSent = [data copy]; - const char testHeader[8] = {0x10 | SDLFrameType_Control, SDLServiceType_BulkData, SDLFrameData_StartSession, 0x00, 0x00, 0x00, 0x00, 0x00}; + const char testHeader[8] = {0x10 | SDLFrameTypeControl, SDLServiceTypeBulkData, SDLFrameInfoStartService, 0x00, 0x00, 0x00, 0x00, 0x00}; expect(dataSent).to(equal([NSData dataWithBytes:testHeader length:8])); }] sendData:[OCMArg any]]; testProtocol.transport = transportMock; - [testProtocol startServiceWithType:SDLServiceType_BulkData payload:nil]; + [testProtocol startServiceWithType:SDLServiceTypeBulkData payload:nil]; expect(@(verified)).toEventually(beTruthy()); }); @@ -72,7 +72,7 @@ it(@"Should send the correct data", ^ { SDLProtocol* testProtocol = [[SDLProtocol alloc] init]; SDLV1ProtocolHeader *testHeader = [[SDLV1ProtocolHeader alloc] init]; - testHeader.serviceType = SDLServiceType_RPC; + testHeader.serviceType = SDLServiceTypeRPC; testHeader.sessionID = 0x03; [testProtocol handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:nil]]; @@ -86,12 +86,12 @@ [invocation getArgument:&data atIndex:2]; NSData* dataSent = [data copy]; - const char testHeader[8] = {0x10 | SDLFrameType_Control, SDLServiceType_RPC, SDLFrameData_EndSession, 0x03, 0x00, 0x00, 0x00, 0x00}; + const char testHeader[8] = {0x10 | SDLFrameTypeControl, SDLServiceTypeRPC, SDLFrameInfoEndService, 0x03, 0x00, 0x00, 0x00, 0x00}; expect(dataSent).to(equal([NSData dataWithBytes:testHeader length:8])); }] sendData:[OCMArg any]]; testProtocol.transport = transportMock; - [testProtocol endServiceWithType:SDLServiceType_RPC]; + [testProtocol endServiceWithType:SDLServiceTypeRPC]; expect(@(verified)).toEventually(beTruthy()); }); @@ -101,7 +101,7 @@ it(@"Should send the correct data", ^ { SDLProtocol* testProtocol = [[SDLProtocol alloc] init]; SDLV2ProtocolHeader *testHeader = [[SDLV2ProtocolHeader alloc] initWithVersion:2]; - testHeader.serviceType = SDLServiceType_RPC; + testHeader.serviceType = SDLServiceTypeRPC; testHeader.sessionID = 0x61; [testProtocol handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:nil]]; @@ -115,12 +115,12 @@ [invocation getArgument:&data atIndex:2]; NSData* dataSent = [data copy]; - const char testHeader[12] = {0x20 | SDLFrameType_Control, SDLServiceType_RPC, SDLFrameData_EndSession, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + const char testHeader[12] = {0x20 | SDLFrameTypeControl, SDLServiceTypeRPC, SDLFrameInfoEndService, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; expect(dataSent).to(equal([NSData dataWithBytes:testHeader length:12])); }] sendData:[OCMArg any]]; testProtocol.transport = transportMock; - [testProtocol endServiceWithType:SDLServiceType_RPC]; + [testProtocol endServiceWithType:SDLServiceTypeRPC]; expect(@(verified)).toEventually(beTruthy()); }); @@ -139,7 +139,7 @@ SDLProtocol* testProtocol = [[SDLProtocol alloc] init]; SDLV1ProtocolHeader *testHeader = [[SDLV1ProtocolHeader alloc] init]; - testHeader.serviceType = SDLServiceType_RPC; + testHeader.serviceType = SDLServiceTypeRPC; testHeader.sessionID = 0xFF; [testProtocol handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:nil]]; @@ -156,7 +156,7 @@ NSData* jsonTestData = [NSJSONSerialization dataWithJSONObject:dictionaryV1 options:0 error:0]; NSUInteger dataLength = jsonTestData.length; - const char testHeader[8] = {0x10 | SDLFrameType_Single, SDLServiceType_RPC, SDLFrameData_SingleFrame, 0xFF, (dataLength >> 24) & 0xFF, (dataLength >> 16) & 0xFF, (dataLength >> 8) & 0xFF, dataLength & 0xFF}; + const char testHeader[8] = {0x10 | SDLFrameTypeSingle, SDLServiceTypeRPC, SDLFrameInfoSingleFrame, 0xFF, (dataLength >> 24) & 0xFF, (dataLength >> 16) & 0xFF, (dataLength >> 8) & 0xFF, dataLength & 0xFF}; NSMutableData* testData = [NSMutableData dataWithBytes:testHeader length:8]; [testData appendData:jsonTestData]; @@ -179,7 +179,7 @@ SDLProtocol* testProtocol = [[SDLProtocol alloc] init]; SDLV2ProtocolHeader *testHeader = [[SDLV2ProtocolHeader alloc] initWithVersion:2]; - testHeader.serviceType = SDLServiceType_RPC; + testHeader.serviceType = SDLServiceTypeRPC; testHeader.sessionID = 0x01; [testProtocol handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:nil]]; @@ -202,7 +202,7 @@ [payloadData appendData:jsonTestData]; [payloadData appendBytes:"COMMAND" length:strlen("COMMAND")]; - const char testHeader[12] = {0x20 | SDLFrameType_Single, SDLServiceType_BulkData, SDLFrameData_SingleFrame, 0x01, (payloadData.length >> 24) & 0xFF, (payloadData.length >> 16) & 0xFF,(payloadData.length >> 8) & 0xFF, payloadData.length & 0xFF, 0x00, 0x00, 0x00, 0x01}; + const char testHeader[12] = {0x20 | SDLFrameTypeSingle, SDLServiceTypeBulkData, SDLFrameInfoSingleFrame, 0x01, (payloadData.length >> 24) & 0xFF, (payloadData.length >> 16) & 0xFF,(payloadData.length >> 8) & 0xFF, payloadData.length & 0xFF, 0x00, 0x00, 0x00, 0x01}; NSMutableData* testData = [NSMutableData dataWithBytes:testHeader length:12]; [testData appendData:payloadData]; @@ -229,7 +229,7 @@ // // SDLProtocol* testProtocol = [[SDLProtocol alloc] init]; // SDLV1ProtocolHeader *testHeader = [[SDLV1ProtocolHeader alloc] init]; -// testHeader.serviceType = SDLServiceType_RPC; +// testHeader.serviceType = SDLServiceTypeRPC; // testHeader.sessionID = 0x03; // [testProtocol handleProtocolStartSessionACK:testHeader]; // @@ -249,14 +249,14 @@ // expect(messageReceived.payload).to(equal(jsonTestData)); // expect(@(messageReceived.header.version)).to(equal(@1)); // expect(@(messageReceived.header.encrypted)).to(equal(@NO)); -// expect(@(messageReceived.header.frameType)).to(equal(@(SDLFrameType_Single))); +// expect(@(messageReceived.header.frameType)).to(equal(@(SDLFrameTypeSingle))); // expect(@(messageReceived.header.sessionID)).to(equal(@0xFF)); -// expect(@(messageReceived.header.serviceType)).to(equal(@(SDLServiceType_RPC))); -// expect(@(messageReceived.header.frameData)).to(equal(@(SDLFrameData_SingleFrame))); +// expect(@(messageReceived.header.serviceType)).to(equal(@(SDLServiceTypeRPC))); +// expect(@(messageReceived.header.frameData)).to(equal(@(SDLFrameInfoSingleFrame))); // expect(@(messageReceived.header.bytesInPayload)).to(equal(@(dataLength))); // }] handleReceivedMessage:[OCMArg any]]; // -// const char testHeader2Data[8] = {0x10 | SDLFrameType_Single, SDLServiceType_RPC, SDLFrameData_SingleFrame, 0xFF, (dataLength >> 24) & 0xFF, (dataLength >> 16) & 0xFF, (dataLength >> 8) & 0xFF, dataLength & 0xFF}; +// const char testHeader2Data[8] = {0x10 | SDLFrameTypeSingle, SDLServiceTypeRPC, SDLFrameInfoSingleFrame, 0xFF, (dataLength >> 24) & 0xFF, (dataLength >> 16) & 0xFF, (dataLength >> 8) & 0xFF, dataLength & 0xFF}; // NSMutableData* testData = [NSMutableData dataWithBytes:testHeader2Data length:8]; // [testData appendData:jsonTestData]; // @@ -276,7 +276,7 @@ // // SDLProtocol* testProtocol = [[SDLProtocol alloc] init]; // SDLV2ProtocolHeader *testHeader = [[SDLV2ProtocolHeader alloc] initWithVersion:2]; -// testHeader.serviceType = SDLServiceType_RPC; +// testHeader.serviceType = SDLServiceTypeRPC; // testHeader.sessionID = 0xF5; // [testProtocol handleProtocolStartSessionACK:testHeader]; // @@ -302,17 +302,17 @@ // expect(messageReceived.payload).to(equal(payloadData)); // expect(@(messageReceived.header.version)).to(equal(@2)); // expect(@(messageReceived.header.encrypted)).to(equal(@NO)); -// expect(@(messageReceived.header.frameType)).to(equal(@(SDLFrameType_Single))); +// expect(@(messageReceived.header.frameType)).to(equal(@(SDLFrameTypeSingle))); // expect(@(messageReceived.header.sessionID)).to(equal(@0x01)); -// expect(@(messageReceived.header.serviceType)).to(equal(@(SDLServiceType_RPC))); -// expect(@(messageReceived.header.frameData)).to(equal(@(SDLFrameData_SingleFrame))); +// expect(@(messageReceived.header.serviceType)).to(equal(@(SDLServiceTypeRPC))); +// expect(@(messageReceived.header.frameData)).to(equal(@(SDLFrameInfoSingleFrame))); // expect(@(messageReceived.header.bytesInPayload)).to(equal(@(payloadData.length))); // expect(@(((SDLV2ProtocolHeader *)messageReceived.header).messageID)).to(equal(@1)); // // }] handleReceivedMessage:[OCMArg any]]; // testProtocol.transport = routerMock; // -// const char testHeader2Data[12] = {0x20 | SDLFrameType_Single, SDLServiceType_RPC, SDLFrameData_SingleFrame, 0x01, (payloadData.length >> 24) & 0xFF, (payloadData.length >> 16) & 0xFF, +// const char testHeader2Data[12] = {0x20 | SDLFrameTypeSingle, SDLServiceTypeRPC, SDLFrameInfoSingleFrame, 0x01, (payloadData.length >> 24) & 0xFF, (payloadData.length >> 16) & 0xFF, // (payloadData.length >> 8) & 0xFF, payloadData.length & 0xFF, 0x00, 0x00, 0x00, 0x01}; // // NSMutableData* testData = [NSMutableData dataWithBytes:testHeader2Data length:12]; @@ -332,9 +332,9 @@ id delegateMock = OCMProtocolMock(@protocol(SDLProtocolListener)); SDLV2ProtocolHeader* testHeader = [[SDLV2ProtocolHeader alloc] init]; - testHeader.frameType = SDLFrameType_Control; - testHeader.serviceType = SDLServiceType_RPC; - testHeader.frameData = SDLFrameData_StartSessionACK; + testHeader.frameType = SDLFrameTypeControl; + testHeader.serviceType = SDLServiceTypeRPC; + testHeader.frameData = SDLFrameInfoStartServiceACK; testHeader.sessionID = 0x93; testHeader.bytesInPayload = 0; @@ -365,7 +365,7 @@ SDLProtocolMessage *testMessage = [[SDLProtocolMessage alloc] init]; SDLV2ProtocolHeader *testHeader = [[SDLV2ProtocolHeader alloc] initWithVersion:3]; - testHeader.serviceType = SDLServiceType_RPC; + testHeader.serviceType = SDLServiceTypeRPC; testMessage.header = testHeader; id delegateMock = OCMProtocolMock(@protocol(SDLProtocolListener)); diff --git a/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLV1ProtocolMessageSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLV1ProtocolMessageSpec.m index 0a40b94f3..a017059dc 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLV1ProtocolMessageSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLV1ProtocolMessageSpec.m @@ -29,4 +29,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLV2ProtocolMessageSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLV2ProtocolMessageSpec.m index 84a053004..12ce1e05a 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLV2ProtocolMessageSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLV2ProtocolMessageSpec.m @@ -18,7 +18,7 @@ describe(@"RPCDictionary Tests", ^ { it(@"Should return the correct dictionary", ^ { - SDLServiceType serviceType = SDLServiceType_RPC; + SDLServiceType serviceType = SDLServiceTypeRPC; SDLV2ProtocolHeader* testHeader = [[SDLV2ProtocolHeader alloc] init]; id headerMock = OCMPartialMock(testHeader); @@ -46,12 +46,12 @@ SDLV2ProtocolMessage* testMessage = [[SDLV2ProtocolMessage alloc] initWithHeader:testHeader andPayload:[[NSMutableData alloc] initWithCapacity:0]]; - expect([testMessage rpcDictionary]).to(equal(@{NAMES_request: - @{NAMES_operation_name:NAMES_Slider, - NAMES_correlationID:@99, - NAMES_parameters:dictionary}, - NAMES_bulkData:[NSData dataWithBytes:"Database" length:strlen("Database")]})); + expect([testMessage rpcDictionary]).to(equal(@{SDLNameRequest: + @{SDLNameOperationName:SDLNameSlider, + SDLNameCorrelationId:@99, + SDLNameParameters:dictionary}, + SDLNameBulkData:[NSData dataWithBytes:"Database" length:strlen("Database")]})); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/ProtocolSpecs/SDLFunctionIDSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/SDLFunctionIDSpec.m index 881296b80..51145a6f6 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/SDLFunctionIDSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/SDLFunctionIDSpec.m @@ -13,150 +13,151 @@ QuickSpecBegin(SDLFunctionIDSpec) -SDLFunctionID* functionID = [[SDLFunctionID alloc] init]; +SDLFunctionID* functionID = [SDLFunctionID sharedInstance]; describe(@"GetFunctionName Tests", ^ { it(@"Should return the correct function name", ^ { - expect([functionID getFunctionName:1]).to(equal(NAMES_RegisterAppInterface)); - expect([functionID getFunctionName:2]).to(equal(NAMES_UnregisterAppInterface)); - expect([functionID getFunctionName:3]).to(equal(NAMES_SetGlobalProperties)); - expect([functionID getFunctionName:4]).to(equal(NAMES_ResetGlobalProperties)); - expect([functionID getFunctionName:5]).to(equal(NAMES_AddCommand)); - expect([functionID getFunctionName:6]).to(equal(NAMES_DeleteCommand)); - expect([functionID getFunctionName:7]).to(equal(NAMES_AddSubMenu)); - expect([functionID getFunctionName:8]).to(equal(NAMES_DeleteSubMenu)); - expect([functionID getFunctionName:9]).to(equal(NAMES_CreateInteractionChoiceSet)); - expect([functionID getFunctionName:10]).to(equal(NAMES_PerformInteraction)); - expect([functionID getFunctionName:11]).to(equal(NAMES_DeleteInteractionChoiceSet)); - expect([functionID getFunctionName:12]).to(equal(NAMES_Alert)); - expect([functionID getFunctionName:13]).to(equal(NAMES_Show)); - expect([functionID getFunctionName:14]).to(equal(NAMES_Speak)); - expect([functionID getFunctionName:15]).to(equal(NAMES_SetMediaClockTimer)); - expect([functionID getFunctionName:16]).to(equal(NAMES_PerformAudioPassThru)); - expect([functionID getFunctionName:17]).to(equal(NAMES_EndAudioPassThru)); - expect([functionID getFunctionName:18]).to(equal(NAMES_SubscribeButton)); - expect([functionID getFunctionName:19]).to(equal(NAMES_UnsubscribeButton)); - expect([functionID getFunctionName:20]).to(equal(NAMES_SubscribeVehicleData)); - expect([functionID getFunctionName:21]).to(equal(NAMES_UnsubscribeVehicleData)); - expect([functionID getFunctionName:22]).to(equal(NAMES_GetVehicleData)); - expect([functionID getFunctionName:23]).to(equal(NAMES_ReadDID)); - expect([functionID getFunctionName:24]).to(equal(NAMES_GetDTCs)); - expect([functionID getFunctionName:25]).to(equal(NAMES_ScrollableMessage)); - expect([functionID getFunctionName:26]).to(equal(NAMES_Slider)); - expect([functionID getFunctionName:27]).to(equal(NAMES_ShowConstantTBT)); - expect([functionID getFunctionName:28]).to(equal(NAMES_AlertManeuver)); - expect([functionID getFunctionName:29]).to(equal(NAMES_UpdateTurnList)); - expect([functionID getFunctionName:30]).to(equal(NAMES_ChangeRegistration)); - expect([functionID getFunctionName:31]).to(equal(NAMES_GenericResponse)); - expect([functionID getFunctionName:32]).to(equal(NAMES_PutFile)); - expect([functionID getFunctionName:33]).to(equal(NAMES_DeleteFile)); - expect([functionID getFunctionName:34]).to(equal(NAMES_ListFiles)); - expect([functionID getFunctionName:35]).to(equal(NAMES_SetAppIcon)); - expect([functionID getFunctionName:36]).to(equal(NAMES_SetDisplayLayout)); - expect([functionID getFunctionName:37]).to(equal(NAMES_DiagnosticMessage)); - expect([functionID getFunctionName:38]).to(equal(NAMES_SystemRequest)); - expect([functionID getFunctionName:39]).to(equal(NAMES_SendLocation)); - expect([functionID getFunctionName:40]).to(equal(NAMES_DialNumber)); - expect([functionID getFunctionName:45]).to(equal(NAMES_GetWaypoints)); - expect([functionID getFunctionName:46]).to(equal(NAMES_SubscribeWaypoints)); - expect([functionID getFunctionName:47]).to(equal(NAMES_UnsubscribeWaypoints)); - expect([functionID getFunctionName:49]).to(equal(NAMES_SendHapticData)); - expect([functionID getFunctionName:32768]).to(equal(NAMES_OnHMIStatus)); - expect([functionID getFunctionName:32769]).to(equal(NAMES_OnAppInterfaceUnregistered)); - expect([functionID getFunctionName:32770]).to(equal(NAMES_OnButtonEvent)); - expect([functionID getFunctionName:32771]).to(equal(NAMES_OnButtonPress)); - expect([functionID getFunctionName:32772]).to(equal(NAMES_OnVehicleData)); - expect([functionID getFunctionName:32773]).to(equal(NAMES_OnCommand)); - expect([functionID getFunctionName:32774]).to(equal(NAMES_OnTBTClientState)); - expect([functionID getFunctionName:32775]).to(equal(NAMES_OnDriverDistraction)); - expect([functionID getFunctionName:32776]).to(equal(NAMES_OnPermissionsChange)); - expect([functionID getFunctionName:32777]).to(equal(NAMES_OnAudioPassThru)); - expect([functionID getFunctionName:32778]).to(equal(NAMES_OnLanguageChange)); - expect([functionID getFunctionName:32779]).to(equal(NAMES_OnKeyboardInput)); - expect([functionID getFunctionName:32780]).to(equal(NAMES_OnTouchEvent)); - expect([functionID getFunctionName:32781]).to(equal(NAMES_OnSystemRequest)); - expect([functionID getFunctionName:32782]).to(equal(NAMES_OnHashChange)); - expect([functionID getFunctionName:32784]).to(equal(NAMES_OnWaypointChange)); + 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)); //Not listed in Spec - expect([functionID getFunctionName:65536]).to(equal(NAMES_EncodedSyncPData)); - expect([functionID getFunctionName:65537]).to(equal(NAMES_SyncPData)); + expect([functionID functionNameForId:65536]).to(equal(SDLNameEncodedSyncPData)); + expect([functionID functionNameForId:65537]).to(equal(SDLNameSyncPData)); - expect([functionID getFunctionName:98304]).to(equal(NAMES_OnEncodedSyncPData)); - expect([functionID getFunctionName:98305]).to(equal(NAMES_OnSyncPData)); + expect([functionID functionNameForId:98304]).to(equal(SDLNameOnEncodedSyncPData)); + expect([functionID functionNameForId:98305]).to(equal(SDLNameOnSyncPData)); }); }); describe(@"GetFunctionID Tests", ^ { it(@"Should return the correct function ID", ^ { - expect([functionID getFunctionID:NAMES_RegisterAppInterface]).to(equal(@1)); - expect([functionID getFunctionID:NAMES_UnregisterAppInterface]).to(equal(@2)); - expect([functionID getFunctionID:NAMES_SetGlobalProperties]).to(equal(@3)); - expect([functionID getFunctionID:NAMES_ResetGlobalProperties]).to(equal(@4)); - expect([functionID getFunctionID:NAMES_AddCommand]).to(equal(@5)); - expect([functionID getFunctionID:NAMES_DeleteCommand]).to(equal(@6)); - expect([functionID getFunctionID:NAMES_AddSubMenu]).to(equal(@7)); - expect([functionID getFunctionID:NAMES_DeleteSubMenu]).to(equal(@8)); - expect([functionID getFunctionID:NAMES_CreateInteractionChoiceSet]).to(equal(@9)); - expect([functionID getFunctionID:NAMES_PerformInteraction]).to(equal(@10)); - expect([functionID getFunctionID:NAMES_DeleteInteractionChoiceSet]).to(equal(@11)); - expect([functionID getFunctionID:NAMES_Alert]).to(equal(@12)); - expect([functionID getFunctionID:NAMES_Show]).to(equal(@13)); - expect([functionID getFunctionID:NAMES_Speak]).to(equal(@14)); - expect([functionID getFunctionID:NAMES_SetMediaClockTimer]).to(equal(@15)); - expect([functionID getFunctionID:NAMES_PerformAudioPassThru]).to(equal(@16)); - expect([functionID getFunctionID:NAMES_EndAudioPassThru]).to(equal(@17)); - expect([functionID getFunctionID:NAMES_SubscribeButton]).to(equal(@18)); - expect([functionID getFunctionID:NAMES_UnsubscribeButton]).to(equal(@19)); - expect([functionID getFunctionID:NAMES_SubscribeVehicleData]).to(equal(@20)); - expect([functionID getFunctionID:NAMES_UnsubscribeVehicleData]).to(equal(@21)); - expect([functionID getFunctionID:NAMES_GetVehicleData]).to(equal(@22)); - expect([functionID getFunctionID:NAMES_ReadDID]).to(equal(@23)); - expect([functionID getFunctionID:NAMES_GetDTCs]).to(equal(@24)); - expect([functionID getFunctionID:NAMES_ScrollableMessage]).to(equal(@25)); - expect([functionID getFunctionID:NAMES_Slider]).to(equal(@26)); - expect([functionID getFunctionID:NAMES_ShowConstantTBT]).to(equal(@27)); - expect([functionID getFunctionID:NAMES_AlertManeuver]).to(equal(@28)); - expect([functionID getFunctionID:NAMES_UpdateTurnList]).to(equal(@29)); - expect([functionID getFunctionID:NAMES_ChangeRegistration]).to(equal(@30)); - expect([functionID getFunctionID:NAMES_GenericResponse]).to(equal(@31)); - expect([functionID getFunctionID:NAMES_PutFile]).to(equal(@32)); - expect([functionID getFunctionID:NAMES_DeleteFile]).to(equal(@33)); - expect([functionID getFunctionID:NAMES_ListFiles]).to(equal(@34)); - expect([functionID getFunctionID:NAMES_SetAppIcon]).to(equal(@35)); - expect([functionID getFunctionID:NAMES_SetDisplayLayout]).to(equal(@36)); - expect([functionID getFunctionID:NAMES_DiagnosticMessage]).to(equal(@37)); - expect([functionID getFunctionID:NAMES_SystemRequest]).to(equal(@38)); - expect([functionID getFunctionID:NAMES_SendLocation]).to(equal(@39)); - expect([functionID getFunctionID:NAMES_DialNumber]).to(equal(@40)); - expect([functionID getFunctionID:NAMES_GetWaypoints]).to(equal(@45)); - expect([functionID getFunctionID:NAMES_SubscribeWaypoints]).to(equal(@46)); - expect([functionID getFunctionID:NAMES_UnsubscribeWaypoints]).to(equal(@47)); - expect([functionID getFunctionID:NAMES_SendHapticData]).to(equal(@49)); - - expect([functionID getFunctionID:NAMES_OnHMIStatus]).to(equal(@32768)); - expect([functionID getFunctionID:NAMES_OnAppInterfaceUnregistered]).to(equal(@32769)); - expect([functionID getFunctionID:NAMES_OnButtonEvent]).to(equal(@32770)); - expect([functionID getFunctionID:NAMES_OnButtonPress]).to(equal(@32771)); - expect([functionID getFunctionID:NAMES_OnVehicleData]).to(equal(@32772)); - expect([functionID getFunctionID:NAMES_OnCommand]).to(equal(@32773)); - expect([functionID getFunctionID:NAMES_OnTBTClientState]).to(equal(@32774)); - expect([functionID getFunctionID:NAMES_OnDriverDistraction]).to(equal(@32775)); - expect([functionID getFunctionID:NAMES_OnPermissionsChange]).to(equal(@32776)); - expect([functionID getFunctionID:NAMES_OnAudioPassThru]).to(equal(@32777)); - expect([functionID getFunctionID:NAMES_OnLanguageChange]).to(equal(@32778)); - expect([functionID getFunctionID:NAMES_OnKeyboardInput]).to(equal(@32779)); - expect([functionID getFunctionID:NAMES_OnTouchEvent]).to(equal(@32780)); - expect([functionID getFunctionID:NAMES_OnSystemRequest]).to(equal(@32781)); - expect([functionID getFunctionID:NAMES_OnHashChange]).to(equal(@32782)); - expect([functionID getFunctionID:NAMES_OnWaypointChange]).to(equal(@32784)); + 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)); //Not listed in Spec - expect([functionID getFunctionID:NAMES_EncodedSyncPData]).to(equal(@65536)); - expect([functionID getFunctionID:NAMES_SyncPData]).to(equal(@65537)); + expect([functionID functionIdForName:SDLNameEncodedSyncPData]).to(equal(@65536)); + expect([functionID functionIdForName:SDLNameSyncPData]).to(equal(@65537)); - expect([functionID getFunctionID:NAMES_OnEncodedSyncPData]).to(equal(@98304)); - expect([functionID getFunctionID:NAMES_OnSyncPData]).to(equal(@98305)); + expect([functionID functionIdForName:SDLNameOnEncodedSyncPData]).to(equal(@98304)); + expect([functionID functionIdForName:SDLNameOnSyncPData]).to(equal(@98305)); }); }); diff --git a/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolMessageAssemblerSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolMessageAssemblerSpec.m index d31a6e061..1c7187387 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolMessageAssemblerSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolMessageAssemblerSpec.m @@ -31,8 +31,8 @@ SDLV2ProtocolHeader* testHeader = [[SDLV2ProtocolHeader alloc] init]; //First frame - testHeader.frameType = SDLFrameType_First; - testHeader.serviceType = SDLServiceType_BulkData; + testHeader.frameType = SDLFrameTypeFirst; + testHeader.serviceType = SDLServiceTypeBulkData; testHeader.frameData = 1; testHeader.sessionID = 0x16; testHeader.bytesInPayload = 8; @@ -58,7 +58,7 @@ expect(@(verified)).to(beTruthy()); verified = NO; - testMessage.header.frameType = SDLFrameType_Consecutive; + testMessage.header.frameType = SDLFrameTypeConsecutive; testMessage.header.bytesInPayload = 500; NSUInteger frameNumber = 1; @@ -86,9 +86,9 @@ expect(@(done)).to(equal(@YES)); expect(assembledMessage.payload).to(equal(payloadData)); - expect(@(assembledMessage.header.frameType)).to(equal(@(SDLFrameType_Single))); - expect(@(assembledMessage.header.serviceType)).to(equal(@(SDLServiceType_BulkData))); - expect(@(assembledMessage.header.frameData)).to(equal(@(SDLFrameData_SingleFrame))); + expect(@(assembledMessage.header.frameType)).to(equal(@(SDLFrameTypeSingle))); + expect(@(assembledMessage.header.serviceType)).to(equal(@(SDLServiceTypeBulkData))); + expect(@(assembledMessage.header.frameData)).to(equal(@(SDLFrameInfoSingleFrame))); expect(@(assembledMessage.header.sessionID)).to(equal(@0x16)); expect(@(assembledMessage.header.bytesInPayload)).to(equal(@(payloadData.length))); }]; diff --git a/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolMessageDisassemblerSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolMessageDisassemblerSpec.m index 27aedff5b..9dfc2c32f 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolMessageDisassemblerSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolMessageDisassemblerSpec.m @@ -34,16 +34,16 @@ SDLV2ProtocolMessage* testMessage = [[SDLV2ProtocolMessage alloc] init]; SDLV2ProtocolHeader* testHeader = [[SDLV2ProtocolHeader alloc] init]; - testHeader.frameType = SDLFrameType_Single; - testHeader.serviceType = SDLServiceType_BulkData; - testHeader.frameData = SDLFrameData_SingleFrame; + testHeader.frameType = SDLFrameTypeSingle; + testHeader.serviceType = SDLServiceTypeBulkData; + testHeader.frameData = SDLFrameInfoSingleFrame; testHeader.sessionID = 0x84; testHeader.bytesInPayload = (UInt32)payloadData.length; testMessage.header = testHeader; testMessage.payload = payloadData; - NSArray* messageList = [SDLProtocolMessageDisassembler disassemble:testMessage withLimit:[globals mtuSizeForServiceType:testHeader.serviceType]]; + NSArray *messageList = [SDLProtocolMessageDisassembler disassemble:testMessage withLimit:[globals mtuSizeForServiceType:testHeader.serviceType]]; //Payload length per message UInt32 payloadLength = 1012; // v1/2 MTU(1024) - header length(12) @@ -55,9 +55,9 @@ //First frame expect(message.payload).to(equal([NSData dataWithBytes:firstPayload length:8])); - expect(@(message.header.frameType)).to(equal(@(SDLFrameType_First))); - expect(@(message.header.serviceType)).to(equal(@(SDLServiceType_BulkData))); - expect(@(message.header.frameData)).to(equal(@(SDLFrameData_FirstFrame))); + expect(@(message.header.frameType)).to(equal(@(SDLFrameTypeFirst))); + expect(@(message.header.serviceType)).to(equal(@(SDLServiceTypeBulkData))); + expect(@(message.header.frameData)).to(equal(@(SDLFrameInfoFirstFrame))); expect(@(message.header.sessionID)).to(equal(@0x84)); expect(@(message.header.bytesInPayload)).to(equal(@8)); @@ -68,8 +68,8 @@ //Consecutive frames expect(message.payload).to(equal([NSData dataWithData:[payloadData subdataWithRange:NSMakeRange(offset, payloadLength)]])); - expect(@(message.header.frameType)).to(equal(@(SDLFrameType_Consecutive))); - expect(@(message.header.serviceType)).to(equal(@(SDLServiceType_BulkData))); + expect(@(message.header.frameType)).to(equal(@(SDLFrameTypeConsecutive))); + expect(@(message.header.serviceType)).to(equal(@(SDLServiceTypeBulkData))); expect(@(message.header.frameData)).to(equal(@(i))); expect(@(message.header.sessionID)).to(equal(@0x84)); expect(@(message.header.bytesInPayload)).to(equal(@(payloadLength))); @@ -84,9 +84,9 @@ //Last frame expect(message.payload).to(equal([NSData dataWithData:[payloadData subdataWithRange:NSMakeRange(offset, remaining)]])); - expect(@(message.header.frameType)).to(equal(@(SDLFrameType_Consecutive))); - expect(@(message.header.serviceType)).to(equal(@(SDLServiceType_BulkData))); - expect(@(message.header.frameData)).to(equal(@(SDLFrameData_ConsecutiveLastFrame))); + expect(@(message.header.frameType)).to(equal(@(SDLFrameTypeConsecutive))); + expect(@(message.header.serviceType)).to(equal(@(SDLServiceTypeBulkData))); + expect(@(message.header.frameData)).to(equal(@(SDLFrameInfoConsecutiveLastFrame))); expect(@(message.header.sessionID)).to(equal(@0x84)); expect(@(message.header.bytesInPayload)).to(equal(@(remaining))); }); diff --git a/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolReceivedMessageRouterSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolReceivedMessageRouterSpec.m index a9ceacba5..747a087b1 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolReceivedMessageRouterSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/SDLProtocolReceivedMessageRouterSpec.m @@ -25,9 +25,9 @@ SDLV2ProtocolMessage* testMessage = [[SDLV2ProtocolMessage alloc] init]; SDLV2ProtocolHeader* testHeader = [[SDLV2ProtocolHeader alloc] init]; - testHeader.frameType = SDLFrameType_Control; - testHeader.serviceType = SDLServiceType_RPC; - testHeader.frameData = SDLFrameData_StartSessionACK; + testHeader.frameType = SDLFrameTypeControl; + testHeader.serviceType = SDLServiceTypeRPC; + testHeader.frameData = SDLFrameInfoStartServiceACK; testHeader.sessionID = 0x93; testHeader.bytesInPayload = 0; @@ -49,9 +49,9 @@ SDLV2ProtocolMessage* testMessage = [[SDLV2ProtocolMessage alloc] init]; SDLV2ProtocolHeader* testHeader = [[SDLV2ProtocolHeader alloc] init]; - testHeader.frameType = SDLFrameType_Single; - testHeader.serviceType = SDLServiceType_RPC; - testHeader.frameData = SDLFrameData_SingleFrame; + testHeader.frameType = SDLFrameTypeSingle; + testHeader.serviceType = SDLServiceTypeRPC; + testHeader.frameData = SDLFrameInfoSingleFrame; testHeader.sessionID = 0x07; testHeader.bytesInPayload = 0; @@ -96,8 +96,8 @@ SDLV2ProtocolHeader* testHeader = [[SDLV2ProtocolHeader alloc] init]; //First frame - testHeader.frameType = SDLFrameType_First; - testHeader.serviceType = SDLServiceType_BulkData; + testHeader.frameType = SDLFrameTypeFirst; + testHeader.serviceType = SDLServiceTypeBulkData; testHeader.frameData = 1; testHeader.sessionID = 0x33; testHeader.bytesInPayload = 8; @@ -111,7 +111,7 @@ [router handleReceivedMessage:testMessage]; - testMessage.header.frameType = SDLFrameType_Consecutive; + testMessage.header.frameType = SDLFrameTypeConsecutive; testMessage.header.bytesInPayload = 500; NSUInteger frameNumber = 1; @@ -142,9 +142,9 @@ SDLProtocolMessage* assembledMessage = message; expect(assembledMessage.payload).to(equal(payloadData)); - expect(@(assembledMessage.header.frameType)).to(equal(@(SDLFrameType_Single))); - expect(@(assembledMessage.header.serviceType)).to(equal(@(SDLServiceType_BulkData))); - expect(@(assembledMessage.header.frameData)).to(equal(@(SDLFrameData_SingleFrame))); + expect(@(assembledMessage.header.frameType)).to(equal(@(SDLFrameTypeSingle))); + expect(@(assembledMessage.header.serviceType)).to(equal(@(SDLServiceTypeBulkData))); + expect(@(assembledMessage.header.frameData)).to(equal(@(SDLFrameInfoSingleFrame))); expect(@(assembledMessage.header.sessionID)).to(equal(@0x33)); expect(@(assembledMessage.header.bytesInPayload)).to(equal(@(payloadData.length))); }] onProtocolMessageReceived:[OCMArg any]]; diff --git a/SmartDeviceLinkTests/ProxySpecs/SDLHapticManagerSpec.m b/SmartDeviceLinkTests/ProxySpecs/SDLHapticManagerSpec.m new file mode 100644 index 000000000..d3a3656ef --- /dev/null +++ b/SmartDeviceLinkTests/ProxySpecs/SDLHapticManagerSpec.m @@ -0,0 +1,388 @@ +// +// SDLHapticManagerSpec.m +// SmartDeviceLink-iOS +// +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import +#import +#import + +#import "SDLFocusableItemLocator.h" +#import "SDLSendHapticData.h" +#import "SDLManager.h" +#import "SDLTouchCoord.h" +#import "SDLTouchEvent.h" +#import "SDLTouch.h" +#import "SDLRectangle.h" +#import "SDLLifecycleManager.h" + +BOOL compareRectangle(SDLRectangle *sdlRectangle, CGRect cgRect) +{ + expect(sdlRectangle.x).to(equal(cgRect.origin.x)); + expect(sdlRectangle.y).to(equal(cgRect.origin.y)); + expect(sdlRectangle.width).to(equal(cgRect.size.width)); + expect(sdlRectangle.height).to(equal(cgRect.size.height)); + return YES; +} + +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 addSubview:uiViewController.view]; + + OCMExpect([[sdlLifecycleManager stub] sendManagerRequest:[OCMArg checkWithBlock:^BOOL(id value){ + BOOL isFirstArg = [value isKindOfClass:[SDLSendHapticData class]]; + if(isFirstArg) { + sentHapticRequest = value; + } + return YES; + }] withResponseHandler:[OCMArg any]]); + }); + + context(@"when disabled", ^{ + beforeEach(^{ + viewRect1 = CGRectMake(101, 101, 50, 50); + UITextField *textField1 = [[UITextField alloc] initWithFrame:viewRect1]; + [uiWindow insertSubview:textField1 aboveSubview:uiWindow]; + + hapticManager = [[SDLFocusableItemLocator alloc] initWithWindow:uiWindow connectionManager:sdlLifecycleManager]; + hapticManager.enableHapticDataRequests = NO; + [hapticManager updateInterfaceLayout]; + }); + + it(@"should have no views", ^{ + OCMVerify(sdlLifecycleManager); + + expect(sentHapticRequest).to(beNil()); + }); + }); + + context(@"when initialized with no focusable view", ^{ + beforeEach(^{ + hapticManager = [[SDLFocusableItemLocator alloc] initWithWindow:uiWindow 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]; + [uiWindow insertSubview:textField1 aboveSubview:uiWindow]; + + hapticManager = [[SDLFocusableItemLocator alloc] initWithWindow:uiWindow 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 *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]; + [uiWindow addSubview:button]; + + hapticManager = [[SDLFocusableItemLocator alloc] initWithWindow:uiWindow 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 *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] initWithWindow:uiWindow 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 *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 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] initWithWindow:uiWindow 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 *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] initWithWindow:uiWindow 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 *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] initWithWindow:uiWindow 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 *hapticRectData = sentHapticRequest.hapticRectData; + SDLHapticRect *sdlhapticRect = hapticRectData[0]; + SDLRectangle *sdlRect = sdlhapticRect.rect; + + compareRectangle(sdlRect, viewRect1); + } + }); + }); + + context(@"when initialized with one view and notified after adding one more view", ^{ + beforeEach(^{ + viewRect1 = CGRectMake(101, 101, 50, 50); + UITextField *textField1 = [[UITextField alloc] initWithFrame:viewRect1]; + [uiViewController.view addSubview:textField1]; + + hapticManager = [[SDLFocusableItemLocator alloc] initWithWindow:uiWindow 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 *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 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] initWithWindow:uiWindow connectionManager:sdlLifecycleManager]; + hapticManager.enableHapticDataRequests = YES; + [hapticManager updateInterfaceLayout]; + }); + + it(@"should return a view object", ^{ + UIView *view1 = [hapticManager viewForPoint:CGPointMake(125, 120)]; + expect(view1).toNot(beNil()); + + UIView* view2 = [hapticManager viewForPoint:CGPointMake(202, 249)]; + 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] initWithWindow:uiWindow 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] initWithWindow:uiWindow connectionManager:sdlLifecycleManager]; + hapticManager.enableHapticDataRequests = YES; + [hapticManager updateInterfaceLayout]; + }); + it(@"should return nil", ^{ + UIView* view = [hapticManager viewForPoint:CGPointMake(0, 228)]; + expect(view).to(beNil()); + }); + + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/ProxySpecs/SDLLockScreenStatusManagerSpec.m b/SmartDeviceLinkTests/ProxySpecs/SDLLockScreenStatusManagerSpec.m index 8a61980fe..98a574f95 100644 --- a/SmartDeviceLinkTests/ProxySpecs/SDLLockScreenStatusManagerSpec.m +++ b/SmartDeviceLinkTests/ProxySpecs/SDLLockScreenStatusManagerSpec.m @@ -35,7 +35,7 @@ context(@"to FULL", ^{ beforeEach(^{ lockScreenManager.userSelected = NO; - lockScreenManager.hmiLevel = [SDLHMILevel FULL]; + lockScreenManager.hmiLevel = SDLHMILevelFull; }); it(@"should set user selected to true", ^{ @@ -46,7 +46,7 @@ context(@"to LIMITED", ^{ beforeEach(^{ lockScreenManager.userSelected = NO; - lockScreenManager.hmiLevel = [SDLHMILevel LIMITED]; + lockScreenManager.hmiLevel = SDLHMILevelLimited; }); it(@"should set user selected to true", ^{ @@ -56,7 +56,7 @@ context(@"to BACKGROUND", ^{ beforeEach(^{ - lockScreenManager.hmiLevel = [SDLHMILevel BACKGROUND]; + lockScreenManager.hmiLevel = SDLHMILevelBackground; }); context(@"when user selected is false", ^{ @@ -83,7 +83,7 @@ context(@"to NONE", ^{ beforeEach(^{ lockScreenManager.userSelected = YES; - lockScreenManager.hmiLevel = [SDLHMILevel NONE]; + lockScreenManager.hmiLevel = SDLHMILevelNone; }); it(@"should set user selected to false", ^{ @@ -99,23 +99,23 @@ }); it(@"should return lock screen off", ^{ - expect(lockScreenManager.lockScreenStatus).to(equal([SDLLockScreenStatus OFF])); + expect(lockScreenManager.lockScreenStatus).to(equal(SDLLockScreenStatusOff)); }); }); context(@"when HMI level is NONE", ^{ beforeEach(^{ - lockScreenManager.hmiLevel = [SDLHMILevel NONE]; + lockScreenManager.hmiLevel = SDLHMILevelNone; }); it(@"should return lock screen off", ^{ - expect(lockScreenManager.lockScreenStatus).to(equal([SDLLockScreenStatus OFF])); + expect(lockScreenManager.lockScreenStatus).to(equal(SDLLockScreenStatusOff)); }); }); context(@"when HMI level is BACKGROUND", ^{ beforeEach(^{ - lockScreenManager.hmiLevel = [SDLHMILevel BACKGROUND]; + lockScreenManager.hmiLevel = SDLHMILevelBackground; }); context(@"when user selected is true", ^{ @@ -125,7 +125,7 @@ context(@"if we do not set the driver distraction state", ^{ it(@"should return lock screen required", ^{ - expect(lockScreenManager.lockScreenStatus).to(equal([SDLLockScreenStatus REQUIRED])); + expect(lockScreenManager.lockScreenStatus).to(equal(SDLLockScreenStatusRequired)); }); }); @@ -135,7 +135,7 @@ }); it(@"should return lock screen optional", ^{ - expect(lockScreenManager.lockScreenStatus).to(equal([SDLLockScreenStatus OPTIONAL])); + expect(lockScreenManager.lockScreenStatus).to(equal(SDLLockScreenStatusOptional)); }); }); @@ -145,7 +145,7 @@ }); it(@"should return lock screen required", ^{ - expect(lockScreenManager.lockScreenStatus).to(equal([SDLLockScreenStatus REQUIRED])); + expect(lockScreenManager.lockScreenStatus).to(equal(SDLLockScreenStatusRequired)); }); }); }); @@ -156,19 +156,19 @@ }); it(@"should return lock screen off", ^{ - expect(lockScreenManager.lockScreenStatus).to(equal([SDLLockScreenStatus OFF])); + expect(lockScreenManager.lockScreenStatus).to(equal(SDLLockScreenStatusOff)); }); }); }); context(@"when HMI level is LIMITED", ^{ beforeEach(^{ - lockScreenManager.hmiLevel = [SDLHMILevel LIMITED]; + lockScreenManager.hmiLevel = SDLHMILevelLimited; }); context(@"if we do not set the driver distraction state", ^{ it(@"should return lock screen required", ^{ - expect(lockScreenManager.lockScreenStatus).to(equal([SDLLockScreenStatus REQUIRED])); + expect(lockScreenManager.lockScreenStatus).to(equal(SDLLockScreenStatusRequired)); }); }); @@ -178,7 +178,7 @@ }); it(@"should return lock screen optional", ^{ - expect(lockScreenManager.lockScreenStatus).to(equal([SDLLockScreenStatus OPTIONAL])); + expect(lockScreenManager.lockScreenStatus).to(equal(SDLLockScreenStatusOptional)); }); }); @@ -188,19 +188,19 @@ }); it(@"should return lock screen required", ^{ - expect(lockScreenManager.lockScreenStatus).to(equal([SDLLockScreenStatus REQUIRED])); + expect(lockScreenManager.lockScreenStatus).to(equal(SDLLockScreenStatusRequired)); }); }); }); context(@"when HMI level is FULL", ^{ beforeEach(^{ - lockScreenManager.hmiLevel = [SDLHMILevel FULL]; + lockScreenManager.hmiLevel = SDLHMILevelFull; }); context(@"if we do not set the driver distraction state", ^{ it(@"should return lock screen required", ^{ - expect(lockScreenManager.lockScreenStatus).to(equal([SDLLockScreenStatus REQUIRED])); + expect(lockScreenManager.lockScreenStatus).to(equal(SDLLockScreenStatusRequired)); }); }); @@ -210,7 +210,7 @@ }); it(@"should return lock screen optional", ^{ - expect(lockScreenManager.lockScreenStatus).to(equal([SDLLockScreenStatus OPTIONAL])); + expect(lockScreenManager.lockScreenStatus).to(equal(SDLLockScreenStatusOptional)); }); }); @@ -220,7 +220,7 @@ }); it(@"should return lock screen required", ^{ - expect(lockScreenManager.lockScreenStatus).to(equal([SDLLockScreenStatus REQUIRED])); + expect(lockScreenManager.lockScreenStatus).to(equal(SDLLockScreenStatusRequired)); }); }); }); @@ -231,7 +231,7 @@ beforeEach(^{ lockScreenManager.userSelected = YES; lockScreenManager.driverDistracted = NO; - lockScreenManager.hmiLevel = [SDLHMILevel LIMITED]; + lockScreenManager.hmiLevel = SDLHMILevelLimited; onLockScreenStatusNotification = lockScreenManager.lockScreenStatusNotification; }); @@ -245,11 +245,11 @@ }); it(@"should properly return HMI level", ^{ - expect(onLockScreenStatusNotification.hmiLevel).to(equal([SDLHMILevel LIMITED])); + expect(onLockScreenStatusNotification.hmiLevel).to(equal(SDLHMILevelLimited)); }); it(@"should properly return lock screen status", ^{ - expect(onLockScreenStatusNotification.lockScreenStatus).to(equal([SDLLockScreenStatus OPTIONAL])); + expect(onLockScreenStatusNotification.lockScreenStatus).to(equal(SDLLockScreenStatusOptional)); }); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAmbientLightStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAmbientLightStatusSpec.m index cd1530951..452902b73 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAmbientLightStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAmbientLightStatusSpec.m @@ -14,57 +14,14 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLAmbientLightStatus NIGHT].value).to(equal(@"NIGHT")); - expect([SDLAmbientLightStatus TWILIGHT_1].value).to(equal(@"TWILIGHT_1")); - expect([SDLAmbientLightStatus TWILIGHT_2].value).to(equal(@"TWILIGHT_2")); - expect([SDLAmbientLightStatus TWILIGHT_3].value).to(equal(@"TWILIGHT_3")); - expect([SDLAmbientLightStatus TWILIGHT_4].value).to(equal(@"TWILIGHT_4")); - expect([SDLAmbientLightStatus DAY].value).to(equal(@"DAY")); - expect([SDLAmbientLightStatus UNKNOWN].value).to(equal(@"UNKNOWN")); - expect([SDLAmbientLightStatus INVALID].value).to(equal(@"INVALID")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLAmbientLightStatus valueOf:@"NIGHT"]).to(equal([SDLAmbientLightStatus NIGHT])); - expect([SDLAmbientLightStatus valueOf:@"TWILIGHT_1"]).to(equal([SDLAmbientLightStatus TWILIGHT_1])); - expect([SDLAmbientLightStatus valueOf:@"TWILIGHT_2"]).to(equal([SDLAmbientLightStatus TWILIGHT_2])); - expect([SDLAmbientLightStatus valueOf:@"TWILIGHT_3"]).to(equal([SDLAmbientLightStatus TWILIGHT_3])); - expect([SDLAmbientLightStatus valueOf:@"TWILIGHT_4"]).to(equal([SDLAmbientLightStatus TWILIGHT_4])); - expect([SDLAmbientLightStatus valueOf:@"DAY"]).to(equal([SDLAmbientLightStatus DAY])); - expect([SDLAmbientLightStatus valueOf:@"UNKNOWN"]).to(equal([SDLAmbientLightStatus UNKNOWN])); - expect([SDLAmbientLightStatus valueOf:@"INVALID"]).to(equal([SDLAmbientLightStatus INVALID])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLAmbientLightStatus valueOf:nil]).to(beNil()); - expect([SDLAmbientLightStatus valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLAmbientLightStatus values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLAmbientLightStatus NIGHT], - [SDLAmbientLightStatus TWILIGHT_1], - [SDLAmbientLightStatus TWILIGHT_2], - [SDLAmbientLightStatus TWILIGHT_3], - [SDLAmbientLightStatus TWILIGHT_4], - [SDLAmbientLightStatus DAY], - [SDLAmbientLightStatus UNKNOWN], - [SDLAmbientLightStatus INVALID]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLAmbientLightStatusNight).to(equal(@"NIGHT")); + expect(SDLAmbientLightStatusTwilight1).to(equal(@"TWILIGHT_1")); + expect(SDLAmbientLightStatusTwilight2).to(equal(@"TWILIGHT_2")); + expect(SDLAmbientLightStatusTwilight3).to(equal(@"TWILIGHT_3")); + expect(SDLAmbientLightStatusTwilight4).to(equal(@"TWILIGHT_4")); + expect(SDLAmbientLightStatusDay).to(equal(@"DAY")); + expect(SDLAmbientLightStatusUnknown).to(equal(@"UNKNOWN")); + expect(SDLAmbientLightStatusInvalid).to(equal(@"INVALID")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAppHMITypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAppHMITypeSpec.m index 149fdf201..f00bfa300 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAppHMITypeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAppHMITypeSpec.m @@ -14,66 +14,18 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLAppHMIType DEFAULT].value).to(equal(@"DEFAULT")); - expect([SDLAppHMIType COMMUNICATION].value).to(equal(@"COMMUNICATION")); - expect([SDLAppHMIType MEDIA].value).to(equal(@"MEDIA")); - expect([SDLAppHMIType MESSAGING].value).to(equal(@"MESSAGING")); - expect([SDLAppHMIType NAVIGATION].value).to(equal(@"NAVIGATION")); - expect([SDLAppHMIType INFORMATION].value).to(equal(@"INFORMATION")); - expect([SDLAppHMIType SOCIAL].value).to(equal(@"SOCIAL")); - expect([SDLAppHMIType PROJECTION].value).to(equal(@"PROJECTION")); - expect([SDLAppHMIType BACKGROUND_PROCESS].value).to(equal(@"BACKGROUND_PROCESS")); - expect([SDLAppHMIType TESTING].value).to(equal(@"TESTING")); - expect([SDLAppHMIType SYSTEM].value).to(equal(@"SYSTEM")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLAppHMIType valueOf:@"DEFAULT"]).to(equal([SDLAppHMIType DEFAULT])); - expect([SDLAppHMIType valueOf:@"COMMUNICATION"]).to(equal([SDLAppHMIType COMMUNICATION])); - expect([SDLAppHMIType valueOf:@"MEDIA"]).to(equal([SDLAppHMIType MEDIA])); - expect([SDLAppHMIType valueOf:@"MESSAGING"]).to(equal([SDLAppHMIType MESSAGING])); - expect([SDLAppHMIType valueOf:@"NAVIGATION"]).to(equal([SDLAppHMIType NAVIGATION])); - expect([SDLAppHMIType valueOf:@"INFORMATION"]).to(equal([SDLAppHMIType INFORMATION])); - expect([SDLAppHMIType valueOf:@"SOCIAL"]).to(equal([SDLAppHMIType SOCIAL])); - expect([SDLAppHMIType valueOf:@"PROJECTION"]).to(equal([SDLAppHMIType PROJECTION])); - expect([SDLAppHMIType valueOf:@"BACKGROUND_PROCESS"]).to(equal([SDLAppHMIType BACKGROUND_PROCESS])); - expect([SDLAppHMIType valueOf:@"TESTING"]).to(equal([SDLAppHMIType TESTING])); - expect([SDLAppHMIType valueOf:@"SYSTEM"]).to(equal([SDLAppHMIType SYSTEM])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLAppHMIType valueOf:nil]).to(beNil()); - expect([SDLAppHMIType valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLAppHMIType values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLAppHMIType DEFAULT], - [SDLAppHMIType COMMUNICATION], - [SDLAppHMIType MEDIA], - [SDLAppHMIType MESSAGING], - [SDLAppHMIType NAVIGATION], - [SDLAppHMIType INFORMATION], - [SDLAppHMIType SOCIAL], - [SDLAppHMIType PROJECTION], - [SDLAppHMIType BACKGROUND_PROCESS], - [SDLAppHMIType TESTING], - [SDLAppHMIType SYSTEM]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLAppHMITypeDefault).to(equal(@"DEFAULT")); + expect(SDLAppHMITypeCommunication).to(equal(@"COMMUNICATION")); + expect(SDLAppHMITypeMedia).to(equal(@"MEDIA")); + expect(SDLAppHMITypeMessaging).to(equal(@"MESSAGING")); + expect(SDLAppHMITypeNavigation).to(equal(@"NAVIGATION")); + expect(SDLAppHMITypeInformation).to(equal(@"INFORMATION")); + expect(SDLAppHMITypeSocial).to(equal(@"SOCIAL")); + expect(SDLAppHMITypeProjection).to(equal(@"PROJECTION")); + expect(SDLAppHMITypeBackgroundProcess).to(equal(@"BACKGROUND_PROCESS")); + expect(SDLAppHMITypeTesting).to(equal(@"TESTING")); + expect(SDLAppHMITypeSystem).to(equal(@"SYSTEM")); + expect(SDLAppHMITypeRemoteControl).to(equal(@"REMOTE_CONTROL")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAppInterfaceUnregisteredReasonSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAppInterfaceUnregisteredReasonSpec.m index a8927c447..f26e01fdd 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAppInterfaceUnregisteredReasonSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAppInterfaceUnregisteredReasonSpec.m @@ -16,70 +16,19 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - //expect([SDLAppInterfaceUnregisteredReason USER_EXIT].value).to(equal(@"USER_EXIT")); - expect([SDLAppInterfaceUnregisteredReason IGNITION_OFF].value).to(equal(@"IGNITION_OFF")); - expect([SDLAppInterfaceUnregisteredReason BLUETOOTH_OFF].value).to(equal(@"BLUETOOTH_OFF")); - expect([SDLAppInterfaceUnregisteredReason USB_DISCONNECTED].value).to(equal(@"USB_DISCONNECTED")); - expect([SDLAppInterfaceUnregisteredReason REQUEST_WHILE_IN_NONE_HMI_LEVEL].value).to(equal(@"REQUEST_WHILE_IN_NONE_HMI_LEVEL")); - expect([SDLAppInterfaceUnregisteredReason TOO_MANY_REQUESTS].value).to(equal(@"TOO_MANY_REQUESTS")); - expect([SDLAppInterfaceUnregisteredReason DRIVER_DISTRACTION_VIOLATION].value).to(equal(@"DRIVER_DISTRACTION_VIOLATION")); - expect([SDLAppInterfaceUnregisteredReason LANGUAGE_CHANGE].value).to(equal(@"LANGUAGE_CHANGE")); - expect([SDLAppInterfaceUnregisteredReason MASTER_RESET].value).to(equal(@"MASTER_RESET")); - expect([SDLAppInterfaceUnregisteredReason FACTORY_DEFAULTS].value).to(equal(@"FACTORY_DEFAULTS")); - expect([SDLAppInterfaceUnregisteredReason APP_UNAUTHORIZED].value).to(equal(@"APP_UNAUTHORIZED")); - //expect([SDLAppInterfaceUnregisteredReason PROTOCOL_VIOLATION].value).to(equal(@"PROTOCOL_VIOLATION")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - //expect([SDLAppInterfaceUnregisteredReason valueOf:@"USER_EXIT"]).to(equal([SDLAppInterfaceUnregisteredReason USER_EXIT])); - expect([SDLAppInterfaceUnregisteredReason valueOf:@"IGNITION_OFF"]).to(equal([SDLAppInterfaceUnregisteredReason IGNITION_OFF])); - expect([SDLAppInterfaceUnregisteredReason valueOf:@"BLUETOOTH_OFF"]).to(equal([SDLAppInterfaceUnregisteredReason BLUETOOTH_OFF])); - expect([SDLAppInterfaceUnregisteredReason valueOf:@"USB_DISCONNECTED"]).to(equal([SDLAppInterfaceUnregisteredReason USB_DISCONNECTED])); - expect([SDLAppInterfaceUnregisteredReason valueOf:@"REQUEST_WHILE_IN_NONE_HMI_LEVEL"]).to(equal([SDLAppInterfaceUnregisteredReason REQUEST_WHILE_IN_NONE_HMI_LEVEL])); - expect([SDLAppInterfaceUnregisteredReason valueOf:@"TOO_MANY_REQUESTS"]).to(equal([SDLAppInterfaceUnregisteredReason TOO_MANY_REQUESTS])); - expect([SDLAppInterfaceUnregisteredReason valueOf:@"DRIVER_DISTRACTION_VIOLATION"]).to(equal([SDLAppInterfaceUnregisteredReason DRIVER_DISTRACTION_VIOLATION])); - expect([SDLAppInterfaceUnregisteredReason valueOf:@"LANGUAGE_CHANGE"]).to(equal([SDLAppInterfaceUnregisteredReason LANGUAGE_CHANGE])); - expect([SDLAppInterfaceUnregisteredReason valueOf:@"MASTER_RESET"]).to(equal([SDLAppInterfaceUnregisteredReason MASTER_RESET])); - expect([SDLAppInterfaceUnregisteredReason valueOf:@"FACTORY_DEFAULTS"]).to(equal([SDLAppInterfaceUnregisteredReason FACTORY_DEFAULTS])); - expect([SDLAppInterfaceUnregisteredReason valueOf:@"APP_UNAUTHORIZED"]).to(equal([SDLAppInterfaceUnregisteredReason APP_UNAUTHORIZED])); - //expect([SDLAppInterfaceUnregisteredReason valueOf:@"PROTOCOL_VIOLATION"]).to(equal([SDLAppInterfaceUnregisteredReason PROTOCOL_VIOLATION])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLAppInterfaceUnregisteredReason valueOf:nil]).to(beNil()); - expect([SDLAppInterfaceUnregisteredReason valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLAppInterfaceUnregisteredReason values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[//[SDLAppInterfaceUnregisteredReason USER_EXIT], - [SDLAppInterfaceUnregisteredReason IGNITION_OFF], - [SDLAppInterfaceUnregisteredReason BLUETOOTH_OFF], - [SDLAppInterfaceUnregisteredReason USB_DISCONNECTED], - [SDLAppInterfaceUnregisteredReason REQUEST_WHILE_IN_NONE_HMI_LEVEL], - [SDLAppInterfaceUnregisteredReason TOO_MANY_REQUESTS], - [SDLAppInterfaceUnregisteredReason DRIVER_DISTRACTION_VIOLATION], - [SDLAppInterfaceUnregisteredReason LANGUAGE_CHANGE], - [SDLAppInterfaceUnregisteredReason MASTER_RESET], - [SDLAppInterfaceUnregisteredReason FACTORY_DEFAULTS], - [SDLAppInterfaceUnregisteredReason APP_UNAUTHORIZED]] copy]; - //[SDLAppInterfaceUnregisteredReason PROTOCOL_VIOLATION] - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + //expect(SDLAppInterfaceUnregisteredReason USER_EXIT).to(equal(@"USER_EXIT")); + expect(SDLAppInterfaceUnregisteredReasonIgnitionOff).to(equal(@"IGNITION_OFF")); + expect(SDLAppInterfaceUnregisteredReasonBluetoothOff).to(equal(@"BLUETOOTH_OFF")); + expect(SDLAppInterfaceUnregisteredReasonUSBDisconnected).to(equal(@"USB_DISCONNECTED")); + expect(SDLAppInterfaceUnregisteredReasonRequestWhileInNoneHMILevel).to(equal(@"REQUEST_WHILE_IN_NONE_HMI_LEVEL")); + expect(SDLAppInterfaceUnregisteredReasonTooManyRequests).to(equal(@"TOO_MANY_REQUESTS")); + expect(SDLAppInterfaceUnregisteredReasonDriverDistractionViolation).to(equal(@"DRIVER_DISTRACTION_VIOLATION")); + expect(SDLAppInterfaceUnregisteredReasonLanguageChange).to(equal(@"LANGUAGE_CHANGE")); + 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")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAudioStreamingStateSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAudioStreamingStateSpec.m index 0787d7321..08004919c 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAudioStreamingStateSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAudioStreamingStateSpec.m @@ -14,43 +14,10 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLAudioStreamingState AUDIBLE].value).to(equal(@"AUDIBLE")); - expect([SDLAudioStreamingState ATTENUATED].value).to(equal(@"ATTENUATED")); - expect([SDLAudioStreamingState NOT_AUDIBLE].value).to(equal(@"NOT_AUDIBLE")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLAudioStreamingState valueOf:@"AUDIBLE"]).to(equal([SDLAudioStreamingState AUDIBLE])); - expect([SDLAudioStreamingState valueOf:@"ATTENUATED"]).to(equal([SDLAudioStreamingState ATTENUATED])); - expect([SDLAudioStreamingState valueOf:@"NOT_AUDIBLE"]).to(equal([SDLAudioStreamingState NOT_AUDIBLE])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLAudioStreamingState valueOf:nil]).to(beNil()); - expect([SDLAudioStreamingState valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLAudioStreamingState values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLAudioStreamingState AUDIBLE], - [SDLAudioStreamingState ATTENUATED], - [SDLAudioStreamingState NOT_AUDIBLE]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLAudioStreamingStateAudible).to(equal(@"AUDIBLE")); + expect(SDLAudioStreamingStateAttenuated).to(equal(@"ATTENUATED")); + expect(SDLAudioStreamingStateNotAudible).to(equal(@"NOT_AUDIBLE")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAudioTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAudioTypeSpec.m index 8587b7ee1..1b3b1069f 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAudioTypeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAudioTypeSpec.m @@ -14,37 +14,8 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLAudioType PCM].value).to(equal(@"PCM")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLAudioType valueOf:@"PCM"]).to(equal([SDLAudioType PCM])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLAudioType valueOf:nil]).to(beNil()); - expect([SDLAudioType valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLAudioType values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLAudioType PCM]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLAudioTypePCM).to(equal(@"PCM")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLBitsPerSampleSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLBitsPerSampleSpec.m index bcc5dd01c..de44668ad 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLBitsPerSampleSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLBitsPerSampleSpec.m @@ -14,39 +14,8 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLBitsPerSample _8_BIT].value).to(equal(@"8_BIT")); - expect([SDLBitsPerSample _16_BIT].value).to(equal(@"16_BIT")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLBitsPerSample valueOf:@"8_BIT"]).to(equal([SDLBitsPerSample _8_BIT])); - expect([SDLBitsPerSample valueOf:@"16_BIT"]).to(equal([SDLBitsPerSample _16_BIT])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLBitsPerSample valueOf:nil]).to(beNil()); - expect([SDLBitsPerSample valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLBitsPerSample values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLBitsPerSample _8_BIT], - [SDLBitsPerSample _16_BIT]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLBitsPerSample8Bit).to(equal(@"8_BIT")); + expect(SDLBitsPerSample16Bit).to(equal(@"16_BIT")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLButtonEventModeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLButtonEventModeSpec.m index 4f6e6d054..c0f657c55 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLButtonEventModeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLButtonEventModeSpec.m @@ -14,40 +14,9 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLButtonEventMode BUTTONUP].value).to(equal(@"BUTTONUP")); - expect([SDLButtonEventMode BUTTONDOWN].value).to(equal(@"BUTTONDOWN")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLButtonEventMode valueOf:@"BUTTONUP"]).to(equal([SDLButtonEventMode BUTTONUP])); - expect([SDLButtonEventMode valueOf:@"BUTTONDOWN"]).to(equal([SDLButtonEventMode BUTTONDOWN])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLButtonEventMode valueOf:nil]).to(beNil()); - expect([SDLButtonEventMode valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLButtonEventMode values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLButtonEventMode BUTTONUP], - [SDLButtonEventMode BUTTONDOWN]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLButtonEventModeButtonUp).to(equal(@"BUTTONUP")); + expect(SDLButtonEventModeButtonDown).to(equal(@"BUTTONDOWN")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLButtonNameSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLButtonNameSpec.m index 6b9c64900..68f6a851e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLButtonNameSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLButtonNameSpec.m @@ -14,85 +14,42 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLButtonName OK].value).to(equal(@"OK")); - expect([SDLButtonName SEEKLEFT].value).to(equal(@"SEEKLEFT")); - expect([SDLButtonName SEEKRIGHT].value).to(equal(@"SEEKRIGHT")); - expect([SDLButtonName TUNEUP].value).to(equal(@"TUNEUP")); - expect([SDLButtonName TUNEDOWN].value).to(equal(@"TUNEDOWN")); - expect([SDLButtonName PRESET_0].value).to(equal(@"PRESET_0")); - expect([SDLButtonName PRESET_1].value).to(equal(@"PRESET_1")); - expect([SDLButtonName PRESET_2].value).to(equal(@"PRESET_2")); - expect([SDLButtonName PRESET_3].value).to(equal(@"PRESET_3")); - expect([SDLButtonName PRESET_4].value).to(equal(@"PRESET_4")); - expect([SDLButtonName PRESET_5].value).to(equal(@"PRESET_5")); - expect([SDLButtonName PRESET_6].value).to(equal(@"PRESET_6")); - expect([SDLButtonName PRESET_7].value).to(equal(@"PRESET_7")); - expect([SDLButtonName PRESET_8].value).to(equal(@"PRESET_8")); - expect([SDLButtonName PRESET_9].value).to(equal(@"PRESET_9")); - expect([SDLButtonName CUSTOM_BUTTON].value).to(equal(@"CUSTOM_BUTTON")); - expect([SDLButtonName SEARCH].value).to(equal(@"SEARCH")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLButtonName valueOf:@"OK"]).to(equal([SDLButtonName OK])); - expect([SDLButtonName valueOf:@"SEEKLEFT"]).to(equal([SDLButtonName SEEKLEFT])); - expect([SDLButtonName valueOf:@"SEEKRIGHT"]).to(equal([SDLButtonName SEEKRIGHT])); - expect([SDLButtonName valueOf:@"TUNEUP"]).to(equal([SDLButtonName TUNEUP])); - expect([SDLButtonName valueOf:@"TUNEDOWN"]).to(equal([SDLButtonName TUNEDOWN])); - expect([SDLButtonName valueOf:@"PRESET_0"]).to(equal([SDLButtonName PRESET_0])); - expect([SDLButtonName valueOf:@"PRESET_1"]).to(equal([SDLButtonName PRESET_1])); - expect([SDLButtonName valueOf:@"PRESET_2"]).to(equal([SDLButtonName PRESET_2])); - expect([SDLButtonName valueOf:@"PRESET_3"]).to(equal([SDLButtonName PRESET_3])); - expect([SDLButtonName valueOf:@"PRESET_4"]).to(equal([SDLButtonName PRESET_4])); - expect([SDLButtonName valueOf:@"PRESET_5"]).to(equal([SDLButtonName PRESET_5])); - expect([SDLButtonName valueOf:@"PRESET_6"]).to(equal([SDLButtonName PRESET_6])); - expect([SDLButtonName valueOf:@"PRESET_7"]).to(equal([SDLButtonName PRESET_7])); - expect([SDLButtonName valueOf:@"PRESET_8"]).to(equal([SDLButtonName PRESET_8])); - expect([SDLButtonName valueOf:@"PRESET_9"]).to(equal([SDLButtonName PRESET_9])); - expect([SDLButtonName valueOf:@"CUSTOM_BUTTON"]).to(equal([SDLButtonName CUSTOM_BUTTON])); - expect([SDLButtonName valueOf:@"SEARCH"]).to(equal([SDLButtonName SEARCH])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLButtonName valueOf:nil]).to(beNil()); - expect([SDLButtonName valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLButtonName values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLButtonName OK], - [SDLButtonName SEEKLEFT], - [SDLButtonName SEEKRIGHT], - [SDLButtonName TUNEUP], - [SDLButtonName TUNEDOWN], - [SDLButtonName PRESET_0], - [SDLButtonName PRESET_1], - [SDLButtonName PRESET_2], - [SDLButtonName PRESET_3], - [SDLButtonName PRESET_4], - [SDLButtonName PRESET_5], - [SDLButtonName PRESET_6], - [SDLButtonName PRESET_7], - [SDLButtonName PRESET_8], - [SDLButtonName PRESET_9], - [SDLButtonName CUSTOM_BUTTON], - [SDLButtonName SEARCH]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLButtonNameOk).to(equal(@"OK")); + expect(SDLButtonNameSeekLeft).to(equal(@"SEEKLEFT")); + expect(SDLButtonNameSeekRight).to(equal(@"SEEKRIGHT")); + expect(SDLButtonNameTuneUp).to(equal(@"TUNEUP")); + expect(SDLButtonNameTuneDown).to(equal(@"TUNEDOWN")); + expect(SDLButtonNamePreset0).to(equal(@"PRESET_0")); + expect(SDLButtonNamePreset1).to(equal(@"PRESET_1")); + expect(SDLButtonNamePreset2).to(equal(@"PRESET_2")); + expect(SDLButtonNamePreset3).to(equal(@"PRESET_3")); + expect(SDLButtonNamePreset4).to(equal(@"PRESET_4")); + expect(SDLButtonNamePreset5).to(equal(@"PRESET_5")); + expect(SDLButtonNamePreset6).to(equal(@"PRESET_6")); + expect(SDLButtonNamePreset7).to(equal(@"PRESET_7")); + expect(SDLButtonNamePreset8).to(equal(@"PRESET_8")); + expect(SDLButtonNamePreset9).to(equal(@"PRESET_9")); + expect(SDLButtonNameCustomButton).to(equal(@"CUSTOM_BUTTON")); + expect(SDLButtonNameSearch).to(equal(@"SEARCH")); + expect(SDLButtonNameACMax).to(equal(@"AC_MAX")); + expect(SDLButtonNameAC).to(equal(@"AC")); + expect(SDLButtonNameRecirculate).to(equal(@"RECIRCULATE")); + expect(SDLButtonNameFanUp).to(equal(@"FAN_UP")); + expect(SDLButtonNameFanDown).to(equal(@"FAN_DOWN")); + expect(SDLButtonNameTempUp).to(equal(@"TEMP_UP")); + expect(SDLButtonNameTempDown).to(equal(@"TEMP_DOWN")); + expect(SDLButtonNameDefrostMax).to(equal(@"DEFROST_MAX")); + expect(SDLButtonNameDefrostRear).to(equal(@"DEFROST_REAR")); + expect(SDLButtonNameDefrost).to(equal(@"DEFROST")); + expect(SDLButtonNameUpperVent).to(equal(@"UPPER_VENT")); + expect(SDLButtonNameLowerVent).to(equal(@"LOWER_VENT")); + expect(SDLButtonNameVolumeUp).to(equal(@"VOLUME_UP")); + expect(SDLButtonNameVolumeDown).to(equal(@"VOLUME_DOWN")); + expect(SDLButtonNameEject).to(equal(@"EJECT")); + expect(SDLButtonNameSource).to(equal(@"SOURCE")); + expect(SDLButtonNameShuffle).to(equal(@"SHUFFLE")); + expect(SDLButtonNameRepeat).to(equal(@"REPEAT")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLButtonPressModeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLButtonPressModeSpec.m index eb6b2fa35..f38627c36 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLButtonPressModeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLButtonPressModeSpec.m @@ -14,39 +14,8 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLButtonPressMode LONG].value).to(equal(@"LONG")); - expect([SDLButtonPressMode SHORT].value).to(equal(@"SHORT")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLButtonPressMode valueOf:@"LONG"]).to(equal([SDLButtonPressMode LONG])); - expect([SDLButtonPressMode valueOf:@"SHORT"]).to(equal([SDLButtonPressMode SHORT])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLButtonPressMode valueOf:nil]).to(beNil()); - expect([SDLButtonPressMode valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLButtonPressMode values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLButtonPressMode LONG], - [SDLButtonPressMode SHORT]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLButtonPressModeLong).to(equal(@"LONG")); + expect(SDLButtonPressModeShort).to(equal(@"SHORT")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLCarModeStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLCarModeStatusSpec.m index 78f04e837..ecb2ed565 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLCarModeStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLCarModeStatusSpec.m @@ -14,45 +14,10 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLCarModeStatus NORMAL].value).to(equal(@"NORMAL")); - expect([SDLCarModeStatus FACTORY].value).to(equal(@"FACTORY")); - expect([SDLCarModeStatus TRANSPORT].value).to(equal(@"TRANSPORT")); - expect([SDLCarModeStatus CRASH].value).to(equal(@"CRASH")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLCarModeStatus valueOf:@"NORMAL"]).to(equal([SDLCarModeStatus NORMAL])); - expect([SDLCarModeStatus valueOf:@"FACTORY"]).to(equal([SDLCarModeStatus FACTORY])); - expect([SDLCarModeStatus valueOf:@"TRANSPORT"]).to(equal([SDLCarModeStatus TRANSPORT])); - expect([SDLCarModeStatus valueOf:@"CRASH"]).to(equal([SDLCarModeStatus CRASH])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLCarModeStatus valueOf:nil]).to(beNil()); - expect([SDLCarModeStatus valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLCarModeStatus values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLCarModeStatus NORMAL], - [SDLCarModeStatus FACTORY], - [SDLCarModeStatus TRANSPORT], - [SDLCarModeStatus CRASH]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLCarModeStatusNormal).to(equal(@"NORMAL")); + expect(SDLCarModeStatusFactory).to(equal(@"FACTORY")); + expect(SDLCarModeStatusTransport).to(equal(@"TRANSPORT")); + expect(SDLCarModeStatusCrash).to(equal(@"CRASH")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLCharacterSetSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLCharacterSetSpec.m index df29296a5..293b2f3fe 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLCharacterSetSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLCharacterSetSpec.m @@ -14,46 +14,11 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLCharacterSet TYPE2SET].value).to(equal(@"TYPE2SET")); - expect([SDLCharacterSet TYPE5SET].value).to(equal(@"TYPE5SET")); - expect([SDLCharacterSet CID1SET].value).to(equal(@"CID1SET")); - expect([SDLCharacterSet CID2SET].value).to(equal(@"CID2SET")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLCharacterSet valueOf:@"TYPE2SET"]).to(equal([SDLCharacterSet TYPE2SET])); - expect([SDLCharacterSet valueOf:@"TYPE5SET"]).to(equal([SDLCharacterSet TYPE5SET])); - expect([SDLCharacterSet valueOf:@"CID1SET"]).to(equal([SDLCharacterSet CID1SET])); - expect([SDLCharacterSet valueOf:@"CID2SET"]).to(equal([SDLCharacterSet CID2SET])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLCharacterSet valueOf:nil]).to(beNil()); - expect([SDLCharacterSet valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLCharacterSet values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLCharacterSet TYPE2SET], - [SDLCharacterSet TYPE5SET], - [SDLCharacterSet CID1SET], - [SDLCharacterSet CID2SET]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLCharacterSetType2).to(equal(@"TYPE2SET")); + expect(SDLCharacterSetType5).to(equal(@"TYPE5SET")); + expect(SDLCharacterSetCID1).to(equal(@"CID1SET")); + expect(SDLCharacterSetCID2).to(equal(@"CID2SET")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLCompassDirectionSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLCompassDirectionSpec.m index 49a10e02d..1e76dab85 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLCompassDirectionSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLCompassDirectionSpec.m @@ -14,58 +14,15 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLCompassDirection NORTH].value).to(equal(@"NORTH")); - expect([SDLCompassDirection NORTHWEST].value).to(equal(@"NORTHWEST")); - expect([SDLCompassDirection WEST].value).to(equal(@"WEST")); - expect([SDLCompassDirection SOUTHWEST].value).to(equal(@"SOUTHWEST")); - expect([SDLCompassDirection SOUTH].value).to(equal(@"SOUTH")); - expect([SDLCompassDirection SOUTHEAST].value).to(equal(@"SOUTHEAST")); - expect([SDLCompassDirection EAST].value).to(equal(@"EAST")); - expect([SDLCompassDirection NORTHEAST].value).to(equal(@"NORTHEAST")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLCompassDirection valueOf:@"NORTH"]).to(equal([SDLCompassDirection NORTH])); - expect([SDLCompassDirection valueOf:@"NORTHWEST"]).to(equal([SDLCompassDirection NORTHWEST])); - expect([SDLCompassDirection valueOf:@"WEST"]).to(equal([SDLCompassDirection WEST])); - expect([SDLCompassDirection valueOf:@"SOUTHWEST"]).to(equal([SDLCompassDirection SOUTHWEST])); - expect([SDLCompassDirection valueOf:@"SOUTH"]).to(equal([SDLCompassDirection SOUTH])); - expect([SDLCompassDirection valueOf:@"SOUTHEAST"]).to(equal([SDLCompassDirection SOUTHEAST])); - expect([SDLCompassDirection valueOf:@"EAST"]).to(equal([SDLCompassDirection EAST])); - expect([SDLCompassDirection valueOf:@"NORTHEAST"]).to(equal([SDLCompassDirection NORTHEAST])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLCompassDirection valueOf:nil]).to(beNil()); - expect([SDLCompassDirection valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLCompassDirection values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLCompassDirection NORTH], - [SDLCompassDirection NORTHWEST], - [SDLCompassDirection WEST], - [SDLCompassDirection SOUTHWEST], - [SDLCompassDirection SOUTH], - [SDLCompassDirection SOUTHEAST], - [SDLCompassDirection EAST], - [SDLCompassDirection NORTHEAST]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLCompassDirectionNorth).to(equal(@"NORTH")); + expect(SDLCompassDirectionNorthwest).to(equal(@"NORTHWEST")); + expect(SDLCompassDirectionWest).to(equal(@"WEST")); + expect(SDLCompassDirectionSouthwest).to(equal(@"SOUTHWEST")); + expect(SDLCompassDirectionSouth).to(equal(@"SOUTH")); + expect(SDLCompassDirectionSoutheast).to(equal(@"SOUTHEAST")); + expect(SDLCompassDirectionEast).to(equal(@"EAST")); + expect(SDLCompassDirectionNortheast).to(equal(@"NORTHEAST")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLComponentVolumeStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLComponentVolumeStatusSpec.m index 491e802aa..664728ee7 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLComponentVolumeStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLComponentVolumeStatusSpec.m @@ -14,51 +14,12 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLComponentVolumeStatus UNKNOWN].value).to(equal(@"UNKNOWN")); - expect([SDLComponentVolumeStatus NORMAL].value).to(equal(@"NORMAL")); - expect([SDLComponentVolumeStatus LOW].value).to(equal(@"LOW")); - expect([SDLComponentVolumeStatus FAULT].value).to(equal(@"FAULT")); - expect([SDLComponentVolumeStatus ALERT].value).to(equal(@"ALERT")); - expect([SDLComponentVolumeStatus NOT_SUPPORTED].value).to(equal(@"NOT_SUPPORTED")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLComponentVolumeStatus valueOf:@"UNKNOWN"]).to(equal([SDLComponentVolumeStatus UNKNOWN])); - expect([SDLComponentVolumeStatus valueOf:@"NORMAL"]).to(equal([SDLComponentVolumeStatus NORMAL])); - expect([SDLComponentVolumeStatus valueOf:@"LOW"]).to(equal([SDLComponentVolumeStatus LOW])); - expect([SDLComponentVolumeStatus valueOf:@"FAULT"]).to(equal([SDLComponentVolumeStatus FAULT])); - expect([SDLComponentVolumeStatus valueOf:@"ALERT"]).to(equal([SDLComponentVolumeStatus ALERT])); - expect([SDLComponentVolumeStatus valueOf:@"NOT_SUPPORTED"]).to(equal([SDLComponentVolumeStatus NOT_SUPPORTED])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLComponentVolumeStatus valueOf:nil]).to(beNil()); - expect([SDLComponentVolumeStatus valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLComponentVolumeStatus values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLComponentVolumeStatus UNKNOWN], - [SDLComponentVolumeStatus NORMAL], - [SDLComponentVolumeStatus LOW], - [SDLComponentVolumeStatus FAULT], - [SDLComponentVolumeStatus ALERT], - [SDLComponentVolumeStatus NOT_SUPPORTED]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLComponentVolumeStatusUnknown).to(equal(@"UNKNOWN")); + expect(SDLComponentVolumeStatusNormal).to(equal(@"NORMAL")); + expect(SDLComponentVolumeStatusLow).to(equal(@"LOW")); + expect(SDLComponentVolumeStatusFault).to(equal(@"FAULT")); + expect(SDLComponentVolumeStatusAlert).to(equal(@"ALERT")); + expect(SDLComponentVolumeStatusNotSupported).to(equal(@"NOT_SUPPORTED")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDeliveryModeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDeliveryModeSpec.m index c569c5ff5..34746661b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDeliveryModeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDeliveryModeSpec.m @@ -12,43 +12,9 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLDeliveryMode PROMPT].value).to(equal(@"PROMPT")); - expect([SDLDeliveryMode DESTINATION].value).to(equal(@"DESTINATION")); - expect([SDLDeliveryMode QUEUE].value).to(equal(@"QUEUE")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLDeliveryMode valueOf:@"PROMPT"]).to(equal([SDLDeliveryMode PROMPT])); - expect([SDLDeliveryMode valueOf:@"DESTINATION"]).to(equal([SDLDeliveryMode DESTINATION])); - expect([SDLDeliveryMode valueOf:@"QUEUE"]).to(equal([SDLDeliveryMode QUEUE])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLDeliveryMode valueOf:nil]).to(beNil()); - expect([SDLDeliveryMode valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLDeliveryMode values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLDeliveryMode PROMPT], - [SDLDeliveryMode DESTINATION], - [SDLDeliveryMode QUEUE], - ] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLDeliveryModePrompt).to(equal(@"PROMPT")); + expect(SDLDeliveryModeDestination).to(equal(@"DESTINATION")); + expect(SDLDeliveryModeQueue).to(equal(@"QUEUE")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDeviceLevelStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDeviceLevelStatusSpec.m index 70f1bfb61..09e010fd7 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDeviceLevelStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDeviceLevelStatusSpec.m @@ -14,51 +14,12 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLDeviceLevelStatus ZERO_LEVEL_BARS].value).to(equal(@"ZERO_LEVEL_BARS")); - expect([SDLDeviceLevelStatus ONE_LEVEL_BARS].value).to(equal(@"ONE_LEVEL_BARS")); - expect([SDLDeviceLevelStatus TWO_LEVEL_BARS].value).to(equal(@"TWO_LEVEL_BARS")); - expect([SDLDeviceLevelStatus THREE_LEVEL_BARS].value).to(equal(@"THREE_LEVEL_BARS")); - expect([SDLDeviceLevelStatus FOUR_LEVEL_BARS].value).to(equal(@"FOUR_LEVEL_BARS")); - expect([SDLDeviceLevelStatus NOT_PROVIDED].value).to(equal(@"NOT_PROVIDED")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLDeviceLevelStatus valueOf:@"ZERO_LEVEL_BARS"]).to(equal([SDLDeviceLevelStatus ZERO_LEVEL_BARS])); - expect([SDLDeviceLevelStatus valueOf:@"ONE_LEVEL_BARS"]).to(equal([SDLDeviceLevelStatus ONE_LEVEL_BARS])); - expect([SDLDeviceLevelStatus valueOf:@"TWO_LEVEL_BARS"]).to(equal([SDLDeviceLevelStatus TWO_LEVEL_BARS])); - expect([SDLDeviceLevelStatus valueOf:@"THREE_LEVEL_BARS"]).to(equal([SDLDeviceLevelStatus THREE_LEVEL_BARS])); - expect([SDLDeviceLevelStatus valueOf:@"FOUR_LEVEL_BARS"]).to(equal([SDLDeviceLevelStatus FOUR_LEVEL_BARS])); - expect([SDLDeviceLevelStatus valueOf:@"NOT_PROVIDED"]).to(equal([SDLDeviceLevelStatus NOT_PROVIDED])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLDeviceLevelStatus valueOf:nil]).to(beNil()); - expect([SDLDeviceLevelStatus valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLDeviceLevelStatus values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLDeviceLevelStatus ZERO_LEVEL_BARS], - [SDLDeviceLevelStatus ONE_LEVEL_BARS], - [SDLDeviceLevelStatus TWO_LEVEL_BARS], - [SDLDeviceLevelStatus THREE_LEVEL_BARS], - [SDLDeviceLevelStatus FOUR_LEVEL_BARS], - [SDLDeviceLevelStatus NOT_PROVIDED]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLDeviceLevelStatusZeroBars).to(equal(@"ZERO_LEVEL_BARS")); + expect(SDLDeviceLevelStatusOneBar).to(equal(@"ONE_LEVEL_BARS")); + expect(SDLDeviceLevelStatusTwoBars).to(equal(@"TWO_LEVEL_BARS")); + expect(SDLDeviceLevelStatusThreeBars).to(equal(@"THREE_LEVEL_BARS")); + expect(SDLDeviceLevelStatusFourBars).to(equal(@"FOUR_LEVEL_BARS")); + expect(SDLDeviceLevelStatusNotProvided).to(equal(@"NOT_PROVIDED")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDimensionSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDimensionSpec.m index e65ee8201..42e774e23 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDimensionSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDimensionSpec.m @@ -14,43 +14,10 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLDimension NO_FIX].value).to(equal(@"NO_FIX")); - expect([SDLDimension _2D].value).to(equal(@"2D")); - expect([SDLDimension _3D].value).to(equal(@"3D")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLDimension valueOf:@"NO_FIX"]).to(equal([SDLDimension NO_FIX])); - expect([SDLDimension valueOf:@"2D"]).to(equal([SDLDimension _2D])); - expect([SDLDimension valueOf:@"3D"]).to(equal([SDLDimension _3D])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLDimension valueOf:nil]).to(beNil()); - expect([SDLDimension valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLDimension values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLDimension NO_FIX], - [SDLDimension _2D], - [SDLDimension _3D]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLDimensionNoFix).to(equal(@"NO_FIX")); + expect(SDLDimension2D).to(equal(@"2D")); + expect(SDLDimension3D).to(equal(@"3D")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDisplayTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDisplayTypeSpec.m index eaa44c2d3..46aaa3411 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDisplayTypeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDisplayTypeSpec.m @@ -14,66 +14,17 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLDisplayType CID].value).to(equal(@"CID")); - expect([SDLDisplayType TYPE2].value).to(equal(@"TYPE2")); - expect([SDLDisplayType TYPE5].value).to(equal(@"TYPE5")); - expect([SDLDisplayType NGN].value).to(equal(@"NGN")); - expect([SDLDisplayType GEN2_6_DMA].value).to(equal(@"GEN2_6_DMA")); - expect([SDLDisplayType GEN2_8_DMA].value).to(equal(@"GEN2_8_DMA")); - expect([SDLDisplayType MFD3].value).to(equal(@"MFD3")); - expect([SDLDisplayType MFD4].value).to(equal(@"MFD4")); - expect([SDLDisplayType MFD5].value).to(equal(@"MFD5")); - expect([SDLDisplayType GEN3_8_INCH].value).to(equal(@"GEN3_8-INCH")); - expect([SDLDisplayType GENERIC].value).to(equal(@"SDL_GENERIC")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLDisplayType valueOf:@"CID"]).to(equal([SDLDisplayType CID])); - expect([SDLDisplayType valueOf:@"TYPE2"]).to(equal([SDLDisplayType TYPE2])); - expect([SDLDisplayType valueOf:@"TYPE5"]).to(equal([SDLDisplayType TYPE5])); - expect([SDLDisplayType valueOf:@"NGN"]).to(equal([SDLDisplayType NGN])); - expect([SDLDisplayType valueOf:@"GEN2_6_DMA"]).to(equal([SDLDisplayType GEN2_6_DMA])); - expect([SDLDisplayType valueOf:@"GEN2_8_DMA"]).to(equal([SDLDisplayType GEN2_8_DMA])); - expect([SDLDisplayType valueOf:@"MFD3"]).to(equal([SDLDisplayType MFD3])); - expect([SDLDisplayType valueOf:@"MFD4"]).to(equal([SDLDisplayType MFD4])); - expect([SDLDisplayType valueOf:@"MFD5"]).to(equal([SDLDisplayType MFD5])); - expect([SDLDisplayType valueOf:@"GEN3_8-INCH"]).to(equal([SDLDisplayType GEN3_8_INCH])); - expect([SDLDisplayType valueOf:@"SDL_GENERIC"]).to(equal([SDLDisplayType GENERIC])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLDisplayType valueOf:nil]).to(beNil()); - expect([SDLDisplayType valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLDisplayType values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLDisplayType CID], - [SDLDisplayType TYPE2], - [SDLDisplayType TYPE5], - [SDLDisplayType NGN], - [SDLDisplayType GEN2_6_DMA], - [SDLDisplayType GEN2_8_DMA], - [SDLDisplayType MFD3], - [SDLDisplayType MFD4], - [SDLDisplayType MFD5], - [SDLDisplayType GEN3_8_INCH], - [SDLDisplayType GENERIC]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLDisplayTypeCID).to(equal(@"CID")); + expect(SDLDisplayTypeType2).to(equal(@"TYPE2")); + expect(SDLDisplayTypeType5).to(equal(@"TYPE5")); + expect(SDLDisplayTypeNGN).to(equal(@"NGN")); + expect(SDLDisplayTypeGen26DMA).to(equal(@"GEN2_6_DMA")); + expect(SDLDisplayTypeGen28DMA).to(equal(@"GEN2_8_DMA")); + expect(SDLDisplayTypeMFD3).to(equal(@"MFD3")); + expect(SDLDisplayTypeMFD4).to(equal(@"MFD4")); + expect(SDLDisplayTypeMFD5).to(equal(@"MFD5")); + expect(SDLDisplayTypeGen38Inch).to(equal(@"GEN3_8-INCH")); + expect(SDLDisplayTypeGeneric).to(equal(@"SDL_GENERIC")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDriverDistractionStateSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDriverDistractionStateSpec.m index 8280259bc..b15b41336 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDriverDistractionStateSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDriverDistractionStateSpec.m @@ -14,39 +14,8 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLDriverDistractionState DD_OFF].value).to(equal(@"DD_OFF")); - expect([SDLDriverDistractionState DD_ON].value).to(equal(@"DD_ON")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLDriverDistractionState valueOf:@"DD_OFF"]).to(equal([SDLDriverDistractionState DD_OFF])); - expect([SDLDriverDistractionState valueOf:@"DD_ON"]).to(equal([SDLDriverDistractionState DD_ON])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLDriverDistractionState valueOf:nil]).to(beNil()); - expect([SDLDriverDistractionState valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLDriverDistractionState values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLDriverDistractionState DD_OFF], - [SDLDriverDistractionState DD_ON]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLDriverDistractionStateOff).to(equal(@"DD_OFF")); + expect(SDLDriverDistractionStateOn).to(equal(@"DD_ON")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLECallConfirmationStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLECallConfirmationStatusSpec.m index aa5398c94..64addedf1 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLECallConfirmationStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLECallConfirmationStatusSpec.m @@ -14,55 +14,14 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLECallConfirmationStatus NORMAL].value).to(equal(@"NORMAL")); - expect([SDLECallConfirmationStatus CALL_IN_PROGRESS].value).to(equal(@"CALL_IN_PROGRESS")); - expect([SDLECallConfirmationStatus CALL_CANCELLED].value).to(equal(@"CALL_CANCELLED")); - expect([SDLECallConfirmationStatus CALL_COMPLETED].value).to(equal(@"CALL_COMPLETED")); - expect([SDLECallConfirmationStatus CALL_UNSUCCESSFUL].value).to(equal(@"CALL_UNSUCCESSFUL")); - expect([SDLECallConfirmationStatus ECALL_CONFIGURED_OFF].value).to(equal(@"ECALL_CONFIGURED_OFF")); - expect([SDLECallConfirmationStatus CALL_COMPLETE_DTMF_TIMEOUT].value).to(equal(@"CALL_COMPLETE_DTMF_TIMEOUT")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLECallConfirmationStatus valueOf:@"NORMAL"]).to(equal([SDLECallConfirmationStatus NORMAL])); - expect([SDLECallConfirmationStatus valueOf:@"CALL_IN_PROGRESS"]).to(equal([SDLECallConfirmationStatus CALL_IN_PROGRESS])); - expect([SDLECallConfirmationStatus valueOf:@"CALL_CANCELLED"]).to(equal([SDLECallConfirmationStatus CALL_CANCELLED])); - expect([SDLECallConfirmationStatus valueOf:@"CALL_COMPLETED"]).to(equal([SDLECallConfirmationStatus CALL_COMPLETED])); - expect([SDLECallConfirmationStatus valueOf:@"CALL_UNSUCCESSFUL"]).to(equal([SDLECallConfirmationStatus CALL_UNSUCCESSFUL])); - expect([SDLECallConfirmationStatus valueOf:@"ECALL_CONFIGURED_OFF"]).to(equal([SDLECallConfirmationStatus ECALL_CONFIGURED_OFF])); - expect([SDLECallConfirmationStatus valueOf:@"CALL_COMPLETE_DTMF_TIMEOUT"]).to(equal([SDLECallConfirmationStatus CALL_COMPLETE_DTMF_TIMEOUT])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLECallConfirmationStatus valueOf:nil]).to(beNil()); - expect([SDLECallConfirmationStatus valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLECallConfirmationStatus values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLECallConfirmationStatus NORMAL], - [SDLECallConfirmationStatus CALL_IN_PROGRESS], - [SDLECallConfirmationStatus CALL_CANCELLED], - [SDLECallConfirmationStatus CALL_COMPLETED], - [SDLECallConfirmationStatus CALL_UNSUCCESSFUL], - [SDLECallConfirmationStatus ECALL_CONFIGURED_OFF], - [SDLECallConfirmationStatus CALL_COMPLETE_DTMF_TIMEOUT]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLECallConfirmationStatusNormal).to(equal(@"NORMAL")); + expect(SDLECallConfirmationStatusInProgress).to(equal(@"CALL_IN_PROGRESS")); + expect(SDLECallConfirmationStatusCancelled).to(equal(@"CALL_CANCELLED")); + expect(SDLECallConfirmationStatusCompleted).to(equal(@"CALL_COMPLETED")); + expect(SDLECallConfirmationStatusUnsuccessful).to(equal(@"CALL_UNSUCCESSFUL")); + expect(SDLECallConfirmationStatusConfiguredOff).to(equal(@"ECALL_CONFIGURED_OFF")); + expect(SDLECallConfirmationStatusCompleteDTMFTimeout).to(equal(@"CALL_COMPLETE_DTMF_TIMEOUT")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLEmergencyEventTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLEmergencyEventTypeSpec.m index ff0126233..7a90c3a9b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLEmergencyEventTypeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLEmergencyEventTypeSpec.m @@ -14,55 +14,14 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLEmergencyEventType NO_EVENT].value).to(equal(@"NO_EVENT")); - expect([SDLEmergencyEventType FRONTAL].value).to(equal(@"FRONTAL")); - expect([SDLEmergencyEventType SIDE].value).to(equal(@"SIDE")); - expect([SDLEmergencyEventType REAR].value).to(equal(@"REAR")); - expect([SDLEmergencyEventType ROLLOVER].value).to(equal(@"ROLLOVER")); - expect([SDLEmergencyEventType NOT_SUPPORTED].value).to(equal(@"NOT_SUPPORTED")); - expect([SDLEmergencyEventType FAULT].value).to(equal(@"FAULT")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLEmergencyEventType valueOf:@"NO_EVENT"]).to(equal([SDLEmergencyEventType NO_EVENT])); - expect([SDLEmergencyEventType valueOf:@"FRONTAL"]).to(equal([SDLEmergencyEventType FRONTAL])); - expect([SDLEmergencyEventType valueOf:@"SIDE"]).to(equal([SDLEmergencyEventType SIDE])); - expect([SDLEmergencyEventType valueOf:@"REAR"]).to(equal([SDLEmergencyEventType REAR])); - expect([SDLEmergencyEventType valueOf:@"ROLLOVER"]).to(equal([SDLEmergencyEventType ROLLOVER])); - expect([SDLEmergencyEventType valueOf:@"NOT_SUPPORTED"]).to(equal([SDLEmergencyEventType NOT_SUPPORTED])); - expect([SDLEmergencyEventType valueOf:@"FAULT"]).to(equal([SDLEmergencyEventType FAULT])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLEmergencyEventType valueOf:nil]).to(beNil()); - expect([SDLEmergencyEventType valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLEmergencyEventType values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLEmergencyEventType NO_EVENT], - [SDLEmergencyEventType FRONTAL], - [SDLEmergencyEventType SIDE], - [SDLEmergencyEventType REAR], - [SDLEmergencyEventType ROLLOVER], - [SDLEmergencyEventType NOT_SUPPORTED], - [SDLEmergencyEventType FAULT]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLEmergencyEventTypeNoEvent).to(equal(@"NO_EVENT")); + expect(SDLEmergencyEventTypeFrontal).to(equal(@"FRONTAL")); + expect(SDLEmergencyEventTypeSide).to(equal(@"SIDE")); + expect(SDLEmergencyEventTypeRear).to(equal(@"REAR")); + expect(SDLEmergencyEventTypeRollover).to(equal(@"ROLLOVER")); + expect(SDLEmergencyEventTypeNotSupported).to(equal(@"NOT_SUPPORTED")); + expect(SDLEmergencyEventTypeFault).to(equal(@"FAULT")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLFileTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLFileTypeSpec.m index 77eab74dc..3fe02b7cc 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLFileTypeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLFileTypeSpec.m @@ -14,58 +14,15 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLFileType GRAPHIC_BMP].value).to(equal(@"GRAPHIC_BMP")); - expect([SDLFileType GRAPHIC_JPEG].value).to(equal(@"GRAPHIC_JPEG")); - expect([SDLFileType GRAPHIC_PNG].value).to(equal(@"GRAPHIC_PNG")); - expect([SDLFileType AUDIO_WAVE].value).to(equal(@"AUDIO_WAVE")); - expect([SDLFileType AUDIO_MP3].value).to(equal(@"AUDIO_MP3")); - expect([SDLFileType AUDIO_AAC].value).to(equal(@"AUDIO_AAC")); - expect([SDLFileType BINARY].value).to(equal(@"BINARY")); - expect([SDLFileType JSON].value).to(equal(@"JSON")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLFileType valueOf:@"GRAPHIC_BMP"]).to(equal([SDLFileType GRAPHIC_BMP])); - expect([SDLFileType valueOf:@"GRAPHIC_JPEG"]).to(equal([SDLFileType GRAPHIC_JPEG])); - expect([SDLFileType valueOf:@"GRAPHIC_PNG"]).to(equal([SDLFileType GRAPHIC_PNG])); - expect([SDLFileType valueOf:@"AUDIO_WAVE"]).to(equal([SDLFileType AUDIO_WAVE])); - expect([SDLFileType valueOf:@"AUDIO_MP3"]).to(equal([SDLFileType AUDIO_MP3])); - expect([SDLFileType valueOf:@"AUDIO_AAC"]).to(equal([SDLFileType AUDIO_AAC])); - expect([SDLFileType valueOf:@"BINARY"]).to(equal([SDLFileType BINARY])); - expect([SDLFileType valueOf:@"JSON"]).to(equal([SDLFileType JSON])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLFileType valueOf:nil]).to(beNil()); - expect([SDLFileType valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLFileType values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLFileType GRAPHIC_BMP], - [SDLFileType GRAPHIC_JPEG], - [SDLFileType GRAPHIC_PNG], - [SDLFileType AUDIO_WAVE], - [SDLFileType AUDIO_MP3], - [SDLFileType AUDIO_AAC], - [SDLFileType BINARY], - [SDLFileType JSON]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLFileTypeBMP).to(equal(@"GRAPHIC_BMP")); + expect(SDLFileTypeJPEG).to(equal(@"GRAPHIC_JPEG")); + expect(SDLFileTypePNG).to(equal(@"GRAPHIC_PNG")); + expect(SDLFileTypeWAV).to(equal(@"AUDIO_WAVE")); + expect(SDLFileTypeMP3).to(equal(@"AUDIO_MP3")); + expect(SDLFileTypeAAC).to(equal(@"AUDIO_AAC")); + expect(SDLFileTypeBinary).to(equal(@"BINARY")); + expect(SDLFileTypeJSON).to(equal(@"JSON")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLFuelCutoffStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLFuelCutoffStatusSpec.m index d4833ff40..8842cb2f3 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLFuelCutoffStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLFuelCutoffStatusSpec.m @@ -14,42 +14,9 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLFuelCutoffStatus TERMINATE_FUEL].value).to(equal(@"TERMINATE_FUEL")); - expect([SDLFuelCutoffStatus NORMAL_OPERATION].value).to(equal(@"NORMAL_OPERATION")); - expect([SDLFuelCutoffStatus FAULT].value).to(equal(@"FAULT")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLFuelCutoffStatus valueOf:@"TERMINATE_FUEL"]).to(equal([SDLFuelCutoffStatus TERMINATE_FUEL])); - expect([SDLFuelCutoffStatus valueOf:@"NORMAL_OPERATION"]).to(equal([SDLFuelCutoffStatus NORMAL_OPERATION])); - expect([SDLFuelCutoffStatus valueOf:@"FAULT"]).to(equal([SDLFuelCutoffStatus FAULT])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLFuelCutoffStatus valueOf:nil]).to(beNil()); - expect([SDLFuelCutoffStatus valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLFuelCutoffStatus values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLFuelCutoffStatus TERMINATE_FUEL], - [SDLFuelCutoffStatus NORMAL_OPERATION], - [SDLFuelCutoffStatus FAULT]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLFuelCutoffStatusTerminateFuel).to(equal(@"TERMINATE_FUEL")); + expect(SDLFuelCutoffStatusNormalOperation).to(equal(@"NORMAL_OPERATION")); + expect(SDLFuelCutoffStatusFault).to(equal(@"FAULT")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLGlobalProperySpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLGlobalProperySpec.m index 2844dcf41..34d2c4fb6 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLGlobalProperySpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLGlobalProperySpec.m @@ -14,54 +14,13 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLGlobalProperty HELPPROMPT].value).to(equal(@"HELPPROMPT")); - expect([SDLGlobalProperty TIMEOUTPROMPT].value).to(equal(@"TIMEOUTPROMPT")); - expect([SDLGlobalProperty VRHELPTITLE].value).to(equal(@"VRHELPTITLE")); - expect([SDLGlobalProperty VRHELPITEMS].value).to(equal(@"VRHELPITEMS")); - expect([SDLGlobalProperty MENUNAME].value).to(equal(@"MENUNAME")); - expect([SDLGlobalProperty MENUICON].value).to(equal(@"MENUICON")); - expect([SDLGlobalProperty KEYBOARDPROPERTIES].value).to(equal(@"KEYBOARDPROPERTIES")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLGlobalProperty valueOf:@"HELPPROMPT"]).to(equal([SDLGlobalProperty HELPPROMPT])); - expect([SDLGlobalProperty valueOf:@"TIMEOUTPROMPT"]).to(equal([SDLGlobalProperty TIMEOUTPROMPT])); - expect([SDLGlobalProperty valueOf:@"VRHELPTITLE"]).to(equal([SDLGlobalProperty VRHELPTITLE])); - expect([SDLGlobalProperty valueOf:@"VRHELPITEMS"]).to(equal([SDLGlobalProperty VRHELPITEMS])); - expect([SDLGlobalProperty valueOf:@"MENUNAME"]).to(equal([SDLGlobalProperty MENUNAME])); - expect([SDLGlobalProperty valueOf:@"MENUICON"]).to(equal([SDLGlobalProperty MENUICON])); - expect([SDLGlobalProperty valueOf:@"KEYBOARDPROPERTIES"]).to(equal([SDLGlobalProperty KEYBOARDPROPERTIES])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLGlobalProperty valueOf:nil]).to(beNil()); - expect([SDLGlobalProperty valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLGlobalProperty values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLGlobalProperty HELPPROMPT], - [SDLGlobalProperty TIMEOUTPROMPT], - [SDLGlobalProperty VRHELPTITLE], - [SDLGlobalProperty VRHELPITEMS], - [SDLGlobalProperty MENUNAME], - [SDLGlobalProperty MENUICON], - [SDLGlobalProperty KEYBOARDPROPERTIES]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLGlobalPropertyHelpPrompt).to(equal(@"HELPPROMPT")); + expect(SDLGlobalPropertyTimeoutPrompt).to(equal(@"TIMEOUTPROMPT")); + expect(SDLGlobalPropertyVoiceRecognitionHelpTitle).to(equal(@"VRHELPTITLE")); + expect(SDLGlobalPropertyVoiceRecognitionHelpItems).to(equal(@"VRHELPITEMS")); + expect(SDLGlobalPropertyMenuName).to(equal(@"MENUNAME")); + expect(SDLGlobalPropertyMenuIcon).to(equal(@"MENUICON")); + expect(SDLGlobalPropertyKeyboard).to(equal(@"KEYBOARDPROPERTIES")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLHMILevelSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLHMILevelSpec.m index 8b9d9f9b7..151357a0d 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLHMILevelSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLHMILevelSpec.m @@ -14,45 +14,10 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLHMILevel FULL].value).to(equal(@"FULL")); - expect([SDLHMILevel LIMITED].value).to(equal(@"LIMITED")); - expect([SDLHMILevel BACKGROUND].value).to(equal(@"BACKGROUND")); - expect([SDLHMILevel NONE].value).to(equal(@"NONE")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLHMILevel valueOf:@"FULL"]).to(equal([SDLHMILevel FULL])); - expect([SDLHMILevel valueOf:@"LIMITED"]).to(equal([SDLHMILevel LIMITED])); - expect([SDLHMILevel valueOf:@"BACKGROUND"]).to(equal([SDLHMILevel BACKGROUND])); - expect([SDLHMILevel valueOf:@"NONE"]).to(equal([SDLHMILevel NONE])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLHMILevel valueOf:nil]).to(beNil()); - expect([SDLHMILevel valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLHMILevel values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLHMILevel FULL], - [SDLHMILevel LIMITED], - [SDLHMILevel BACKGROUND], - [SDLHMILevel NONE]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLHMILevelFull).to(equal(@"FULL")); + expect(SDLHMILevelLimited).to(equal(@"LIMITED")); + expect(SDLHMILevelBackground).to(equal(@"BACKGROUND")); + expect(SDLHMILevelNone).to(equal(@"NONE")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLHMIZoneCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLHMIZoneCapabilitiesSpec.m index d19e1f855..71b8a8c2c 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLHMIZoneCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLHMIZoneCapabilitiesSpec.m @@ -10,44 +10,13 @@ #import "SDLHMIZoneCapabilities.h" -QuickSpecBegin(SDLHmiZoneCapabilitiesSpec) +QuickSpecBegin(SDLHMIZoneCapabilitiesSpec) describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLHMIZoneCapabilities FRONT].value).to(equal(@"FRONT")); - expect([SDLHMIZoneCapabilities BACK].value).to(equal(@"BACK")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLHMIZoneCapabilities valueOf:@"FRONT"]).to(equal([SDLHMIZoneCapabilities FRONT])); - expect([SDLHMIZoneCapabilities valueOf:@"BACK"]).to(equal([SDLHMIZoneCapabilities BACK])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLHMIZoneCapabilities valueOf:nil]).to(beNil()); - expect([SDLHMIZoneCapabilities valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLHMIZoneCapabilities values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLHMIZoneCapabilities FRONT], - [SDLHMIZoneCapabilities BACK]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLHMIZoneCapabilitiesFront).to(equal(@"FRONT")); + expect(SDLHMIZoneCapabilitiesBack).to(equal(@"BACK")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLIgnitionStableStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLIgnitionStableStatusSpec.m index bbe507499..78cf12bdf 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLIgnitionStableStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLIgnitionStableStatusSpec.m @@ -14,42 +14,9 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLIgnitionStableStatus IGNITION_SWITCH_NOT_STABLE].value).to(equal(@"IGNITION_SWITCH_NOT_STABLE")); - expect([SDLIgnitionStableStatus IGNITION_SWITCH_STABLE].value).to(equal(@"IGNITION_SWITCH_STABLE")); - expect([SDLIgnitionStableStatus MISSING_FROM_TRANSMITTER].value).to(equal(@"MISSING_FROM_TRANSMITTER")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLIgnitionStableStatus valueOf:@"IGNITION_SWITCH_NOT_STABLE"]).to(equal([SDLIgnitionStableStatus IGNITION_SWITCH_NOT_STABLE])); - expect([SDLIgnitionStableStatus valueOf:@"IGNITION_SWITCH_STABLE"]).to(equal([SDLIgnitionStableStatus IGNITION_SWITCH_STABLE])); - expect([SDLIgnitionStableStatus valueOf:@"MISSING_FROM_TRANSMITTER"]).to(equal([SDLIgnitionStableStatus MISSING_FROM_TRANSMITTER])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLIgnitionStableStatus valueOf:nil]).to(beNil()); - expect([SDLIgnitionStableStatus valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLIgnitionStableStatus values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLIgnitionStableStatus IGNITION_SWITCH_NOT_STABLE], - [SDLIgnitionStableStatus IGNITION_SWITCH_STABLE], - [SDLIgnitionStableStatus MISSING_FROM_TRANSMITTER]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLIgnitionStableStatusNotStable).to(equal(@"IGNITION_SWITCH_NOT_STABLE")); + expect(SDLIgnitionStableStatusStable).to(equal(@"IGNITION_SWITCH_STABLE")); + expect(SDLIgnitionStableStatusMissingFromTransmitter).to(equal(@"MISSING_FROM_TRANSMITTER")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLIgnitionStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLIgnitionStatusSpec.m index c36c30c23..726fd3ee4 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLIgnitionStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLIgnitionStatusSpec.m @@ -14,51 +14,12 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLIgnitionStatus UNKNOWN].value).to(equal(@"UNKNOWN")); - expect([SDLIgnitionStatus OFF].value).to(equal(@"OFF")); - expect([SDLIgnitionStatus ACCESSORY].value).to(equal(@"ACCESSORY")); - expect([SDLIgnitionStatus RUN].value).to(equal(@"RUN")); - expect([SDLIgnitionStatus START].value).to(equal(@"START")); - expect([SDLIgnitionStatus INVALID].value).to(equal(@"INVALID")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLIgnitionStatus valueOf:@"UNKNOWN"]).to(equal([SDLIgnitionStatus UNKNOWN])); - expect([SDLIgnitionStatus valueOf:@"OFF"]).to(equal([SDLIgnitionStatus OFF])); - expect([SDLIgnitionStatus valueOf:@"ACCESSORY"]).to(equal([SDLIgnitionStatus ACCESSORY])); - expect([SDLIgnitionStatus valueOf:@"RUN"]).to(equal([SDLIgnitionStatus RUN])); - expect([SDLIgnitionStatus valueOf:@"START"]).to(equal([SDLIgnitionStatus START])); - expect([SDLIgnitionStatus valueOf:@"INVALID"]).to(equal([SDLIgnitionStatus INVALID])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLIgnitionStatus valueOf:nil]).to(beNil()); - expect([SDLIgnitionStatus valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLIgnitionStatus values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLIgnitionStatus UNKNOWN], - [SDLIgnitionStatus OFF], - [SDLIgnitionStatus ACCESSORY], - [SDLIgnitionStatus RUN], - [SDLIgnitionStatus START], - [SDLIgnitionStatus INVALID]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLIgnitionStatusUnknown).to(equal(@"UNKNOWN")); + expect(SDLIgnitionStatusOff).to(equal(@"OFF")); + expect(SDLIgnitionStatusAccessory).to(equal(@"ACCESSORY")); + expect(SDLIgnitionStatusRun).to(equal(@"RUN")); + expect(SDLIgnitionStatusStart).to(equal(@"START")); + expect(SDLIgnitionStatusInvalid).to(equal(@"INVALID")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLImageFieldNameSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLImageFieldNameSpec.m index 5b19dc384..f4aecd48b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLImageFieldNameSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLImageFieldNameSpec.m @@ -14,73 +14,19 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLImageFieldName softButtonImage].value).to(equal(@"softButtonImage")); - expect([SDLImageFieldName choiceImage].value).to(equal(@"choiceImage")); - expect([SDLImageFieldName choiceSecondaryImage].value).to(equal(@"choiceSecondaryImage")); - expect([SDLImageFieldName vrHelpItem].value).to(equal(@"vrHelpItem")); - expect([SDLImageFieldName turnIcon].value).to(equal(@"turnIcon")); - expect([SDLImageFieldName menuIcon].value).to(equal(@"menuIcon")); - expect([SDLImageFieldName cmdIcon].value).to(equal(@"cmdIcon")); - expect([SDLImageFieldName appIcon].value).to(equal(@"appIcon")); - expect([SDLImageFieldName graphic].value).to(equal(@"graphic")); - expect([SDLImageFieldName showConstantTBTIcon].value).to(equal(@"showConstantTBTIcon")); - expect([SDLImageFieldName showConstantTBTNextTurnIcon].value).to(equal(@"showConstantTBTNextTurnIcon")); - expect([SDLImageFieldName locationImage].value).to(equal(@"locationImage")); + expect(SDLImageFieldNameSoftButtonImage).to(equal(@"softButtonImage")); + expect(SDLImageFieldNameChoiceImage).to(equal(@"choiceImage")); + expect(SDLImageFieldNameChoiceSecondaryImage).to(equal(@"choiceSecondaryImage")); + expect(SDLImageFieldNameVoiceRecognitionHelpItem).to(equal(@"vrHelpItem")); + expect(SDLImageFieldNameTurnIcon).to(equal(@"turnIcon")); + expect(SDLImageFieldNameMenuIcon).to(equal(@"menuIcon")); + expect(SDLImageFieldNameCommandIcon).to(equal(@"cmdIcon")); + expect(SDLImageFieldNameAppIcon).to(equal(@"appIcon")); + expect(SDLImageFieldNameGraphic).to(equal(@"graphic")); + expect(SDLImageFieldNameShowConstantTBTIcon).to(equal(@"showConstantTBTIcon")); + expect(SDLImageFieldNameShowConstantTBTNextTurnIcon).to(equal(@"showConstantTBTNextTurnIcon")); + expect(SDLImageFieldNameLocationImage).to(equal(@"locationImage")); }); }); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLImageFieldName valueOf:@"softButtonImage"]).to(equal([SDLImageFieldName softButtonImage])); - expect([SDLImageFieldName valueOf:@"choiceImage"]).to(equal([SDLImageFieldName choiceImage])); - expect([SDLImageFieldName valueOf:@"choiceSecondaryImage"]).to(equal([SDLImageFieldName choiceSecondaryImage])); - expect([SDLImageFieldName valueOf:@"vrHelpItem"]).to(equal([SDLImageFieldName vrHelpItem])); - expect([SDLImageFieldName valueOf:@"turnIcon"]).to(equal([SDLImageFieldName turnIcon])); - expect([SDLImageFieldName valueOf:@"menuIcon"]).to(equal([SDLImageFieldName menuIcon])); - expect([SDLImageFieldName valueOf:@"cmdIcon"]).to(equal([SDLImageFieldName cmdIcon])); - expect([SDLImageFieldName valueOf:@"appIcon"]).to(equal([SDLImageFieldName appIcon])); - expect([SDLImageFieldName valueOf:@"graphic"]).to(equal([SDLImageFieldName graphic])); - expect([SDLImageFieldName valueOf:@"showConstantTBTIcon"]).to(equal([SDLImageFieldName showConstantTBTIcon])); - expect([SDLImageFieldName valueOf:@"showConstantTBTNextTurnIcon"]).to(equal([SDLImageFieldName showConstantTBTNextTurnIcon])); - expect([SDLImageFieldName valueOf:@"locationImage"]).to(equal([SDLImageFieldName locationImage])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLImageFieldName valueOf:nil]).to(beNil()); - expect([SDLImageFieldName valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); - -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLImageFieldName values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLImageFieldName softButtonImage], - [SDLImageFieldName choiceImage], - [SDLImageFieldName choiceSecondaryImage], - [SDLImageFieldName vrHelpItem], - [SDLImageFieldName turnIcon], - [SDLImageFieldName menuIcon], - [SDLImageFieldName cmdIcon], - [SDLImageFieldName appIcon], - [SDLImageFieldName graphic], - [SDLImageFieldName showConstantTBTIcon], - [SDLImageFieldName locationImage], - [SDLImageFieldName showConstantTBTNextTurnIcon]] copy]; - - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } - }); -}); - -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLImageTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLImageTypeSpec.m index 1a63bf7f8..7888564e9 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLImageTypeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLImageTypeSpec.m @@ -14,40 +14,9 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLImageType STATIC].value).to(equal(@"STATIC")); - expect([SDLImageType DYNAMIC].value).to(equal(@"DYNAMIC")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLImageType valueOf:@"STATIC"]).to(equal([SDLImageType STATIC])); - expect([SDLImageType valueOf:@"DYNAMIC"]).to(equal([SDLImageType DYNAMIC])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLImageType valueOf:nil]).to(beNil()); - expect([SDLImageType valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLImageType values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLImageType STATIC], - [SDLImageType DYNAMIC]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLImageTypeStatic).to(equal(@"STATIC")); + expect(SDLImageTypeDynamic).to(equal(@"DYNAMIC")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLInteractionModeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLInteractionModeSpec.m index 95341e347..85de42557 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLInteractionModeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLInteractionModeSpec.m @@ -14,43 +14,10 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLInteractionMode MANUAL_ONLY].value).to(equal(@"MANUAL_ONLY")); - expect([SDLInteractionMode VR_ONLY].value).to(equal(@"VR_ONLY")); - expect([SDLInteractionMode BOTH].value).to(equal(@"BOTH")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLInteractionMode valueOf:@"MANUAL_ONLY"]).to(equal([SDLInteractionMode MANUAL_ONLY])); - expect([SDLInteractionMode valueOf:@"VR_ONLY"]).to(equal([SDLInteractionMode VR_ONLY])); - expect([SDLInteractionMode valueOf:@"BOTH"]).to(equal([SDLInteractionMode BOTH])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLInteractionMode valueOf:nil]).to(beNil()); - expect([SDLInteractionMode valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLInteractionMode values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLInteractionMode MANUAL_ONLY], - [SDLInteractionMode VR_ONLY], - [SDLInteractionMode BOTH]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLInteractionModeManualOnly).to(equal(@"MANUAL_ONLY")); + expect(SDLInteractionModeVoiceRecognitionOnly).to(equal(@"VR_ONLY")); + expect(SDLInteractionModeBoth).to(equal(@"BOTH")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLKeyboardEventSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLKeyboardEventSpec.m index 560876185..ce2782d3f 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLKeyboardEventSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLKeyboardEventSpec.m @@ -14,50 +14,11 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLKeyboardEvent KEYPRESS].value).to(equal(@"KEYPRESS")); - expect([SDLKeyboardEvent ENTRY_SUBMITTED].value).to(equal(@"ENTRY_SUBMITTED")); - expect([SDLKeyboardEvent ENTRY_CANCELLED].value).to(equal(@"ENTRY_CANCELLED")); - expect([SDLKeyboardEvent ENTRY_ABORTED].value).to(equal(@"ENTRY_ABORTED")); - expect([SDLKeyboardEvent ENTRY_VOICE].value).to(equal(@"ENTRY_VOICE")); - }); -}); - -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLKeyboardEvent valueOf:@"KEYPRESS"]).to(equal([SDLKeyboardEvent KEYPRESS])); - expect([SDLKeyboardEvent valueOf:@"ENTRY_SUBMITTED"]).to(equal([SDLKeyboardEvent ENTRY_SUBMITTED])); - expect([SDLKeyboardEvent valueOf:@"ENTRY_CANCELLED"]).to(equal([SDLKeyboardEvent ENTRY_CANCELLED])); - expect([SDLKeyboardEvent valueOf:@"ENTRY_ABORTED"]).to(equal([SDLKeyboardEvent ENTRY_ABORTED])); - expect([SDLKeyboardEvent valueOf:@"ENTRY_VOICE"]).to(equal([SDLKeyboardEvent ENTRY_VOICE])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLKeyboardEvent valueOf:nil]).to(beNil()); - expect([SDLKeyboardEvent valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); - -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLKeyboardEvent values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLKeyboardEvent KEYPRESS], - [SDLKeyboardEvent ENTRY_SUBMITTED], - [SDLKeyboardEvent ENTRY_CANCELLED], - [SDLKeyboardEvent ENTRY_ABORTED], - [SDLKeyboardEvent ENTRY_VOICE]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLKeyboardEventKeypress).to(equal(@"KEYPRESS")); + expect(SDLKeyboardEventSubmitted).to(equal(@"ENTRY_SUBMITTED")); + expect(SDLKeyboardEventCancelled).to(equal(@"ENTRY_CANCELLED")); + expect(SDLKeyboardEventAborted).to(equal(@"ENTRY_ABORTED")); + expect(SDLKeyboardEventVoice).to(equal(@"ENTRY_VOICE")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLKeyboardLayoutSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLKeyboardLayoutSpec.m index c55d8cd28..ec0298852 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLKeyboardLayoutSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLKeyboardLayoutSpec.m @@ -14,43 +14,10 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLKeyboardLayout QWERTY].value).to(equal(@"QWERTY")); - expect([SDLKeyboardLayout QWERTZ].value).to(equal(@"QWERTZ")); - expect([SDLKeyboardLayout AZERTY].value).to(equal(@"AZERTY")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLKeyboardLayout valueOf:@"QWERTY"]).to(equal([SDLKeyboardLayout QWERTY])); - expect([SDLKeyboardLayout valueOf:@"QWERTZ"]).to(equal([SDLKeyboardLayout QWERTZ])); - expect([SDLKeyboardLayout valueOf:@"AZERTY"]).to(equal([SDLKeyboardLayout AZERTY])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLKeyboardLayout valueOf:nil]).to(beNil()); - expect([SDLKeyboardLayout valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLKeyboardLayout values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLKeyboardLayout QWERTY], - [SDLKeyboardLayout QWERTZ], - [SDLKeyboardLayout AZERTY]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLKeyboardLayoutQWERTY).to(equal(@"QWERTY")); + expect(SDLKeyboardLayoutQWERTZ).to(equal(@"QWERTZ")); + expect(SDLKeyboardLayoutAZERTY).to(equal(@"AZERTY")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLKeypressModeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLKeypressModeSpec.m index d7304fe5e..d46fb52c6 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLKeypressModeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLKeypressModeSpec.m @@ -14,43 +14,10 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLKeypressMode SINGLE_KEYPRESS].value).to(equal(@"SINGLE_KEYPRESS")); - expect([SDLKeypressMode QUEUE_KEYPRESSES].value).to(equal(@"QUEUE_KEYPRESSES")); - expect([SDLKeypressMode RESEND_CURRENT_ENTRY].value).to(equal(@"RESEND_CURRENT_ENTRY")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLKeypressMode valueOf:@"SINGLE_KEYPRESS"]).to(equal([SDLKeypressMode SINGLE_KEYPRESS])); - expect([SDLKeypressMode valueOf:@"QUEUE_KEYPRESSES"]).to(equal([SDLKeypressMode QUEUE_KEYPRESSES])); - expect([SDLKeypressMode valueOf:@"RESEND_CURRENT_ENTRY"]).to(equal([SDLKeypressMode RESEND_CURRENT_ENTRY])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLKeypressMode valueOf:nil]).to(beNil()); - expect([SDLKeypressMode valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLKeypressMode values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLKeypressMode SINGLE_KEYPRESS], - [SDLKeypressMode QUEUE_KEYPRESSES], - [SDLKeypressMode RESEND_CURRENT_ENTRY]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLKeypressModeSingleKeypress).to(equal(@"SINGLE_KEYPRESS")); + expect(SDLKeypressModeQueueKeypresses).to(equal(@"QUEUE_KEYPRESSES")); + expect(SDLKeypressModeResendCurrentEntry).to(equal(@"RESEND_CURRENT_ENTRY")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLLanguageSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLLanguageSpec.m index 1290710d7..f7b885aef 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLLanguageSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLLanguageSpec.m @@ -14,150 +14,45 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLLanguage EN_SA].value).to(equal(@"EN-SA")); - expect([SDLLanguage HE_IL].value).to(equal(@"HE-IL")); - expect([SDLLanguage RO_RO].value).to(equal(@"RO-RO")); - expect([SDLLanguage UK_UA].value).to(equal(@"UK-UA")); - expect([SDLLanguage ID_ID].value).to(equal(@"ID-ID")); - expect([SDLLanguage VI_VN].value).to(equal(@"VI-VN")); - expect([SDLLanguage MS_MY].value).to(equal(@"MS-MY")); - expect([SDLLanguage HI_IN].value).to(equal(@"HI-IN")); - expect([SDLLanguage NL_BE].value).to(equal(@"NL-BE")); - expect([SDLLanguage EL_GR].value).to(equal(@"EL-GR")); - expect([SDLLanguage HU_HU].value).to(equal(@"HU-HU")); - expect([SDLLanguage FI_FI].value).to(equal(@"FI-FI")); - expect([SDLLanguage SK_SK].value).to(equal(@"SK-SK")); - expect([SDLLanguage EN_US].value).to(equal(@"EN-US")); - expect([SDLLanguage EN_IN].value).to(equal(@"EN-IN")); - expect([SDLLanguage TH_TH].value).to(equal(@"TH-TH")); - expect([SDLLanguage ES_MX].value).to(equal(@"ES-MX")); - expect([SDLLanguage FR_CA].value).to(equal(@"FR-CA")); - expect([SDLLanguage DE_DE].value).to(equal(@"DE-DE")); - expect([SDLLanguage ES_ES].value).to(equal(@"ES-ES")); - expect([SDLLanguage EN_GB].value).to(equal(@"EN-GB")); - expect([SDLLanguage RU_RU].value).to(equal(@"RU-RU")); - expect([SDLLanguage TR_TR].value).to(equal(@"TR-TR")); - expect([SDLLanguage PL_PL].value).to(equal(@"PL-PL")); - expect([SDLLanguage FR_FR].value).to(equal(@"FR-FR")); - expect([SDLLanguage IT_IT].value).to(equal(@"IT-IT")); - expect([SDLLanguage SV_SE].value).to(equal(@"SV-SE")); - expect([SDLLanguage PT_PT].value).to(equal(@"PT-PT")); - expect([SDLLanguage NL_NL].value).to(equal(@"NL-NL")); - expect([SDLLanguage EN_AU].value).to(equal(@"EN-AU")); - expect([SDLLanguage ZH_CN].value).to(equal(@"ZH-CN")); - expect([SDLLanguage ZH_TW].value).to(equal(@"ZH-TW")); - expect([SDLLanguage JA_JP].value).to(equal(@"JA-JP")); - expect([SDLLanguage AR_SA].value).to(equal(@"AR-SA")); - expect([SDLLanguage KO_KR].value).to(equal(@"KO-KR")); - expect([SDLLanguage PT_BR].value).to(equal(@"PT-BR")); - expect([SDLLanguage CS_CZ].value).to(equal(@"CS-CZ")); - expect([SDLLanguage DA_DK].value).to(equal(@"DA-DK")); - expect([SDLLanguage NO_NO].value).to(equal(@"NO-NO")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLLanguage valueOf:@"EN-SA"]).to(equal([SDLLanguage EN_SA])); - expect([SDLLanguage valueOf:@"HE-IL"]).to(equal([SDLLanguage HE_IL])); - expect([SDLLanguage valueOf:@"RO-RO"]).to(equal([SDLLanguage RO_RO])); - expect([SDLLanguage valueOf:@"UK-UA"]).to(equal([SDLLanguage UK_UA])); - expect([SDLLanguage valueOf:@"ID-ID"]).to(equal([SDLLanguage ID_ID])); - expect([SDLLanguage valueOf:@"VI-VN"]).to(equal([SDLLanguage VI_VN])); - expect([SDLLanguage valueOf:@"MS-MY"]).to(equal([SDLLanguage MS_MY])); - expect([SDLLanguage valueOf:@"HI-IN"]).to(equal([SDLLanguage HI_IN])); - expect([SDLLanguage valueOf:@"NL-BE"]).to(equal([SDLLanguage NL_BE])); - expect([SDLLanguage valueOf:@"EL-GR"]).to(equal([SDLLanguage EL_GR])); - expect([SDLLanguage valueOf:@"HU-HU"]).to(equal([SDLLanguage HU_HU])); - expect([SDLLanguage valueOf:@"FI-FI"]).to(equal([SDLLanguage FI_FI])); - expect([SDLLanguage valueOf:@"SK-SK"]).to(equal([SDLLanguage SK_SK])); - expect([SDLLanguage valueOf:@"EN-US"]).to(equal([SDLLanguage EN_US])); - expect([SDLLanguage valueOf:@"EN-IN"]).to(equal([SDLLanguage EN_IN])); - expect([SDLLanguage valueOf:@"TH-TH"]).to(equal([SDLLanguage TH_TH])); - expect([SDLLanguage valueOf:@"ES-MX"]).to(equal([SDLLanguage ES_MX])); - expect([SDLLanguage valueOf:@"FR-CA"]).to(equal([SDLLanguage FR_CA])); - expect([SDLLanguage valueOf:@"DE-DE"]).to(equal([SDLLanguage DE_DE])); - expect([SDLLanguage valueOf:@"ES-ES"]).to(equal([SDLLanguage ES_ES])); - expect([SDLLanguage valueOf:@"EN-GB"]).to(equal([SDLLanguage EN_GB])); - expect([SDLLanguage valueOf:@"RU-RU"]).to(equal([SDLLanguage RU_RU])); - expect([SDLLanguage valueOf:@"TR-TR"]).to(equal([SDLLanguage TR_TR])); - expect([SDLLanguage valueOf:@"PL-PL"]).to(equal([SDLLanguage PL_PL])); - expect([SDLLanguage valueOf:@"FR-FR"]).to(equal([SDLLanguage FR_FR])); - expect([SDLLanguage valueOf:@"IT-IT"]).to(equal([SDLLanguage IT_IT])); - expect([SDLLanguage valueOf:@"SV-SE"]).to(equal([SDLLanguage SV_SE])); - expect([SDLLanguage valueOf:@"PT-PT"]).to(equal([SDLLanguage PT_PT])); - expect([SDLLanguage valueOf:@"NL-NL"]).to(equal([SDLLanguage NL_NL])); - expect([SDLLanguage valueOf:@"EN-AU"]).to(equal([SDLLanguage EN_AU])); - expect([SDLLanguage valueOf:@"ZH-CN"]).to(equal([SDLLanguage ZH_CN])); - expect([SDLLanguage valueOf:@"ZH-TW"]).to(equal([SDLLanguage ZH_TW])); - expect([SDLLanguage valueOf:@"JA-JP"]).to(equal([SDLLanguage JA_JP])); - expect([SDLLanguage valueOf:@"AR-SA"]).to(equal([SDLLanguage AR_SA])); - expect([SDLLanguage valueOf:@"KO-KR"]).to(equal([SDLLanguage KO_KR])); - expect([SDLLanguage valueOf:@"PT-BR"]).to(equal([SDLLanguage PT_BR])); - expect([SDLLanguage valueOf:@"CS-CZ"]).to(equal([SDLLanguage CS_CZ])); - expect([SDLLanguage valueOf:@"DA-DK"]).to(equal([SDLLanguage DA_DK])); - expect([SDLLanguage valueOf:@"NO-NO"]).to(equal([SDLLanguage NO_NO])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLLanguage valueOf:nil]).to(beNil()); - expect([SDLLanguage valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLLanguage values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLLanguage EN_SA], - [SDLLanguage HE_IL], - [SDLLanguage RO_RO], - [SDLLanguage UK_UA], - [SDLLanguage ID_ID], - [SDLLanguage VI_VN], - [SDLLanguage MS_MY], - [SDLLanguage HI_IN], - [SDLLanguage NL_BE], - [SDLLanguage EL_GR], - [SDLLanguage HU_HU], - [SDLLanguage FI_FI], - [SDLLanguage SK_SK], - [SDLLanguage EN_US], - [SDLLanguage EN_IN], - [SDLLanguage TH_TH], - [SDLLanguage ES_MX], - [SDLLanguage FR_CA], - [SDLLanguage DE_DE], - [SDLLanguage ES_ES], - [SDLLanguage EN_GB], - [SDLLanguage RU_RU], - [SDLLanguage TR_TR], - [SDLLanguage PL_PL], - [SDLLanguage FR_FR], - [SDLLanguage IT_IT], - [SDLLanguage SV_SE], - [SDLLanguage PT_PT], - [SDLLanguage NL_NL], - [SDLLanguage EN_AU], - [SDLLanguage ZH_CN], - [SDLLanguage ZH_TW], - [SDLLanguage JA_JP], - [SDLLanguage AR_SA], - [SDLLanguage KO_KR], - [SDLLanguage PT_BR], - [SDLLanguage CS_CZ], - [SDLLanguage DA_DK], - [SDLLanguage NO_NO]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLLanguageEnSa).to(equal(@"EN-SA")); + expect(SDLLanguageHeIl).to(equal(@"HE-IL")); + expect(SDLLanguageRoRo).to(equal(@"RO-RO")); + expect(SDLLanguageUkUa).to(equal(@"UK-UA")); + expect(SDLLanguageIdId).to(equal(@"ID-ID")); + expect(SDLLanguageViVn).to(equal(@"VI-VN")); + expect(SDLLanguageMsMy).to(equal(@"MS-MY")); + expect(SDLLanguageHiIn).to(equal(@"HI-IN")); + expect(SDLLanguageNlBe).to(equal(@"NL-BE")); + expect(SDLLanguageElGr).to(equal(@"EL-GR")); + expect(SDLLanguageHuHu).to(equal(@"HU-HU")); + expect(SDLLanguageFiFi).to(equal(@"FI-FI")); + expect(SDLLanguageSkSk).to(equal(@"SK-SK")); + expect(SDLLanguageEnUs).to(equal(@"EN-US")); + expect(SDLLanguageEnIn).to(equal(@"EN-IN")); + expect(SDLLanguageThTh).to(equal(@"TH-TH")); + expect(SDLLanguageEsMx).to(equal(@"ES-MX")); + expect(SDLLanguageFrCa).to(equal(@"FR-CA")); + expect(SDLLanguageDeDe).to(equal(@"DE-DE")); + expect(SDLLanguageEsEs).to(equal(@"ES-ES")); + expect(SDLLanguageEnGb).to(equal(@"EN-GB")); + expect(SDLLanguageRuRu).to(equal(@"RU-RU")); + expect(SDLLanguageTrTr).to(equal(@"TR-TR")); + expect(SDLLanguagePlPl).to(equal(@"PL-PL")); + expect(SDLLanguageFrFr).to(equal(@"FR-FR")); + expect(SDLLanguageItIt).to(equal(@"IT-IT")); + expect(SDLLanguageSvSe).to(equal(@"SV-SE")); + expect(SDLLanguagePtPt).to(equal(@"PT-PT")); + expect(SDLLanguageNlNl).to(equal(@"NL-NL")); + expect(SDLLanguageEnAu).to(equal(@"EN-AU")); + expect(SDLLanguageZhCn).to(equal(@"ZH-CN")); + expect(SDLLanguageZhTw).to(equal(@"ZH-TW")); + expect(SDLLanguageJaJp).to(equal(@"JA-JP")); + expect(SDLLanguageArSa).to(equal(@"AR-SA")); + expect(SDLLanguageKoKr).to(equal(@"KO-KR")); + expect(SDLLanguagePtBr).to(equal(@"PT-BR")); + expect(SDLLanguageCsCz).to(equal(@"CS-CZ")); + expect(SDLLanguageDaDk).to(equal(@"DA-DK")); + expect(SDLLanguageNoNo).to(equal(@"NO-NO")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLLayoutModeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLLayoutModeSpec.m index 6aea31374..b37e9b0e4 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLLayoutModeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLLayoutModeSpec.m @@ -14,49 +14,12 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLLayoutMode ICON_ONLY].value).to(equal(@"ICON_ONLY")); - expect([SDLLayoutMode ICON_WITH_SEARCH].value).to(equal(@"ICON_WITH_SEARCH")); - expect([SDLLayoutMode LIST_ONLY].value).to(equal(@"LIST_ONLY")); - expect([SDLLayoutMode LIST_WITH_SEARCH].value).to(equal(@"LIST_WITH_SEARCH")); - expect([SDLLayoutMode KEYBOARD].value).to(equal(@"KEYBOARD")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLLayoutMode valueOf:@"ICON_ONLY"]).to(equal([SDLLayoutMode ICON_ONLY])); - expect([SDLLayoutMode valueOf:@"ICON_WITH_SEARCH"]).to(equal([SDLLayoutMode ICON_WITH_SEARCH])); - expect([SDLLayoutMode valueOf:@"LIST_ONLY"]).to(equal([SDLLayoutMode LIST_ONLY])); - expect([SDLLayoutMode valueOf:@"LIST_WITH_SEARCH"]).to(equal([SDLLayoutMode LIST_WITH_SEARCH])); - expect([SDLLayoutMode valueOf:@"KEYBOARD"]).to(equal([SDLLayoutMode KEYBOARD])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLLayoutMode valueOf:nil]).to(beNil()); - expect([SDLLayoutMode valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLLayoutMode values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLLayoutMode ICON_ONLY], - [SDLLayoutMode ICON_WITH_SEARCH], - [SDLLayoutMode LIST_ONLY], - [SDLLayoutMode LIST_WITH_SEARCH], - [SDLLayoutMode KEYBOARD]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLLayoutModeIconOnly).to(equal(@"ICON_ONLY")); + expect(SDLLayoutModeIconWithSearch).to(equal(@"ICON_WITH_SEARCH")); + expect(SDLLayoutModeListOnly).to(equal(@"LIST_ONLY")); + expect(SDLLayoutModeListWithSearch).to(equal(@"LIST_WITH_SEARCH")); + expect(SDLLayoutModeKeyboard).to(equal(@"KEYBOARD")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLLockScreenStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLLockScreenStatusSpec.m index a6d7ecdac..0761cbed3 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLLockScreenStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLLockScreenStatusSpec.m @@ -14,43 +14,10 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLLockScreenStatus OFF].value).to(equal(@"OFF")); - expect([SDLLockScreenStatus OPTIONAL].value).to(equal(@"OPTIONAL")); - expect([SDLLockScreenStatus REQUIRED].value).to(equal(@"REQUIRED")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLLockScreenStatus valueOf:@"OFF"]).to(equal([SDLLockScreenStatus OFF])); - expect([SDLLockScreenStatus valueOf:@"OPTIONAL"]).to(equal([SDLLockScreenStatus OPTIONAL])); - expect([SDLLockScreenStatus valueOf:@"REQUIRED"]).to(equal([SDLLockScreenStatus REQUIRED])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLLockScreenStatus valueOf:nil]).to(beNil()); - expect([SDLLockScreenStatus valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLLockScreenStatus values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLLockScreenStatus OFF], - [SDLLockScreenStatus OPTIONAL], - [SDLLockScreenStatus REQUIRED]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLLockScreenStatusOff).to(equal(@"OFF")); + expect(SDLLockScreenStatusOptional).to(equal(@"OPTIONAL")); + expect(SDLLockScreenStatusRequired).to(equal(@"REQUIRED")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMaintenanceModeStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMaintenanceModeStatusSpec.m index 349a073eb..75921cf94 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMaintenanceModeStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMaintenanceModeStatusSpec.m @@ -14,45 +14,10 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLMaintenanceModeStatus NORMAL].value).to(equal(@"NORMAL")); - expect([SDLMaintenanceModeStatus NEAR].value).to(equal(@"NEAR")); - expect([SDLMaintenanceModeStatus ACTIVE].value).to(equal(@"ACTIVE")); - expect([SDLMaintenanceModeStatus FEATURE_NOT_PRESENT].value).to(equal(@"FEATURE_NOT_PRESENT")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLMaintenanceModeStatus valueOf:@"NORMAL"]).to(equal([SDLMaintenanceModeStatus NORMAL])); - expect([SDLMaintenanceModeStatus valueOf:@"NEAR"]).to(equal([SDLMaintenanceModeStatus NEAR])); - expect([SDLMaintenanceModeStatus valueOf:@"ACTIVE"]).to(equal([SDLMaintenanceModeStatus ACTIVE])); - expect([SDLMaintenanceModeStatus valueOf:@"FEATURE_NOT_PRESENT"]).to(equal([SDLMaintenanceModeStatus FEATURE_NOT_PRESENT])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLMaintenanceModeStatus valueOf:nil]).to(beNil()); - expect([SDLMaintenanceModeStatus valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLMaintenanceModeStatus values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLMaintenanceModeStatus NORMAL], - [SDLMaintenanceModeStatus NEAR], - [SDLMaintenanceModeStatus ACTIVE], - [SDLMaintenanceModeStatus FEATURE_NOT_PRESENT]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLMaintenanceModeStatusNormal).to(equal(@"NORMAL")); + expect(SDLMaintenanceModeStatusNear).to(equal(@"NEAR")); + expect(SDLMaintenanceModeStatusActive).to(equal(@"ACTIVE")); + expect(SDLMaintenanceModeStatusFeatureNotPresent).to(equal(@"FEATURE_NOT_PRESENT")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMediaClockFormatSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMediaClockFormatSpec.m index 80603a2b0..197b4aec9 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMediaClockFormatSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMediaClockFormatSpec.m @@ -14,54 +14,13 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLMediaClockFormat CLOCK1].value).to(equal(@"CLOCK1")); - expect([SDLMediaClockFormat CLOCK2].value).to(equal(@"CLOCK2")); - expect([SDLMediaClockFormat CLOCK3].value).to(equal(@"CLOCK3")); - expect([SDLMediaClockFormat CLOCKTEXT1].value).to(equal(@"CLOCKTEXT1")); - expect([SDLMediaClockFormat CLOCKTEXT2].value).to(equal(@"CLOCKTEXT2")); - expect([SDLMediaClockFormat CLOCKTEXT3].value).to(equal(@"CLOCKTEXT3")); - expect([SDLMediaClockFormat CLOCKTEXT4].value).to(equal(@"CLOCKTEXT4")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLMediaClockFormat valueOf:@"CLOCK1"]).to(equal([SDLMediaClockFormat CLOCK1])); - expect([SDLMediaClockFormat valueOf:@"CLOCK2"]).to(equal([SDLMediaClockFormat CLOCK2])); - expect([SDLMediaClockFormat valueOf:@"CLOCK3"]).to(equal([SDLMediaClockFormat CLOCK3])); - expect([SDLMediaClockFormat valueOf:@"CLOCKTEXT1"]).to(equal([SDLMediaClockFormat CLOCKTEXT1])); - expect([SDLMediaClockFormat valueOf:@"CLOCKTEXT2"]).to(equal([SDLMediaClockFormat CLOCKTEXT2])); - expect([SDLMediaClockFormat valueOf:@"CLOCKTEXT3"]).to(equal([SDLMediaClockFormat CLOCKTEXT3])); - expect([SDLMediaClockFormat valueOf:@"CLOCKTEXT4"]).to(equal([SDLMediaClockFormat CLOCKTEXT4])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLMediaClockFormat valueOf:nil]).to(beNil()); - expect([SDLMediaClockFormat valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLMediaClockFormat values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLMediaClockFormat CLOCK1], - [SDLMediaClockFormat CLOCK2], - [SDLMediaClockFormat CLOCK3], - [SDLMediaClockFormat CLOCKTEXT1], - [SDLMediaClockFormat CLOCKTEXT2], - [SDLMediaClockFormat CLOCKTEXT3], - [SDLMediaClockFormat CLOCKTEXT4]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLMediaClockFormatClock1).to(equal(@"CLOCK1")); + expect(SDLMediaClockFormatClock2).to(equal(@"CLOCK2")); + expect(SDLMediaClockFormatClock3).to(equal(@"CLOCK3")); + expect(SDLMediaClockFormatClockText1).to(equal(@"CLOCKTEXT1")); + expect(SDLMediaClockFormatClockText2).to(equal(@"CLOCKTEXT2")); + expect(SDLMediaClockFormatClockText3).to(equal(@"CLOCKTEXT3")); + expect(SDLMediaClockFormatClockText4).to(equal(@"CLOCKTEXT4")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMetadataTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMetadataTypeSpec.m index b5ab398e1..0ef9bc45f 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMetadataTypeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLMetadataTypeSpec.m @@ -1,8 +1,8 @@ // -// SDLTextFieldTypeSpec.m +// SDLMetadataTypeSpec.m // SmartDeviceLink-iOS // -// Created by Brett McIsaac on 8/1/17. +// Created by Brett McIsaac on 8/2/17. // Copyright © 2017 smartdevicelink. All rights reserved. // @@ -17,70 +17,18 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLMetadataType MEDIA_TITLE].value).to(equal(@"mediaTitle")); - expect([SDLMetadataType MEDIA_ARTIST].value).to(equal(@"mediaArtist")); - expect([SDLMetadataType MEDIA_ALBUM].value).to(equal(@"mediaAlbum")); - expect([SDLMetadataType MEDIA_YEAR].value).to(equal(@"mediaYear")); - expect([SDLMetadataType MEDIA_GENRE].value).to(equal(@"mediaGenre")); - expect([SDLMetadataType MEDIA_STATION].value).to(equal(@"mediaStation")); - expect([SDLMetadataType RATING].value).to(equal(@"rating")); - expect([SDLMetadataType CURRENT_TEMPERATURE].value).to(equal(@"currentTemperature")); - expect([SDLMetadataType MAXIMUM_TEMPERATURE].value).to(equal(@"maximumTemperature")); - expect([SDLMetadataType MINIMUM_TEMPERATURE].value).to(equal(@"minimumTemperature")); - expect([SDLMetadataType WEATHER_TERM].value).to(equal(@"weatherTerm")); - expect([SDLMetadataType HUMIDITY].value).to(equal(@"humidity")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLMetadataType valueOf:@"mediaTitle"]).to(equal([SDLMetadataType MEDIA_TITLE])); - expect([SDLMetadataType valueOf:@"mediaArtist"]).to(equal([SDLMetadataType MEDIA_ARTIST])); - expect([SDLMetadataType valueOf:@"mediaAlbum"]).to(equal([SDLMetadataType MEDIA_ALBUM])); - expect([SDLMetadataType valueOf:@"mediaYear"]).to(equal([SDLMetadataType MEDIA_YEAR])); - expect([SDLMetadataType valueOf:@"mediaGenre"]).to(equal([SDLMetadataType MEDIA_GENRE])); - expect([SDLMetadataType valueOf:@"mediaStation"]).to(equal([SDLMetadataType MEDIA_STATION])); - expect([SDLMetadataType valueOf:@"rating"]).to(equal([SDLMetadataType RATING])); - expect([SDLMetadataType valueOf:@"currentTemperature"]).to(equal([SDLMetadataType CURRENT_TEMPERATURE])); - expect([SDLMetadataType valueOf:@"maximumTemperature"]).to(equal([SDLMetadataType MAXIMUM_TEMPERATURE])); - expect([SDLMetadataType valueOf:@"minimumTemperature"]).to(equal([SDLMetadataType MINIMUM_TEMPERATURE])); - expect([SDLMetadataType valueOf:@"weatherTerm"]).to(equal([SDLMetadataType WEATHER_TERM])); - expect([SDLMetadataType valueOf:@"humidity"]).to(equal([SDLMetadataType HUMIDITY])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLMetadataType valueOf:nil]).to(beNil()); - expect([SDLMetadataType valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); - -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLMetadataType values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLMetadataType MEDIA_TITLE], - [SDLMetadataType MEDIA_ARTIST], - [SDLMetadataType MEDIA_ALBUM], - [SDLMetadataType MEDIA_YEAR], - [SDLMetadataType MEDIA_GENRE], - [SDLMetadataType MEDIA_STATION], - [SDLMetadataType RATING], - [SDLMetadataType CURRENT_TEMPERATURE], - [SDLMetadataType MAXIMUM_TEMPERATURE], - [SDLMetadataType MINIMUM_TEMPERATURE], - [SDLMetadataType WEATHER_TERM], - [SDLMetadataType HUMIDITY]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLMetadataTypeMediaTitle).to(equal(@"mediaTitle")); + expect(SDLMetadataTypeMediaArtist).to(equal(@"mediaArtist")); + expect(SDLMetadataTypeMediaAlbum).to(equal(@"mediaAlbum")); + expect(SDLMetadataTypeMediaYear).to(equal(@"mediaYear")); + expect(SDLMetadataTypeMediaGenre).to(equal(@"mediaGenre")); + expect(SDLMetadataTypeMediaStation).to(equal(@"mediaStation")); + expect(SDLMetadataTypeRating).to(equal(@"rating")); + expect(SDLMetadataTypeCurrentTemperature).to(equal(@"currentTemperature")); + expect(SDLMetadataTypeMaximumTemperature).to(equal(@"maximumTemperature")); + expect(SDLMetadataTypeMinimumTemperature).to(equal(@"minimumTemperature")); + expect(SDLMetadataTypeWeatherTerm).to(equal(@"weatherTerm")); + expect(SDLMetadataTypeHumidity).to(equal(@"humidity")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPRNDLSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPRNDLSpec.m index 5310f3488..169bf4ffb 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPRNDLSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPRNDLSpec.m @@ -14,82 +14,23 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLPRNDL PARK].value).to(equal(@"PARK")); - expect([SDLPRNDL REVERSE].value).to(equal(@"REVERSE")); - expect([SDLPRNDL NEUTRAL].value).to(equal(@"NEUTRAL")); - expect([SDLPRNDL DRIVE].value).to(equal(@"DRIVE")); - expect([SDLPRNDL SPORT].value).to(equal(@"SPORT")); - expect([SDLPRNDL LOWGEAR].value).to(equal(@"LOWGEAR")); - expect([SDLPRNDL FIRST].value).to(equal(@"FIRST")); - expect([SDLPRNDL SECOND].value).to(equal(@"SECOND")); - expect([SDLPRNDL THIRD].value).to(equal(@"THIRD")); - expect([SDLPRNDL FOURTH].value).to(equal(@"FOURTH")); - expect([SDLPRNDL FIFTH].value).to(equal(@"FIFTH")); - expect([SDLPRNDL SIXTH].value).to(equal(@"SIXTH")); - expect([SDLPRNDL SEVENTH].value).to(equal(@"SEVENTH")); - expect([SDLPRNDL EIGHTH].value).to(equal(@"EIGHTH")); - expect([SDLPRNDL UNKNOWN].value).to(equal(@"UNKNOWN")); - expect([SDLPRNDL FAULT].value).to(equal(@"FAULT")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLPRNDL valueOf:@"PARK"]).to(equal([SDLPRNDL PARK])); - expect([SDLPRNDL valueOf:@"REVERSE"]).to(equal([SDLPRNDL REVERSE])); - expect([SDLPRNDL valueOf:@"NEUTRAL"]).to(equal([SDLPRNDL NEUTRAL])); - expect([SDLPRNDL valueOf:@"DRIVE"]).to(equal([SDLPRNDL DRIVE])); - expect([SDLPRNDL valueOf:@"SPORT"]).to(equal([SDLPRNDL SPORT])); - expect([SDLPRNDL valueOf:@"LOWGEAR"]).to(equal([SDLPRNDL LOWGEAR])); - expect([SDLPRNDL valueOf:@"FIRST"]).to(equal([SDLPRNDL FIRST])); - expect([SDLPRNDL valueOf:@"SECOND"]).to(equal([SDLPRNDL SECOND])); - expect([SDLPRNDL valueOf:@"THIRD"]).to(equal([SDLPRNDL THIRD])); - expect([SDLPRNDL valueOf:@"FOURTH"]).to(equal([SDLPRNDL FOURTH])); - expect([SDLPRNDL valueOf:@"FIFTH"]).to(equal([SDLPRNDL FIFTH])); - expect([SDLPRNDL valueOf:@"SIXTH"]).to(equal([SDLPRNDL SIXTH])); - expect([SDLPRNDL valueOf:@"SEVENTH"]).to(equal([SDLPRNDL SEVENTH])); - expect([SDLPRNDL valueOf:@"EIGHTH"]).to(equal([SDLPRNDL EIGHTH])); - expect([SDLPRNDL valueOf:@"UNKNOWN"]).to(equal([SDLPRNDL UNKNOWN])); - expect([SDLPRNDL valueOf:@"FAULT"]).to(equal([SDLPRNDL FAULT])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLPRNDL valueOf:nil]).to(beNil()); - expect([SDLPRNDL valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLPRNDL values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLPRNDL PARK], - [SDLPRNDL REVERSE], - [SDLPRNDL NEUTRAL], - [SDLPRNDL DRIVE], - [SDLPRNDL SPORT], - [SDLPRNDL LOWGEAR], - [SDLPRNDL FIRST], - [SDLPRNDL SECOND], - [SDLPRNDL THIRD], - [SDLPRNDL FOURTH], - [SDLPRNDL FIFTH], - [SDLPRNDL SIXTH], - [SDLPRNDL SEVENTH], - [SDLPRNDL EIGHTH], - [SDLPRNDL UNKNOWN], - [SDLPRNDL FAULT]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLPRNDLPark).to(equal(@"PARK")); + expect(SDLPRNDLReverse).to(equal(@"REVERSE")); + expect(SDLPRNDLNeutral).to(equal(@"NEUTRAL")); + expect(SDLPRNDLDrive).to(equal(@"DRIVE")); + expect(SDLPRNDLSport).to(equal(@"SPORT")); + expect(SDLPRNDLLowGear).to(equal(@"LOWGEAR")); + expect(SDLPRNDLFirst).to(equal(@"FIRST")); + expect(SDLPRNDLSecond).to(equal(@"SECOND")); + expect(SDLPRNDLThird).to(equal(@"THIRD")); + expect(SDLPRNDLFourth).to(equal(@"FOURTH")); + expect(SDLPRNDLFifth).to(equal(@"FIFTH")); + expect(SDLPRNDLSixth).to(equal(@"SIXTH")); + expect(SDLPRNDLSeventh).to(equal(@"SEVENTH")); + expect(SDLPRNDLEighth).to(equal(@"EIGHTH")); + expect(SDLPRNDLUnknown).to(equal(@"UNKNOWN")); + expect(SDLPRNDLFault).to(equal(@"FAULT")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPermissionStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPermissionStatusSpec.m index 3ca864595..0c97d950e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPermissionStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPermissionStatusSpec.m @@ -14,46 +14,11 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLPermissionStatus ALLOWED].value).to(equal(@"ALLOWED")); - expect([SDLPermissionStatus DISALLOWED].value).to(equal(@"DISALLOWED")); - expect([SDLPermissionStatus USER_DISALLOWED].value).to(equal(@"USER_DISALLOWED")); - expect([SDLPermissionStatus USER_CONSENT_PENDING].value).to(equal(@"USER_CONSENT_PENDING")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLPermissionStatus valueOf:@"ALLOWED"]).to(equal([SDLPermissionStatus ALLOWED])); - expect([SDLPermissionStatus valueOf:@"DISALLOWED"]).to(equal([SDLPermissionStatus DISALLOWED])); - expect([SDLPermissionStatus valueOf:@"USER_DISALLOWED"]).to(equal([SDLPermissionStatus USER_DISALLOWED])); - expect([SDLPermissionStatus valueOf:@"USER_CONSENT_PENDING"]).to(equal([SDLPermissionStatus USER_CONSENT_PENDING])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLPermissionStatus valueOf:nil]).to(beNil()); - expect([SDLPermissionStatus valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLPermissionStatus values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLPermissionStatus ALLOWED], - [SDLPermissionStatus DISALLOWED], - [SDLPermissionStatus USER_DISALLOWED], - [SDLPermissionStatus USER_CONSENT_PENDING]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLPermissionStatusAllowed).to(equal(@"ALLOWED")); + expect(SDLPermissionStatusDisallowed).to(equal(@"DISALLOWED")); + expect(SDLPermissionStatusUserDisallowed).to(equal(@"USER_DISALLOWED")); + expect(SDLPermissionStatusUserConsentPending).to(equal(@"USER_CONSENT_PENDING")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPowerModeQualificationStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPowerModeQualificationStatusSpec.m index 1a8c2dd55..45fa5ba6f 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPowerModeQualificationStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPowerModeQualificationStatusSpec.m @@ -14,46 +14,11 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLPowerModeQualificationStatus POWER_MODE_UNDEFINED].value).to(equal(@"POWER_MODE_UNDEFINED")); - expect([SDLPowerModeQualificationStatus POWER_MODE_EVALUATION_IN_PROGRESS].value).to(equal(@"POWER_MODE_EVALUATION_IN_PROGRESS")); - expect([SDLPowerModeQualificationStatus NOT_DEFINED].value).to(equal(@"NOT_DEFINED")); - expect([SDLPowerModeQualificationStatus POWER_MODE_OK].value).to(equal(@"POWER_MODE_OK")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLPowerModeQualificationStatus valueOf:@"POWER_MODE_UNDEFINED"]).to(equal([SDLPowerModeQualificationStatus POWER_MODE_UNDEFINED])); - expect([SDLPowerModeQualificationStatus valueOf:@"POWER_MODE_EVALUATION_IN_PROGRESS"]).to(equal([SDLPowerModeQualificationStatus POWER_MODE_EVALUATION_IN_PROGRESS])); - expect([SDLPowerModeQualificationStatus valueOf:@"NOT_DEFINED"]).to(equal([SDLPowerModeQualificationStatus NOT_DEFINED])); - expect([SDLPowerModeQualificationStatus valueOf:@"POWER_MODE_OK"]).to(equal([SDLPowerModeQualificationStatus POWER_MODE_OK])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLPowerModeQualificationStatus valueOf:nil]).to(beNil()); - expect([SDLPowerModeQualificationStatus valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLPowerModeQualificationStatus values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLPowerModeQualificationStatus POWER_MODE_UNDEFINED], - [SDLPowerModeQualificationStatus POWER_MODE_EVALUATION_IN_PROGRESS], - [SDLPowerModeQualificationStatus NOT_DEFINED], - [SDLPowerModeQualificationStatus POWER_MODE_OK]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLPowerModeQualificationStatusUndefined).to(equal(@"POWER_MODE_UNDEFINED")); + expect(SDLPowerModeQualificationStatusEvaluationInProgress).to(equal(@"POWER_MODE_EVALUATION_IN_PROGRESS")); + expect(SDLPowerModeQualificationStatusNotDefined).to(equal(@"NOT_DEFINED")); + expect(SDLPowerModeQualificationStatusOk).to(equal(@"POWER_MODE_OK")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPowerModeStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPowerModeStatusSpec.m index 4ffc91aba..fd7e53e62 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPowerModeStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPowerModeStatusSpec.m @@ -14,61 +14,16 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLPowerModeStatus KEY_OUT].value).to(equal(@"KEY_OUT")); - expect([SDLPowerModeStatus KEY_RECENTLY_OUT].value).to(equal(@"KEY_RECENTLY_OUT")); - expect([SDLPowerModeStatus KEY_APPROVED_0].value).to(equal(@"KEY_APPROVED_0")); - expect([SDLPowerModeStatus POST_ACCESORY_0].value).to(equal(@"POST_ACCESORY_0")); - expect([SDLPowerModeStatus ACCESORY_1].value).to(equal(@"ACCESORY_1")); - expect([SDLPowerModeStatus POST_IGNITION_1].value).to(equal(@"POST_IGNITION_1")); - expect([SDLPowerModeStatus IGNITION_ON_2].value).to(equal(@"IGNITION_ON_2")); - expect([SDLPowerModeStatus RUNNING_2].value).to(equal(@"RUNNING_2")); - expect([SDLPowerModeStatus CRANK_3].value).to(equal(@"CRANK_3")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLPowerModeStatus valueOf:@"KEY_OUT"]).to(equal([SDLPowerModeStatus KEY_OUT])); - expect([SDLPowerModeStatus valueOf:@"KEY_RECENTLY_OUT"]).to(equal([SDLPowerModeStatus KEY_RECENTLY_OUT])); - expect([SDLPowerModeStatus valueOf:@"KEY_APPROVED_0"]).to(equal([SDLPowerModeStatus KEY_APPROVED_0])); - expect([SDLPowerModeStatus valueOf:@"POST_ACCESORY_0"]).to(equal([SDLPowerModeStatus POST_ACCESORY_0])); - expect([SDLPowerModeStatus valueOf:@"ACCESORY_1"]).to(equal([SDLPowerModeStatus ACCESORY_1])); - expect([SDLPowerModeStatus valueOf:@"POST_IGNITION_1"]).to(equal([SDLPowerModeStatus POST_IGNITION_1])); - expect([SDLPowerModeStatus valueOf:@"IGNITION_ON_2"]).to(equal([SDLPowerModeStatus IGNITION_ON_2])); - expect([SDLPowerModeStatus valueOf:@"RUNNING_2"]).to(equal([SDLPowerModeStatus RUNNING_2])); - expect([SDLPowerModeStatus valueOf:@"CRANK_3"]).to(equal([SDLPowerModeStatus CRANK_3])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLPowerModeStatus valueOf:nil]).to(beNil()); - expect([SDLPowerModeStatus valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLPowerModeStatus values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLPowerModeStatus KEY_OUT], - [SDLPowerModeStatus KEY_RECENTLY_OUT], - [SDLPowerModeStatus KEY_APPROVED_0], - [SDLPowerModeStatus POST_ACCESORY_0], - [SDLPowerModeStatus ACCESORY_1], - [SDLPowerModeStatus POST_IGNITION_1], - [SDLPowerModeStatus IGNITION_ON_2], - [SDLPowerModeStatus RUNNING_2], - [SDLPowerModeStatus CRANK_3]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLPowerModeStatusKeyOut).to(equal(@"KEY_OUT")); + expect(SDLPowerModeStatusKeyRecentlyOut).to(equal(@"KEY_RECENTLY_OUT")); + expect(SDLPowerModeStatusKeyApproved).to(equal(@"KEY_APPROVED_0")); + expect(SDLPowerModeStatusPostAccessory).to(equal(@"POST_ACCESORY_0")); + expect(SDLPowerModeStatusAccessory).to(equal(@"ACCESORY_1")); + expect(SDLPowerModeStatusPostIgnition).to(equal(@"POST_IGNITION_1")); + expect(SDLPowerModeStatusIgnitionOn).to(equal(@"IGNITION_ON_2")); + expect(SDLPowerModeStatusRunning).to(equal(@"RUNNING_2")); + expect(SDLPowerModeStatusCrank).to(equal(@"CRANK_3")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPredefinedLayoutSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPredefinedLayoutSpec.m index 0f110d08c..1635f7741 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPredefinedLayoutSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPredefinedLayoutSpec.m @@ -14,94 +14,27 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLPredefinedLayout DEFAULT].value).to(equal(@"DEFAULT")); - expect([SDLPredefinedLayout MEDIA].value).to(equal(@"MEDIA")); - expect([SDLPredefinedLayout NON_MEDIA].value).to(equal(@"NON-MEDIA")); - expect([SDLPredefinedLayout ONSCREEN_PRESETS].value).to(equal(@"ONSCREEN_PRESETS")); - expect([SDLPredefinedLayout NAV_FULLSCREEN_MAP].value).to(equal(@"NAV_FULLSCREEN_MAP")); - expect([SDLPredefinedLayout NAV_LIST].value).to(equal(@"NAV_LIST")); - expect([SDLPredefinedLayout NAV_KEYBOARD].value).to(equal(@"NAV_KEYBOARD")); - expect([SDLPredefinedLayout GRAPHIC_WITH_TEXT].value).to(equal(@"GRAPHIC_WITH_TEXT")); - expect([SDLPredefinedLayout TEXT_WITH_GRAPHIC].value).to(equal(@"TEXT_WITH_GRAPHIC")); - expect([SDLPredefinedLayout TILES_ONLY].value).to(equal(@"TILES_ONLY")); - expect([SDLPredefinedLayout TEXTBUTTONS_ONLY].value).to(equal(@"TEXTBUTTONS_ONLY")); - expect([SDLPredefinedLayout GRAPHIC_WITH_TILES].value).to(equal(@"GRAPHIC_WITH_TILES")); - expect([SDLPredefinedLayout TILES_WITH_GRAPHIC].value).to(equal(@"TILES_WITH_GRAPHIC")); - expect([SDLPredefinedLayout GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS].value).to(equal(@"GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS")); - expect([SDLPredefinedLayout TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC].value).to(equal(@"TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC")); - expect([SDLPredefinedLayout GRAPHIC_WITH_TEXTBUTTONS].value).to(equal(@"GRAPHIC_WITH_TEXTBUTTONS")); - expect([SDLPredefinedLayout TEXTBUTTONS_WITH_GRAPHIC].value).to(equal(@"TEXTBUTTONS_WITH_GRAPHIC")); - expect([SDLPredefinedLayout LARGE_GRAPHIC_WITH_SOFTBUTTONS].value).to(equal(@"LARGE_GRAPHIC_WITH_SOFTBUTTONS")); - expect([SDLPredefinedLayout DOUBLE_GRAPHIC_WITH_SOFTBUTTONS].value).to(equal(@"DOUBLE_GRAPHIC_WITH_SOFTBUTTONS")); - expect([SDLPredefinedLayout LARGE_GRAPHIC_ONLY].value).to(equal(@"LARGE_GRAPHIC_ONLY")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLPredefinedLayout valueOf:@"DEFAULT"]).to(equal([SDLPredefinedLayout DEFAULT])); - expect([SDLPredefinedLayout valueOf:@"MEDIA"]).to(equal([SDLPredefinedLayout MEDIA])); - expect([SDLPredefinedLayout valueOf:@"NON-MEDIA"]).to(equal([SDLPredefinedLayout NON_MEDIA])); - expect([SDLPredefinedLayout valueOf:@"ONSCREEN_PRESETS"]).to(equal([SDLPredefinedLayout ONSCREEN_PRESETS])); - expect([SDLPredefinedLayout valueOf:@"NAV_FULLSCREEN_MAP"]).to(equal([SDLPredefinedLayout NAV_FULLSCREEN_MAP])); - expect([SDLPredefinedLayout valueOf:@"NAV_LIST"]).to(equal([SDLPredefinedLayout NAV_LIST])); - expect([SDLPredefinedLayout valueOf:@"NAV_KEYBOARD"]).to(equal([SDLPredefinedLayout NAV_KEYBOARD])); - expect([SDLPredefinedLayout valueOf:@"GRAPHIC_WITH_TEXT"]).to(equal([SDLPredefinedLayout GRAPHIC_WITH_TEXT])); - expect([SDLPredefinedLayout valueOf:@"TEXT_WITH_GRAPHIC"]).to(equal([SDLPredefinedLayout TEXT_WITH_GRAPHIC])); - expect([SDLPredefinedLayout valueOf:@"TILES_ONLY"]).to(equal([SDLPredefinedLayout TILES_ONLY])); - expect([SDLPredefinedLayout valueOf:@"TEXTBUTTONS_ONLY"]).to(equal([SDLPredefinedLayout TEXTBUTTONS_ONLY])); - expect([SDLPredefinedLayout valueOf:@"GRAPHIC_WITH_TILES"]).to(equal([SDLPredefinedLayout GRAPHIC_WITH_TILES])); - expect([SDLPredefinedLayout valueOf:@"TILES_WITH_GRAPHIC"]).to(equal([SDLPredefinedLayout TILES_WITH_GRAPHIC])); - expect([SDLPredefinedLayout valueOf:@"GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS"]).to(equal([SDLPredefinedLayout GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS])); - expect([SDLPredefinedLayout valueOf:@"TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC"]).to(equal([SDLPredefinedLayout TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC])); - expect([SDLPredefinedLayout valueOf:@"GRAPHIC_WITH_TEXTBUTTONS"]).to(equal([SDLPredefinedLayout GRAPHIC_WITH_TEXTBUTTONS])); - expect([SDLPredefinedLayout valueOf:@"TEXTBUTTONS_WITH_GRAPHIC"]).to(equal([SDLPredefinedLayout TEXTBUTTONS_WITH_GRAPHIC])); - expect([SDLPredefinedLayout valueOf:@"LARGE_GRAPHIC_WITH_SOFTBUTTONS"]).to(equal([SDLPredefinedLayout LARGE_GRAPHIC_WITH_SOFTBUTTONS])); - expect([SDLPredefinedLayout valueOf:@"DOUBLE_GRAPHIC_WITH_SOFTBUTTONS"]).to(equal([SDLPredefinedLayout DOUBLE_GRAPHIC_WITH_SOFTBUTTONS])); - expect([SDLPredefinedLayout valueOf:@"LARGE_GRAPHIC_ONLY"]).to(equal([SDLPredefinedLayout LARGE_GRAPHIC_ONLY])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLPredefinedLayout valueOf:nil]).to(beNil()); - expect([SDLPredefinedLayout valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLPredefinedLayout values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLPredefinedLayout DEFAULT], - [SDLPredefinedLayout MEDIA], - [SDLPredefinedLayout NON_MEDIA], - [SDLPredefinedLayout ONSCREEN_PRESETS], - [SDLPredefinedLayout NAV_FULLSCREEN_MAP], - [SDLPredefinedLayout NAV_LIST], - [SDLPredefinedLayout NAV_KEYBOARD], - [SDLPredefinedLayout GRAPHIC_WITH_TEXT], - [SDLPredefinedLayout TEXT_WITH_GRAPHIC], - [SDLPredefinedLayout TILES_ONLY], - [SDLPredefinedLayout TEXTBUTTONS_ONLY], - [SDLPredefinedLayout GRAPHIC_WITH_TILES], - [SDLPredefinedLayout TILES_WITH_GRAPHIC], - [SDLPredefinedLayout GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS], - [SDLPredefinedLayout TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC], - [SDLPredefinedLayout GRAPHIC_WITH_TEXTBUTTONS], - [SDLPredefinedLayout TEXTBUTTONS_WITH_GRAPHIC], - [SDLPredefinedLayout LARGE_GRAPHIC_WITH_SOFTBUTTONS], - [SDLPredefinedLayout DOUBLE_GRAPHIC_WITH_SOFTBUTTONS], - [SDLPredefinedLayout LARGE_GRAPHIC_ONLY]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLPredefinedLayoutDefault).to(equal(@"DEFAULT")); + expect(SDLPredefinedLayoutMedia).to(equal(@"MEDIA")); + expect(SDLPredefinedLayoutNonMedia).to(equal(@"NON-MEDIA")); + expect(SDLPredefinedLayoutOnscreenPresets).to(equal(@"ONSCREEN_PRESETS")); + expect(SDLPredefinedLayoutNavigationFullscreenMap).to(equal(@"NAV_FULLSCREEN_MAP")); + expect(SDLPredefinedLayoutNavigationList).to(equal(@"NAV_LIST")); + expect(SDLPredefinedLayoutNavigationKeyboard).to(equal(@"NAV_KEYBOARD")); + expect(SDLPredefinedLayoutGraphicWithText).to(equal(@"GRAPHIC_WITH_TEXT")); + expect(SDLPredefinedLayoutTextWithGraphic).to(equal(@"TEXT_WITH_GRAPHIC")); + expect(SDLPredefinedLayoutTilesOnly).to(equal(@"TILES_ONLY")); + expect(SDLPredefinedLayoutTextButtonsOnly).to(equal(@"TEXTBUTTONS_ONLY")); + expect(SDLPredefinedLayoutGraphicWithTiles).to(equal(@"GRAPHIC_WITH_TILES")); + expect(SDLPredefinedLayoutTilesWithGraphic).to(equal(@"TILES_WITH_GRAPHIC")); + expect(SDLPredefinedLayoutGraphicWithTextAndSoftButtons).to(equal(@"GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS")); + expect(SDLPredefinedLayoutTextAndSoftButtonsWithGraphic).to(equal(@"TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC")); + expect(SDLPredefinedLayoutGraphicWithTextButtons).to(equal(@"GRAPHIC_WITH_TEXTBUTTONS")); + expect(SDLPredefinedLayoutTextButtonsWithGraphic).to(equal(@"TEXTBUTTONS_WITH_GRAPHIC")); + expect(SDLPredefinedLayoutLargeGraphicWithSoftButtons).to(equal(@"LARGE_GRAPHIC_WITH_SOFTBUTTONS")); + expect(SDLPredefinedLayoutDoubleGraphicWithSoftButtons).to(equal(@"DOUBLE_GRAPHIC_WITH_SOFTBUTTONS")); + expect(SDLPredefinedLayoutLargeGraphicOnly).to(equal(@"LARGE_GRAPHIC_ONLY")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPrerecordedSpeechSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPrerecordedSpeechSpec.m index 89c0bd218..657821a6f 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPrerecordedSpeechSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPrerecordedSpeechSpec.m @@ -14,49 +14,12 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLPrerecordedSpeech HELP_JINGLE].value).to(equal(@"HELP_JINGLE")); - expect([SDLPrerecordedSpeech INITIAL_JINGLE].value).to(equal(@"INITIAL_JINGLE")); - expect([SDLPrerecordedSpeech LISTEN_JINGLE].value).to(equal(@"LISTEN_JINGLE")); - expect([SDLPrerecordedSpeech POSITIVE_JINGLE].value).to(equal(@"POSITIVE_JINGLE")); - expect([SDLPrerecordedSpeech NEGATIVE_JINGLE].value).to(equal(@"NEGATIVE_JINGLE")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLPrerecordedSpeech valueOf:@"HELP_JINGLE"]).to(equal([SDLPrerecordedSpeech HELP_JINGLE])); - expect([SDLPrerecordedSpeech valueOf:@"INITIAL_JINGLE"]).to(equal([SDLPrerecordedSpeech INITIAL_JINGLE])); - expect([SDLPrerecordedSpeech valueOf:@"LISTEN_JINGLE"]).to(equal([SDLPrerecordedSpeech LISTEN_JINGLE])); - expect([SDLPrerecordedSpeech valueOf:@"POSITIVE_JINGLE"]).to(equal([SDLPrerecordedSpeech POSITIVE_JINGLE])); - expect([SDLPrerecordedSpeech valueOf:@"NEGATIVE_JINGLE"]).to(equal([SDLPrerecordedSpeech NEGATIVE_JINGLE])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLPrerecordedSpeech valueOf:nil]).to(beNil()); - expect([SDLPrerecordedSpeech valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLPrerecordedSpeech values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLPrerecordedSpeech HELP_JINGLE], - [SDLPrerecordedSpeech INITIAL_JINGLE], - [SDLPrerecordedSpeech LISTEN_JINGLE], - [SDLPrerecordedSpeech POSITIVE_JINGLE], - [SDLPrerecordedSpeech NEGATIVE_JINGLE]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLPrerecordedSpeechHelp).to(equal(@"HELP_JINGLE")); + expect(SDLPrerecordedSpeechInitial).to(equal(@"INITIAL_JINGLE")); + expect(SDLPrerecordedSpeechListen).to(equal(@"LISTEN_JINGLE")); + expect(SDLPrerecordedSpeechPositive).to(equal(@"POSITIVE_JINGLE")); + expect(SDLPrerecordedSpeechNegative).to(equal(@"NEGATIVE_JINGLE")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPrimaryAudioSource.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPrimaryAudioSource.m index 0b273e0df..712dfd8d1 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPrimaryAudioSource.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPrimaryAudioSource.m @@ -14,55 +14,14 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLPrimaryAudioSource NO_SOURCE_SELECTED].value).to(equal(@"NO_SOURCE_SELECTED")); - expect([SDLPrimaryAudioSource USB].value).to(equal(@"USB")); - expect([SDLPrimaryAudioSource USB2].value).to(equal(@"USB2")); - expect([SDLPrimaryAudioSource BLUETOOTH_STEREO_BTST].value).to(equal(@"BLUETOOTH_STEREO_BTST")); - expect([SDLPrimaryAudioSource LINE_IN].value).to(equal(@"LINE_IN")); - expect([SDLPrimaryAudioSource IPOD].value).to(equal(@"IPOD")); - expect([SDLPrimaryAudioSource MOBILE_APP].value).to(equal(@"MOBILE_APP")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLPrimaryAudioSource valueOf:@"NO_SOURCE_SELECTED"]).to(equal([SDLPrimaryAudioSource NO_SOURCE_SELECTED])); - expect([SDLPrimaryAudioSource valueOf:@"USB"]).to(equal([SDLPrimaryAudioSource USB])); - expect([SDLPrimaryAudioSource valueOf:@"USB2"]).to(equal([SDLPrimaryAudioSource USB2])); - expect([SDLPrimaryAudioSource valueOf:@"BLUETOOTH_STEREO_BTST"]).to(equal([SDLPrimaryAudioSource BLUETOOTH_STEREO_BTST])); - expect([SDLPrimaryAudioSource valueOf:@"LINE_IN"]).to(equal([SDLPrimaryAudioSource LINE_IN])); - expect([SDLPrimaryAudioSource valueOf:@"IPOD"]).to(equal([SDLPrimaryAudioSource IPOD])); - expect([SDLPrimaryAudioSource valueOf:@"MOBILE_APP"]).to(equal([SDLPrimaryAudioSource MOBILE_APP])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLPrimaryAudioSource valueOf:nil]).to(beNil()); - expect([SDLPrimaryAudioSource valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLPrimaryAudioSource values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLPrimaryAudioSource NO_SOURCE_SELECTED], - [SDLPrimaryAudioSource USB], - [SDLPrimaryAudioSource USB2], - [SDLPrimaryAudioSource BLUETOOTH_STEREO_BTST], - [SDLPrimaryAudioSource LINE_IN], - [SDLPrimaryAudioSource IPOD], - [SDLPrimaryAudioSource MOBILE_APP]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLPrimaryAudioSourceNoSourceSelected).to(equal(@"NO_SOURCE_SELECTED")); + expect(SDLPrimaryAudioSourceUSB).to(equal(@"USB")); + expect(SDLPrimaryAudioSourceUSB2).to(equal(@"USB2")); + expect(SDLPrimaryAudioSourceBluetoothStereo).to(equal(@"BLUETOOTH_STEREO_BTST")); + expect(SDLPrimaryAudioSourceLineIn).to(equal(@"LINE_IN")); + expect(SDLPrimaryAudioSourceIpod).to(equal(@"IPOD")); + expect(SDLPrimaryAudioSourceMobileApp).to(equal(@"MOBILE_APP")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLRadioBandSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLRadioBandSpec.m new file mode 100644 index 000000000..76e591302 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLRadioBandSpec.m @@ -0,0 +1,22 @@ +// +// SDLRadioBandSpec.m +// SmartDeviceLink-iOS + +#import + +#import +#import + +#import "SDLRadioBand.h" + +QuickSpecBegin(SDLRadioBandSpec) + +describe(@"Individual Enum Value Tests", ^ { + it(@"Should match internal values", ^ { + expect(SDLRadioBandAM).to(equal(@"AM")); + expect(SDLRadioBandFM).to(equal(@"FM")); + expect(SDLRadioBandXM).to(equal(@"XM")); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLRadioStateSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLRadioStateSpec.m new file mode 100644 index 000000000..c838f41a3 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLRadioStateSpec.m @@ -0,0 +1,24 @@ +// +// SDLRadioStateSpec.m +// SmartDeviceLink-iOS +// + +#import + +#import +#import + +#import "SDLRadioState.h" + +QuickSpecBegin(SDLRadioStateSpec) + +describe(@"Individual Enum Value Tests", ^ { + it(@"Should match internal values", ^ { + expect(SDLRadioStateAcquiring).to(equal(@"ACQUIRING")); + expect(SDLRadioStateAcquired).to(equal(@"ACQUIRED")); + expect(SDLRadioStateMulticast).to(equal(@"MULTICAST")); + expect(SDLRadioStateNotFound).to(equal(@"NOT_FOUND")); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLRequestTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLRequestTypeSpec.m index 7a314e1a6..9b6b74279 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLRequestTypeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLRequestTypeSpec.m @@ -14,95 +14,27 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLRequestType HTTP].value).to(equal(@"HTTP")); - expect([SDLRequestType FILE_RESUME].value).to(equal(@"FILE_RESUME")); - expect([SDLRequestType AUTH_REQUEST].value).to(equal(@"AUTH_REQUEST")); - expect([SDLRequestType AUTH_CHALLENGE].value).to(equal(@"AUTH_CHALLENGE")); - expect([SDLRequestType AUTH_ACK].value).to(equal(@"AUTH_ACK")); - expect([SDLRequestType PROPRIETARY].value).to(equal(@"PROPRIETARY")); - expect([SDLRequestType QUERY_APPS].value).to(equal(@"QUERY_APPS")); - expect([SDLRequestType LAUNCH_APP].value).to(equal(@"LAUNCH_APP")); - expect([SDLRequestType LOCK_SCREEN_ICON_URL].value).to(equal(@"LOCK_SCREEN_ICON_URL")); - expect([SDLRequestType TRAFFIC_MESSAGE_CHANNEL].value).to(equal(@"TRAFFIC_MESSAGE_CHANNEL")); - expect([SDLRequestType DRIVER_PROFILE].value).to(equal(@"DRIVER_PROFILE")); - expect([SDLRequestType VOICE_SEARCH].value).to(equal(@"VOICE_SEARCH")); - expect([SDLRequestType NAVIGATION].value).to(equal(@"NAVIGATION")); - expect([SDLRequestType PHONE].value).to(equal(@"PHONE")); - expect([SDLRequestType CLIMATE].value).to(equal(@"CLIMATE")); - expect([SDLRequestType SETTINGS].value).to(equal(@"SETTINGS")); - expect([SDLRequestType VEHICLE_DIAGNOSTICS].value).to(equal(@"VEHICLE_DIAGNOSTICS")); - expect([SDLRequestType EMERGENCY].value).to(equal(@"EMERGENCY")); - expect([SDLRequestType MEDIA].value).to(equal(@"MEDIA")); - expect([SDLRequestType FOTA].value).to(equal(@"FOTA")); + expect(SDLRequestTypeHTTP).to(equal(@"HTTP")); + expect(SDLRequestTypeFileResume).to(equal(@"FILE_RESUME")); + expect(SDLRequestTypeAuthenticationRequest).to(equal(@"AUTH_REQUEST")); + expect(SDLRequestTypeAuthenticationChallenge).to(equal(@"AUTH_CHALLENGE")); + expect(SDLRequestTypeAuthenticationAck).to(equal(@"AUTH_ACK")); + expect(SDLRequestTypeProprietary).to(equal(@"PROPRIETARY")); + expect(SDLRequestTypeQueryApps).to(equal(@"QUERY_APPS")); + expect(SDLRequestTypeLaunchApp).to(equal(@"LAUNCH_APP")); + expect(SDLRequestTypeLockScreenIconURL).to(equal(@"LOCK_SCREEN_ICON_URL")); + expect(SDLRequestTypeTrafficMessageChannel).to(equal(@"TRAFFIC_MESSAGE_CHANNEL")); + expect(SDLRequestTypeDriverProfile).to(equal(@"DRIVER_PROFILE")); + expect(SDLRequestTypeVoiceSearch).to(equal(@"VOICE_SEARCH")); + expect(SDLRequestTypeNavigation).to(equal(@"NAVIGATION")); + expect(SDLRequestTypePhone).to(equal(@"PHONE")); + expect(SDLRequestTypeClimate).to(equal(@"CLIMATE")); + expect(SDLRequestTypeSettings).to(equal(@"SETTINGS")); + expect(SDLRequestTypeVehicleDiagnostics).to(equal(@"VEHICLE_DIAGNOSTICS")); + expect(SDLRequestTypeEmergency).to(equal(@"EMERGENCY")); + expect(SDLRequestTypeMedia).to(equal(@"MEDIA")); + expect(SDLRequestTypeFOTA).to(equal(@"FOTA")); }); }); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLRequestType valueOf:@"HTTP"]).to(equal([SDLRequestType HTTP])); - expect([SDLRequestType valueOf:@"FILE_RESUME"]).to(equal([SDLRequestType FILE_RESUME])); - expect([SDLRequestType valueOf:@"AUTH_REQUEST"]).to(equal([SDLRequestType AUTH_REQUEST])); - expect([SDLRequestType valueOf:@"AUTH_CHALLENGE"]).to(equal([SDLRequestType AUTH_CHALLENGE])); - expect([SDLRequestType valueOf:@"AUTH_ACK"]).to(equal([SDLRequestType AUTH_ACK])); - expect([SDLRequestType valueOf:@"QUERY_APPS"]).to(equal([SDLRequestType QUERY_APPS])); - expect([SDLRequestType valueOf:@"LAUNCH_APP"]).to(equal([SDLRequestType LAUNCH_APP])); - expect([SDLRequestType valueOf:@"LOCK_SCREEN_ICON_URL"]).to(equal([SDLRequestType LOCK_SCREEN_ICON_URL])); - expect([SDLRequestType valueOf:@"TRAFFIC_MESSAGE_CHANNEL"]).to(equal([SDLRequestType TRAFFIC_MESSAGE_CHANNEL])); - expect([SDLRequestType valueOf:@"DRIVER_PROFILE"]).to(equal([SDLRequestType DRIVER_PROFILE])); - expect([SDLRequestType valueOf:@"VOICE_SEARCH"]).to(equal([SDLRequestType VOICE_SEARCH])); - expect([SDLRequestType valueOf:@"NAVIGATION"]).to(equal([SDLRequestType NAVIGATION])); - expect([SDLRequestType valueOf:@"PHONE"]).to(equal([SDLRequestType PHONE])); - expect([SDLRequestType valueOf:@"CLIMATE"]).to(equal([SDLRequestType CLIMATE])); - expect([SDLRequestType valueOf:@"SETTINGS"]).to(equal([SDLRequestType SETTINGS])); - expect([SDLRequestType valueOf:@"VEHICLE_DIAGNOSTICS"]).to(equal([SDLRequestType VEHICLE_DIAGNOSTICS])); - expect([SDLRequestType valueOf:@"EMERGENCY"]).to(equal([SDLRequestType EMERGENCY])); - expect([SDLRequestType valueOf:@"MEDIA"]).to(equal([SDLRequestType MEDIA])); - expect([SDLRequestType valueOf:@"FOTA"]).to(equal([SDLRequestType FOTA])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLRequestType valueOf:nil]).to(beNil()); - expect([SDLRequestType valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); - -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLRequestType values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLRequestType HTTP], - [SDLRequestType FILE_RESUME], - [SDLRequestType AUTH_REQUEST], - [SDLRequestType AUTH_CHALLENGE], - [SDLRequestType AUTH_ACK], - [SDLRequestType PROPRIETARY], - [SDLRequestType QUERY_APPS], - [SDLRequestType LAUNCH_APP], - [SDLRequestType LOCK_SCREEN_ICON_URL], - [SDLRequestType TRAFFIC_MESSAGE_CHANNEL], - [SDLRequestType DRIVER_PROFILE], - [SDLRequestType VOICE_SEARCH], - [SDLRequestType NAVIGATION], - [SDLRequestType PHONE], - [SDLRequestType CLIMATE], - [SDLRequestType SETTINGS], - [SDLRequestType VEHICLE_DIAGNOSTICS], - [SDLRequestType EMERGENCY], - [SDLRequestType MEDIA], - [SDLRequestType FOTA]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } - }); -}); - -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLResultSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLResultSpec.m index 916cb6155..239140d19 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLResultSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLResultSpec.m @@ -14,132 +14,43 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLResult SUCCESS].value).to(equal(@"SUCCESS")); - expect([SDLResult UNSUPPORTED_REQUEST].value).to(equal(@"UNSUPPORTED_REQUEST")); - expect([SDLResult UNSUPPORTED_RESOURCE].value).to(equal(@"UNSUPPORTED_RESOURCE")); - expect([SDLResult DISALLOWED].value).to(equal(@"DISALLOWED")); - expect([SDLResult REJECTED].value).to(equal(@"REJECTED")); - expect([SDLResult ABORTED].value).to(equal(@"ABORTED")); - expect([SDLResult IGNORED].value).to(equal(@"IGNORED")); - expect([SDLResult RETRY].value).to(equal(@"RETRY")); - expect([SDLResult IN_USE].value).to(equal(@"IN_USE")); - expect([SDLResult VEHICLE_DATA_NOT_AVAILABLE].value).to(equal(@"VEHICLE_DATA_NOT_AVAILABLE")); - expect([SDLResult TIMED_OUT].value).to(equal(@"TIMED_OUT")); - expect([SDLResult INVALID_DATA].value).to(equal(@"INVALID_DATA")); - expect([SDLResult CHAR_LIMIT_EXCEEDED].value).to(equal(@"CHAR_LIMIT_EXCEEDED")); - expect([SDLResult INVALID_ID].value).to(equal(@"INVALID_ID")); - expect([SDLResult DUPLICATE_NAME].value).to(equal(@"DUPLICATE_NAME")); - expect([SDLResult APPLICATION_NOT_REGISTERED].value).to(equal(@"APPLICATION_NOT_REGISTERED")); - expect([SDLResult WRONG_LANGUAGE].value).to(equal(@"WRONG_LANGUAGE")); - expect([SDLResult OUT_OF_MEMORY].value).to(equal(@"OUT_OF_MEMORY")); - expect([SDLResult TOO_MANY_PENDING_REQUESTS].value).to(equal(@"TOO_MANY_PENDING_REQUESTS")); - expect([SDLResult TOO_MANY_APPLICATIONS].value).to(equal(@"TOO_MANY_APPLICATIONS")); - expect([SDLResult APPLICATION_REGISTERED_ALREADY].value).to(equal(@"APPLICATION_REGISTERED_ALREADY")); - expect([SDLResult WARNINGS].value).to(equal(@"WARNINGS")); - expect([SDLResult GENERIC_ERROR].value).to(equal(@"GENERIC_ERROR")); - expect([SDLResult USER_DISALLOWED].value).to(equal(@"USER_DISALLOWED")); - expect([SDLResult UNSUPPORTED_VERSION].value).to(equal(@"UNSUPPORTED_VERSION")); - expect([SDLResult VEHICLE_DATA_NOT_ALLOWED].value).to(equal(@"VEHICLE_DATA_NOT_ALLOWED")); - expect([SDLResult FILE_NOT_FOUND].value).to(equal(@"FILE_NOT_FOUND")); - expect([SDLResult CANCEL_ROUTE].value).to(equal(@"CANCEL_ROUTE")); - expect([SDLResult TRUNCATED_DATA].value).to(equal(@"TRUNCATED_DATA")); - expect([SDLResult SAVED].value).to(equal(@"SAVED")); - expect([SDLResult INVALID_CERT].value).to(equal(@"INVALID_CERT")); - expect([SDLResult EXPIRED_CERT].value).to(equal(@"EXPIRED_CERT")); - expect([SDLResult RESUME_FAILED].value).to(equal(@"RESUME_FAILED")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLResult valueOf:@"SUCCESS"]).to(equal([SDLResult SUCCESS])); - expect([SDLResult valueOf:@"UNSUPPORTED_REQUEST"]).to(equal([SDLResult UNSUPPORTED_REQUEST])); - expect([SDLResult valueOf:@"UNSUPPORTED_RESOURCE"]).to(equal([SDLResult UNSUPPORTED_RESOURCE])); - expect([SDLResult valueOf:@"DISALLOWED"]).to(equal([SDLResult DISALLOWED])); - expect([SDLResult valueOf:@"REJECTED"]).to(equal([SDLResult REJECTED])); - expect([SDLResult valueOf:@"IGNORED"]).to(equal([SDLResult IGNORED])); - expect([SDLResult valueOf:@"RETRY"]).to(equal([SDLResult RETRY])); - expect([SDLResult valueOf:@"IN_USE"]).to(equal([SDLResult IN_USE])); - expect([SDLResult valueOf:@"VEHICLE_DATA_NOT_AVAILABLE"]).to(equal([SDLResult VEHICLE_DATA_NOT_AVAILABLE])); - expect([SDLResult valueOf:@"TIMED_OUT"]).to(equal([SDLResult TIMED_OUT])); - expect([SDLResult valueOf:@"INVALID_DATA"]).to(equal([SDLResult INVALID_DATA])); - expect([SDLResult valueOf:@"CHAR_LIMIT_EXCEEDED"]).to(equal([SDLResult CHAR_LIMIT_EXCEEDED])); - expect([SDLResult valueOf:@"INVALID_ID"]).to(equal([SDLResult INVALID_ID])); - expect([SDLResult valueOf:@"DUPLICATE_NAME"]).to(equal([SDLResult DUPLICATE_NAME])); - expect([SDLResult valueOf:@"APPLICATION_NOT_REGISTERED"]).to(equal([SDLResult APPLICATION_NOT_REGISTERED])); - expect([SDLResult valueOf:@"WRONG_LANGUAGE"]).to(equal([SDLResult WRONG_LANGUAGE])); - expect([SDLResult valueOf:@"OUT_OF_MEMORY"]).to(equal([SDLResult OUT_OF_MEMORY])); - expect([SDLResult valueOf:@"TOO_MANY_PENDING_REQUESTS"]).to(equal([SDLResult TOO_MANY_PENDING_REQUESTS])); - expect([SDLResult valueOf:@"TOO_MANY_APPLICATIONS"]).to(equal([SDLResult TOO_MANY_APPLICATIONS])); - expect([SDLResult valueOf:@"APPLICATION_REGISTERED_ALREADY"]).to(equal([SDLResult APPLICATION_REGISTERED_ALREADY])); - expect([SDLResult valueOf:@"WARNINGS"]).to(equal([SDLResult WARNINGS])); - expect([SDLResult valueOf:@"GENERIC_ERROR"]).to(equal([SDLResult GENERIC_ERROR])); - expect([SDLResult valueOf:@"USER_DISALLOWED"]).to(equal([SDLResult USER_DISALLOWED])); - expect([SDLResult valueOf:@"UNSUPPORTED_VERSION"]).to(equal([SDLResult UNSUPPORTED_VERSION])); - expect([SDLResult valueOf:@"VEHICLE_DATA_NOT_ALLOWED"]).to(equal([SDLResult VEHICLE_DATA_NOT_ALLOWED])); - expect([SDLResult valueOf:@"FILE_NOT_FOUND"]).to(equal([SDLResult FILE_NOT_FOUND])); - expect([SDLResult valueOf:@"CANCEL_ROUTE"]).to(equal([SDLResult CANCEL_ROUTE])); - expect([SDLResult valueOf:@"TRUNCATED_DATA"]).to(equal([SDLResult TRUNCATED_DATA])); - expect([SDLResult valueOf:@"SAVED"]).to(equal([SDLResult SAVED])); - expect([SDLResult valueOf:@"INVALID_CERT"]).to(equal([SDLResult INVALID_CERT])); - expect([SDLResult valueOf:@"EXPIRED_CERT"]).to(equal([SDLResult EXPIRED_CERT])); - expect([SDLResult valueOf:@"RESUME_FAILED"]).to(equal([SDLResult RESUME_FAILED])); -}); - - it(@"Should return nil when invalid", ^ { - expect([SDLResult valueOf:nil]).to(beNil()); - expect([SDLResult valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLResult values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLResult SUCCESS], - [SDLResult UNSUPPORTED_REQUEST], - [SDLResult UNSUPPORTED_RESOURCE], - [SDLResult DISALLOWED], - [SDLResult REJECTED], - [SDLResult ABORTED], - [SDLResult IGNORED], - [SDLResult RETRY], - [SDLResult IN_USE], - [SDLResult VEHICLE_DATA_NOT_AVAILABLE], - [SDLResult TIMED_OUT], - [SDLResult INVALID_DATA], - [SDLResult CHAR_LIMIT_EXCEEDED], - [SDLResult INVALID_ID], - [SDLResult DUPLICATE_NAME], - [SDLResult APPLICATION_NOT_REGISTERED], - [SDLResult WRONG_LANGUAGE], - [SDLResult OUT_OF_MEMORY], - [SDLResult TOO_MANY_PENDING_REQUESTS], - [SDLResult TOO_MANY_APPLICATIONS], - [SDLResult APPLICATION_REGISTERED_ALREADY], - [SDLResult WARNINGS], - [SDLResult GENERIC_ERROR], - [SDLResult USER_DISALLOWED], - [SDLResult UNSUPPORTED_VERSION], - [SDLResult VEHICLE_DATA_NOT_ALLOWED], - [SDLResult FILE_NOT_FOUND], - [SDLResult CANCEL_ROUTE], - [SDLResult TRUNCATED_DATA], - [SDLResult SAVED], - [SDLResult INVALID_CERT], - [SDLResult EXPIRED_CERT], - [SDLResult RESUME_FAILED]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLResultSuccess).to(equal(@"SUCCESS")); + expect(SDLResultUnsupportedRequest).to(equal(@"UNSUPPORTED_REQUEST")); + expect(SDLResultUnsupportedResource).to(equal(@"UNSUPPORTED_RESOURCE")); + expect(SDLResultDisallowed).to(equal(@"DISALLOWED")); + expect(SDLResultRejected).to(equal(@"REJECTED")); + expect(SDLResultAborted).to(equal(@"ABORTED")); + expect(SDLResultIgnored).to(equal(@"IGNORED")); + expect(SDLResultRetry).to(equal(@"RETRY")); + expect(SDLResultInUse).to(equal(@"IN_USE")); + expect(SDLResultVehicleDataNotAvailable).to(equal(@"VEHICLE_DATA_NOT_AVAILABLE")); + expect(SDLResultTimedOut).to(equal(@"TIMED_OUT")); + expect(SDLResultInvalidData).to(equal(@"INVALID_DATA")); + expect(SDLResultCharacterLimitExceeded).to(equal(@"CHAR_LIMIT_EXCEEDED")); + expect(SDLResultInvalidId).to(equal(@"INVALID_ID")); + expect(SDLResultDuplicateName).to(equal(@"DUPLICATE_NAME")); + expect(SDLResultApplicationNotRegistered).to(equal(@"APPLICATION_NOT_REGISTERED")); + expect(SDLResultWrongLanguage).to(equal(@"WRONG_LANGUAGE")); + expect(SDLResultOutOfMemory).to(equal(@"OUT_OF_MEMORY")); + expect(SDLResultTooManyPendingRequests).to(equal(@"TOO_MANY_PENDING_REQUESTS")); + expect(SDLResultTooManyApplications).to(equal(@"TOO_MANY_APPLICATIONS")); + expect(SDLResultApplicationRegisteredAlready).to(equal(@"APPLICATION_REGISTERED_ALREADY")); + expect(SDLResultWarnings).to(equal(@"WARNINGS")); + expect(SDLResultGenericError).to(equal(@"GENERIC_ERROR")); + expect(SDLResultUserDisallowed).to(equal(@"USER_DISALLOWED")); + expect(SDLResultUnsupportedVersion).to(equal(@"UNSUPPORTED_VERSION")); + expect(SDLResultVehicleDataNotAllowed).to(equal(@"VEHICLE_DATA_NOT_ALLOWED")); + expect(SDLResultFileNotFound).to(equal(@"FILE_NOT_FOUND")); + expect(SDLResultCancelRoute).to(equal(@"CANCEL_ROUTE")); + expect(SDLResultTruncatedData).to(equal(@"TRUNCATED_DATA")); + expect(SDLResultSaved).to(equal(@"SAVED")); + expect(SDLResultInvalidCertificate).to(equal(@"INVALID_CERT")); + expect(SDLResultExpiredCertificate).to(equal(@"EXPIRED_CERT")); + expect(SDLResultResumeFailed).to(equal(@"RESUME_FAILED")); + expect(SDLResultDataNotAvailable).to(equal(@"DATA_NOT_AVAILABLE")); + expect(SDLResultReadOnly).to(equal(@"READ_ONLY")); + }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSamplingRateSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSamplingRateSpec.m index 1d4e56611..a8fa116f8 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSamplingRateSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSamplingRateSpec.m @@ -14,45 +14,10 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLSamplingRate _8KHZ].value).to(equal(@"8KHZ")); - expect([SDLSamplingRate _16KHZ].value).to(equal(@"16KHZ")); - expect([SDLSamplingRate _22KHZ].value).to(equal(@"22KHZ")); - expect([SDLSamplingRate _44KHZ].value).to(equal(@"44KHZ")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLSamplingRate valueOf:@"8KHZ"]).to(equal([SDLSamplingRate _8KHZ])); - expect([SDLSamplingRate valueOf:@"16KHZ"]).to(equal([SDLSamplingRate _16KHZ])); - expect([SDLSamplingRate valueOf:@"22KHZ"]).to(equal([SDLSamplingRate _22KHZ])); - expect([SDLSamplingRate valueOf:@"44KHZ"]).to(equal([SDLSamplingRate _44KHZ])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLSamplingRate valueOf:nil]).to(beNil()); - expect([SDLSamplingRate valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLSamplingRate values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLSamplingRate _8KHZ], - [SDLSamplingRate _16KHZ], - [SDLSamplingRate _22KHZ], - [SDLSamplingRate _44KHZ]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLSamplingRate8KHZ).to(equal(@"8KHZ")); + expect(SDLSamplingRate16KHZ).to(equal(@"16KHZ")); + expect(SDLSamplingRate22KHZ).to(equal(@"22KHZ")); + expect(SDLSamplingRate44KHZ).to(equal(@"44KHZ")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSoftButtonTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSoftButtonTypeSpec.m index 6960fa1b1..b52d6d610 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSoftButtonTypeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSoftButtonTypeSpec.m @@ -14,43 +14,10 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLSoftButtonType TEXT].value).to(equal(@"TEXT")); - expect([SDLSoftButtonType IMAGE].value).to(equal(@"IMAGE")); - expect([SDLSoftButtonType BOTH].value).to(equal(@"BOTH")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLSoftButtonType valueOf:@"TEXT"]).to(equal([SDLSoftButtonType TEXT])); - expect([SDLSoftButtonType valueOf:@"IMAGE"]).to(equal([SDLSoftButtonType IMAGE])); - expect([SDLSoftButtonType valueOf:@"BOTH"]).to(equal([SDLSoftButtonType BOTH])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLSoftButtonType valueOf:nil]).to(beNil()); - expect([SDLSoftButtonType valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLSoftButtonType values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLSoftButtonType TEXT], - [SDLSoftButtonType IMAGE], - [SDLSoftButtonType BOTH]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLSoftButtonTypeText).to(equal(@"TEXT")); + expect(SDLSoftButtonTypeImage).to(equal(@"IMAGE")); + expect(SDLSoftButtonTypeBoth).to(equal(@"BOTH")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSpeechCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSpeechCapabilitiesSpec.m index c33de9c8c..b21c5b578 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSpeechCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSpeechCapabilitiesSpec.m @@ -14,49 +14,12 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLSpeechCapabilities TEXT].value).to(equal(@"TEXT")); - expect([SDLSpeechCapabilities SAPI_PHONEMES].value).to(equal(@"SAPI_PHONEMES")); - expect([SDLSpeechCapabilities LHPLUS_PHONEMES].value).to(equal(@"LHPLUS_PHONEMES")); - expect([SDLSpeechCapabilities PRE_RECORDED].value).to(equal(@"PRE_RECORDED")); - expect([SDLSpeechCapabilities SILENCE].value).to(equal(@"SILENCE")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLSpeechCapabilities valueOf:@"TEXT"]).to(equal([SDLSpeechCapabilities TEXT])); - expect([SDLSpeechCapabilities valueOf:@"SAPI_PHONEMES"]).to(equal([SDLSpeechCapabilities SAPI_PHONEMES])); - expect([SDLSpeechCapabilities valueOf:@"LHPLUS_PHONEMES"]).to(equal([SDLSpeechCapabilities LHPLUS_PHONEMES])); - expect([SDLSpeechCapabilities valueOf:@"PRE_RECORDED"]).to(equal([SDLSpeechCapabilities PRE_RECORDED])); - expect([SDLSpeechCapabilities valueOf:@"SILENCE"]).to(equal([SDLSpeechCapabilities SILENCE])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLSpeechCapabilities valueOf:nil]).to(beNil()); - expect([SDLSpeechCapabilities valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLSpeechCapabilities values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLSpeechCapabilities TEXT], - [SDLSpeechCapabilities SAPI_PHONEMES], - [SDLSpeechCapabilities LHPLUS_PHONEMES], - [SDLSpeechCapabilities PRE_RECORDED], - [SDLSpeechCapabilities SILENCE]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLSpeechCapabilitiesText).to(equal(@"TEXT")); + expect(SDLSpeechCapabilitiesSAPIPhonemes).to(equal(@"SAPI_PHONEMES")); + expect(SDLSpeechCapabilitiesLHPlusPhonemes).to(equal(@"LHPLUS_PHONEMES")); + expect(SDLSpeechCapabilitiesPrerecorded).to(equal(@"PRE_RECORDED")); + expect(SDLSpeechCapabilitiesSilence).to(equal(@"SILENCE")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemAction.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemAction.m index 917e1acb6..9c5bbf04d 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemAction.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemAction.m @@ -14,43 +14,10 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLSystemAction DEFAULT_ACTION].value).to(equal(@"DEFAULT_ACTION")); - expect([SDLSystemAction STEAL_FOCUS].value).to(equal(@"STEAL_FOCUS")); - expect([SDLSystemAction KEEP_CONTEXT].value).to(equal(@"KEEP_CONTEXT")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLSystemAction valueOf:@"DEFAULT_ACTION"]).to(equal([SDLSystemAction DEFAULT_ACTION])); - expect([SDLSystemAction valueOf:@"STEAL_FOCUS"]).to(equal([SDLSystemAction STEAL_FOCUS])); - expect([SDLSystemAction valueOf:@"KEEP_CONTEXT"]).to(equal([SDLSystemAction KEEP_CONTEXT])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLSystemAction valueOf:nil]).to(beNil()); - expect([SDLSystemAction valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLSystemAction values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLSystemAction DEFAULT_ACTION], - [SDLSystemAction STEAL_FOCUS], - [SDLSystemAction KEEP_CONTEXT]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLSystemActionDefaultAction).to(equal(@"DEFAULT_ACTION")); + expect(SDLSystemActionStealFocus).to(equal(@"STEAL_FOCUS")); + expect(SDLSystemActionKeepContext).to(equal(@"KEEP_CONTEXT")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemCapabilityTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemCapabilityTypeSpec.m old mode 100644 new mode 100755 index 1fee82b62..0acaa4b6e --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemCapabilityTypeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemCapabilityTypeSpec.m @@ -10,42 +10,10 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLSystemCapabilityType NAVIGATION].value).to(equal(@"NAVIGATION")); - expect([SDLSystemCapabilityType PHONE_CALL].value).to(equal(@"PHONE_CALL")); - expect([SDLSystemCapabilityType VIDEO_STREAMING].value).to(equal(@"VIDEO_STREAMING")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLSystemCapabilityType valueOf:@"NAVIGATION"]).to(equal([SDLSystemCapabilityType NAVIGATION])); - expect([SDLSystemCapabilityType valueOf:@"PHONE_CALL"]).to(equal([SDLSystemCapabilityType PHONE_CALL])); - expect([SDLSystemCapabilityType valueOf:@"VIDEO_STREAMING"]).to(equal([SDLSystemCapabilityType VIDEO_STREAMING])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLSystemCapabilityType valueOf:nil]).to(beNil()); - expect([SDLSystemCapabilityType valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLSystemCapabilityType values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLSystemCapabilityType NAVIGATION], - [SDLSystemCapabilityType PHONE_CALL], - [SDLSystemCapabilityType VIDEO_STREAMING]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLSystemCapabilityTypeNavigation).to(equal(@"NAVIGATION")); + expect(SDLSystemCapabilityTypePhoneCall).to(equal(@"PHONE_CALL")); + expect(SDLSystemCapabilityTypeVideoStreaming).to(equal(@"VIDEO_STREAMING")); + expect(SDLSystemCapabilityTypeRemoteControl).to(equal(@"REMOTE_CONTROL")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemContextSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemContextSpec.m index 694247a1d..c8620cf5a 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemContextSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemContextSpec.m @@ -14,49 +14,12 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLSystemContext MAIN].value).to(equal(@"MAIN")); - expect([SDLSystemContext VRSESSION].value).to(equal(@"VRSESSION")); - expect([SDLSystemContext MENU].value).to(equal(@"MENU")); - expect([SDLSystemContext HMI_OBSCURED].value).to(equal(@"HMI_OBSCURED")); - expect([SDLSystemContext ALERT].value).to(equal(@"ALERT")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLSystemContext valueOf:@"MAIN"]).to(equal([SDLSystemContext MAIN])); - expect([SDLSystemContext valueOf:@"VRSESSION"]).to(equal([SDLSystemContext VRSESSION])); - expect([SDLSystemContext valueOf:@"MENU"]).to(equal([SDLSystemContext MENU])); - expect([SDLSystemContext valueOf:@"HMI_OBSCURED"]).to(equal([SDLSystemContext HMI_OBSCURED])); - expect([SDLSystemContext valueOf:@"ALERT"]).to(equal([SDLSystemContext ALERT])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLSystemContext valueOf:nil]).to(beNil()); - expect([SDLSystemContext valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLSystemContext values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLSystemContext MAIN], - [SDLSystemContext VRSESSION], - [SDLSystemContext MENU], - [SDLSystemContext HMI_OBSCURED], - [SDLSystemContext ALERT]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLSystemContextMain).to(equal(@"MAIN")); + expect(SDLSystemContextVoiceRecognitionSession).to(equal(@"VRSESSION")); + expect(SDLSystemContextMenu).to(equal(@"MENU")); + expect(SDLSystemContextHMIObscured).to(equal(@"HMI_OBSCURED")); + expect(SDLSystemContextAlert).to(equal(@"ALERT")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTBTStateSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTBTStateSpec.m index 070986389..8684e1549 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTBTStateSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTBTStateSpec.m @@ -14,64 +14,17 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLTBTState ROUTE_UPDATE_REQUEST].value).to(equal(@"ROUTE_UPDATE_REQUEST")); - expect([SDLTBTState ROUTE_ACCEPTED].value).to(equal(@"ROUTE_ACCEPTED")); - expect([SDLTBTState ROUTE_REFUSED].value).to(equal(@"ROUTE_REFUSED")); - expect([SDLTBTState ROUTE_CANCELLED].value).to(equal(@"ROUTE_CANCELLED")); - expect([SDLTBTState ETA_REQUEST].value).to(equal(@"ETA_REQUEST")); - expect([SDLTBTState NEXT_TURN_REQUEST].value).to(equal(@"NEXT_TURN_REQUEST")); - expect([SDLTBTState ROUTE_STATUS_REQUEST].value).to(equal(@"ROUTE_STATUS_REQUEST")); - expect([SDLTBTState ROUTE_SUMMARY_REQUEST].value).to(equal(@"ROUTE_SUMMARY_REQUEST")); - expect([SDLTBTState TRIP_STATUS_REQUEST].value).to(equal(@"TRIP_STATUS_REQUEST")); - expect([SDLTBTState ROUTE_UPDATE_REQUEST_TIMEOUT].value).to(equal(@"ROUTE_UPDATE_REQUEST_TIMEOUT")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLTBTState valueOf:@"ROUTE_UPDATE_REQUEST"]).to(equal([SDLTBTState ROUTE_UPDATE_REQUEST])); - expect([SDLTBTState valueOf:@"ROUTE_ACCEPTED"]).to(equal([SDLTBTState ROUTE_ACCEPTED])); - expect([SDLTBTState valueOf:@"ROUTE_REFUSED"]).to(equal([SDLTBTState ROUTE_REFUSED])); - expect([SDLTBTState valueOf:@"ROUTE_CANCELLED"]).to(equal([SDLTBTState ROUTE_CANCELLED])); - expect([SDLTBTState valueOf:@"ETA_REQUEST"]).to(equal([SDLTBTState ETA_REQUEST])); - expect([SDLTBTState valueOf:@"NEXT_TURN_REQUEST"]).to(equal([SDLTBTState NEXT_TURN_REQUEST])); - expect([SDLTBTState valueOf:@"ROUTE_STATUS_REQUEST"]).to(equal([SDLTBTState ROUTE_STATUS_REQUEST])); - expect([SDLTBTState valueOf:@"ROUTE_SUMMARY_REQUEST"]).to(equal([SDLTBTState ROUTE_SUMMARY_REQUEST])); - expect([SDLTBTState valueOf:@"TRIP_STATUS_REQUEST"]).to(equal([SDLTBTState TRIP_STATUS_REQUEST])); - expect([SDLTBTState valueOf:@"ROUTE_UPDATE_REQUEST_TIMEOUT"]).to(equal([SDLTBTState ROUTE_UPDATE_REQUEST_TIMEOUT])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLTBTState valueOf:nil]).to(beNil()); - expect([SDLTBTState valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLTBTState values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLTBTState ROUTE_UPDATE_REQUEST], - [SDLTBTState ROUTE_ACCEPTED], - [SDLTBTState ROUTE_REFUSED], - [SDLTBTState ROUTE_CANCELLED], - [SDLTBTState ETA_REQUEST], - [SDLTBTState NEXT_TURN_REQUEST], - [SDLTBTState ROUTE_STATUS_REQUEST], - [SDLTBTState ROUTE_SUMMARY_REQUEST], - [SDLTBTState TRIP_STATUS_REQUEST], - [SDLTBTState ROUTE_UPDATE_REQUEST_TIMEOUT]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLTBTStateRouteUpdateRequest).to(equal(@"ROUTE_UPDATE_REQUEST")); + expect(SDLTBTStateRouteAccepted).to(equal(@"ROUTE_ACCEPTED")); + expect(SDLTBTStateRouteRefused).to(equal(@"ROUTE_REFUSED")); + expect(SDLTBTStateRouteCancelled).to(equal(@"ROUTE_CANCELLED")); + expect(SDLTBTStateETARequest).to(equal(@"ETA_REQUEST")); + expect(SDLTBTStateNextTurnRequest).to(equal(@"NEXT_TURN_REQUEST")); + expect(SDLTBTStateRouteStatusRequest).to(equal(@"ROUTE_STATUS_REQUEST")); + expect(SDLTBTStateRouteSummaryRequest).to(equal(@"ROUTE_SUMMARY_REQUEST")); + expect(SDLTBTStateTripStatusRequest).to(equal(@"TRIP_STATUS_REQUEST")); + expect(SDLTBTStateRouteUpdateRequestTimeout).to(equal(@"ROUTE_UPDATE_REQUEST_TIMEOUT")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTemperatureUnitSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTemperatureUnitSpec.m new file mode 100644 index 000000000..434b23414 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTemperatureUnitSpec.m @@ -0,0 +1,22 @@ +// +// SDLTemperatureUnitSpec.m +// SmartDeviceLink-iOS +// + +#import + +#import +#import + +#import "SDLTemperatureUnit.h" + +QuickSpecBegin(SDLTemperatureUnitSpec) + +describe(@"Individual Enum Value Tests", ^ { + it(@"Should match internal values", ^ { + expect(SDLTemperatureUnitCelsius).to(equal(@"CELSIUS")); + expect(SDLTemperatureUnitFahrenheit).to(equal(@"FAHRENHEIT")); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextAlignmentSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextAlignmentSpec.m index 06082c576..c705320b7 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextAlignmentSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextAlignmentSpec.m @@ -14,43 +14,10 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLTextAlignment LEFT_ALIGNED].value).to(equal(@"LEFT_ALIGNED")); - expect([SDLTextAlignment RIGHT_ALIGNED].value).to(equal(@"RIGHT_ALIGNED")); - expect([SDLTextAlignment CENTERED].value).to(equal(@"CENTERED")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLTextAlignment valueOf:@"LEFT_ALIGNED"]).to(equal([SDLTextAlignment LEFT_ALIGNED])); - expect([SDLTextAlignment valueOf:@"RIGHT_ALIGNED"]).to(equal([SDLTextAlignment RIGHT_ALIGNED])); - expect([SDLTextAlignment valueOf:@"CENTERED"]).to(equal([SDLTextAlignment CENTERED])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLTextAlignment valueOf:nil]).to(beNil()); - expect([SDLTextAlignment valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLTextAlignment values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLTextAlignment LEFT_ALIGNED], - [SDLTextAlignment RIGHT_ALIGNED], - [SDLTextAlignment CENTERED]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLTextAlignmentLeft).to(equal(@"LEFT_ALIGNED")); + expect(SDLTextAlignmentRight).to(equal(@"RIGHT_ALIGNED")); + expect(SDLTextAlignmentCenter).to(equal(@"CENTERED")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextFieldNameSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextFieldNameSpec.m index 40be02374..6d29ff29e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextFieldNameSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTextFieldNameSpec.m @@ -14,120 +14,35 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLTextFieldName mainField1].value).to(equal(@"mainField1")); - expect([SDLTextFieldName mainField2].value).to(equal(@"mainField2")); - expect([SDLTextFieldName mainField3].value).to(equal(@"mainField3")); - expect([SDLTextFieldName mainField4].value).to(equal(@"mainField4")); - expect([SDLTextFieldName statusBar].value).to(equal(@"statusBar")); - expect([SDLTextFieldName mediaClock].value).to(equal(@"mediaClock")); - expect([SDLTextFieldName mediaTrack].value).to(equal(@"mediaTrack")); - expect([SDLTextFieldName alertText1].value).to(equal(@"alertText1")); - expect([SDLTextFieldName alertText2].value).to(equal(@"alertText2")); - expect([SDLTextFieldName alertText3].value).to(equal(@"alertText3")); - expect([SDLTextFieldName scrollableMessageBody].value).to(equal(@"scrollableMessageBody")); - expect([SDLTextFieldName initialInteractionText].value).to(equal(@"initialInteractionText")); - expect([SDLTextFieldName navigationText1].value).to(equal(@"navigationText1")); - expect([SDLTextFieldName navigationText2].value).to(equal(@"navigationText2")); - expect([SDLTextFieldName ETA].value).to(equal(@"ETA")); - expect([SDLTextFieldName totalDistance].value).to(equal(@"totalDistance")); - expect([SDLTextFieldName audioPassThruDisplayText1].value).to(equal(@"audioPassThruDisplayText1")); - expect([SDLTextFieldName audioPassThruDisplayText2].value).to(equal(@"audioPassThruDisplayText2")); - expect([SDLTextFieldName sliderHeader].value).to(equal(@"sliderHeader")); - expect([SDLTextFieldName sliderFooter].value).to(equal(@"sliderFooter")); - expect([SDLTextFieldName menuName].value).to(equal(@"menuName")); - expect([SDLTextFieldName secondaryText].value).to(equal(@"secondaryText")); - expect([SDLTextFieldName tertiaryText].value).to(equal(@"tertiaryText")); - expect([SDLTextFieldName menuTitle].value).to(equal(@"menuTitle")); - expect([SDLTextFieldName locationName].value).to(equal(@"locationName")); - expect([SDLTextFieldName locationDescription].value).to(equal(@"locationDescription")); - expect([SDLTextFieldName addressLines].value).to(equal(@"addressLines")); - expect([SDLTextFieldName phoneNumber].value).to(equal(@"phoneNumber")); + expect(SDLTextFieldNameMainField1).to(equal(@"mainField1")); + expect(SDLTextFieldNameMainField2).to(equal(@"mainField2")); + expect(SDLTextFieldNameMainField3).to(equal(@"mainField3")); + expect(SDLTextFieldNameMainField4).to(equal(@"mainField4")); + expect(SDLTextFieldNameStatusBar).to(equal(@"statusBar")); + expect(SDLTextFieldNameMediaClock).to(equal(@"mediaClock")); + expect(SDLTextFieldNameMediaTrack).to(equal(@"mediaTrack")); + expect(SDLTextFieldNameAlertText1).to(equal(@"alertText1")); + expect(SDLTextFieldNameAlertText2).to(equal(@"alertText2")); + expect(SDLTextFieldNameAlertText3).to(equal(@"alertText3")); + expect(SDLTextFieldNameScrollableMessageBody).to(equal(@"scrollableMessageBody")); + expect(SDLTextFieldNameInitialInteractionText).to(equal(@"initialInteractionText")); + expect(SDLTextFieldNameNavigationText1).to(equal(@"navigationText1")); + expect(SDLTextFieldNameNavigationText2).to(equal(@"navigationText2")); + expect(SDLTextFieldNameETA).to(equal(@"ETA")); + expect(SDLTextFieldNameTotalDistance).to(equal(@"totalDistance")); + expect(SDLTextFieldNameAudioPassThruDisplayText1).to(equal(@"audioPassThruDisplayText1")); + expect(SDLTextFieldNameAudioPassThruDisplayText2).to(equal(@"audioPassThruDisplayText2")); + expect(SDLTextFieldNameSliderHeader).to(equal(@"sliderHeader")); + expect(SDLTextFieldNameSliderFooter).to(equal(@"sliderFooter")); + expect(SDLTextFieldNameMenuName).to(equal(@"menuName")); + expect(SDLTextFieldNameSecondaryText).to(equal(@"secondaryText")); + expect(SDLTextFieldNameTertiaryText).to(equal(@"tertiaryText")); + expect(SDLTextFieldNameMenuTitle).to(equal(@"menuTitle")); + expect(SDLTextFieldNameLocationName).to(equal(@"locationName")); + expect(SDLTextFieldNameLocationDescription).to(equal(@"locationDescription")); + expect(SDLTextFieldNameAddressLines).to(equal(@"addressLines")); + expect(SDLTextFieldNamePhoneNumber).to(equal(@"phoneNumber")); }); }); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLTextFieldName valueOf:@"mainField1"]).to(equal([SDLTextFieldName mainField1])); - expect([SDLTextFieldName valueOf:@"mainField2"]).to(equal([SDLTextFieldName mainField2])); - expect([SDLTextFieldName valueOf:@"mainField3"]).to(equal([SDLTextFieldName mainField3])); - expect([SDLTextFieldName valueOf:@"mainField4"]).to(equal([SDLTextFieldName mainField4])); - expect([SDLTextFieldName valueOf:@"statusBar"]).to(equal([SDLTextFieldName statusBar])); - expect([SDLTextFieldName valueOf:@"mediaClock"]).to(equal([SDLTextFieldName mediaClock])); - expect([SDLTextFieldName valueOf:@"mediaTrack"]).to(equal([SDLTextFieldName mediaTrack])); - expect([SDLTextFieldName valueOf:@"alertText1"]).to(equal([SDLTextFieldName alertText1])); - expect([SDLTextFieldName valueOf:@"alertText2"]).to(equal([SDLTextFieldName alertText2])); - expect([SDLTextFieldName valueOf:@"alertText3"]).to(equal([SDLTextFieldName alertText3])); - expect([SDLTextFieldName valueOf:@"scrollableMessageBody"]).to(equal([SDLTextFieldName scrollableMessageBody])); - expect([SDLTextFieldName valueOf:@"initialInteractionText"]).to(equal([SDLTextFieldName initialInteractionText])); - expect([SDLTextFieldName valueOf:@"navigationText1"]).to(equal([SDLTextFieldName navigationText1])); - expect([SDLTextFieldName valueOf:@"navigationText2"]).to(equal([SDLTextFieldName navigationText2])); - expect([SDLTextFieldName valueOf:@"ETA"]).to(equal([SDLTextFieldName ETA])); - expect([SDLTextFieldName valueOf:@"totalDistance"]).to(equal([SDLTextFieldName totalDistance])); - expect([SDLTextFieldName valueOf:@"audioPassThruDisplayText1"]).to(equal([SDLTextFieldName audioPassThruDisplayText1])); - expect([SDLTextFieldName valueOf:@"audioPassThruDisplayText2"]).to(equal([SDLTextFieldName audioPassThruDisplayText2])); - expect([SDLTextFieldName valueOf:@"sliderHeader"]).to(equal([SDLTextFieldName sliderHeader])); - expect([SDLTextFieldName valueOf:@"sliderFooter"]).to(equal([SDLTextFieldName sliderFooter])); - expect([SDLTextFieldName valueOf:@"menuName"]).to(equal([SDLTextFieldName menuName])); - expect([SDLTextFieldName valueOf:@"secondaryText"]).to(equal([SDLTextFieldName secondaryText])); - expect([SDLTextFieldName valueOf:@"tertiaryText"]).to(equal([SDLTextFieldName tertiaryText])); - expect([SDLTextFieldName valueOf:@"menuTitle"]).to(equal([SDLTextFieldName menuTitle])); - expect([SDLTextFieldName valueOf:@"locationName"]).to(equal([SDLTextFieldName locationName])); - expect([SDLTextFieldName valueOf:@"locationDescription"]).to(equal([SDLTextFieldName locationDescription])); - expect([SDLTextFieldName valueOf:@"addressLines"]).to(equal([SDLTextFieldName addressLines])); - expect([SDLTextFieldName valueOf:@"phoneNumber"]).to(equal([SDLTextFieldName phoneNumber])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLTextFieldName valueOf:nil]).to(beNil()); - expect([SDLTextFieldName valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); - -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLTextFieldName values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLTextFieldName mainField1], - [SDLTextFieldName mainField2], - [SDLTextFieldName mainField3], - [SDLTextFieldName mainField4], - [SDLTextFieldName statusBar], - [SDLTextFieldName mediaClock], - [SDLTextFieldName mediaTrack], - [SDLTextFieldName alertText1], - [SDLTextFieldName alertText2], - [SDLTextFieldName alertText3], - [SDLTextFieldName scrollableMessageBody], - [SDLTextFieldName initialInteractionText], - [SDLTextFieldName navigationText1], - [SDLTextFieldName navigationText2], - [SDLTextFieldName ETA], - [SDLTextFieldName totalDistance], - [SDLTextFieldName audioPassThruDisplayText1], - [SDLTextFieldName audioPassThruDisplayText2], - [SDLTextFieldName sliderHeader], - [SDLTextFieldName sliderFooter], - [SDLTextFieldName menuName], - [SDLTextFieldName secondaryText], - [SDLTextFieldName tertiaryText], - [SDLTextFieldName menuTitle], - [SDLTextFieldName locationName], - [SDLTextFieldName locationDescription], - [SDLTextFieldName addressLines], - [SDLTextFieldName phoneNumber]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } - }); -}); - -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTimerModeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTimerModeSpec.m index 0bb0a7448..ddc97a3b9 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTimerModeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTimerModeSpec.m @@ -14,43 +14,10 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLTimerMode UP].value).to(equal(@"UP")); - expect([SDLTimerMode DOWN].value).to(equal(@"DOWN")); - expect([SDLTimerMode NONE].value).to(equal(@"NONE")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLTimerMode valueOf:@"UP"]).to(equal([SDLTimerMode UP])); - expect([SDLTimerMode valueOf:@"DOWN"]).to(equal([SDLTimerMode DOWN])); - expect([SDLTimerMode valueOf:@"NONE"]).to(equal([SDLTimerMode NONE])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLTimerMode valueOf:nil]).to(beNil()); - expect([SDLTimerMode valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLTimerMode values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLTimerMode UP], - [SDLTimerMode DOWN], - [SDLTimerMode NONE]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLTimerModeUp).to(equal(@"UP")); + expect(SDLTimerModeDown).to(equal(@"DOWN")); + expect(SDLTimerModeNone).to(equal(@"NONE")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTouchTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTouchTypeSpec.m index 5042a6466..1b803e52f 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTouchTypeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTouchTypeSpec.m @@ -14,43 +14,10 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLTouchType BEGIN].value).to(equal(@"BEGIN")); - expect([SDLTouchType MOVE].value).to(equal(@"MOVE")); - expect([SDLTouchType END].value).to(equal(@"END")); - expect([SDLTouchType CANCEL].value).to(equal(@"CANCEL")); - }); -}); - -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLTouchType valueOf:@"BEGIN"]).to(equal([SDLTouchType BEGIN])); - expect([SDLTouchType valueOf:@"MOVE"]).to(equal([SDLTouchType MOVE])); - expect([SDLTouchType valueOf:@"END"]).to(equal([SDLTouchType END])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLTouchType valueOf:nil]).to(beNil()); - expect([SDLTouchType valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); - -describe(@"Value List Tests", ^ { - __block NSArray* storedValues = [SDLTouchType values]; - __block NSArray* definedValues = [@[[SDLTouchType BEGIN], - [SDLTouchType MOVE], - [SDLTouchType END], - [SDLTouchType CANCEL]] copy]; - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLTouchTypeBegin).to(equal(@"BEGIN")); + expect(SDLTouchTypeMove).to(equal(@"MOVE")); + expect(SDLTouchTypeEnd).to(equal(@"END")); + expect(SDLTouchTypeCancel).to(equal(@"CANCEL")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTriggerSource.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTriggerSource.m index 1a1413f54..5c98e1585 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTriggerSource.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLTriggerSource.m @@ -14,43 +14,10 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLTriggerSource MENU].value).to(equal(@"MENU")); - expect([SDLTriggerSource VR].value).to(equal(@"VR")); - expect([SDLTriggerSource KEYBOARD].value).to(equal(@"KEYBOARD")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLTriggerSource valueOf:@"MENU"]).to(equal([SDLTriggerSource MENU])); - expect([SDLTriggerSource valueOf:@"VR"]).to(equal([SDLTriggerSource VR])); - expect([SDLTriggerSource valueOf:@"KEYBOARD"]).to(equal([SDLTriggerSource KEYBOARD])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLTriggerSource valueOf:nil]).to(beNil()); - expect([SDLTriggerSource valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLTriggerSource values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLTriggerSource MENU], - [SDLTriggerSource VR], - [SDLTriggerSource KEYBOARD]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLTriggerSourceMenu).to(equal(@"MENU")); + expect(SDLTriggerSourceVoiceRecognition).to(equal(@"VR")); + expect(SDLTriggerSourceKeyboard).to(equal(@"KEYBOARD")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLUpdateModeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLUpdateModeSpec.m index 23c8bb5a5..0bd1fe392 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLUpdateModeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLUpdateModeSpec.m @@ -14,49 +14,12 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLUpdateMode COUNTUP].value).to(equal(@"COUNTUP")); - expect([SDLUpdateMode COUNTDOWN].value).to(equal(@"COUNTDOWN")); - expect([SDLUpdateMode PAUSE].value).to(equal(@"PAUSE")); - expect([SDLUpdateMode RESUME].value).to(equal(@"RESUME")); - expect([SDLUpdateMode CLEAR].value).to(equal(@"CLEAR")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLUpdateMode valueOf:@"COUNTUP"]).to(equal([SDLUpdateMode COUNTUP])); - expect([SDLUpdateMode valueOf:@"COUNTDOWN"]).to(equal([SDLUpdateMode COUNTDOWN])); - expect([SDLUpdateMode valueOf:@"PAUSE"]).to(equal([SDLUpdateMode PAUSE])); - expect([SDLUpdateMode valueOf:@"RESUME"]).to(equal([SDLUpdateMode RESUME])); - expect([SDLUpdateMode valueOf:@"CLEAR"]).to(equal([SDLUpdateMode CLEAR])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLUpdateMode valueOf:nil]).to(beNil()); - expect([SDLUpdateMode valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLUpdateMode values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLUpdateMode COUNTUP], - [SDLUpdateMode COUNTDOWN], - [SDLUpdateMode PAUSE], - [SDLUpdateMode RESUME], - [SDLUpdateMode CLEAR]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLUpdateModeCountUp).to(equal(@"COUNTUP")); + expect(SDLUpdateModeCountDown).to(equal(@"COUNTDOWN")); + expect(SDLUpdateModePause).to(equal(@"PAUSE")); + expect(SDLUpdateModeResume).to(equal(@"RESUME")); + expect(SDLUpdateModeClear).to(equal(@"CLEAR")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataActiveStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataActiveStatusSpec.m index 46c2cd927..11392b8a9 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataActiveStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataActiveStatusSpec.m @@ -14,49 +14,12 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLVehicleDataActiveStatus INACTIVE_NOT_CONFIRMED].value).to(equal(@"INACTIVE_NOT_CONFIRMED")); - expect([SDLVehicleDataActiveStatus INACTIVE_CONFIRMED].value).to(equal(@"INACTIVE_CONFIRMED")); - expect([SDLVehicleDataActiveStatus ACTIVE_NOT_CONFIRMED].value).to(equal(@"ACTIVE_NOT_CONFIRMED")); - expect([SDLVehicleDataActiveStatus ACTIVE_CONFIRMED].value).to(equal(@"ACTIVE_CONFIRMED")); - expect([SDLVehicleDataActiveStatus FAULT].value).to(equal(@"FAULT")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLVehicleDataActiveStatus valueOf:@"INACTIVE_NOT_CONFIRMED"]).to(equal([SDLVehicleDataActiveStatus INACTIVE_NOT_CONFIRMED])); - expect([SDLVehicleDataActiveStatus valueOf:@"INACTIVE_CONFIRMED"]).to(equal([SDLVehicleDataActiveStatus INACTIVE_CONFIRMED])); - expect([SDLVehicleDataActiveStatus valueOf:@"ACTIVE_NOT_CONFIRMED"]).to(equal([SDLVehicleDataActiveStatus ACTIVE_NOT_CONFIRMED])); - expect([SDLVehicleDataActiveStatus valueOf:@"ACTIVE_CONFIRMED"]).to(equal([SDLVehicleDataActiveStatus ACTIVE_CONFIRMED])); - expect([SDLVehicleDataActiveStatus valueOf:@"FAULT"]).to(equal([SDLVehicleDataActiveStatus FAULT])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLVehicleDataActiveStatus valueOf:nil]).to(beNil()); - expect([SDLVehicleDataActiveStatus valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLVehicleDataActiveStatus values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLVehicleDataActiveStatus INACTIVE_NOT_CONFIRMED], - [SDLVehicleDataActiveStatus INACTIVE_CONFIRMED], - [SDLVehicleDataActiveStatus ACTIVE_NOT_CONFIRMED], - [SDLVehicleDataActiveStatus ACTIVE_CONFIRMED], - [SDLVehicleDataActiveStatus FAULT]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLVehicleDataActiveStatusInactiveNotConfirmed).to(equal(@"INACTIVE_NOT_CONFIRMED")); + expect(SDLVehicleDataActiveStatusInactiveConfirmed).to(equal(@"INACTIVE_CONFIRMED")); + expect(SDLVehicleDataActiveStatusActiveNotConfirmed).to(equal(@"ACTIVE_NOT_CONFIRMED")); + expect(SDLVehicleDataActiveStatusActiveConfirmed).to(equal(@"ACTIVE_CONFIRMED")); + expect(SDLVehicleDataActiveStatusFault).to(equal(@"FAULT")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataEventStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataEventStatusSpec.m index 452404231..648d75c27 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataEventStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataEventStatusSpec.m @@ -14,49 +14,12 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLVehicleDataEventStatus NO_EVENT].value).to(equal(@"NO_EVENT")); - expect([SDLVehicleDataEventStatus _NO].value).to(equal(@"NO")); - expect([SDLVehicleDataEventStatus _YES].value).to(equal(@"YES")); - expect([SDLVehicleDataEventStatus NOT_SUPPORTED].value).to(equal(@"NOT_SUPPORTED")); - expect([SDLVehicleDataEventStatus FAULT].value).to(equal(@"FAULT")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLVehicleDataEventStatus valueOf:@"NO_EVENT"]).to(equal([SDLVehicleDataEventStatus NO_EVENT])); - expect([SDLVehicleDataEventStatus valueOf:@"NO"]).to(equal([SDLVehicleDataEventStatus _NO])); - expect([SDLVehicleDataEventStatus valueOf:@"YES"]).to(equal([SDLVehicleDataEventStatus _YES])); - expect([SDLVehicleDataEventStatus valueOf:@"NOT_SUPPORTED"]).to(equal([SDLVehicleDataEventStatus NOT_SUPPORTED])); - expect([SDLVehicleDataEventStatus valueOf:@"FAULT"]).to(equal([SDLVehicleDataEventStatus FAULT])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLVehicleDataEventStatus valueOf:nil]).to(beNil()); - expect([SDLVehicleDataEventStatus valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLVehicleDataEventStatus values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLVehicleDataEventStatus NO_EVENT], - [SDLVehicleDataEventStatus _NO], - [SDLVehicleDataEventStatus _YES], - [SDLVehicleDataEventStatus NOT_SUPPORTED], - [SDLVehicleDataEventStatus FAULT]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLVehicleDataEventStatusNoEvent).to(equal(@"NO_EVENT")); + expect(SDLVehicleDataEventStatusNo).to(equal(@"NO")); + expect(SDLVehicleDataEventStatusYes).to(equal(@"YES")); + expect(SDLVehicleDataEventStatusNotSupported).to(equal(@"NOT_SUPPORTED")); + expect(SDLVehicleDataEventStatusFault).to(equal(@"FAULT")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataNotificationStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataNotificationStatusSpec.m index 6edf13783..e8637c143 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataNotificationStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataNotificationStatusSpec.m @@ -14,47 +14,11 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLVehicleDataNotificationStatus NOT_SUPPORTED].value).to(equal(@"NOT_SUPPORTED")); - expect([SDLVehicleDataNotificationStatus NORMAL].value).to(equal(@"NORMAL")); - expect([SDLVehicleDataNotificationStatus ACTIVE].value).to(equal(@"ACTIVE")); - expect([SDLVehicleDataNotificationStatus NOT_USED].value).to(equal(@"NOT_USED")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLVehicleDataNotificationStatus valueOf:@"NOT_SUPPORTED"]).to(equal([SDLVehicleDataNotificationStatus NOT_SUPPORTED])); - expect([SDLVehicleDataNotificationStatus valueOf:@"NORMAL"]).to(equal([SDLVehicleDataNotificationStatus NORMAL])); - expect([SDLVehicleDataNotificationStatus valueOf:@"ACTIVE"]).to(equal([SDLVehicleDataNotificationStatus ACTIVE])); - expect([SDLVehicleDataNotificationStatus valueOf:@"NOT_USED"]).to(equal([SDLVehicleDataNotificationStatus NOT_USED])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLVehicleDataNotificationStatus valueOf:nil]).to(beNil()); - expect([SDLVehicleDataNotificationStatus valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLVehicleDataNotificationStatus values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLVehicleDataNotificationStatus NOT_SUPPORTED], - [SDLVehicleDataNotificationStatus NORMAL], - [SDLVehicleDataNotificationStatus ACTIVE], - [SDLVehicleDataNotificationStatus NOT_USED]] copy]; - - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLVehicleDataNotificationStatusNotSupported).to(equal(@"NOT_SUPPORTED")); + expect(SDLVehicleDataNotificationStatusNormal).to(equal(@"NORMAL")); + expect(SDLVehicleDataNotificationStatusActive).to(equal(@"ACTIVE")); + expect(SDLVehicleDataNotificationStatusNotUsed).to(equal(@"NOT_USED")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataResultCodeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataResultCodeSpec.m index be09e2495..2489aefcc 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataResultCodeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataResultCodeSpec.m @@ -14,61 +14,16 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLVehicleDataResultCode SUCCESS].value).to(equal(@"SUCCESS")); - expect([SDLVehicleDataResultCode TRUNCATED_DATA].value).to(equal(@"TRUNCATED_DATA")); - expect([SDLVehicleDataResultCode DISALLOWED].value).to(equal(@"DISALLOWED")); - expect([SDLVehicleDataResultCode USER_DISALLOWED].value).to(equal(@"USER_DISALLOWED")); - expect([SDLVehicleDataResultCode INVALID_ID].value).to(equal(@"INVALID_ID")); - expect([SDLVehicleDataResultCode VEHICLE_DATA_NOT_AVAILABLE].value).to(equal(@"VEHICLE_DATA_NOT_AVAILABLE")); - expect([SDLVehicleDataResultCode DATA_ALREADY_SUBSCRIBED].value).to(equal(@"DATA_ALREADY_SUBSCRIBED")); - expect([SDLVehicleDataResultCode DATA_NOT_SUBSCRIBED].value).to(equal(@"DATA_NOT_SUBSCRIBED")); - expect([SDLVehicleDataResultCode IGNORED].value).to(equal(@"IGNORED")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLVehicleDataResultCode valueOf:@"SUCCESS"]).to(equal([SDLVehicleDataResultCode SUCCESS])); - expect([SDLVehicleDataResultCode valueOf:@"TRUNCATED_DATA"]).to(equal([SDLVehicleDataResultCode TRUNCATED_DATA])); - expect([SDLVehicleDataResultCode valueOf:@"DISALLOWED"]).to(equal([SDLVehicleDataResultCode DISALLOWED])); - expect([SDLVehicleDataResultCode valueOf:@"USER_DISALLOWED"]).to(equal([SDLVehicleDataResultCode USER_DISALLOWED])); - expect([SDLVehicleDataResultCode valueOf:@"INVALID_ID"]).to(equal([SDLVehicleDataResultCode INVALID_ID])); - expect([SDLVehicleDataResultCode valueOf:@"VEHICLE_DATA_NOT_AVAILABLE"]).to(equal([SDLVehicleDataResultCode VEHICLE_DATA_NOT_AVAILABLE])); - expect([SDLVehicleDataResultCode valueOf:@"DATA_ALREADY_SUBSCRIBED"]).to(equal([SDLVehicleDataResultCode DATA_ALREADY_SUBSCRIBED])); - expect([SDLVehicleDataResultCode valueOf:@"DATA_NOT_SUBSCRIBED"]).to(equal([SDLVehicleDataResultCode DATA_NOT_SUBSCRIBED])); - expect([SDLVehicleDataResultCode valueOf:@"IGNORED"]).to(equal([SDLVehicleDataResultCode IGNORED])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLVehicleDataResultCode valueOf:nil]).to(beNil()); - expect([SDLVehicleDataResultCode valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLVehicleDataResultCode values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLVehicleDataResultCode SUCCESS], - [SDLVehicleDataResultCode TRUNCATED_DATA], - [SDLVehicleDataResultCode DISALLOWED], - [SDLVehicleDataResultCode USER_DISALLOWED], - [SDLVehicleDataResultCode INVALID_ID], - [SDLVehicleDataResultCode VEHICLE_DATA_NOT_AVAILABLE], - [SDLVehicleDataResultCode DATA_ALREADY_SUBSCRIBED], - [SDLVehicleDataResultCode DATA_NOT_SUBSCRIBED], - [SDLVehicleDataResultCode IGNORED]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLVehicleDataResultCodeSuccess).to(equal(@"SUCCESS")); + expect(SDLVehicleDataResultCodeTruncatedData).to(equal(@"TRUNCATED_DATA")); + expect(SDLVehicleDataResultCodeDisallowed).to(equal(@"DISALLOWED")); + expect(SDLVehicleDataResultCodeUserDisallowed).to(equal(@"USER_DISALLOWED")); + expect(SDLVehicleDataResultCodeInvalidId).to(equal(@"INVALID_ID")); + expect(SDLVehicleDataResultCodeVehicleDataNotAvailable).to(equal(@"VEHICLE_DATA_NOT_AVAILABLE")); + expect(SDLVehicleDataResultCodeDataAlreadySubscribed).to(equal(@"DATA_ALREADY_SUBSCRIBED")); + expect(SDLVehicleDataResultCodeDataNotSubscribed).to(equal(@"DATA_NOT_SUBSCRIBED")); + expect(SDLVehicleDataResultCodeIgnored).to(equal(@"IGNORED")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataStatusSpec.m index 997837562..38c2e5147 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataStatusSpec.m @@ -14,43 +14,10 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLVehicleDataStatus NO_DATA_EXISTS].value).to(equal(@"NO_DATA_EXISTS")); - expect([SDLVehicleDataStatus OFF].value).to(equal(@"OFF")); - expect([SDLVehicleDataStatus ON].value).to(equal(@"ON")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLVehicleDataStatus valueOf:@"NO_DATA_EXISTS"]).to(equal([SDLVehicleDataStatus NO_DATA_EXISTS])); - expect([SDLVehicleDataStatus valueOf:@"OFF"]).to(equal([SDLVehicleDataStatus OFF])); - expect([SDLVehicleDataStatus valueOf:@"ON"]).to(equal([SDLVehicleDataStatus ON])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLVehicleDataStatus valueOf:nil]).to(beNil()); - expect([SDLVehicleDataStatus valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLVehicleDataStatus values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLVehicleDataStatus NO_DATA_EXISTS], - [SDLVehicleDataStatus OFF], - [SDLVehicleDataStatus ON]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLVehicleDataStatusNoDataExists).to(equal(@"NO_DATA_EXISTS")); + expect(SDLVehicleDataStatusOff).to(equal(@"OFF")); + expect(SDLVehicleDataStatusOn).to(equal(@"ON")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataTypeSpec.m index c11e93a7f..2e6df2174 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataTypeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVehicleDataTypeSpec.m @@ -14,112 +14,33 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLVehicleDataType VEHICLEDATA_GPS].value).to(equal(@"VEHICLEDATA_GPS")); - expect([SDLVehicleDataType VEHICLEDATA_SPEED].value).to(equal(@"VEHICLEDATA_SPEED")); - expect([SDLVehicleDataType VEHICLEDATA_RPM].value).to(equal(@"VEHICLEDATA_RPM")); - expect([SDLVehicleDataType VEHICLEDATA_FUELLEVEL].value).to(equal(@"VEHICLEDATA_FUELLEVEL")); - expect([SDLVehicleDataType VEHICLEDATA_FUELLEVEL_STATE].value).to(equal(@"VEHICLEDATA_FUELLEVEL_STATE")); - expect([SDLVehicleDataType VEHICLEDATA_FUELCONSUMPTION].value).to(equal(@"VEHICLEDATA_FUELCONSUMPTION")); - expect([SDLVehicleDataType VEHICLEDATA_EXTERNTEMP].value).to(equal(@"VEHICLEDATA_EXTERNTEMP")); - expect([SDLVehicleDataType VEHICLEDATA_VIN].value).to(equal(@"VEHICLEDATA_VIN")); - expect([SDLVehicleDataType VEHICLEDATA_PRNDL].value).to(equal(@"VEHICLEDATA_PRNDL")); - expect([SDLVehicleDataType VEHICLEDATA_TIREPRESSURE].value).to(equal(@"VEHICLEDATA_TIREPRESSURE")); - expect([SDLVehicleDataType VEHICLEDATA_ODOMETER].value).to(equal(@"VEHICLEDATA_ODOMETER")); - expect([SDLVehicleDataType VEHICLEDATA_BELTSTATUS].value).to(equal(@"VEHICLEDATA_BELTSTATUS")); - expect([SDLVehicleDataType VEHICLEDATA_BODYINFO].value).to(equal(@"VEHICLEDATA_BODYINFO")); - expect([SDLVehicleDataType VEHICLEDATA_DEVICESTATUS].value).to(equal(@"VEHICLEDATA_DEVICESTATUS")); - expect([SDLVehicleDataType VEHICLEDATA_ECALLINFO].value).to(equal(@"VEHICLEDATA_ECALLINFO")); - expect([SDLVehicleDataType VEHICLEDATA_AIRBAGSTATUS].value).to(equal(@"VEHICLEDATA_AIRBAGSTATUS")); - expect([SDLVehicleDataType VEHICLEDATA_EMERGENCYEVENT].value).to(equal(@"VEHICLEDATA_EMERGENCYEVENT")); - expect([SDLVehicleDataType VEHICLEDATA_CLUSTERMODESTATUS].value).to(equal(@"VEHICLEDATA_CLUSTERMODESTATUS")); - expect([SDLVehicleDataType VEHICLEDATA_MYKEY].value).to(equal(@"VEHICLEDATA_MYKEY")); - expect([SDLVehicleDataType VEHICLEDATA_BRAKING].value).to(equal(@"VEHICLEDATA_BRAKING")); - expect([SDLVehicleDataType VEHICLEDATA_WIPERSTATUS].value).to(equal(@"VEHICLEDATA_WIPERSTATUS")); - expect([SDLVehicleDataType VEHICLEDATA_HEADLAMPSTATUS].value).to(equal(@"VEHICLEDATA_HEADLAMPSTATUS")); - expect([SDLVehicleDataType VEHICLEDATA_BATTVOLTAGE].value).to(equal(@"VEHICLEDATA_BATTVOLTAGE")); - expect([SDLVehicleDataType VEHICLEDATA_ENGINETORQUE].value).to(equal(@"VEHICLEDATA_ENGINETORQUE")); - expect([SDLVehicleDataType VEHICLEDATA_ACCPEDAL].value).to(equal(@"VEHICLEDATA_ACCPEDAL")); - expect([SDLVehicleDataType VEHICLEDATA_STEERINGWHEEL].value).to(equal(@"VEHICLEDATA_STEERINGWHEEL")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_GPS"]).to(equal([SDLVehicleDataType VEHICLEDATA_GPS])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_SPEED"]).to(equal([SDLVehicleDataType VEHICLEDATA_SPEED])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_RPM"]).to(equal([SDLVehicleDataType VEHICLEDATA_RPM])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_FUELLEVEL"]).to(equal([SDLVehicleDataType VEHICLEDATA_FUELLEVEL])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_FUELLEVEL_STATE"]).to(equal([SDLVehicleDataType VEHICLEDATA_FUELLEVEL_STATE])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_FUELCONSUMPTION"]).to(equal([SDLVehicleDataType VEHICLEDATA_FUELCONSUMPTION])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_EXTERNTEMP"]).to(equal([SDLVehicleDataType VEHICLEDATA_EXTERNTEMP])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_VIN"]).to(equal([SDLVehicleDataType VEHICLEDATA_VIN])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_PRNDL"]).to(equal([SDLVehicleDataType VEHICLEDATA_PRNDL])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_TIREPRESSURE"]).to(equal([SDLVehicleDataType VEHICLEDATA_TIREPRESSURE])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_ODOMETER"]).to(equal([SDLVehicleDataType VEHICLEDATA_ODOMETER])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_BELTSTATUS"]).to(equal([SDLVehicleDataType VEHICLEDATA_BELTSTATUS])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_BODYINFO"]).to(equal([SDLVehicleDataType VEHICLEDATA_BODYINFO])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_DEVICESTATUS"]).to(equal([SDLVehicleDataType VEHICLEDATA_DEVICESTATUS])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_ECALLINFO"]).to(equal([SDLVehicleDataType VEHICLEDATA_ECALLINFO])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_AIRBAGSTATUS"]).to(equal([SDLVehicleDataType VEHICLEDATA_AIRBAGSTATUS])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_EMERGENCYEVENT"]).to(equal([SDLVehicleDataType VEHICLEDATA_EMERGENCYEVENT])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_CLUSTERMODESTATUS"]).to(equal([SDLVehicleDataType VEHICLEDATA_CLUSTERMODESTATUS])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_MYKEY"]).to(equal([SDLVehicleDataType VEHICLEDATA_MYKEY])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_BRAKING"]).to(equal([SDLVehicleDataType VEHICLEDATA_BRAKING])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_WIPERSTATUS"]).to(equal([SDLVehicleDataType VEHICLEDATA_WIPERSTATUS])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_HEADLAMPSTATUS"]).to(equal([SDLVehicleDataType VEHICLEDATA_HEADLAMPSTATUS])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_BATTVOLTAGE"]).to(equal([SDLVehicleDataType VEHICLEDATA_BATTVOLTAGE])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_ENGINETORQUE"]).to(equal([SDLVehicleDataType VEHICLEDATA_ENGINETORQUE])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_ACCPEDAL"]).to(equal([SDLVehicleDataType VEHICLEDATA_ACCPEDAL])); - expect([SDLVehicleDataType valueOf:@"VEHICLEDATA_STEERINGWHEEL"]).to(equal([SDLVehicleDataType VEHICLEDATA_STEERINGWHEEL])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLVehicleDataType valueOf:nil]).to(beNil()); - expect([SDLVehicleDataType valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLVehicleDataType values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLVehicleDataType VEHICLEDATA_GPS], - [SDLVehicleDataType VEHICLEDATA_SPEED], - [SDLVehicleDataType VEHICLEDATA_RPM], - [SDLVehicleDataType VEHICLEDATA_FUELLEVEL], - [SDLVehicleDataType VEHICLEDATA_FUELLEVEL_STATE], - [SDLVehicleDataType VEHICLEDATA_FUELCONSUMPTION], - [SDLVehicleDataType VEHICLEDATA_EXTERNTEMP], - [SDLVehicleDataType VEHICLEDATA_VIN], - [SDLVehicleDataType VEHICLEDATA_PRNDL], - [SDLVehicleDataType VEHICLEDATA_TIREPRESSURE], - [SDLVehicleDataType VEHICLEDATA_ODOMETER], - [SDLVehicleDataType VEHICLEDATA_BELTSTATUS], - [SDLVehicleDataType VEHICLEDATA_BODYINFO], - [SDLVehicleDataType VEHICLEDATA_DEVICESTATUS], - [SDLVehicleDataType VEHICLEDATA_ECALLINFO], - [SDLVehicleDataType VEHICLEDATA_AIRBAGSTATUS], - [SDLVehicleDataType VEHICLEDATA_EMERGENCYEVENT], - [SDLVehicleDataType VEHICLEDATA_CLUSTERMODESTATUS], - [SDLVehicleDataType VEHICLEDATA_MYKEY], - [SDLVehicleDataType VEHICLEDATA_BRAKING], - [SDLVehicleDataType VEHICLEDATA_WIPERSTATUS], - [SDLVehicleDataType VEHICLEDATA_HEADLAMPSTATUS], - [SDLVehicleDataType VEHICLEDATA_BATTVOLTAGE], - [SDLVehicleDataType VEHICLEDATA_ENGINETORQUE], - [SDLVehicleDataType VEHICLEDATA_ACCPEDAL], - [SDLVehicleDataType VEHICLEDATA_STEERINGWHEEL]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLVehicleDataTypeGPS).to(equal(@"VEHICLEDATA_GPS")); + expect(SDLVehicleDataTypeSpeed).to(equal(@"VEHICLEDATA_SPEED")); + expect(SDLVehicleDataTypeRPM).to(equal(@"VEHICLEDATA_RPM")); + expect(SDLVehicleDataTypeFuelLevel).to(equal(@"VEHICLEDATA_FUELLEVEL")); + expect(SDLVehicleDataTypeFuelLevelState).to(equal(@"VEHICLEDATA_FUELLEVEL_STATE")); + expect(SDLVehicleDataTypeFuelConsumption).to(equal(@"VEHICLEDATA_FUELCONSUMPTION")); + expect(SDLVehicleDataTypeExternalTemperature).to(equal(@"VEHICLEDATA_EXTERNTEMP")); + expect(SDLVehicleDataTypeVIN).to(equal(@"VEHICLEDATA_VIN")); + expect(SDLVehicleDataTypePRNDL).to(equal(@"VEHICLEDATA_PRNDL")); + expect(SDLVehicleDataTypeTirePressure).to(equal(@"VEHICLEDATA_TIREPRESSURE")); + expect(SDLVehicleDataTypeOdometer).to(equal(@"VEHICLEDATA_ODOMETER")); + expect(SDLVehicleDataTypeBeltStatus).to(equal(@"VEHICLEDATA_BELTSTATUS")); + expect(SDLVehicleDataTypeBodyInfo).to(equal(@"VEHICLEDATA_BODYINFO")); + expect(SDLVehicleDataTypeDeviceStatus).to(equal(@"VEHICLEDATA_DEVICESTATUS")); + expect(SDLVehicleDataTypeECallInfo).to(equal(@"VEHICLEDATA_ECALLINFO")); + expect(SDLVehicleDataTypeAirbagStatus).to(equal(@"VEHICLEDATA_AIRBAGSTATUS")); + expect(SDLVehicleDataTypeEmergencyEvent).to(equal(@"VEHICLEDATA_EMERGENCYEVENT")); + expect(SDLVehicleDataTypeClusterModeStatus).to(equal(@"VEHICLEDATA_CLUSTERMODESTATUS")); + expect(SDLVehicleDataTypeMyKey).to(equal(@"VEHICLEDATA_MYKEY")); + expect(SDLVehicleDataTypeBraking).to(equal(@"VEHICLEDATA_BRAKING")); + expect(SDLVehicleDataTypeWiperStatus).to(equal(@"VEHICLEDATA_WIPERSTATUS")); + expect(SDLVehicleDataTypeHeadlampStatus).to(equal(@"VEHICLEDATA_HEADLAMPSTATUS")); + expect(SDLVehicleDataTypeBatteryVoltage).to(equal(@"VEHICLEDATA_BATTVOLTAGE")); + expect(SDLVehicleDataTypeEngineTorque).to(equal(@"VEHICLEDATA_ENGINETORQUE")); + expect(SDLVehicleDataTypeAccelerationPedal).to(equal(@"VEHICLEDATA_ACCPEDAL")); + expect(SDLVehicleDataTypeSteeringWheel).to(equal(@"VEHICLEDATA_STEERINGWHEEL")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVentilationModeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVentilationModeSpec.m new file mode 100644 index 000000000..9ee30f4b0 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVentilationModeSpec.m @@ -0,0 +1,24 @@ +// +// SDLVentilationModeSpec.m +// SmartDeviceLink-iOS +// + +#import + +#import +#import + +#import "SDLVentilationMode.h" + +QuickSpecBegin(SDLVentilationModeSpec) + +describe(@"Individual Enum Value Tests", ^ { + it(@"Should match internal values", ^ { + expect(SDLVentilationModeUpper).to(equal(@"UPPER")); + expect(SDLVentilationModeLower).to(equal(@"LOWER")); + expect(SDLVentilationModeBoth).to(equal(@"BOTH")); + expect(SDLVentilationModeNone).to(equal(@"NONE")); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVideoStreamingCodecSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVideoStreamingCodecSpec.m index 023133bd3..fb68f70d6 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVideoStreamingCodecSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVideoStreamingCodecSpec.m @@ -2,7 +2,7 @@ // SDLVideoStreamingCodecSpec.m // SmartDeviceLink-iOS // -// Created by Brett McIsaac on 7/27/17. +// Created by Brett McIsaac on 7/31/17. // Copyright © 2017 smartdevicelink. All rights reserved. // @@ -17,50 +17,11 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLVideoStreamingCodec H264].value).to(equal(@"H264")); - expect([SDLVideoStreamingCodec H265].value).to(equal(@"H265")); - expect([SDLVideoStreamingCodec THEORA].value).to(equal(@"THEORA")); - expect([SDLVideoStreamingCodec VP8].value).to(equal(@"VP8")); - expect([SDLVideoStreamingCodec VP9].value).to(equal(@"VP9")); - }); -}); - -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLVideoStreamingCodec valueOf:@"H264"]).to(equal([SDLVideoStreamingCodec H264])); - expect([SDLVideoStreamingCodec valueOf:@"H265"]).to(equal([SDLVideoStreamingCodec H265])); - expect([SDLVideoStreamingCodec valueOf:@"THEORA"]).to(equal([SDLVideoStreamingCodec THEORA])); - expect([SDLVideoStreamingCodec valueOf:@"VP8"]).to(equal([SDLVideoStreamingCodec VP8])); - expect([SDLVideoStreamingCodec valueOf:@"VP9"]).to(equal([SDLVideoStreamingCodec VP9])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLVideoStreamingCodec valueOf:nil]).to(beNil()); - expect([SDLVideoStreamingCodec valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); - -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLVideoStreamingCodec values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLVideoStreamingCodec H264], - [SDLVideoStreamingCodec H265], - [SDLVideoStreamingCodec THEORA], - [SDLVideoStreamingCodec VP8], - [SDLVideoStreamingCodec VP9]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLVideoStreamingCodecH264).to(equal(@"H264")); + expect(SDLVideoStreamingCodecH265).to(equal(@"H265")); + expect(SDLVideoStreamingCodecTheora).to(equal(@"THEORA")); + expect(SDLVideoStreamingCodecVP8).to(equal(@"VP8")); + expect(SDLVideoStreamingCodecVP9).to(equal(@"VP9")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVideoStreamingProtocolSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVideoStreamingProtocolSpec.m index d3503786b..c39cc297f 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVideoStreamingProtocolSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVideoStreamingProtocolSpec.m @@ -2,7 +2,7 @@ // SDLVideoStreamingProtocolSpec.m // SmartDeviceLink-iOS // -// Created by Brett McIsaac on 7/27/17. +// Created by Brett McIsaac on 7/31/17. // Copyright © 2017 smartdevicelink. All rights reserved. // @@ -17,50 +17,11 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLVideoStreamingProtocol RAW].value).to(equal(@"RAW")); - expect([SDLVideoStreamingProtocol RTP].value).to(equal(@"RTP")); - expect([SDLVideoStreamingProtocol RTSP].value).to(equal(@"RTSP")); - expect([SDLVideoStreamingProtocol RTMP].value).to(equal(@"RTMP")); - expect([SDLVideoStreamingProtocol WEBM].value).to(equal(@"WEBM")); - }); -}); - -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLVideoStreamingProtocol valueOf:@"RAW"]).to(equal([SDLVideoStreamingProtocol RAW])); - expect([SDLVideoStreamingProtocol valueOf:@"RTP"]).to(equal([SDLVideoStreamingProtocol RTP])); - expect([SDLVideoStreamingProtocol valueOf:@"RTSP"]).to(equal([SDLVideoStreamingProtocol RTSP])); - expect([SDLVideoStreamingProtocol valueOf:@"RTMP"]).to(equal([SDLVideoStreamingProtocol RTMP])); - expect([SDLVideoStreamingProtocol valueOf:@"WEBM"]).to(equal([SDLVideoStreamingProtocol WEBM])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLVideoStreamingProtocol valueOf:nil]).to(beNil()); - expect([SDLVideoStreamingProtocol valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); - -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLVideoStreamingProtocol values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLVideoStreamingProtocol RAW], - [SDLVideoStreamingProtocol RTP], - [SDLVideoStreamingProtocol RTSP], - [SDLVideoStreamingProtocol RTMP], - [SDLVideoStreamingProtocol WEBM]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLVideoStreamingProtocolRTP).to(equal(@"RTP")); + expect(SDLVideoStreamingProtocolRAW).to(equal(@"RAW")); + expect(SDLVideoStreamingProtocolRTMP).to(equal(@"RTMP")); + expect(SDLVideoStreamingProtocolRTSP).to(equal(@"RTSP")); + expect(SDLVideoStreamingProtocolWebM).to(equal(@"WEBM")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVrCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVrCapabilitiesSpec.m index be62ee96a..c7fcfefca 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVrCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLVrCapabilitiesSpec.m @@ -14,37 +14,8 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLVRCapabilities TEXT].value).to(equal(@"TEXT")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLVRCapabilities valueOf:@"TEXT"]).to(equal([SDLVRCapabilities TEXT])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLVRCapabilities valueOf:nil]).to(beNil()); - expect([SDLVRCapabilities valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLVRCapabilities values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLVRCapabilities TEXT]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLVRCapabilitiesText).to(equal(@"TEXT")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLWarningLightStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLWarningLightStatusSpec.m index 698116e50..68f989fc6 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLWarningLightStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLWarningLightStatusSpec.m @@ -14,47 +14,11 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLWarningLightStatus OFF].value).to(equal(@"OFF")); - expect([SDLWarningLightStatus ON].value).to(equal(@"ON")); - expect([SDLWarningLightStatus FLASH].value).to(equal(@"FLASH")); - expect([SDLWarningLightStatus NOT_USED].value).to(equal(@"NOT_USED")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLWarningLightStatus valueOf:@"OFF"]).to(equal([SDLWarningLightStatus OFF])); - expect([SDLWarningLightStatus valueOf:@"ON"]).to(equal([SDLWarningLightStatus ON])); - expect([SDLWarningLightStatus valueOf:@"FLASH"]).to(equal([SDLWarningLightStatus FLASH])); - expect([SDLWarningLightStatus valueOf:@"NOT_USED"]).to(equal([SDLWarningLightStatus NOT_USED])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLWarningLightStatus valueOf:nil]).to(beNil()); - expect([SDLWarningLightStatus valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLWarningLightStatus values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLWarningLightStatus OFF], - [SDLWarningLightStatus ON], - [SDLWarningLightStatus FLASH], - [SDLWarningLightStatus NOT_USED]] copy]; - - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLWarningLightStatusOff).to(equal(@"OFF")); + expect(SDLWarningLightStatusOn).to(equal(@"ON")); + expect(SDLWarningLightStatusFlash).to(equal(@"FLASH")); + expect(SDLWarningLightStatusNotUsed).to(equal(@"NOT_USED")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLWaypointTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLWaypointTypeSpec.m index d237ab0c0..3f4599950 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLWaypointTypeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLWaypointTypeSpec.m @@ -1,4 +1,4 @@ -// SDLWaypointTypeSpec.m +// SDLWayPointTypeSpec.m // #import @@ -6,45 +6,14 @@ #import #import -#import "SDLWaypointType.h" +#import "SDLWayPointType.h" -QuickSpecBegin(SDLWaypointTypeSpec) +QuickSpecBegin(SDLWayPointTypeSpec) describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLWaypointType ALL].value).to(equal(@"ALL")); - expect([SDLWaypointType DESTINATION].value).to(equal(@"DESTINATION")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLWaypointType valueOf:@"ALL"]).to(equal([SDLWaypointType ALL])); - expect([SDLWaypointType valueOf:@"DESTINATION"]).to(equal([SDLWaypointType DESTINATION])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLWaypointType valueOf:nil]).to(beNil()); - expect([SDLWaypointType valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLWaypointType values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLWaypointType ALL], - [SDLWaypointType DESTINATION]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLWayPointTypeAll).to(equal(@"ALL")); + expect(SDLWayPointTypeDestination).to(equal(@"DESTINATION")); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLWiperStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLWiperStatusSpec.m index 18fbce66c..3e92b7970 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLWiperStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLWiperStatusSpec.m @@ -14,79 +14,22 @@ describe(@"Individual Enum Value Tests", ^ { it(@"Should match internal values", ^ { - expect([SDLWiperStatus OFF].value).to(equal(@"OFF")); - expect([SDLWiperStatus AUTO_OFF].value).to(equal(@"AUTO_OFF")); - expect([SDLWiperStatus OFF_MOVING].value).to(equal(@"OFF_MOVING")); - expect([SDLWiperStatus MAN_INT_OFF].value).to(equal(@"MAN_INT_OFF")); - expect([SDLWiperStatus MAN_INT_ON].value).to(equal(@"MAN_INT_ON")); - expect([SDLWiperStatus MAN_LOW].value).to(equal(@"MAN_LOW")); - expect([SDLWiperStatus MAN_HIGH].value).to(equal(@"MAN_HIGH")); - expect([SDLWiperStatus MAN_FLICK].value).to(equal(@"MAN_FLICK")); - expect([SDLWiperStatus WASH].value).to(equal(@"WASH")); - expect([SDLWiperStatus AUTO_LOW].value).to(equal(@"AUTO_LOW")); - expect([SDLWiperStatus AUTO_HIGH].value).to(equal(@"AUTO_HIGH")); - expect([SDLWiperStatus COURTESYWIPE].value).to(equal(@"COURTESYWIPE")); - expect([SDLWiperStatus AUTO_ADJUST].value).to(equal(@"AUTO_ADJUST")); - expect([SDLWiperStatus STALLED].value).to(equal(@"STALLED")); - expect([SDLWiperStatus NO_DATA_EXISTS].value).to(equal(@"NO_DATA_EXISTS")); - }); -}); -describe(@"ValueOf Tests", ^ { - it(@"Should return correct values when valid", ^ { - expect([SDLWiperStatus valueOf:@"OFF"]).to(equal([SDLWiperStatus OFF])); - expect([SDLWiperStatus valueOf:@"AUTO_OFF"]).to(equal([SDLWiperStatus AUTO_OFF])); - expect([SDLWiperStatus valueOf:@"OFF_MOVING"]).to(equal([SDLWiperStatus OFF_MOVING])); - expect([SDLWiperStatus valueOf:@"MAN_INT_OFF"]).to(equal([SDLWiperStatus MAN_INT_OFF])); - expect([SDLWiperStatus valueOf:@"MAN_INT_ON"]).to(equal([SDLWiperStatus MAN_INT_ON])); - expect([SDLWiperStatus valueOf:@"MAN_LOW"]).to(equal([SDLWiperStatus MAN_LOW])); - expect([SDLWiperStatus valueOf:@"MAN_HIGH"]).to(equal([SDLWiperStatus MAN_HIGH])); - expect([SDLWiperStatus valueOf:@"MAN_FLICK"]).to(equal([SDLWiperStatus MAN_FLICK])); - expect([SDLWiperStatus valueOf:@"WASH"]).to(equal([SDLWiperStatus WASH])); - expect([SDLWiperStatus valueOf:@"AUTO_LOW"]).to(equal([SDLWiperStatus AUTO_LOW])); - expect([SDLWiperStatus valueOf:@"AUTO_HIGH"]).to(equal([SDLWiperStatus AUTO_HIGH])); - expect([SDLWiperStatus valueOf:@"COURTESYWIPE"]).to(equal([SDLWiperStatus COURTESYWIPE])); - expect([SDLWiperStatus valueOf:@"AUTO_ADJUST"]).to(equal([SDLWiperStatus AUTO_ADJUST])); - expect([SDLWiperStatus valueOf:@"STALLED"]).to(equal([SDLWiperStatus STALLED])); - expect([SDLWiperStatus valueOf:@"NO_DATA_EXISTS"]).to(equal([SDLWiperStatus NO_DATA_EXISTS])); - }); - - it(@"Should return nil when invalid", ^ { - expect([SDLWiperStatus valueOf:nil]).to(beNil()); - expect([SDLWiperStatus valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); - }); -}); -describe(@"Value List Tests", ^ { - NSArray* storedValues = [SDLWiperStatus values]; - __block NSArray* definedValues; - beforeSuite(^ { - definedValues = [@[[SDLWiperStatus OFF], - [SDLWiperStatus AUTO_OFF], - [SDLWiperStatus OFF_MOVING], - [SDLWiperStatus MAN_INT_OFF], - [SDLWiperStatus MAN_INT_ON], - [SDLWiperStatus MAN_LOW], - [SDLWiperStatus MAN_HIGH], - [SDLWiperStatus MAN_FLICK], - [SDLWiperStatus WASH], - [SDLWiperStatus AUTO_LOW], - [SDLWiperStatus AUTO_HIGH], - [SDLWiperStatus COURTESYWIPE], - [SDLWiperStatus AUTO_ADJUST], - [SDLWiperStatus STALLED], - [SDLWiperStatus NO_DATA_EXISTS]] copy]; - }); - - it(@"Should contain all defined enum values", ^ { - for (int i = 0; i < definedValues.count; i++) { - expect(storedValues).to(contain(definedValues[i])); - } - }); - - it(@"Should contain only defined enum values", ^ { - for (int i = 0; i < storedValues.count; i++) { - expect(definedValues).to(contain(storedValues[i])); - } + expect(SDLWiperStatusOff).to(equal(@"OFF")); + expect(SDLWiperStatusAutomaticOff).to(equal(@"AUTO_OFF")); + expect(SDLWiperStatusOffMoving).to(equal(@"OFF_MOVING")); + expect(SDLWiperStatusManualIntervalOff).to(equal(@"MAN_INT_OFF")); + expect(SDLWiperStatusManualIntervalOn).to(equal(@"MAN_INT_ON")); + expect(SDLWiperStatusManualLow).to(equal(@"MAN_LOW")); + expect(SDLWiperStatusManualHigh).to(equal(@"MAN_HIGH")); + expect(SDLWiperStatusManualFlick).to(equal(@"MAN_FLICK")); + expect(SDLWiperStatusWash).to(equal(@"WASH")); + expect(SDLWiperStatusAutomaticLow).to(equal(@"AUTO_LOW")); + expect(SDLWiperStatusAutomaticHigh).to(equal(@"AUTO_HIGH")); + expect(SDLWiperStatusCourtesyWipe).to(equal(@"COURTESYWIPE")); + expect(SDLWiperStatusAutomaticAdjust).to(equal(@"AUTO_ADJUST")); + expect(SDLWiperStatusStalled).to(equal(@"STALLED")); + expect(SDLWiperStatusNoDataExists).to(equal(@"NO_DATA_EXISTS")); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/FactorySpecs/SDLRPCRequestFactorySpec.m b/SmartDeviceLinkTests/RPCSpecs/FactorySpecs/SDLRPCRequestFactorySpec.m deleted file mode 100644 index d5227fb6e..000000000 --- a/SmartDeviceLinkTests/RPCSpecs/FactorySpecs/SDLRPCRequestFactorySpec.m +++ /dev/null @@ -1,1022 +0,0 @@ -// -// SmartDeviceLinkTests.m -// SmartDeviceLinkTests - - -#import - -#import -#import -#import - -#import "SmartDeviceLink.h" - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - -QuickSpecBegin(SDLRPCRequestFactorySpec) - -describe(@"BuildAddCommand Tests", ^ { - it(@"Should build correctly", ^ { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - SDLAddCommand* message = [SDLRPCRequestFactory buildAddCommandWithID:@33 menuName:@"Menu" parentID:@4 position:@500 - vrCommands:nil iconValue:@"No" iconType:[SDLImageType STATIC] correlationID:@94]; -#pragma clang diagnostic pop - - expect([message menuParams].position).to(equal(@500)); - expect([message menuParams].menuName).to(equal(@"Menu")); - expect([message menuParams].parentID).to(equal(@4)); - expect([message cmdIcon].value).to(equal(@"No")); - expect([message cmdIcon].imageType).to(equal([SDLImageType STATIC])); - expect(message.vrCommands).to(beNil()); - expect(message.cmdID).to(equal(@33)); - expect(message.correlationID).to(equal(@94)); - - NSArray* aliases = @[@"Joe1", @"Joe2", @"Joe3", - @"--------------------------------ASLONGOFASTRINGASICANPOSSIBLYMAKEINASINGLELINE---------------------------------"]; -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - message = [SDLRPCRequestFactory buildAddCommandWithID:@276 menuName:@"Arbitrary" vrCommands:aliases correlationID:@200]; -#pragma clang diagnostic pop - - expect([message menuParams].position).to(beNil()); - expect([message menuParams].menuName).to(equal(@"Arbitrary")); - expect([message menuParams].parentID).to(beNil()); - expect(message.vrCommands).to(equal(aliases)); - expect(message.cmdIcon).to(beNil()); - expect(message.cmdID).to(equal(@276)); - expect(message.correlationID).to(equal(@200)); - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - message = [SDLRPCRequestFactory buildAddCommandWithID:@9001 vrCommands:@[@" ", @" ", @" ", @""] correlationID:@27]; -#pragma clang diagnostic pop - - expect(message.menuParams).to(beNil()); - expect(message.vrCommands).to(equal(@[@" ", @" ", @" ", @""])); - expect(message.cmdIcon).to(beNil()); - expect(message.cmdID).to(equal(@9001)); - expect(message.correlationID).to(equal(@27)); - }); -}); - -describe(@"BuildAddSubMenu Tests", ^ { - it(@"Should build correctly", ^ { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - SDLAddSubMenu* message = [SDLRPCRequestFactory buildAddSubMenuWithID:@234234 menuName:@"QWERTY" position:@3 correlationID:@13]; -#pragma clang diagnostic pop - - expect(message.menuName).to(equal(@"QWERTY")); - expect(message.position).to(equal(@3)); - expect(message.menuID).to(equal(@234234)); - expect(message.correlationID).to(equal(@13)); - - message = [SDLRPCRequestFactory buildAddSubMenuWithID:@444 menuName:@"Words" correlationID:@423]; - - expect(message.menuName).to(equal(@"Words")); - expect(message.position).to(beNil()); - expect(message.menuID).to(equal(@444)); - expect(message.correlationID).to(equal(@423)); - }); -}); - -describe(@"BuildAlert Tests", ^ { - context(@"With Text", ^ { - it(@"Should build correctly", ^ { - NSArray* softButtons = @[[[SDLSoftButton alloc] init]]; - SDLAlert* message = [SDLRPCRequestFactory buildAlertWithAlertText1:@"String1" alertText2:@"String2" alertText3:@"String3" - duration:@9999 softButtons:softButtons correlationID:@41]; - - expect(message.alertText1).to(equal(@"String1")); - expect(message.alertText2).to(equal(@"String2")); - expect(message.alertText3).to(equal(@"String3")); - expect(message.ttsChunks).to(beNil()); - expect(message.duration).to(equal(@9999)); - expect(message.playTone).to(beNil()); - expect(message.progressIndicator).to(beNil()); - expect(message.softButtons).to(equal(softButtons)); - expect(message.correlationID).to(equal(@41)); - - message = [SDLRPCRequestFactory buildAlertWithAlertText1:@"Alarming" alertText2:@"Astonishing" alertText3:@"Attention" - duration:@3000 correlationID:@11234]; - - expect(message.alertText1).to(equal(@"Alarming")); - expect(message.alertText2).to(equal(@"Astonishing")); - expect(message.alertText3).to(equal(@"Attention")); - expect(message.ttsChunks).to(beNil()); - expect(message.duration).to(equal(@3000)); - expect(message.playTone).to(beNil()); - expect(message.progressIndicator).to(beNil()); - expect(message.softButtons).to(beNil()); - expect(message.correlationID).to(equal(@11234)); - - message = [SDLRPCRequestFactory buildAlertWithAlertText1:@"1" alertText2:@"2" duration:@4153 correlationID:@1432143]; - - expect(message.alertText1).to(equal(@"1")); - expect(message.alertText2).to(equal(@"2")); - expect(message.alertText3).to(beNil()); - expect(message.ttsChunks).to(beNil()); - expect(message.duration).to(equal(@4153)); - expect(message.playTone).to(beNil()); - expect(message.progressIndicator).to(beNil()); - expect(message.softButtons).to(beNil()); - expect(message.correlationID).to(equal(@1432143)); - }); - }); - - context(@"With TTS", ^ { - it(@"Should build correctly", ^ { - SDLAlert* message = [SDLRPCRequestFactory buildAlertWithTTS:@"Wat" alertText1:@"11" alertText2:@"12" alertText3:@"13" - playTone:@NO duration:@3424 correlationID:@9999999]; - - expect(message.alertText1).to(equal(@"11")); - expect(message.alertText2).to(equal(@"12")); - expect(message.alertText3).to(equal(@"13")); - expect(((SDLTTSChunk*)[message ttsChunks][0]).text).to(equal(@"Wat")); - expect(message.duration).to(equal(@3424)); - expect(message.playTone).to(equal(@NO)); - expect(message.progressIndicator).to(beNil()); - expect(message.softButtons).to(beNil()); - expect(message.correlationID).to(equal(@9999999)); - - message = [SDLRPCRequestFactory buildAlertWithTTS:@"Say This" alertText1:@"hgkj" alertText2:@"bgydhgfc" - playTone:@YES duration:@6546 correlationID:@65436786]; - - expect(message.alertText1).to(equal(@"hgkj")); - expect(message.alertText2).to(equal(@"bgydhgfc")); - expect(message.alertText3).to(beNil()); - expect(((SDLTTSChunk*)[message ttsChunks][0]).text).to(equal(@"Say This")); - expect(message.duration).to(equal(@6546)); - expect(message.playTone).to(equal(@YES)); - expect(message.progressIndicator).to(beNil()); - expect(message.softButtons).to(beNil()); - expect(message.correlationID).to(equal(@65436786)); - - message = [SDLRPCRequestFactory buildAlertWithTTS:@"Surprise" playTone:@YES correlationID:@34]; - - expect(message.alertText1).to(beNil()); - expect(message.alertText2).to(beNil()); - expect(message.alertText3).to(beNil()); - expect(((SDLTTSChunk*)[message ttsChunks][0]).text).to(equal(@"Surprise")); - expect(message.duration).to(beNil()); - expect(message.playTone).to(equal(@YES)); - expect(message.progressIndicator).to(beNil()); - expect(message.softButtons).to(beNil()); - expect(message.correlationID).to(equal(@34)); - }); - }); - - context(@"With TTSChunks", ^ { - it(@"Should build correctly", ^ { - NSArray* softButtons = @[[[SDLSoftButton alloc] init]]; - NSArray* ttsChunks = @[[[SDLTTSChunk alloc] init]]; - SDLAlert* message = [SDLRPCRequestFactory buildAlertWithTTSChunks:ttsChunks alertText1:@"Astonish" alertText2:@"Hi" alertText3:@"Alert" - playTone:@NO duration:@4145 softButtons:softButtons correlationID:@19]; - - expect(message.alertText1).to(equal(@"Astonish")); - expect(message.alertText2).to(equal(@"Hi")); - expect(message.alertText3).to(equal(@"Alert")); - expect(message.ttsChunks).to(equal(ttsChunks)); - expect(message.duration).to(equal(@4145)); - expect(message.playTone).to(equal(@NO)); - expect(message.progressIndicator).to(beNil()); - expect(message.softButtons).to(equal(softButtons)); - expect(message.correlationID).to(equal(@19)); - - message = [SDLRPCRequestFactory buildAlertWithTTSChunks:ttsChunks playTone:@YES correlationID:@1234321]; - - expect(message.alertText1).to(beNil()); - expect(message.alertText2).to(beNil()); - expect(message.alertText3).to(beNil()); - expect(message.ttsChunks).to(equal(ttsChunks)); - expect(message.duration).to(beNil()); - expect(message.playTone).to(equal(@YES)); - expect(message.progressIndicator).to(beNil()); - expect(message.softButtons).to(beNil()); - expect(message.correlationID).to(equal(@1234321)); - }); - }); -}); - - -describe(@"SDLAlertManeuver Tests", ^ { - __block NSMutableArray *softButtons = nil; - __block NSMutableArray *ttsChunks = nil; - __block SDLAlertManeuver *message = nil; - - describe(@"Should build correctly", ^ { - beforeEach(^{ - softButtons = [@[[[SDLSoftButton alloc] init]] mutableCopy]; - ttsChunks = [@[[[SDLTTSChunk alloc] init]] mutableCopy]; - message = [SDLRPCRequestFactory buildAlertManeuverwithTTSchunks:ttsChunks softButtons:softButtons correlationID:@1234]; - }); - - it(@"Should properly set TTS Chunks", ^{ - expect(message.ttsChunks).to(equal(ttsChunks)); - }); - - it(@"Should properly set Soft Buttons", ^{ - expect(message.softButtons).to(equal(softButtons)); - }); - - it(@"Should properly set Correlation ID", ^{ - expect(message.correlationID).to(equal(@1234)); - }); - }); -}); - - -describe(@"BuildChangeRegistration Tests", ^ { - it(@"Should build correctly", ^ { - SDLChangeRegistration* message = [SDLRPCRequestFactory buildChangeRegistrationWithLanguage:[SDLLanguage EN_GB] hmiDisplayLanguage:[SDLLanguage DE_DE] correlationID:@22336644]; - - expect(message.language).to(equal([SDLLanguage EN_GB])); - expect(message.hmiDisplayLanguage).to(equal([SDLLanguage DE_DE])); - expect(message.correlationID).to(equal(@22336644)); - }); -}); - -describe(@"BuildCreateInteractionChoiceSet Tests", ^ { - it(@"Should build correctly", ^ { - NSArray* choices = @[[[SDLChoice alloc] init]]; - SDLCreateInteractionChoiceSet* message = [SDLRPCRequestFactory buildCreateInteractionChoiceSetWithID:@4567654 choiceSet:choices correlationID:@0]; - - expect(message.interactionChoiceSetID).to(equal(@4567654)); - expect(message.choiceSet).to(equal(choices)); - expect(message.correlationID).to(equal(@0)); - }); -}); - -describe(@"BuildDeleteCommand Tests", ^ { - it(@"Should build correctly", ^ { - SDLDeleteCommand* message = [SDLRPCRequestFactory buildDeleteCommandWithID:@2 correlationID:@234]; - - expect(message.cmdID).to(equal(@2)); - expect(message.correlationID).to(equal(@234)); - }); -}); - -describe(@"BuildDeleteFile Tests", ^ { - it(@"Should build correctly", ^ { - SDLDeleteFile* message = [SDLRPCRequestFactory buildDeleteFileWithName:@"CRITICAL_FILE" correlationID:@4930]; - - expect(message.syncFileName).to(equal(@"CRITICAL_FILE")); - expect(message.correlationID).to(equal(@4930)); - }); -}); - -describe(@"BuildListFiles Tests", ^ { - it(@"Should build correctly", ^ { - SDLListFiles* message = [SDLRPCRequestFactory buildListFilesWithCorrelationID:@13123]; - - expect(message.correlationID).to(equal(@13123)); - }); -}); - -describe(@"BuildDeleteInteractionChoiceSet Tests", ^ { - it(@"Should build correctly", ^ { - SDLDeleteInteractionChoiceSet* message = [SDLRPCRequestFactory buildDeleteInteractionChoiceSetWithID:@46765426 correlationID:@46765426]; - - expect(message.interactionChoiceSetID).to(equal(@46765426)); - expect(message.correlationID).to(equal(@46765426)); - }); -}); - -describe(@"BuildDeleteSubMenu Tests", ^ { - it(@"Should build correctly", ^ { - SDLDeleteSubMenu* message = [SDLRPCRequestFactory buildDeleteSubMenuWithID:@3515 correlationID:@5153]; - - expect(message.menuID).to(equal(@3515)); - expect(message.correlationID).to(equal(@5153)); - }); -}); - -describe(@"BuildDialNumber", ^{ - __block SDLDialNumber *message = nil; - __block NSString *someNumberString = nil; - - describe(@"when built correctly", ^{ - beforeEach(^{ - someNumberString = @"1234567890"; - message = [SDLRPCRequestFactory buildDialNumberWithNumber:someNumberString]; - }); - - it(@"should not be nil", ^{ - expect(message).toNot(beNil()); - }); - - it(@"should have number set properly", ^{ - expect(message.number).to(equal(someNumberString)); - }); - }); -}); - -describe(@"BuildEndAudioPassThru Tests", ^ { - it(@"Should build correctly", ^ { - SDLEndAudioPassThru* message = [SDLRPCRequestFactory buildEndAudioPassThruWithCorrelationID:@13123]; - - expect(message.correlationID).to(equal(@13123)); - }); -}); - -describe(@"BuildGetDTCs Tests", ^ { - it(@"Should build correctly", ^ { - SDLGetDTCs* message = [SDLRPCRequestFactory buildGetDTCsWithECUName:@255 correlationID:@60806050]; - - expect(message.ecuName).to(equal(@255)); - expect(message.dtcMask).to(beNil()); - expect(message.correlationID).to(equal(@60806050)); - }); -}); - -describe(@"BuildGetVehicleData Tests", ^ { - it(@"Should build correctly", ^ { - SDLGetVehicleData* message = [SDLRPCRequestFactory buildGetVehicleDataWithGPS:@YES speed:@NO rpm:@NO - fuelLevel:@YES fuelLevelState:@YES instantFuelConsumption:@NO - externalTemperature:@YES vin:@YES prndl:@YES - tirePressure:@NO odometer:@NO beltStatus:@NO - bodyInformation:@YES deviceStatus:@NO driverBraking:@NO - wiperStatus:@NO headLampStatus:@YES engineTorque:@YES - accPedalPosition:@NO steeringWheelAngle:@YES correlationID:@936]; - - expect(message.gps).to(equal(@YES)); - expect(message.speed).to(equal(@NO)); - expect(message.rpm).to(equal(@NO)); - expect(message.fuelLevel).to(equal(@YES)); - expect(message.fuelLevel_State).to(equal(@YES)); - expect(message.instantFuelConsumption).to(equal(@NO)); - expect(message.externalTemperature).to(equal(@YES)); - expect(message.vin).to(equal(@YES)); - expect(message.prndl).to(equal(@YES)); - expect(message.tirePressure).to(equal(@NO)); - expect(message.odometer).to(equal(@NO)); - expect(message.beltStatus).to(equal(@NO)); - expect(message.bodyInformation).to(equal(@YES)); - expect(message.deviceStatus).to(equal(@NO)); - expect(message.driverBraking).to(equal(@NO)); - expect(message.wiperStatus).to(equal(@NO)); - expect(message.headLampStatus).to(equal(@YES)); - expect(message.engineTorque).to(equal(@YES)); - expect(message.accPedalPosition).to(equal(@NO)); - expect(message.steeringWheelAngle).to(equal(@YES)); - expect(message.eCallInfo).to(beNil()); - expect(message.airbagStatus).to(beNil()); - expect(message.emergencyEvent).to(beNil()); - expect(message.clusterModeStatus).to(beNil()); - expect(message.myKey).to(beNil()); - expect(message.correlationID).to(equal(@936)); - }); -}); - -describe(@"BuildPerformAudioPassThru Tests", ^ { - it(@"Should build correctly", ^ { - SDLPerformAudioPassThru* message = [SDLRPCRequestFactory buildPerformAudioPassThruWithInitialPrompt:@"" audioPassThruDisplayText1:@"Display1" audioPassThruDisplayText2:@"Display2" - samplingRate:[SDLSamplingRate _44KHZ] maxDuration:@10 bitsPerSample:[SDLBitsPerSample _16_BIT] audioType:[SDLAudioType PCM] - muteAudio:@NO correlationID:@2500]; - - expect(((SDLTTSChunk*)[message initialPrompt][0]).text).to(beNil()); - expect(message.audioPassThruDisplayText1).to(equal(@"Display1")); - expect(message.audioPassThruDisplayText2).to(equal(@"Display2")); - expect(message.samplingRate).to(equal([SDLSamplingRate _44KHZ])); - expect(message.maxDuration).to(equal(@10)); - expect(message.bitsPerSample).to(equal([SDLBitsPerSample _16_BIT])); - expect(message.audioType).to(equal([SDLAudioType PCM])); - expect(message.muteAudio).to(equal(@NO)); - expect(message.correlationID).to(equal(@2500)); - }); -}); - -describe(@"BuildPerformInteraction Tests", ^ { - context(@"With Initial Chunks", ^ { - it(@"Should build correctly", ^ { - NSArray* initialChunks = @[[[SDLTTSChunk alloc] init]]; - NSArray* helpChunks = @[[[SDLTTSChunk alloc] init]]; - NSArray* timeoutChunks = @[[[SDLTTSChunk alloc] init]]; - NSArray* vrHelp = @[[[SDLVRHelpItem alloc] init]]; - SDLPerformInteraction* message = [SDLRPCRequestFactory buildPerformInteractionWithInitialChunks:initialChunks initialText:@"Start" interactionChoiceSetIDList:@[@878] - helpChunks:helpChunks timeoutChunks:timeoutChunks interactionMode:[SDLInteractionMode MANUAL_ONLY] timeout:@7500 - vrHelp:vrHelp correlationID:@272727]; - - expect(message.initialPrompt).to(equal(initialChunks)); - expect(message.initialText).to(equal(@"Start")); - expect(message.interactionChoiceSetIDList).to(equal(@[@878])); - expect(message.helpPrompt).to(equal(helpChunks)); - expect(message.timeoutPrompt).to(equal(timeoutChunks)); - expect(message.interactionMode).to(equal([SDLInteractionMode MANUAL_ONLY])); - expect(message.timeout).to(equal(@7500)); - expect(message.vrHelp).to(equal(vrHelp)); - expect(message.interactionLayout).to(beNil()); - expect(message.correlationID).to(equal(@272727)); - }); - }); - - context(@"With Initial Prompt", ^ { - it(@"Should build correctly", ^ { - NSArray* vrHelp = @[[[SDLVRHelpItem alloc] init]]; - SDLPerformInteraction* message = [SDLRPCRequestFactory buildPerformInteractionWithInitialPrompt:@"Nothing" initialText:@"Still Nothing" interactionChoiceSetIDList:@[@4223, @1337] - helpPrompt:@"A Whole Lot of Nothing" timeoutPrompt:@"Time Remaining" interactionMode:[SDLInteractionMode VR_ONLY] - timeout:@5600 vrHelp:vrHelp correlationID:@31564]; - - expect(((SDLTTSChunk*)[message initialPrompt][0]).text).to(equal(@"Nothing")); - expect(message.initialText).to(equal(@"Still Nothing")); - expect(message.interactionChoiceSetIDList).to(equal(@[@4223, @1337])); - expect(((SDLTTSChunk*)[message helpPrompt][0]).text).to(equal(@"A Whole Lot of Nothing")); - expect(((SDLTTSChunk*)[message timeoutPrompt][0]).text).to(equal(@"Time Remaining")); - expect(message.interactionMode).to(equal([SDLInteractionMode VR_ONLY])); - expect(message.timeout).to(equal(@5600)); - expect(message.vrHelp).to(equal(vrHelp)); - expect(message.interactionLayout).to(beNil()); - expect(message.correlationID).to(equal(@31564)); - - message = [SDLRPCRequestFactory buildPerformInteractionWithInitialPrompt:@"A" initialText:@"B" interactionChoiceSetIDList:@[@1, @2, @3, @4] helpPrompt:@"C" timeoutPrompt:@"D" - interactionMode:[SDLInteractionMode BOTH] timeout:@10000 correlationID:@7734]; - - expect(((SDLTTSChunk*)[message initialPrompt][0]).text).to(equal(@"A")); - expect(message.initialText).to(equal(@"B")); - expect(message.interactionChoiceSetIDList).to(equal(@[@1, @2, @3, @4])); - expect(((SDLTTSChunk*)[message helpPrompt][0]).text).to(equal(@"C")); - expect(((SDLTTSChunk*)[message timeoutPrompt][0]).text).to(equal(@"D")); - expect(message.interactionMode).to(equal([SDLInteractionMode BOTH])); - expect(message.timeout).to(equal(@10000)); - expect(message.vrHelp).to(beNil()); - expect(message.interactionLayout).to(beNil()); - expect(message.correlationID).to(equal(@7734)); - - message = [SDLRPCRequestFactory buildPerformInteractionWithInitialPrompt:@"Initializing" initialText:@"Initialized" interactionChoiceSetID:@1456 vrHelp:vrHelp correlationID:@7056704]; - - expect(((SDLTTSChunk*)[message initialPrompt][0]).text).to(equal(@"Initializing")); - expect(message.initialText).to(equal(@"Initialized")); - expect(message.interactionChoiceSetIDList).to(equal(@[@1456])); - expect(message.helpPrompt).to(beNil()); - expect(message.timeoutPrompt).to(beNil()); - //Don't know whether the reason for this failure is a bug... - expect(message.interactionMode).to(equal([SDLInteractionMode BOTH])); - expect(message.timeout).to(beNil()); - expect(message.vrHelp).to(equal(vrHelp)); - expect(message.interactionLayout).to(beNil()); - expect(message.correlationID).to(equal(@7056704)); - - message = [SDLRPCRequestFactory buildPerformInteractionWithInitialPrompt:@"#$%@" initialText:@"!%%&&^$" interactionChoiceSetID:@105503 correlationID:@1454156465]; - - expect(((SDLTTSChunk*)[message initialPrompt][0]).text).to(equal(@"#$%@")); - expect(message.initialText).to(equal(@"!%%&&^$")); - expect(message.interactionChoiceSetIDList).to(equal(@[@105503])); - expect(message.helpPrompt).to(beNil()); - expect(message.timeoutPrompt).to(beNil()); - expect(message.interactionMode).to(equal([SDLInteractionMode BOTH])); - expect(message.timeout).to(beNil()); - expect(message.vrHelp).to(beNil()); - expect(message.interactionLayout).to(beNil()); - expect(message.correlationID).to(equal(@1454156465)); - }); - }); -}); - -describe(@"BuildPutFile Tests", ^ { - it(@"Should build correctly", ^ { - SDLPutFile *message = [SDLRPCRequestFactory buildPutFileWithFileName:@"YES!?" fileType:[SDLFileType GRAPHIC_BMP] persistentFile:@165636 correlationId:@147986]; - - expect(message.syncFileName).to(equal(@"YES!?")); - expect(message.fileType).to(equal([SDLFileType GRAPHIC_BMP])); - expect(message.persistentFile).to(equal(@165636)); - expect(message.correlationID).to(equal(@147986)); - }); -}); - -describe(@"BuildReadDID Tests", ^ { - it(@"Should build correctly", ^ { - SDLReadDID* message = [SDLRPCRequestFactory buildReadDIDWithECUName:@12500 didLocation:@[@1, @5, @10, @10, @5, @1] correlationID:@6465678]; - - expect(message.ecuName).to(equal(@12500)); - expect(message.didLocation).to(equal(@[@1, @5, @10, @10, @5, @1])); - expect(message.correlationID).to(equal(@6465678)); - }); -}); - -describe(@"BuildRegisterAppInterface Tests", ^ { - it(@"Should build correctly", ^ { - // Mock the infomation that will be pulled from the mainBundle. - id bundleMock = OCMPartialMock([NSBundle mainBundle]); - OCMStub([bundleMock infoDictionary]).andReturn(@{@"CFBundleShortVersionString" : @"1.2.3.4"}); - OCMStub([bundleMock bundleIdentifier]).andReturn(@"com.register.test"); - - NSMutableArray *ttsName = [NSMutableArray arrayWithArray:@[[[SDLTTSChunk alloc] init]]]; - NSMutableArray *synonyms = [NSMutableArray arrayWithArray:@[@"Q", @"W", @"E", @"R"]]; - SDLRegisterAppInterface* message = [SDLRPCRequestFactory buildRegisterAppInterfaceWithAppName:@"Interface" ttsName:ttsName vrSynonyms:synonyms - isMediaApp:@YES languageDesired:[SDLLanguage EN_US] - hmiDisplayLanguageDesired:[SDLLanguage ES_MX] appID:@"6h43g"]; - - expect(message.syncMsgVersion).toNot(beNil()); - expect(message.syncMsgVersion.majorVersion).to(equal(@1)); - expect(message.syncMsgVersion.minorVersion).to(equal(@0)); - - expect(message.appInfo.appBundleID).to(equal(@"com.register.test")); - expect(message.appInfo.appDisplayName).to(equal(@"Interface")); - expect(message.appInfo.appVersion).to(equal(@"1.2.3.4")); - - expect(message.appName).to(equal(@"Interface")); - expect(message.ttsName).to(equal(ttsName)); - expect(message.ngnMediaScreenAppName).to(equal(@"Interface")); - expect(message.vrSynonyms).to(equal(@[@"Q", @"W", @"E", @"R"])); - expect(message.isMediaApplication).to(equal(@YES)); - expect(message.languageDesired).to(equal([SDLLanguage EN_US])); - expect(message.hmiDisplayLanguageDesired).to(equal([SDLLanguage ES_MX])); - expect(message.appHMIType).to(beNil()); - expect(message.hashID).to(beNil()); - expect(message.deviceInfo).toNot(beNil()); - expect(message.appID).to(equal(@"6h43g")); - expect(message.correlationID).to(equal(@1)); - - message = [SDLRPCRequestFactory buildRegisterAppInterfaceWithAppName:@"Register App Interface" isMediaApp:@NO languageDesired:[SDLLanguage PT_BR] appID:@"36g6rsw4"]; - - expect(message.syncMsgVersion).toNot(beNil()); - expect(message.syncMsgVersion.majorVersion).to(equal(@1)); - expect(message.syncMsgVersion.minorVersion).to(equal(@0)); - - expect(message.appInfo.appBundleID).to(equal(@"com.register.test")); - expect(message.appInfo.appDisplayName).to(equal(@"Register App Interface")); - expect(message.appInfo.appVersion).to(equal(@"1.2.3.4")); - - expect(message.appName).to(equal(@"Register App Interface")); - expect(message.ttsName).to(beNil()); - expect(message.ngnMediaScreenAppName).to(equal(@"Register App Interface")); - expect(message.vrSynonyms).to(equal(@[@"Register App Interface"])); - expect(message.isMediaApplication).to(equal(@NO)); - expect(message.languageDesired).to(equal([SDLLanguage PT_BR])); - expect(message.hmiDisplayLanguageDesired).to(equal([SDLLanguage PT_BR])); - expect(message.appHMIType).to(beNil()); - expect(message.hashID).to(beNil()); - expect(message.deviceInfo).toNot(beNil()); - expect(message.appID).to(equal(@"36g6rsw4")); - expect(message.correlationID).to(equal(@1)); - - message = [SDLRPCRequestFactory buildRegisterAppInterfaceWithAppName:@"..." languageDesired:[SDLLanguage CS_CZ] appID:@"56ht5j"]; - - expect(message.syncMsgVersion).toNot(beNil()); - expect(message.syncMsgVersion.majorVersion).to(equal(@1)); - expect(message.syncMsgVersion.minorVersion).to(equal(@0)); - - expect(message.appInfo.appBundleID).to(equal(@"com.register.test")); - expect(message.appInfo.appDisplayName).to(equal(@"...")); - expect(message.appInfo.appVersion).to(equal(@"1.2.3.4")); - - expect(message.appName).to(equal(@"...")); - expect(message.ttsName).to(beNil()); - expect(message.ngnMediaScreenAppName).to(equal(@"...")); - expect(message.vrSynonyms).to(equal(@[@"..."])); - expect(message.isMediaApplication).to(equal(@NO)); - expect(message.languageDesired).to(equal([SDLLanguage CS_CZ])); - expect(message.hmiDisplayLanguageDesired).to(equal([SDLLanguage CS_CZ])); - expect(message.appHMIType).to(beNil()); - expect(message.hashID).to(beNil()); - expect(message.deviceInfo).toNot(beNil()); - expect(message.appID).to(equal(@"56ht5j")); - expect(message.correlationID).to(equal(@1)); - }); -}); - -describe(@"BuildResetGlobalProperties Tests", ^ { - it(@"Should build correctly", ^ { - SDLResetGlobalProperties* message = [SDLRPCRequestFactory buildResetGlobalPropertiesWithProperties:@[[SDLGlobalProperty MENUNAME], [SDLGlobalProperty TIMEOUTPROMPT]] - correlationID:@906842]; - - expect(message.properties).to(equal(@[[SDLGlobalProperty MENUNAME], [SDLGlobalProperty TIMEOUTPROMPT]])); - expect(message.correlationID).to(equal(@906842)); - }); -}); - -describe(@"BuildSendLocation", ^{ - __block SDLSendLocation *message = nil; - __block NSNumber *someLongitude = nil; - __block NSNumber *someLatitude = nil; - __block NSString *someLocation = nil; - __block NSString *someLocationDescription = nil; - __block NSArray *someAddressLines = nil; - __block NSString *somePhoneNumber = nil; - __block SDLImage *someImage = nil; - - describe(@"when built 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]; - - message = [SDLRPCRequestFactory buildSendLocationWithLongitude:someLongitude latitude:someLatitude locationName:someLocation locationDescription:someLocationDescription address:someAddressLines phoneNumber:somePhoneNumber image:someImage]; - }); - - it(@"should not be nil", ^{ - expect(message).toNot(beNil()); - }); - - it(@"should properly set longitude", ^{ - expect(message.longitudeDegrees).to(equal(someLongitude)); - }); - - it(@"should properly set latitude", ^{ - expect(message.latitudeDegrees).to(equal(someLatitude)); - }); - - it(@"should properly set location", ^{ - expect(message.locationName).to(equal(someLocation)); - }); - - it(@"should properly set location description", ^{ - expect(message.locationDescription).to(equal(someLocationDescription)); - }); - - it(@"should properly set address lines", ^{ - expect(message.addressLines).to(equal(someAddressLines)); - }); - - it(@"should properly set phone number", ^{ - expect(message.phoneNumber).to(equal(somePhoneNumber)); - }); - - it(@"should properly set image", ^{ - expect(message.locationImage).to(equal(someImage)); - }); - }); -}); - -describe(@"BuildScrollableMessage Tests", ^ { - it(@"Should build correctly", ^ { - NSArray* softButtons = @[[[SDLSoftButton alloc] init]]; - SDLScrollableMessage* message = [SDLRPCRequestFactory buildScrollableMessage:@"Message Box" timeout:@37821 softButtons:softButtons correlationID:@9783356]; - - expect(message.scrollableMessageBody).to(equal(@"Message Box")); - expect(message.timeout).to(equal(@37821)); - expect(message.softButtons).to(equal(softButtons)); - expect(message.correlationID).to(equal(@9783356)); - }); -}); - -describe(@"BuildSetAppIcon Tests", ^ { - it(@"Should build correctly", ^ { - SDLSetAppIcon* message = [SDLRPCRequestFactory buildSetAppIconWithFileName:@"Iconic" correlationID:@465819]; - - expect(message.syncFileName).to(equal(@"Iconic")); - expect(message.correlationID).to(equal(@465819)); - }); -}); - -describe(@"BuildSetDisplayLayout Tests", ^ { - it(@"Should build correctly", ^ { - SDLSetDisplayLayout* message = [SDLRPCRequestFactory buildSetDisplayLayout:@"NONE" correlationID:@467926]; - - expect(message.displayLayout).to(equal(@"NONE")); - expect(message.correlationID).to(equal(@467926)); - }); -}); - -describe(@"BuildSetGlobalProperties Tests", ^ { - it(@"Should build correctly", ^ { - NSArray* help = @[[[SDLVRHelpItem alloc] init]]; - SDLSetGlobalProperties* message = [SDLRPCRequestFactory buildSetGlobalPropertiesWithHelpText:@"Beyond Help" timeoutText:@"You took too long" vrHelpTitle:@"Voice" - vrHelp:help correlationID:@5666666]; - - expect(((SDLTTSChunk*)[message helpPrompt][0]).text).to(equal(@"Beyond Help")); - expect(((SDLTTSChunk*)[message timeoutPrompt][0]).text).to(equal(@"You took too long")); - expect(message.vrHelpTitle).to(equal(@"Voice")); - expect(message.vrHelp).to(equal(help)); - expect(message.menuTitle).to(beNil()); - expect(message.menuIcon).to(beNil()); - expect(message.keyboardProperties).to(beNil()); - expect(message.correlationID).to(equal(@5666666)); - - message = [SDLRPCRequestFactory buildSetGlobalPropertiesWithHelpText:@"Helpful" timeoutText:@"Timed Out" correlationID:@10010100]; - - expect(((SDLTTSChunk*)[message helpPrompt][0]).text).to(equal(@"Helpful")); - expect(((SDLTTSChunk*)[message timeoutPrompt][0]).text).to(equal(@"Timed Out")); - expect(message.vrHelpTitle).to(beNil()); - expect(message.vrHelp).to(beNil()); - expect(message.menuTitle).to(beNil()); - expect(message.menuIcon).to(beNil()); - expect(message.keyboardProperties).to(beNil()); - expect(message.correlationID).to(equal(@10010100)); - }); -}); - -describe(@"BuildSetMediaClockTimer Tests", ^ { - it(@"Should build correctly", ^ { - SDLSetMediaClockTimer* message = [SDLRPCRequestFactory buildSetMediaClockTimerWithHours:@15 minutes:@36 seconds:@11 updateMode:[SDLUpdateMode COUNTDOWN] correlationID:@404]; - - expect([message startTime].hours).to(equal(@15)); - expect([message startTime].minutes).to(equal(@36)); - expect([message startTime].seconds).to(equal(@11)); - expect(message.endTime).to(beNil()); - expect(message.updateMode).to(equal([SDLUpdateMode COUNTDOWN])); - expect(message.correlationID).to(equal(@404)); - - message = [SDLRPCRequestFactory buildSetMediaClockTimerWithUpdateMode:[SDLUpdateMode RESUME] correlationID:@11213141]; - - expect(message.startTime).to(beNil()); - expect(message.endTime).to(beNil()); - expect(message.updateMode).to(equal([SDLUpdateMode RESUME])); - expect(message.correlationID).to(equal(@11213141)); - }); -}); - -describe(@"BuildShow Tests", ^ { - it(@"Should build correctly", ^ { - SDLImage* image = [[SDLImage alloc] init]; - NSArray* softButtons = @[[[SDLSoftButton alloc] init]]; - SDLShow* message = [SDLRPCRequestFactory buildShowWithMainField1:@"11" mainField2:@"22" mainField3:@"33" mainField4:@"44" statusBar:@"Bar" mediaClock:@"Time" mediaTrack:@"Crucial Line" - alignment:[SDLTextAlignment CENTERED] graphic:image softButtons:softButtons customPresets:@[@"w", @"x", @"y", @"z"] correlationID:@3432343]; - - expect(message.mainField1).to(equal(@"11")); - expect(message.mainField2).to(equal(@"22")); - expect(message.mainField3).to(equal(@"33")); - expect(message.mainField4).to(equal(@"44")); - expect(message.statusBar).to(equal(@"Bar")); - expect(message.mediaClock).to(equal(@"Time")); - expect(message.mediaTrack).to(equal(@"Crucial Line")); - expect(message.alignment).to(equal([SDLTextAlignment CENTERED])); - expect(message.graphic).to(equal(image)); - expect(message.secondaryGraphic).to(beNil()); - expect(message.softButtons).to(equal(softButtons)); - expect(message.customPresets).to(equal(@[@"w", @"x", @"y", @"z"])); - expect(message.correlationID).to(equal(@3432343)); - - message = [SDLRPCRequestFactory buildShowWithMainField1:@"A" mainField2:@"S" statusBar:@"D" mediaClock:@"F" mediaTrack:@"G" alignment:[SDLTextAlignment RIGHT_ALIGNED] correlationID:@999]; - - expect(message.mainField1).to(equal(@"A")); - expect(message.mainField2).to(equal(@"S")); - expect(message.mainField3).to(beNil()); - expect(message.mainField4).to(beNil()); - expect(message.statusBar).to(equal(@"D")); - expect(message.mediaClock).to(equal(@"F")); - expect(message.mediaTrack).to(equal(@"G")); - expect(message.alignment).to(equal([SDLTextAlignment RIGHT_ALIGNED])); - expect(message.graphic).to(beNil()); - expect(message.secondaryGraphic).to(beNil()); - expect(message.softButtons).to(beNil()); - expect(message.customPresets).to(beNil()); - expect(message.correlationID).to(equal(@999)); - - message = [SDLRPCRequestFactory buildShowWithMainField1:@"Hello" mainField2:@"World" alignment:[SDLTextAlignment LEFT_ALIGNED] correlationID:@38792607]; - - expect(message.mainField1).to(equal(@"Hello")); - expect(message.mainField2).to(equal(@"World")); - expect(message.mainField3).to(beNil()); - expect(message.mainField4).to(beNil()); - expect(message.statusBar).to(beNil()); - expect(message.mediaClock).to(beNil()); - expect(message.mediaTrack).to(beNil()); - expect(message.alignment).to(equal([SDLTextAlignment LEFT_ALIGNED])); - expect(message.graphic).to(beNil()); - expect(message.secondaryGraphic).to(beNil()); - expect(message.softButtons).to(beNil()); - expect(message.customPresets).to(beNil()); - expect(message.correlationID).to(equal(@38792607)); - }); -}); - -describe(@"SDLShowConstantTBT Tests", ^ { - __block NSMutableArray *softButtons = nil; - __block SDLImage *image1 = nil; - __block SDLImage *image2 = nil; - __block SDLShowConstantTBT *message = nil; - - describe(@"Should build correctly", ^ { - beforeEach(^{ - softButtons = [@[[[SDLSoftButton alloc] init]] mutableCopy]; - image1 = [[SDLImage alloc]init]; - image2 = [[SDLImage alloc]init]; - message = [SDLRPCRequestFactory buildShowConstantTBTWithString:@"Navigation Text 1" navigationText2:@"Navigation Text 2" eta:@"ETA String" timeToDestination:@"10:31 PM" totalDistance:@"1000 Miles" turnIcon:image1 nextTurnIcon:image2 distanceToManeuver:@100.11 distanceToManeuverScale:@10.20 maneuverComplete:@23.2 softButtons:softButtons correlationID:@1234]; - }); - - it(@"Should properly set title navigation text", ^{ - expect(message.navigationText1).to(equal(@"Navigation Text 1")); - }); - - it(@"Should properly set secondary navigation text", ^{ - expect(message.navigationText2).to(equal(@"Navigation Text 2")); - }); - - it(@"Should properly set Estimated Time Of Arrival (ETA)", ^{ - expect(message.eta).to(equal(@"ETA String")); - }); - - it(@"Should properly set time to distance", ^{ - expect(message.timeToDestination).to(equal(@"10:31 PM")); - }); - - it(@"Should properly set total distance", ^{ - expect(message.totalDistance).to(equal(@"1000 Miles")); - }); - - it(@"Should properly set first turn icon", ^{ - expect(message.turnIcon).to(equal(image1)); - }); - - it(@"Should properly set second turn icon", ^{ - expect(message.nextTurnIcon).to(equal(image2)); - }); - - it(@"Should properly set distance to maneuver", ^{ - expect(message.distanceToManeuver).to(equal(@100.11)); - }); - - it(@"Should properly set scale for distance to maneuver", ^{ - expect(message.distanceToManeuverScale).to(equal(@10.20)); - }); - - it(@"Should properly set maneuver complete", ^{ - expect(message.maneuverComplete).to(equal(@23.2)); - }); - - it(@"Should properly set soft buttons", ^{ - expect(message.softButtons).to(equal(softButtons)); - }); - - it(@"Should properly set the correlation ID", ^{ - expect(message.correlationID).to(equal(@1234)); - }); - }); -}); - -describe(@"BuildSlider Tests", ^ { - it(@"Should build correctly", ^ { - SDLSlider* message = [SDLRPCRequestFactory buildSliderDynamicFooterWithNumTicks:@3 position:@2 sliderHeader:@"HEAD" sliderFooter:@[@"FOOT1", @"FOOT2", @"FOOT3"] timeout:@32321 - correlationID:@200]; - - expect(message.numTicks).to(equal(@3)); - expect(message.position).to(equal(@2)); - expect(message.sliderHeader).to(equal(@"HEAD")); - expect(message.sliderFooter).to(equal(@[@"FOOT1", @"FOOT2", @"FOOT3"])); - expect(message.timeout).to(equal(@32321)); - expect(message.correlationID).to(equal(@200)); - - message = [SDLRPCRequestFactory buildSliderStaticFooterWithNumTicks:@4 position:@2 sliderHeader:@"UP" sliderFooter:@"DOWN" timeout:@65535 correlationID:@1024]; - - expect(message.numTicks).to(equal(@4)); - expect(message.position).to(equal(@2)); - expect(message.sliderHeader).to(equal(@"UP")); - expect(message.sliderFooter).to(equal(@[@"DOWN", @"DOWN", @"DOWN", @"DOWN"])); - expect(message.timeout).to(equal(@65535)); - expect(message.correlationID).to(equal(@1024)); - }); -}); - -describe(@"BuildSpeak Tests", ^ { - it(@"Should build correctly", ^ { - NSArray* ttsChunks = @[[[SDLTTSChunk alloc] init]]; - SDLSpeak* message = [SDLRPCRequestFactory buildSpeakWithTTS:@"GREETINGS HUMAN" correlationID:@65]; - - expect(((SDLTTSChunk*)[message ttsChunks][0]).text).to(equal(@"GREETINGS HUMAN")); - expect(message.correlationID).to(equal(@65)); - - message = [SDLRPCRequestFactory buildSpeakWithTTSChunks:ttsChunks correlationID:@56]; - - expect(message.ttsChunks).to(equal(ttsChunks)); - expect(message.correlationID).to(equal(@56)); - }); -}); - -describe(@"BuildSubscribeButton Tests", ^ { - it(@"Should build correctly", ^ { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - SDLSubscribeButton* message = [SDLRPCRequestFactory buildSubscribeButtonWithName:[SDLButtonName SEARCH] correlationID:@5555555]; -#pragma clang diagnostic pop - - expect(message.buttonName).to(equal([SDLButtonName SEARCH])); - expect(message.correlationID).to(equal(@5555555)); - }); -}); - -describe(@"BuildSubscribeVehicleData Tests", ^ { - it(@"Should build correctly", ^ { - SDLSubscribeVehicleData* message = [SDLRPCRequestFactory buildSubscribeVehicleDataWithGPS:@YES speed:@YES rpm:@YES - fuelLevel:@NO fuelLevelState:@NO instantFuelConsumption:@NO - externalTemperature:@YES prndl:@YES tirePressure:@YES - odometer:@NO beltStatus:@NO bodyInformation:@NO - deviceStatus:@YES driverBraking:@YES wiperStatus:@YES - headLampStatus:@NO engineTorque:@NO accPedalPosition:@NO - steeringWheelAngle:@YES correlationID:@3692581470]; - - expect(message.gps).to(equal(@YES)); - expect(message.speed).to(equal(@YES)); - expect(message.rpm).to(equal(@YES)); - expect(message.fuelLevel).to(equal(@NO)); - expect(message.fuelLevel_State).to(equal(@NO)); - expect(message.instantFuelConsumption).to(equal(@NO)); - expect(message.externalTemperature).to(equal(@YES)); - expect(message.prndl).to(equal(@YES)); - expect(message.tirePressure).to(equal(@YES)); - expect(message.odometer).to(equal(@NO)); - expect(message.beltStatus).to(equal(@NO)); - expect(message.bodyInformation).to(equal(@NO)); - expect(message.deviceStatus).to(equal(@YES)); - expect(message.driverBraking).to(equal(@YES)); - expect(message.wiperStatus).to(equal(@YES)); - expect(message.headLampStatus).to(equal(@NO)); - expect(message.engineTorque).to(equal(@NO)); - expect(message.accPedalPosition).to(equal(@NO)); - expect(message.steeringWheelAngle).to(equal(@YES)); - expect(message.eCallInfo).to(beNil()); - expect(message.airbagStatus).to(beNil()); - expect(message.emergencyEvent).to(beNil()); - expect(message.clusterModeStatus).to(beNil()); - expect(message.myKey).to(beNil()); - expect(message.correlationID).to(equal(@3692581470)); - }); -}); - -describe(@"BuildUnregisterAppInterface Tests", ^ { - it(@"Should build correctly", ^ { - SDLUnregisterAppInterface* message = [SDLRPCRequestFactory buildUnregisterAppInterfaceWithCorrelationID:@4200]; - - expect(message.correlationID).to(equal(@4200)); - }); -}); - -describe(@"BuildUnsubscribeButton Tests", ^ { - it(@"Should build correctly", ^ { - SDLUnsubscribeButton* message = [SDLRPCRequestFactory buildUnsubscribeButtonWithName:[SDLButtonName OK] correlationID:@88]; - - expect(message.buttonName).to(equal([SDLButtonName OK])); - expect(message.correlationID).to(equal(@88)); - }); -}); - -describe(@"BuildSubscribeVehicleData Tests", ^ { - it(@"Should build correctly", ^ { - SDLSubscribeVehicleData* message = [SDLRPCRequestFactory buildSubscribeVehicleDataWithGPS:@YES speed:@NO rpm:@YES - fuelLevel:@YES fuelLevelState:@NO instantFuelConsumption:@NO - externalTemperature:@YES prndl:@NO tirePressure:@YES - odometer:@YES beltStatus:@NO bodyInformation:@NO - deviceStatus:@YES driverBraking:@NO wiperStatus:@YES - headLampStatus:@YES engineTorque:@NO accPedalPosition:@NO - steeringWheelAngle:@YES correlationID:@1627384950]; - - expect(message.gps).to(equal(@YES)); - expect(message.speed).to(equal(@NO)); - expect(message.rpm).to(equal(@YES)); - expect(message.fuelLevel).to(equal(@YES)); - expect(message.fuelLevel_State).to(equal(@NO)); - expect(message.instantFuelConsumption).to(equal(@NO)); - expect(message.externalTemperature).to(equal(@YES)); - expect(message.prndl).to(equal(@NO)); - expect(message.tirePressure).to(equal(@YES)); - expect(message.odometer).to(equal(@YES)); - expect(message.beltStatus).to(equal(@NO)); - expect(message.bodyInformation).to(equal(@NO)); - expect(message.deviceStatus).to(equal(@YES)); - expect(message.driverBraking).to(equal(@NO)); - expect(message.wiperStatus).to(equal(@YES)); - expect(message.headLampStatus).to(equal(@YES)); - expect(message.engineTorque).to(equal(@NO)); - expect(message.accPedalPosition).to(equal(@NO)); - expect(message.steeringWheelAngle).to(equal(@YES)); - expect(message.eCallInfo).to(beNil()); - expect(message.airbagStatus).to(beNil()); - expect(message.emergencyEvent).to(beNil()); - expect(message.clusterModeStatus).to(beNil()); - expect(message.myKey).to(beNil()); - expect(message.correlationID).to(equal(@1627384950)); - }); -}); - -describe(@"SDLUpdateTurnList Tests", ^ { - __block NSMutableArray *softButtons = nil; - __block NSMutableArray *turns = nil; - __block SDLUpdateTurnList *message = nil; - - __block SDLTurn *turn1 = nil; - __block SDLTurn *turn2 = nil; - - describe(@"Should build correctly", ^ { - beforeEach(^{ - softButtons = [@[[[SDLSoftButton alloc] init]] mutableCopy]; - - turn1 = [[SDLTurn alloc] init]; - turn2 = [[SDLTurn alloc] init]; - turns = [@[turn1, turn2] mutableCopy]; - - message = [SDLRPCRequestFactory buildUpdateTurnListWithTurnList:turns softButtons:softButtons correlationID:@1234]; - }); - - it(@"Should properly set Turns", ^{ - expect(message.turnList).to(equal(turns)); - }); - - it(@"Should properly set Soft Buttons", ^{ - expect(message.softButtons).to(equal(softButtons)); - }); - - it(@"Should properly set Correlation Id", ^{ - expect(message.correlationID).to(equal(@1234)); - }); - }); -}); - -QuickSpecEnd - -#pragma clang diagnostic pop diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnAppInterfaceUnregisteredSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnAppInterfaceUnregisteredSpec.m index 2ec566031..b35d34d9c 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnAppInterfaceUnregisteredSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnAppInterfaceUnregisteredSpec.m @@ -18,19 +18,19 @@ it(@"Should set and get correctly", ^ { SDLOnAppInterfaceUnregistered* testNotification = [[SDLOnAppInterfaceUnregistered alloc] init]; - testNotification.reason = [SDLAppInterfaceUnregisteredReason APP_UNAUTHORIZED]; + testNotification.reason = SDLAppInterfaceUnregisteredReasonAppUnauthorized; - expect(testNotification.reason).to(equal([SDLAppInterfaceUnregisteredReason APP_UNAUTHORIZED])); + expect(testNotification.reason).to(equal(SDLAppInterfaceUnregisteredReasonAppUnauthorized)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_notification: - @{NAMES_parameters: - @{NAMES_reason:[SDLAppInterfaceUnregisteredReason APP_UNAUTHORIZED]}, - NAMES_operation_name:NAMES_OnAppInterfaceUnregistered}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameNotification: + @{SDLNameParameters: + @{SDLNameReason:SDLAppInterfaceUnregisteredReasonAppUnauthorized}, + SDLNameOperationName:SDLNameOnAppInterfaceUnregistered}} mutableCopy]; SDLOnAppInterfaceUnregistered* testNotification = [[SDLOnAppInterfaceUnregistered alloc] initWithDictionary:dict]; - expect(testNotification.reason).to(equal([SDLAppInterfaceUnregisteredReason APP_UNAUTHORIZED])); + expect(testNotification.reason).to(equal(SDLAppInterfaceUnregisteredReasonAppUnauthorized)); }); it(@"Should return nil if not set", ^ { @@ -40,4 +40,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnButtonEventSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnButtonEventSpec.m index becc5c251..b303ffd1a 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnButtonEventSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnButtonEventSpec.m @@ -20,26 +20,26 @@ it(@"Should set and get correctly", ^ { SDLOnButtonEvent* testNotification = [[SDLOnButtonEvent alloc] init]; - testNotification.buttonName = [SDLButtonName CUSTOM_BUTTON]; - testNotification.buttonEventMode = [SDLButtonEventMode BUTTONDOWN]; + testNotification.buttonName = SDLButtonNameCustomButton; + testNotification.buttonEventMode = SDLButtonEventModeButtonDown; testNotification.customButtonID = @4252; - expect(testNotification.buttonName).to(equal([SDLButtonName CUSTOM_BUTTON])); - expect(testNotification.buttonEventMode).to(equal([SDLButtonEventMode BUTTONDOWN])); + expect(testNotification.buttonName).to(equal(SDLButtonNameCustomButton)); + expect(testNotification.buttonEventMode).to(equal(SDLButtonEventModeButtonDown)); expect(testNotification.customButtonID).to(equal(@4252)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_notification: - @{NAMES_parameters: - @{NAMES_buttonName:[SDLButtonName CUSTOM_BUTTON], - NAMES_buttonEventMode:[SDLButtonEventMode BUTTONDOWN], - NAMES_customButtonID:@4252}, - NAMES_operation_name:NAMES_OnButtonEvent}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameNotification: + @{SDLNameParameters: + @{SDLNameButtonName:SDLButtonNameCustomButton, + SDLNameButtonEventMode:SDLButtonEventModeButtonDown, + SDLNameCustomButtonId:@4252}, + SDLNameOperationName:SDLNameOnButtonEvent}} mutableCopy]; SDLOnButtonEvent* testNotification = [[SDLOnButtonEvent alloc] initWithDictionary:dict]; - expect(testNotification.buttonName).to(equal([SDLButtonName CUSTOM_BUTTON])); - expect(testNotification.buttonEventMode).to(equal([SDLButtonEventMode BUTTONDOWN])); + expect(testNotification.buttonName).to(equal(SDLButtonNameCustomButton)); + expect(testNotification.buttonEventMode).to(equal(SDLButtonEventModeButtonDown)); expect(testNotification.customButtonID).to(equal(@4252)); }); @@ -52,4 +52,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnButtonPressSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnButtonPressSpec.m index 4467f72a5..5737c2f81 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnButtonPressSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnButtonPressSpec.m @@ -20,26 +20,26 @@ it(@"Should set and get correctly", ^ { SDLOnButtonPress* testNotification = [[SDLOnButtonPress alloc] init]; - testNotification.buttonName = [SDLButtonName CUSTOM_BUTTON]; - testNotification.buttonPressMode = [SDLButtonPressMode LONG]; + testNotification.buttonName = SDLButtonNameCustomButton; + testNotification.buttonPressMode = SDLButtonPressModeLong; testNotification.customButtonID = @5642; - expect(testNotification.buttonName).to(equal([SDLButtonName CUSTOM_BUTTON])); - expect(testNotification.buttonPressMode).to(equal([SDLButtonPressMode LONG])); + expect(testNotification.buttonName).to(equal(SDLButtonNameCustomButton)); + expect(testNotification.buttonPressMode).to(equal(SDLButtonPressModeLong)); expect(testNotification.customButtonID).to(equal(@5642)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_notification: - @{NAMES_parameters: - @{NAMES_buttonName:[SDLButtonName CUSTOM_BUTTON], - NAMES_buttonPressMode:[SDLButtonPressMode LONG], - NAMES_customButtonID:@5642}, - NAMES_operation_name:NAMES_OnButtonPress}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameNotification: + @{SDLNameParameters: + @{SDLNameButtonName:SDLButtonNameCustomButton, + SDLNameButtonPressMode:SDLButtonPressModeLong, + SDLNameCustomButtonId:@5642}, + SDLNameOperationName:SDLNameOnButtonPress}} mutableCopy]; SDLOnButtonPress* testNotification = [[SDLOnButtonPress alloc] initWithDictionary:dict]; - expect(testNotification.buttonName).to(equal([SDLButtonName CUSTOM_BUTTON])); - expect(testNotification.buttonPressMode).to(equal([SDLButtonPressMode LONG])); + expect(testNotification.buttonName).to(equal(SDLButtonNameCustomButton)); + expect(testNotification.buttonPressMode).to(equal(SDLButtonPressModeLong)); expect(testNotification.customButtonID).to(equal(@5642)); }); @@ -52,4 +52,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnCommandSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnCommandSpec.m index 6b8afd10b..6257a13cb 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnCommandSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnCommandSpec.m @@ -19,22 +19,22 @@ SDLOnCommand* testNotification = [[SDLOnCommand alloc] init]; testNotification.cmdID = @5676544; - testNotification.triggerSource = [SDLTriggerSource KEYBOARD]; + testNotification.triggerSource = SDLTriggerSourceKeyboard; expect(testNotification.cmdID).to(equal(@5676544)); - expect(testNotification.triggerSource).to(equal([SDLTriggerSource KEYBOARD])); + expect(testNotification.triggerSource).to(equal(SDLTriggerSourceKeyboard)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_notification: - @{NAMES_parameters: - @{NAMES_cmdID:@5676544, - NAMES_triggerSource:[SDLTriggerSource KEYBOARD]}, - NAMES_operation_name:NAMES_OnCommand}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameNotification: + @{SDLNameParameters: + @{SDLNameCommandId:@5676544, + SDLNameTriggerSource:SDLTriggerSourceKeyboard}, + SDLNameOperationName:SDLNameOnCommand}} mutableCopy]; SDLOnCommand* testNotification = [[SDLOnCommand alloc] initWithDictionary:dict]; expect(testNotification.cmdID).to(equal(@5676544)); - expect(testNotification.triggerSource).to(equal([SDLTriggerSource KEYBOARD])); + expect(testNotification.triggerSource).to(equal(SDLTriggerSourceKeyboard)); }); it(@"Should return nil if not set", ^ { @@ -45,4 +45,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnDriverDistractionSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnDriverDistractionSpec.m index 79c90bdd7..b46e31ee6 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnDriverDistractionSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnDriverDistractionSpec.m @@ -18,19 +18,19 @@ it(@"Should set and get correctly", ^ { SDLOnDriverDistraction* testNotification = [[SDLOnDriverDistraction alloc] init]; - testNotification.state = [SDLDriverDistractionState DD_ON]; + testNotification.state = SDLDriverDistractionStateOn; - expect(testNotification.state).to(equal([SDLDriverDistractionState DD_ON])); + expect(testNotification.state).to(equal(SDLDriverDistractionStateOn)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_notification: - @{NAMES_parameters: - @{NAMES_state:[SDLDriverDistractionState DD_ON]}, - NAMES_operation_name:NAMES_OnDriverDistraction}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameNotification: + @{SDLNameParameters: + @{SDLNameState:SDLDriverDistractionStateOn}, + SDLNameOperationName:SDLNameOnDriverDistraction}} mutableCopy]; SDLOnDriverDistraction* testNotification = [[SDLOnDriverDistraction alloc] initWithDictionary:dict]; - expect(testNotification.state).to(equal([SDLDriverDistractionState DD_ON])); + expect(testNotification.state).to(equal(SDLDriverDistractionStateOn)); }); it(@"Should return nil if not set", ^ { @@ -40,4 +40,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnEncodedSyncPDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnEncodedSyncPDataSpec.m index a8844e22a..b3fd3447e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnEncodedSyncPDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnEncodedSyncPDataSpec.m @@ -27,12 +27,12 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_notification: - @{NAMES_parameters: - @{NAMES_data:[@[@0] mutableCopy], - NAMES_URL:@"www.zombo.com", - NAMES_Timeout:@564}, - NAMES_operation_name:NAMES_OnEncodedSyncPData}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameNotification: + @{SDLNameParameters: + @{SDLNameData:[@[@0] mutableCopy], + SDLNameURLUppercase:@"www.zombo.com", + SDLNameTimeoutCapitalized:@564}, + SDLNameOperationName:SDLNameOnEncodedSyncPData}} mutableCopy]; SDLOnEncodedSyncPData* testNotification = [[SDLOnEncodedSyncPData alloc] initWithDictionary:dict]; expect(testNotification.data).to(equal([@[@0] mutableCopy])); @@ -49,4 +49,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnHMIStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnHMIStatusSpec.m index c2d58a484..5f442276e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnHMIStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnHMIStatusSpec.m @@ -21,27 +21,27 @@ it(@"Should set and get correctly", ^ { SDLOnHMIStatus* testNotification = [[SDLOnHMIStatus alloc] init]; - testNotification.hmiLevel = [SDLHMILevel LIMITED]; - testNotification.audioStreamingState = [SDLAudioStreamingState ATTENUATED]; - testNotification.systemContext = [SDLSystemContext HMI_OBSCURED]; + testNotification.hmiLevel = SDLHMILevelLimited; + testNotification.audioStreamingState = SDLAudioStreamingStateAttenuated; + testNotification.systemContext = SDLSystemContextHMIObscured; - expect(testNotification.hmiLevel).to(equal([SDLHMILevel LIMITED])); - expect(testNotification.audioStreamingState).to(equal([SDLAudioStreamingState ATTENUATED])); - expect(testNotification.systemContext).to(equal([SDLSystemContext HMI_OBSCURED])); + expect(testNotification.hmiLevel).to(equal(SDLHMILevelLimited)); + expect(testNotification.audioStreamingState).to(equal(SDLAudioStreamingStateAttenuated)); + expect(testNotification.systemContext).to(equal(SDLSystemContextHMIObscured)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_notification: - @{NAMES_parameters: - @{NAMES_hmiLevel:[SDLHMILevel LIMITED], - NAMES_audioStreamingState:[SDLAudioStreamingState ATTENUATED], - NAMES_systemContext:[SDLSystemContext HMI_OBSCURED]}, - NAMES_operation_name:NAMES_OnHMIStatus}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameNotification: + @{SDLNameParameters: + @{SDLNameHMILevel:SDLHMILevelLimited, + SDLNameAudioStreamingState:SDLAudioStreamingStateAttenuated, + SDLNameSystemContext:SDLSystemContextHMIObscured}, + SDLNameOperationName:SDLNameOnHMIStatus}} mutableCopy]; SDLOnHMIStatus* testNotification = [[SDLOnHMIStatus alloc] initWithDictionary:dict]; - expect(testNotification.hmiLevel).to(equal([SDLHMILevel LIMITED])); - expect(testNotification.audioStreamingState).to(equal([SDLAudioStreamingState ATTENUATED])); - expect(testNotification.systemContext).to(equal([SDLSystemContext HMI_OBSCURED])); + expect(testNotification.hmiLevel).to(equal(SDLHMILevelLimited)); + expect(testNotification.audioStreamingState).to(equal(SDLAudioStreamingStateAttenuated)); + expect(testNotification.systemContext).to(equal(SDLSystemContextHMIObscured)); }); it(@"Should return nil if not set", ^ { @@ -53,4 +53,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnHashChangeSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnHashChangeSpec.m index 308347c61..14148d4ad 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnHashChangeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnHashChangeSpec.m @@ -23,10 +23,10 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_notification: - @{NAMES_parameters: - @{NAMES_hashID:@"hash"}, - NAMES_operation_name:NAMES_OnHashChange}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameNotification: + @{SDLNameParameters: + @{SDLNameHashId:@"hash"}, + SDLNameOperationName:SDLNameOnHashChange}} mutableCopy]; SDLOnHashChange* testNotification = [[SDLOnHashChange alloc] initWithDictionary:dict]; expect(testNotification.hashID).to(equal(@"hash")); @@ -39,4 +39,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnInteriorVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnInteriorVehicleDataSpec.m new file mode 100644 index 000000000..0a4badfe2 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnInteriorVehicleDataSpec.m @@ -0,0 +1,49 @@ +// +// SDLOnInteriorVehicleDataSpec.m +// SmartDeviceLink-iOS +// + +#import + +#import +#import + +#import "SDLOnInteriorVehicleData.h" +#import "SDLNames.h" +#import "SDLModuleData.h" + +QuickSpecBegin(SDLOnInteriorVehicleDataSpec) + +describe(@"Getter/Setter Tests", ^ { + __block SDLModuleData* someModuleData = nil; + + beforeEach(^{ + someModuleData = [[SDLModuleData alloc] init]; + }); + + it(@"Should set and get correctly", ^ { + SDLOnInteriorVehicleData* testNotification = [[SDLOnInteriorVehicleData alloc] init]; + + testNotification.moduleData = someModuleData; + + expect(testNotification.moduleData).to(equal(someModuleData)); + }); + + it(@"Should get correctly when initialized", ^ { + NSMutableDictionary *dict = [@{SDLNameNotification: + @{SDLNameParameters: + @{SDLNameModuleData:someModuleData}, + SDLNameOperationName:SDLNameOnInteriorVehicleData}} mutableCopy]; + SDLOnInteriorVehicleData* testNotification = [[SDLOnInteriorVehicleData alloc] initWithDictionary:dict]; + + expect(testNotification.moduleData).to(equal(someModuleData)); + }); + + it(@"Should return nil if not set", ^ { + SDLOnInteriorVehicleData* testNotification = [[SDLOnInteriorVehicleData alloc] init]; + + expect(testNotification.moduleData).to(beNil()); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnKeyboardInputSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnKeyboardInputSpec.m index cf87e853d..4f64d8f37 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnKeyboardInputSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnKeyboardInputSpec.m @@ -18,22 +18,22 @@ it(@"Should set and get correctly", ^ { SDLOnKeyboardInput* testNotification = [[SDLOnKeyboardInput alloc] init]; - testNotification.event = [SDLKeyboardEvent ENTRY_SUBMITTED]; + testNotification.event = SDLKeyboardEventSubmitted; testNotification.data = @"qwertyg"; - expect(testNotification.event).to(equal([SDLKeyboardEvent ENTRY_SUBMITTED])); + expect(testNotification.event).to(equal(SDLKeyboardEventSubmitted)); expect(testNotification.data).to(equal(@"qwertyg")); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_notification: - @{NAMES_parameters: - @{NAMES_event:[SDLKeyboardEvent ENTRY_SUBMITTED], - NAMES_data:@"qwertyg"}, - NAMES_operation_name:NAMES_OnKeyboardInput}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameNotification: + @{SDLNameParameters: + @{SDLNameEvent:SDLKeyboardEventSubmitted, + SDLNameData:@"qwertyg"}, + SDLNameOperationName:SDLNameOnKeyboardInput}} mutableCopy]; SDLOnKeyboardInput* testNotification = [[SDLOnKeyboardInput alloc] initWithDictionary:dict]; - expect(testNotification.event).to(equal([SDLKeyboardEvent ENTRY_SUBMITTED])); + expect(testNotification.event).to(equal(SDLKeyboardEventSubmitted)); expect(testNotification.data).to(equal(@"qwertyg")); }); @@ -45,4 +45,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnLanguageChangeSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnLanguageChangeSpec.m index f9009f69c..6dfa256f6 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnLanguageChangeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnLanguageChangeSpec.m @@ -19,23 +19,23 @@ it(@"Should set and get correctly", ^ { SDLOnLanguageChange* testNotification = [[SDLOnLanguageChange alloc] init]; - testNotification.language = [SDLLanguage ES_ES]; - testNotification.hmiDisplayLanguage = [SDLLanguage DE_DE]; + testNotification.language = SDLLanguageEsEs; + testNotification.hmiDisplayLanguage = SDLLanguageDeDe; - expect(testNotification.language).to(equal([SDLLanguage ES_ES])); - expect(testNotification.hmiDisplayLanguage).to(equal([SDLLanguage DE_DE])); + expect(testNotification.language).to(equal(SDLLanguageEsEs)); + expect(testNotification.hmiDisplayLanguage).to(equal(SDLLanguageDeDe)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_notification: - @{NAMES_parameters: - @{NAMES_language:[SDLLanguage ES_ES], - NAMES_hmiDisplayLanguage:[SDLLanguage DE_DE]}, - NAMES_operation_name:NAMES_OnLanguageChange}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameNotification: + @{SDLNameParameters: + @{SDLNameLanguage:SDLLanguageEsEs, + SDLNameHMIDisplayLanguage:SDLLanguageDeDe}, + SDLNameOperationName:SDLNameOnLanguageChange}} mutableCopy]; SDLOnLanguageChange* testNotification = [[SDLOnLanguageChange alloc] initWithDictionary:dict]; - expect(testNotification.language).to(equal([SDLLanguage ES_ES])); - expect(testNotification.hmiDisplayLanguage).to(equal([SDLLanguage DE_DE])); + expect(testNotification.language).to(equal(SDLLanguageEsEs)); + expect(testNotification.hmiDisplayLanguage).to(equal(SDLLanguageDeDe)); }); it(@"Should return nil if not set", ^ { @@ -46,4 +46,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnLockScreenStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnLockScreenStatusSpec.m index d438ec621..c2e64ef3a 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnLockScreenStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnLockScreenStatusSpec.m @@ -21,29 +21,29 @@ testNotification.driverDistractionStatus = @NO; testNotification.userSelected = @3; - testNotification.lockScreenStatus = [SDLLockScreenStatus REQUIRED]; - testNotification.hmiLevel = [SDLHMILevel NONE]; + testNotification.lockScreenStatus = SDLLockScreenStatusRequired; + testNotification.hmiLevel = SDLHMILevelNone; expect(testNotification.driverDistractionStatus).to(equal(@NO)); expect(testNotification.userSelected).to(equal(@3)); - expect(testNotification.lockScreenStatus).to(equal([SDLLockScreenStatus REQUIRED])); - expect(testNotification.hmiLevel).to(equal([SDLHMILevel NONE])); + expect(testNotification.lockScreenStatus).to(equal(SDLLockScreenStatusRequired)); + expect(testNotification.hmiLevel).to(equal(SDLHMILevelNone)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_notification: - @{NAMES_parameters: - @{@"driverdistractionstatus":@NO, - @"userselected":@3, - @"OnLockScreenStatus":[SDLLockScreenStatus REQUIRED], - @"hmilevel":[SDLHMILevel NONE]}, - NAMES_operation_name:@"OnLockScreenStatus"}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameNotification: + @{SDLNameParameters: + @{@"driverDistractionStatus":@NO, + @"userSelected":@3, + @"OnLockScreenStatus":SDLLockScreenStatusRequired, + @"hmiLevel":SDLHMILevelNone}, + SDLNameOperationName:@"OnLockScreenStatus"}} mutableCopy]; SDLOnLockScreenStatus* testNotification = [[SDLOnLockScreenStatus alloc] initWithDictionary:dict]; expect(testNotification.driverDistractionStatus).to(equal(@NO)); expect(testNotification.userSelected).to(equal(@3)); - expect(testNotification.lockScreenStatus).to(equal([SDLLockScreenStatus REQUIRED])); - expect(testNotification.hmiLevel).to(equal([SDLHMILevel NONE])); + expect(testNotification.lockScreenStatus).to(equal(SDLLockScreenStatusRequired)); + expect(testNotification.hmiLevel).to(equal(SDLHMILevelNone)); }); it(@"Should return nil if not set", ^ { @@ -56,4 +56,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnPermissionsChangeSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnPermissionsChangeSpec.m index 5a5d349cc..a66e22654 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnPermissionsChangeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnPermissionsChangeSpec.m @@ -26,10 +26,10 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_notification: - @{NAMES_parameters: - @{NAMES_permissionItem:[@[item] mutableCopy]}, - NAMES_operation_name:NAMES_OnPermissionsChange}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameNotification: + @{SDLNameParameters: + @{SDLNamePermissionItem:[@[item] mutableCopy]}, + SDLNameOperationName:SDLNameOnPermissionsChange}} mutableCopy]; SDLOnPermissionsChange* testNotification = [[SDLOnPermissionsChange alloc] initWithDictionary:dict]; expect(testNotification.permissionItem).to(equal([@[item] mutableCopy])); @@ -42,4 +42,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnSyncPDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnSyncPDataSpec.m index 34ac9af9e..c14fe1d52 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnSyncPDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnSyncPDataSpec.m @@ -25,11 +25,11 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_notification: - @{NAMES_parameters: - @{NAMES_URL:@"https://www.youtube.com/watch?v=ygr5AHufBN4", - NAMES_Timeout:@8357}, - NAMES_operation_name:NAMES_OnSyncPData}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameNotification: + @{SDLNameParameters: + @{SDLNameURLUppercase:@"https://www.youtube.com/watch?v=ygr5AHufBN4", + SDLNameTimeoutCapitalized:@8357}, + SDLNameOperationName:SDLNameOnSyncPData}} mutableCopy]; SDLOnSyncPData* testNotification = [[SDLOnSyncPData alloc] initWithDictionary:dict]; expect(testNotification.URL).to(equal(@"https://www.youtube.com/watch?v=ygr5AHufBN4")); @@ -44,4 +44,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnSystemRequestSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnSystemRequestSpec.m index ed235871e..6a3f51772 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnSystemRequestSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnSystemRequestSpec.m @@ -20,37 +20,37 @@ it(@"Should set and get correctly", ^ { SDLOnSystemRequest* testNotification = [[SDLOnSystemRequest alloc] init]; - testNotification.requestType = [SDLRequestType FILE_RESUME]; + testNotification.requestType = SDLRequestTypeFileResume; testNotification.url = [@[@"www.google.com"] mutableCopy]; testNotification.timeout = @52345; - testNotification.fileType = [SDLFileType GRAPHIC_PNG]; + testNotification.fileType = SDLFileTypePNG; testNotification.offset = @2532678684; testNotification.length = @50000000000; - expect(testNotification.requestType).to(equal([SDLRequestType FILE_RESUME])); + expect(testNotification.requestType).to(equal(SDLRequestTypeFileResume)); expect(testNotification.url).to(equal([@[@"www.google.com"] mutableCopy])); expect(testNotification.timeout).to(equal(@52345)); - expect(testNotification.fileType).to(equal([SDLFileType GRAPHIC_PNG])); + expect(testNotification.fileType).to(equal(SDLFileTypePNG)); expect(testNotification.offset).to(equal(@2532678684)); expect(testNotification.length).to(equal(@50000000000)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_notification: - @{NAMES_parameters: - @{NAMES_requestType:[SDLRequestType FILE_RESUME], - NAMES_url:[@[@"www.google.com"] mutableCopy], - NAMES_timeout:@52345, - NAMES_fileType:[SDLFileType GRAPHIC_PNG], - NAMES_offset:@2532678684, - NAMES_length:@50000000000}, - NAMES_operation_name:NAMES_OnSystemRequest}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameNotification: + @{SDLNameParameters: + @{SDLNameRequestType:SDLRequestTypeFileResume, + SDLNameURL:[@[@"www.google.com"] mutableCopy], + SDLNameTimeout:@52345, + SDLNameFileType:SDLFileTypePNG, + SDLNameOffset:@2532678684, + SDLNameLength:@50000000000}, + SDLNameOperationName:SDLNameOnSystemRequest}} mutableCopy]; SDLOnSystemRequest* testNotification = [[SDLOnSystemRequest alloc] initWithDictionary:dict]; - expect(testNotification.requestType).to(equal([SDLRequestType FILE_RESUME])); + expect(testNotification.requestType).to(equal(SDLRequestTypeFileResume)); expect(testNotification.url).to(equal([@[@"www.google.com"] mutableCopy])); expect(testNotification.timeout).to(equal(@52345)); - expect(testNotification.fileType).to(equal([SDLFileType GRAPHIC_PNG])); + expect(testNotification.fileType).to(equal(SDLFileTypePNG)); expect(testNotification.offset).to(equal(@2532678684)); expect(testNotification.length).to(equal(@50000000000)); }); @@ -67,4 +67,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnTBTClientStateSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnTBTClientStateSpec.m index b1391d033..70ed4648b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnTBTClientStateSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnTBTClientStateSpec.m @@ -19,19 +19,19 @@ it(@"Should set and get correctly", ^ { SDLOnTBTClientState* testNotification = [[SDLOnTBTClientState alloc] init]; - testNotification.state = [SDLTBTState ETA_REQUEST]; + testNotification.state = SDLTBTStateETARequest; - expect(testNotification.state).to(equal([SDLTBTState ETA_REQUEST])); + expect(testNotification.state).to(equal(SDLTBTStateETARequest)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_notification: - @{NAMES_parameters: - @{NAMES_state:[SDLTBTState ETA_REQUEST]}, - NAMES_operation_name:NAMES_OnTBTClientState}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameNotification: + @{SDLNameParameters: + @{SDLNameState:SDLTBTStateETARequest}, + SDLNameOperationName:SDLNameOnTBTClientState}} mutableCopy]; SDLOnTBTClientState* testNotification = [[SDLOnTBTClientState alloc] initWithDictionary:dict]; - expect(testNotification.state).to(equal([SDLTBTState ETA_REQUEST])); + expect(testNotification.state).to(equal(SDLTBTStateETARequest)); }); it(@"Should return nil if not set", ^ { @@ -41,4 +41,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnTouchEventSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnTouchEventSpec.m index 298ffef9f..930ed95f8 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnTouchEventSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnTouchEventSpec.m @@ -22,22 +22,22 @@ it(@"Should set and get correctly", ^ { SDLOnTouchEvent* testNotification = [[SDLOnTouchEvent alloc] init]; - testNotification.type = [SDLTouchType BEGIN]; + testNotification.type = SDLTouchTypeBegin; testNotification.event = [@[event] mutableCopy]; - expect(testNotification.type).to(equal([SDLTouchType BEGIN])); + expect(testNotification.type).to(equal(SDLTouchTypeBegin)); expect(testNotification.event).to(equal([@[event] mutableCopy])); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_notification: - @{NAMES_parameters: - @{NAMES_type:[SDLTouchType BEGIN], - NAMES_event:[@[event] mutableCopy]}, - NAMES_operation_name:NAMES_OnTouchEvent}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameNotification: + @{SDLNameParameters: + @{SDLNameType:SDLTouchTypeBegin, + SDLNameEvent:[@[event] mutableCopy]}, + SDLNameOperationName:SDLNameOnTouchEvent}} mutableCopy]; SDLOnTouchEvent* testNotification = [[SDLOnTouchEvent alloc] initWithDictionary:dict]; - expect(testNotification.type).to(equal([SDLTouchType BEGIN])); + expect(testNotification.type).to(equal(SDLTouchTypeBegin)); expect(testNotification.event).to(equal([@[event] mutableCopy])); }); @@ -49,4 +49,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m index 17704a304..81d5a1a57 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m @@ -34,18 +34,18 @@ testNotification.speed = @70.1; testNotification.rpm = @4242; testNotification.fuelLevel = @10.3; - testNotification.fuelLevel_State = [SDLComponentVolumeStatus ALERT]; + testNotification.fuelLevel_State = SDLComponentVolumeStatusAlert; testNotification.instantFuelConsumption = @4000.63; testNotification.externalTemperature = @-10; testNotification.vin = @"222222222722"; - testNotification.prndl = [SDLPRNDL DRIVE]; + testNotification.prndl = SDLPRNDLDrive; testNotification.tirePressure = tires; testNotification.odometer = @100050; testNotification.beltStatus = belt; testNotification.bodyInformation = body; testNotification.deviceStatus = device; - testNotification.driverBraking = [SDLVehicleDataEventStatus _YES]; - testNotification.wiperStatus = [SDLWiperStatus STALLED]; + testNotification.driverBraking = SDLVehicleDataEventStatusYes; + testNotification.wiperStatus = SDLWiperStatusStalled; testNotification.headLampStatus = headLamp; testNotification.engineTorque = @-200.124; testNotification.accPedalPosition = @99.99999999; @@ -60,18 +60,18 @@ expect(testNotification.speed).to(equal(@70.1)); expect(testNotification.rpm).to(equal(@4242)); expect(testNotification.fuelLevel).to(equal(@10.3)); - expect(testNotification.fuelLevel_State).to(equal([SDLComponentVolumeStatus ALERT])); + expect(testNotification.fuelLevel_State).to(equal(SDLComponentVolumeStatusAlert)); expect(testNotification.instantFuelConsumption).to(equal(@4000.63)); expect(testNotification.externalTemperature).to(equal(@-10)); expect(testNotification.vin).to(equal(@"222222222722")); - expect(testNotification.prndl).to(equal([SDLPRNDL DRIVE])); + expect(testNotification.prndl).to(equal(SDLPRNDLDrive)); expect(testNotification.tirePressure).to(equal(tires)); expect(testNotification.odometer).to(equal(@100050)); expect(testNotification.beltStatus).to(equal(belt)); expect(testNotification.bodyInformation).to(equal(body)); expect(testNotification.deviceStatus).to(equal(device)); - expect(testNotification.driverBraking).to(equal([SDLVehicleDataEventStatus _YES])); - expect(testNotification.wiperStatus).to(equal([SDLWiperStatus STALLED])); + expect(testNotification.driverBraking).to(equal(SDLVehicleDataEventStatusYes)); + expect(testNotification.wiperStatus).to(equal(SDLWiperStatusStalled)); expect(testNotification.headLampStatus).to(equal(headLamp)); expect(testNotification.engineTorque).to(equal(@-200.124)); expect(testNotification.accPedalPosition).to(equal(@99.99999999)); @@ -84,52 +84,52 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_notification: - @{NAMES_parameters: - @{NAMES_gps:gps, - NAMES_speed:@70.1, - NAMES_rpm:@4242, - NAMES_fuelLevel:@10.3, - NAMES_fuelLevel_State:[SDLComponentVolumeStatus ALERT], - NAMES_instantFuelConsumption:@4000.63, - NAMES_externalTemperature:@-10, - NAMES_vin:@"222222222722", - NAMES_prndl:[SDLPRNDL DRIVE], - NAMES_tirePressure:tires, - NAMES_odometer:@100050, - NAMES_beltStatus:belt, - NAMES_bodyInformation:body, - NAMES_deviceStatus:device, - NAMES_driverBraking:[SDLVehicleDataEventStatus _YES], - NAMES_wiperStatus:[SDLWiperStatus STALLED], - NAMES_headLampStatus:headLamp, - NAMES_engineTorque:@-200.124, - NAMES_accPedalPosition:@99.99999999, - NAMES_steeringWheelAngle:@0.000000001, - NAMES_eCallInfo:eCall, - NAMES_airbagStatus:airbag, - NAMES_emergencyEvent:event, - NAMES_clusterModeStatus:clusterMode, - NAMES_myKey:myKey}, - NAMES_operation_name:NAMES_OnVehicleData}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameNotification: + @{SDLNameParameters: + @{SDLNameGPS:gps, + SDLNameSpeed:@70.1, + SDLNameRPM:@4242, + SDLNameFuelLevel:@10.3, + SDLNameFuelLevelState:SDLComponentVolumeStatusAlert, + SDLNameInstantFuelConsumption:@4000.63, + SDLNameExternalTemperature:@-10, + SDLNameVIN:@"222222222722", + SDLNamePRNDL:SDLPRNDLDrive, + SDLNameTirePressure:tires, + SDLNameOdometer:@100050, + SDLNameBeltStatus:belt, + SDLNameBodyInformation:body, + SDLNameDeviceStatus:device, + SDLNameDriverBraking:SDLVehicleDataEventStatusYes, + SDLNameWiperStatus:SDLWiperStatusStalled, + SDLNameHeadLampStatus:headLamp, + SDLNameEngineTorque:@-200.124, + SDLNameAccelerationPedalPosition:@99.99999999, + SDLNameSteeringWheelAngle:@0.000000001, + SDLNameECallInfo:eCall, + SDLNameAirbagStatus:airbag, + SDLNameEmergencyEvent:event, + SDLNameClusterModeStatus:clusterMode, + SDLNameMyKey:myKey}, + SDLNameOperationName:SDLNameOnVehicleData}} mutableCopy]; SDLOnVehicleData* testNotification = [[SDLOnVehicleData alloc] initWithDictionary:dict]; expect(testNotification.gps).to(equal(gps)); expect(testNotification.speed).to(equal(@70.1)); expect(testNotification.rpm).to(equal(@4242)); expect(testNotification.fuelLevel).to(equal(@10.3)); - expect(testNotification.fuelLevel_State).to(equal([SDLComponentVolumeStatus ALERT])); + expect(testNotification.fuelLevel_State).to(equal(SDLComponentVolumeStatusAlert)); expect(testNotification.instantFuelConsumption).to(equal(@4000.63)); expect(testNotification.externalTemperature).to(equal(@-10)); expect(testNotification.vin).to(equal(@"222222222722")); - expect(testNotification.prndl).to(equal([SDLPRNDL DRIVE])); + expect(testNotification.prndl).to(equal(SDLPRNDLDrive)); expect(testNotification.tirePressure).to(equal(tires)); expect(testNotification.odometer).to(equal(@100050)); expect(testNotification.beltStatus).to(equal(belt)); expect(testNotification.bodyInformation).to(equal(body)); expect(testNotification.deviceStatus).to(equal(device)); - expect(testNotification.driverBraking).to(equal([SDLVehicleDataEventStatus _YES])); - expect(testNotification.wiperStatus).to(equal([SDLWiperStatus STALLED])); + expect(testNotification.driverBraking).to(equal(SDLVehicleDataEventStatusYes)); + expect(testNotification.wiperStatus).to(equal(SDLWiperStatusStalled)); expect(testNotification.headLampStatus).to(equal(headLamp)); expect(testNotification.engineTorque).to(equal(@-200.124)); expect(testNotification.accPedalPosition).to(equal(@99.99999999)); @@ -172,4 +172,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnWaypointChangeSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnWaypointChangeSpec.m index 1bdf53442..bee2e3cda 100644 --- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnWaypointChangeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnWaypointChangeSpec.m @@ -1,4 +1,4 @@ -// SDLOnWaypointChangeSpec.m +// SDLOnWayPointChangeSpec.m // #import @@ -6,7 +6,7 @@ #import #import -#import "SDLOnWaypointChange.h" +#import "SDLOnWayPointChange.h" #import "SDLImage.h" #import "SDLLocationCoordinate.h" @@ -14,7 +14,7 @@ #import "SDLNames.h" #import "SDLOasisAddress.h" -QuickSpecBegin(SDLOnWaypointChangeSpec) +QuickSpecBegin(SDLOnWayPointChangeSpec) describe(@"Getter/Setter Tests", ^ { __block SDLOnWayPointChange* testNotification = nil; @@ -63,12 +63,12 @@ someWaypoints = @[someLocation]; - NSDictionary *initDict = @{NAMES_notification : @{ - NAMES_parameters: @{ - NAMES_waypoints: someWaypoints + NSDictionary *initDict = @{SDLNameNotification : @{ + SDLNameParameters: @{ + SDLNameWayPoints: someWaypoints } }, - NAMES_operation_name:NAMES_OnWaypointChange + SDLNameOperationName:SDLNameOnWayPointChange }; testNotification = [[SDLOnWayPointChange alloc] initWithDictionary:[NSMutableDictionary dictionaryWithDictionary:initDict]]; @@ -84,8 +84,8 @@ context(@"when parameters are not set", ^{ beforeEach(^{ NSDictionary *initDict = @{ - NAMES_request: @{ - NAMES_parameters: @{} + SDLNameNotification: @{ + SDLNameParameters: @{} } }; diff --git a/SmartDeviceLinkTests/RPCSpecs/PayloadSpecs/SDLRPCPayloadSpec.m b/SmartDeviceLinkTests/RPCSpecs/PayloadSpecs/SDLRPCPayloadSpec.m index 441eca732..f0632eb87 100644 --- a/SmartDeviceLinkTests/RPCSpecs/PayloadSpecs/SDLRPCPayloadSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/PayloadSpecs/SDLRPCPayloadSpec.m @@ -15,9 +15,9 @@ QuickSpecBegin(SDLRPCPayloadSpec) __block SDLRPCPayload* testPayload; -__block NSDictionary* dict = @{NAMES_response: - @{NAMES_parameters:@{}, - NAMES_operation_name:NAMES_DeleteCommand}}; +__block NSDictionary* dict = @{SDLNameResponse: + @{SDLNameParameters:@{}, + SDLNameOperationName:SDLNameDeleteCommand}}; NSData* (^testData)() = ^NSData* { NSData* jsonData = [NSJSONSerialization dataWithJSONObject:dict options:0 error:0]; @@ -72,4 +72,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAddCommandSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAddCommandSpec.m index 455552bad..0119291d9 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAddCommandSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAddCommandSpec.m @@ -34,13 +34,14 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_cmdID:@434577, - NAMES_menuParams:menu, - NAMES_vrCommands:[@[@"name", @"anotherName"] mutableCopy], - NAMES_cmdIcon:image}, - NAMES_operation_name:NAMES_AddCommand}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameCommandId:@434577, + SDLNameMenuParams:menu, + SDLNameVRCommands:[@[@"name", @"anotherName"] mutableCopy], + SDLNameCommandIcon:image}, + SDLNameOperationName:SDLNameAddCommand}} mutableCopy]; + SDLAddCommand* testRequest = [[SDLAddCommand alloc] initWithDictionary:dict]; expect(testRequest.cmdID).to(equal(@434577)); @@ -59,4 +60,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAddSubMenuSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAddSubMenuSpec.m index 04a6526a8..8dd5742cb 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAddSubMenuSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAddSubMenuSpec.m @@ -27,12 +27,12 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_menuID:@4345645, - NAMES_position:@27, - NAMES_menuName:@"Welcome to the menu"}, - NAMES_operation_name:NAMES_AddSubMenu}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameMenuId:@4345645, + SDLNamePosition:@27, + SDLNameMenuName:@"Welcome to the menu"}, + SDLNameOperationName:SDLNameAddSubMenu}} mutableCopy]; SDLAddSubMenu* testRequest = [[SDLAddSubMenu alloc] initWithDictionary:dict]; expect(testRequest.menuID).to(equal(@4345645)); @@ -49,4 +49,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAlertManeuverSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAlertManeuverSpec.m index 16d5aa0e6..4d42280db 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAlertManeuverSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAlertManeuverSpec.m @@ -30,11 +30,11 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_ttsChunks:[@[tts] mutableCopy], - NAMES_softButtons:[@[button] mutableCopy]}, - NAMES_operation_name:NAMES_AlertManeuver}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameTTSChunks:[@[tts] mutableCopy], + SDLNameSoftButtons:[@[button] mutableCopy]}, + SDLNameOperationName:SDLNameAlertManeuver}} mutableCopy]; SDLAlertManeuver* testRequest = [[SDLAlertManeuver alloc] initWithDictionary:dict]; expect(testRequest.ttsChunks).to(equal([@[tts] mutableCopy])); @@ -49,4 +49,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAlertSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAlertSpec.m index bef3c8df0..521c8b8f3 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAlertSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLAlertSpec.m @@ -42,17 +42,17 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_alertText1:@"alert#1", - NAMES_alertText2:@"alert#2", - NAMES_alertText3:@"alert#3", - NAMES_ttsChunks:[@[tts] mutableCopy], - NAMES_duration:@4357, - NAMES_playTone:@YES, - NAMES_progressIndicator:@NO, - NAMES_softButtons:[@[button] mutableCopy]}, - NAMES_operation_name:NAMES_Alert}} mutableCopy]; + NSMutableDictionary *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]; SDLAlert* testRequest = [[SDLAlert alloc] initWithDictionary:dict]; expect(testRequest.alertText1).to(equal(@"alert#1")); @@ -66,17 +66,17 @@ }); it(@"Should handle NSNull", ^{ - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_alertText1:@"alert#1", - NAMES_alertText2:@"alert#2", - NAMES_alertText3:@"alert#3", - NAMES_ttsChunks:[@[tts] mutableCopy], - NAMES_duration:@4357, - NAMES_playTone:@YES, - NAMES_progressIndicator:@NO, - NAMES_softButtons:[NSNull null]}, - NAMES_operation_name:NAMES_Alert}} mutableCopy]; + 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]; SDLAlert* testRequest = [[SDLAlert alloc] initWithDictionary:dict]; expect(testRequest.softButtons).to(beEmpty()); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLButtonPressSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLButtonPressSpec.m new file mode 100644 index 000000000..011c3782f --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLButtonPressSpec.m @@ -0,0 +1,63 @@ +// +// SDLButtonPressSpec.m +// SmartDeviceLink-iOS +// + +#import + +#import +#import + +#import "SDLNames.h" +#import "SDLButtonPress.h" +#import "SDLModuleType.h" +#import "SDLButtonName.h" +#import "SDLButtonPressMode.h" + +QuickSpecBegin(SDLButtonPressSpec) + +describe(@"Getter/Setter Tests", ^ { + it(@"Should set and get correctly", ^ { + SDLButtonPress* testRequest = [[SDLButtonPress alloc] init]; + + testRequest.moduleType = SDLModuleTypeClimate; + testRequest.buttonName = SDLButtonNameAC; + testRequest.buttonPressMode = SDLButtonPressModeShort; + + expect(testRequest.moduleType).to(equal(SDLModuleTypeClimate)); + expect(testRequest.buttonName).to(equal(SDLButtonNameAC)); + expect(testRequest.buttonPressMode).to(equal(SDLButtonPressModeShort)); + + }); + + it(@"Should get correctly when initialized with a dictionary", ^ { + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameModuleType : SDLModuleTypeClimate, + SDLNameButtonName : SDLButtonNameAC, + SDLNameButtonPressMode : SDLButtonPressModeShort}, + SDLNameOperationName:SDLNameButtonPress}} mutableCopy]; + SDLButtonPress* testRequest = [[SDLButtonPress alloc] initWithDictionary:dict]; + + expect(testRequest.moduleType).to(equal(SDLModuleTypeClimate)); + expect(testRequest.buttonName).to(equal(SDLButtonNameAC)); + expect(testRequest.buttonPressMode).to(equal(SDLButtonPressModeShort)); + }); + + it(@"Should get correctly when initialized with button name and module type properties", ^ { + SDLButtonPress* testRequest = [[SDLButtonPress alloc] initWithButtonName:SDLButtonNameAC moduleType:SDLModuleTypeClimate]; + + expect(testRequest.buttonName).to(equal(SDLButtonNameAC)); + expect(testRequest.moduleType).to(equal(SDLModuleTypeClimate)); + }); + + it(@"Should return nil if not set", ^ { + SDLButtonPress* testRequest = [[SDLButtonPress alloc] init]; + + expect(testRequest.moduleType).to(beNil()); + expect(testRequest.buttonName).to(beNil()); + expect(testRequest.buttonPressMode).to(beNil()); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLChangeRegistrationSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLChangeRegistrationSpec.m index 9bf496042..98f05983d 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLChangeRegistrationSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLChangeRegistrationSpec.m @@ -18,20 +18,20 @@ describe(@"change registration", ^ { __block SDLChangeRegistration *testRequest = nil; - __block SDLLanguage *someLanguage = nil; - __block SDLLanguage *someOtherLanguage = nil; + __block SDLLanguage someLanguage = nil; + __block SDLLanguage someOtherLanguage = nil; __block NSString *someAppName = nil; - __block NSArray *someTTSChunks = nil; + __block NSArray *someTTSChunks = nil; __block NSString *someNGNMediaAppName = nil; - __block NSArray *someVRSynonyms = nil; + __block NSArray *someVRSynonyms = nil; describe(@"when initializing with properites", ^{ context(@"when parameters are set", ^{ beforeEach(^{ testRequest = [[SDLChangeRegistration alloc] init]; - someLanguage = [SDLLanguage IT_IT]; - someOtherLanguage = [SDLLanguage KO_KR]; + someLanguage = SDLLanguageItIt; + someOtherLanguage = SDLLanguageKoKr; someAppName = @"someAppName"; someTTSChunks = @[[[SDLTTSChunk alloc] init]]; someNGNMediaAppName = @"some media app name"; @@ -105,22 +105,22 @@ describe(@"when initializing with a dictionary", ^{ context(@"when parameters are set", ^{ beforeEach(^{ - someLanguage = [SDLLanguage IT_IT]; - someOtherLanguage = [SDLLanguage KO_KR]; + someLanguage = SDLLanguageItIt; + someOtherLanguage = SDLLanguageKoKr; someAppName = @"someAppName"; someTTSChunks = @[[[SDLTTSChunk alloc] init]]; someNGNMediaAppName = @"some media app name"; someVRSynonyms = @[@"some1", @"some2"]; - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_language:someLanguage, - NAMES_hmiDisplayLanguage:someOtherLanguage, - NAMES_appName:someAppName, - NAMES_ttsName:someTTSChunks, - NAMES_ngnMediaScreenAppName:someNGNMediaAppName, - NAMES_vrSynonyms:someVRSynonyms}, - NAMES_operation_name:NAMES_ChangeRegistration}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameLanguage:someLanguage, + SDLNameHMIDisplayLanguage:someOtherLanguage, + SDLNameAppName:someAppName, + SDLNameTTSName:someTTSChunks, + SDLNameNGNMediaScreenAppName:someNGNMediaAppName, + SDLNameVRSynonyms:someVRSynonyms}, + SDLNameOperationName:SDLNameChangeRegistration}} mutableCopy]; testRequest = [[SDLChangeRegistration alloc] initWithDictionary:dict]; }); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLCreateInteractionChoiceSetSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLCreateInteractionChoiceSetSpec.m index 39cadb2d6..52c496f8b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLCreateInteractionChoiceSetSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLCreateInteractionChoiceSetSpec.m @@ -28,11 +28,11 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_interactionChoiceSetID:@141414, - NAMES_choiceSet:[@[choice] mutableCopy]}, - NAMES_operation_name:NAMES_CreateInteractionChoiceSet}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameInteractionChoiceSetId:@141414, + SDLNameChoiceSet:[@[choice] mutableCopy]}, + SDLNameOperationName:SDLNameCreateInteractionChoiceSet}} mutableCopy]; SDLCreateInteractionChoiceSet* testRequest = [[SDLCreateInteractionChoiceSet alloc] initWithDictionary:dict]; expect(testRequest.interactionChoiceSetID).to(equal(@141414)); @@ -47,4 +47,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteCommandSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteCommandSpec.m index 2d0be62d8..b71e48028 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteCommandSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteCommandSpec.m @@ -23,10 +23,10 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_cmdID:@11223344}, - NAMES_operation_name:NAMES_DeleteCommand}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameCommandId:@11223344}, + SDLNameOperationName:SDLNameDeleteCommand}} mutableCopy]; SDLDeleteCommand* testRequest = [[SDLDeleteCommand alloc] initWithDictionary:dict]; expect(testRequest.cmdID).to(equal(@11223344)); @@ -39,4 +39,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteFileSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteFileSpec.m index c6e471fc4..18ce7d1d7 100755 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteFileSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteFileSpec.m @@ -23,10 +23,10 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_syncFileName:@"synchro"}, - NAMES_operation_name:NAMES_DeleteFile}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameSyncFileName:@"synchro"}, + SDLNameOperationName:SDLNameDeleteFile}} mutableCopy]; SDLDeleteFile* testRequest = [[SDLDeleteFile alloc] initWithDictionary:dict]; expect(testRequest.syncFileName).to(equal(@"synchro")); @@ -39,4 +39,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteInteractionChoiceSetSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteInteractionChoiceSetSpec.m index 6d42d114f..bcc2c3756 100755 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteInteractionChoiceSetSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteInteractionChoiceSetSpec.m @@ -23,10 +23,10 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_interactionChoiceSetID:@20314}, - NAMES_operation_name:NAMES_DeleteInteractionChoiceSet}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameInteractionChoiceSetId:@20314}, + SDLNameOperationName:SDLNameDeleteInteractionChoiceSet}} mutableCopy]; SDLDeleteInteractionChoiceSet* testRequest = [[SDLDeleteInteractionChoiceSet alloc] initWithDictionary:dict]; expect(testRequest.interactionChoiceSetID).to(equal(@20314)); @@ -39,4 +39,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteSubMenuSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteSubMenuSpec.m index 9b2d6588d..888d94f59 100755 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteSubMenuSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteSubMenuSpec.m @@ -23,10 +23,10 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_menuID:@25614}, - NAMES_operation_name:NAMES_DeleteSubMenu}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameMenuId:@25614}, + SDLNameOperationName:SDLNameDeleteSubMenu}} mutableCopy]; SDLDeleteSubMenu* testRequest = [[SDLDeleteSubMenu alloc] initWithDictionary:dict]; expect(testRequest.menuID).to(equal(@25614)); @@ -39,4 +39,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDiagnosticMessageSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDiagnosticMessageSpec.m index 965920f39..c07a8b5fc 100755 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDiagnosticMessageSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDiagnosticMessageSpec.m @@ -27,12 +27,12 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_targetID:@3562, - NAMES_messageLength:@55555, - NAMES_messageData:[@[@1, @4, @16, @64] mutableCopy]}, - NAMES_operation_name:NAMES_DiagnosticMessage}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameTargetId:@3562, + SDLNameMessageLength:@55555, + SDLNameMessageData:[@[@1, @4, @16, @64] mutableCopy]}, + SDLNameOperationName:SDLNameDiagnosticMessage}} mutableCopy]; SDLDiagnosticMessage* testRequest = [[SDLDiagnosticMessage alloc] initWithDictionary:dict]; expect(testRequest.targetID).to(equal(@3562)); @@ -49,4 +49,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDialNumberSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDialNumberSpec.m index 7371fedf3..a150144c1 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDialNumberSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDialNumberSpec.m @@ -43,9 +43,9 @@ beforeEach(^{ somePhoneNumber = @"1234567890"; NSDictionary *initDict = @{ - NAMES_request: @{ - NAMES_parameters: @{ - NAMES_number: [somePhoneNumber copy] + SDLNameRequest: @{ + SDLNameParameters: @{ + SDLNameNumber: [somePhoneNumber copy] } } }; @@ -62,8 +62,8 @@ __block SDLDialNumber *testRequest = nil; beforeEach(^{ NSDictionary *initDict = @{ - NAMES_request: @{ - NAMES_parameters: @{ + SDLNameRequest: @{ + SDLNameParameters: @{ } } }; diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLEncodedSyncPDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLEncodedSyncPDataSpec.m index 753608940..739db2b66 100755 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLEncodedSyncPDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLEncodedSyncPDataSpec.m @@ -23,10 +23,10 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_data:[@[@2, @2, @2] mutableCopy]}, - NAMES_operation_name:NAMES_EncodedSyncPData}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameData:[@[@2, @2, @2] mutableCopy]}, + SDLNameOperationName:SDLNameEncodedSyncPData}} mutableCopy]; SDLEncodedSyncPData* testRequest = [[SDLEncodedSyncPData alloc] initWithDictionary:dict]; expect(testRequest.data).to(equal([@[@2, @2, @2] mutableCopy])); @@ -39,4 +39,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetDTCsSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetDTCsSpec.m index 87f84fd4d..fcdec90f8 100755 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetDTCsSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetDTCsSpec.m @@ -25,11 +25,11 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_ecuName:@4321, - NAMES_dtcMask:@22}, - NAMES_operation_name:NAMES_EndAudioPassThru}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameECUName:@4321, + SDLNameDTCMask:@22}, + SDLNameOperationName:SDLNameEndAudioPassThru}} mutableCopy]; SDLGetDTCs* testRequest = [[SDLGetDTCs alloc] initWithDictionary:dict]; expect(testRequest.ecuName).to(equal(@4321)); @@ -44,4 +44,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetInteriorVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetInteriorVehicleDataSpec.m new file mode 100755 index 000000000..12dfceec7 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetInteriorVehicleDataSpec.m @@ -0,0 +1,68 @@ +// +// SDLGetInteriorVehicleDataSpec.m +// SmartDeviceLink-iOS +// + +#import + +#import +#import + +#import "SDLGetInteriorVehicleData.h" +#import "SDLModuleType.h" +#import "SDLNames.h" + +QuickSpecBegin(SDLGetInteriorVehicleDataSpec) + +describe(@"Getter/Setter Tests", ^ { + it(@"Should set and get correctly", ^ { + SDLGetInteriorVehicleData* testRequest = [[SDLGetInteriorVehicleData alloc] init]; + testRequest.moduleType = SDLModuleTypeRadio; + testRequest.subscribe = @YES; + + expect(testRequest.moduleType).to(equal(SDLModuleTypeRadio)); + expect(testRequest.subscribe).to(equal(@YES)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^ { + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameModuleType : SDLModuleTypeRadio, + SDLNameSubscribe : @YES}, + SDLNameOperationName:SDLNameGetInteriorVehicleData}} mutableCopy]; + SDLGetInteriorVehicleData* testRequest = [[SDLGetInteriorVehicleData alloc] initWithDictionary:dict]; + + expect(testRequest.moduleType).to(equal(SDLModuleTypeRadio)); + expect(testRequest.subscribe).to(equal(@YES)); + }); + + it(@"Should get correctly when initialized with module type", ^ { + SDLGetInteriorVehicleData* testRequest = [[SDLGetInteriorVehicleData alloc] initWithModuleType:SDLModuleTypeRadio]; + + expect(testRequest.moduleType).to(equal(SDLModuleTypeRadio)); + }); + + it(@"Should get correctly when initialized with module type and subscribe", ^ { + SDLGetInteriorVehicleData* testRequest = [[SDLGetInteriorVehicleData alloc] initAndSubscribeToModuleType:SDLModuleTypeRadio]; + + expect(testRequest.moduleType).to(equal(SDLModuleTypeRadio)); + expect(testRequest.subscribe).to(equal(@YES)); + }); + + it(@"Should get correctly when initialized with module type and unsubscribe", ^ { + SDLGetInteriorVehicleData* testRequest = [[SDLGetInteriorVehicleData alloc] initAndUnsubscribeToModuleType:SDLModuleTypeRadio]; + + expect(testRequest.moduleType).to(equal(SDLModuleTypeRadio)); + expect(testRequest.subscribe).to(equal(@NO)); + }); + + + it(@"Should return nil if not set", ^ { + SDLGetInteriorVehicleData* testRequest = [[SDLGetInteriorVehicleData alloc] init]; + + expect(testRequest.moduleType).to(beNil()); + expect(testRequest.subscribe).to(beNil()); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetSystemCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetSystemCapabilitiesSpec.m index f5473f81d..99feed6f3 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetSystemCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetSystemCapabilitiesSpec.m @@ -14,23 +14,23 @@ it(@"Should set and get correctly", ^ { SDLGetSystemCapability *testRequest = [[SDLGetSystemCapability alloc] init]; - testRequest.systemCapabilityType = [SDLSystemCapabilityType NAVIGATION]; + testRequest.systemCapabilityType = SDLSystemCapabilityTypeNavigation; - expect(testRequest.systemCapabilityType).to(equal([SDLSystemCapabilityType NAVIGATION])); + expect(testRequest.systemCapabilityType).to(equal(SDLSystemCapabilityTypeNavigation)); }); }); describe(@"Initialization tests", ^{ it(@"Should get correctly when initialized with a dictionary", ^ { - NSDictionary *dict = @{NAMES_request: @{ - NAMES_parameters: @{ - NAMES_systemCapabilityType: @"PHONE_CALL" + NSDictionary *dict = @{SDLNameRequest: @{ + SDLNameParameters: @{ + SDLNameSystemCapabilityType: @"PHONE_CALL" } } }; - SDLGetSystemCapability *testRequest = [[SDLGetSystemCapability alloc] initWithDictionary:[dict mutableCopy]]; + SDLGetSystemCapability *testRequest = [[SDLGetSystemCapability alloc] initWithDictionary:dict]; - expect(testRequest.systemCapabilityType).to(equal([SDLSystemCapabilityType PHONE_CALL])); + expect(testRequest.systemCapabilityType).to(equal(SDLSystemCapabilityTypePhoneCall)); }); it(@"Should return nil if not set", ^ { @@ -39,10 +39,10 @@ expect(testRequest.systemCapabilityType).to(beNil()); }); - it(@"should initialize correctly with initWithType:", ^{ - SDLGetSystemCapability *testRequest = [[SDLGetSystemCapability alloc] initWithType:[SDLSystemCapabilityType PHONE_CALL]]; + it(@"Should get correctly when initialized with systemCapabilityType", ^ { + SDLGetSystemCapability* testRequest = [[SDLGetSystemCapability alloc] initWithType:SDLSystemCapabilityTypePhoneCall]; - expect(testRequest.systemCapabilityType).to(equal([SDLSystemCapabilityType PHONE_CALL])); + expect(testRequest.systemCapabilityType).to(equal(SDLSystemCapabilityTypePhoneCall)); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetVehicleDataSpec.m index 936550ce7..053f90503 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetVehicleDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetVehicleDataSpec.m @@ -71,34 +71,34 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_gps:@NO, - NAMES_speed:@YES, - NAMES_rpm:@NO, - NAMES_fuelLevel:@YES, - NAMES_fuelLevel_State:@NO, - NAMES_instantFuelConsumption:@YES, - NAMES_externalTemperature:@NO, - NAMES_vin:@YES, - NAMES_prndl:@NO, - NAMES_tirePressure:@YES, - NAMES_odometer:@NO, - NAMES_beltStatus:@YES, - NAMES_bodyInformation:@NO, - NAMES_deviceStatus:@YES, - NAMES_driverBraking:@NO, - NAMES_wiperStatus:@YES, - NAMES_headLampStatus:@NO, - NAMES_engineTorque:@YES, - NAMES_accPedalPosition:@NO, - NAMES_steeringWheelAngle:@YES, - NAMES_eCallInfo:@NO, - NAMES_airbagStatus:@YES, - NAMES_emergencyEvent:@NO, - NAMES_clusterModeStatus:@YES, - NAMES_myKey:@NO}, - NAMES_operation_name:NAMES_GetVehicleData}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameGPS:@NO, + SDLNameSpeed:@YES, + SDLNameRPM:@NO, + SDLNameFuelLevel:@YES, + SDLNameFuelLevelState:@NO, + SDLNameInstantFuelConsumption:@YES, + SDLNameExternalTemperature:@NO, + SDLNameVIN:@YES, + SDLNamePRNDL:@NO, + SDLNameTirePressure:@YES, + SDLNameOdometer:@NO, + SDLNameBeltStatus:@YES, + SDLNameBodyInformation:@NO, + SDLNameDeviceStatus:@YES, + SDLNameDriverBraking:@NO, + SDLNameWiperStatus:@YES, + SDLNameHeadLampStatus:@NO, + SDLNameEngineTorque:@YES, + SDLNameAccelerationPedalPosition:@NO, + SDLNameSteeringWheelAngle:@YES, + SDLNameECallInfo:@NO, + SDLNameAirbagStatus:@YES, + SDLNameEmergencyEvent:@NO, + SDLNameClusterModeStatus:@YES, + SDLNameMyKey:@NO}, + SDLNameOperationName:SDLNameGetVehicleData}} mutableCopy]; SDLGetVehicleData* testRequest = [[SDLGetVehicleData alloc] initWithDictionary:dict]; expect(testRequest.gps).to(equal(@NO)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetWaypointsSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetWaypointsSpec.m index 5edd91078..45946f405 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetWaypointsSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetWaypointsSpec.m @@ -9,7 +9,7 @@ #import "SDLGetWaypoints.h" #import "SDLNames.h" -#import "SDLWaypointType.h" +#import "SDLWayPointType.h" QuickSpecBegin(SDLGetWaypointsSpec) @@ -17,19 +17,19 @@ it(@"Should set and get correctly", ^ { SDLGetWayPoints* testRequest = [[SDLGetWayPoints alloc] init]; - testRequest.waypointType = [SDLWaypointType ALL]; + testRequest.waypointType = SDLWayPointTypeAll; - expect(testRequest.waypointType).to(equal([SDLWaypointType ALL])); + expect(testRequest.waypointType).to(equal(SDLWayPointTypeAll)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_waypointType:[SDLWaypointType ALL]}, - NAMES_operation_name:NAMES_GetWaypoints}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameWayPointType:SDLWayPointTypeAll}, + SDLNameOperationName:SDLNameGetWayPoints}} mutableCopy]; SDLGetWayPoints* testRequest = [[SDLGetWayPoints alloc] initWithDictionary:dict]; - expect(testRequest.waypointType).to(equal([SDLWaypointType ALL])); + expect(testRequest.waypointType).to(equal(SDLWayPointTypeAll)); }); it(@"Should return nil if not set", ^ { diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPerformAudioPassThruSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPerformAudioPassThruSpec.m index 011a7adf5..e55cf86be 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPerformAudioPassThruSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPerformAudioPassThruSpec.m @@ -23,40 +23,40 @@ testRequest.audioPassThruDisplayText1 = @"passthru#1"; testRequest.audioPassThruDisplayText2 = @"passthru#2"; - testRequest.samplingRate = [SDLSamplingRate _22KHZ]; + testRequest.samplingRate = SDLSamplingRate22KHZ; testRequest.maxDuration = @34563; - testRequest.bitsPerSample = [SDLBitsPerSample _16_BIT]; - testRequest.audioType = [SDLAudioType PCM]; + testRequest.bitsPerSample = SDLBitsPerSample16Bit; + testRequest.audioType = SDLAudioTypePCM; testRequest.muteAudio = @NO; expect(testRequest.audioPassThruDisplayText1).to(equal(@"passthru#1")); expect(testRequest.audioPassThruDisplayText2).to(equal(@"passthru#2")); - expect(testRequest.samplingRate).to(equal([SDLSamplingRate _22KHZ])); + expect(testRequest.samplingRate).to(equal(SDLSamplingRate22KHZ)); expect(testRequest.maxDuration).to(equal(@34563)); - expect(testRequest.bitsPerSample).to(equal([SDLBitsPerSample _16_BIT])); - expect(testRequest.audioType).to(equal([SDLAudioType PCM])); + expect(testRequest.bitsPerSample).to(equal(SDLBitsPerSample16Bit)); + expect(testRequest.audioType).to(equal(SDLAudioTypePCM)); expect(testRequest.muteAudio).to(equal(@NO)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_audioPassThruDisplayText1:@"passthru#1", - NAMES_audioPassThruDisplayText2:@"passthru#2", - NAMES_samplingRate:[SDLSamplingRate _22KHZ], - NAMES_maxDuration:@34563, - NAMES_bitsPerSample:[SDLBitsPerSample _16_BIT], - NAMES_audioType:[SDLAudioType PCM], - NAMES_muteAudio:@NO}, - NAMES_operation_name:NAMES_PerformAudioPassThru}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameAudioPassThruDisplayText1:@"passthru#1", + SDLNameAudioPassThruDisplayText2:@"passthru#2", + SDLNameSamplingRate:SDLSamplingRate22KHZ, + SDLNameMaxDuration:@34563, + SDLNameBitsPerSample:SDLBitsPerSample16Bit, + SDLNameAudioType:SDLAudioTypePCM, + SDLNameMuteAudio:@NO}, + SDLNameOperationName:SDLNamePerformAudioPassThru}} mutableCopy]; SDLPerformAudioPassThru* testRequest = [[SDLPerformAudioPassThru alloc] initWithDictionary:dict]; expect(testRequest.audioPassThruDisplayText1).to(equal(@"passthru#1")); expect(testRequest.audioPassThruDisplayText2).to(equal(@"passthru#2")); - expect(testRequest.samplingRate).to(equal([SDLSamplingRate _22KHZ])); + expect(testRequest.samplingRate).to(equal(SDLSamplingRate22KHZ)); expect(testRequest.maxDuration).to(equal(@34563)); - expect(testRequest.bitsPerSample).to(equal([SDLBitsPerSample _16_BIT])); - expect(testRequest.audioType).to(equal([SDLAudioType PCM])); + expect(testRequest.bitsPerSample).to(equal(SDLBitsPerSample16Bit)); + expect(testRequest.audioType).to(equal(SDLAudioTypePCM)); expect(testRequest.muteAudio).to(equal(@NO)); }); @@ -73,4 +73,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPerformInteractionSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPerformInteractionSpec.m index c89c3d5bd..337008aee 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPerformInteractionSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPerformInteractionSpec.m @@ -28,49 +28,49 @@ testRequest.initialText = @"a"; testRequest.initialPrompt = [@[chunk1] mutableCopy]; - testRequest.interactionMode = [SDLInteractionMode VR_ONLY]; + testRequest.interactionMode = SDLInteractionModeVoiceRecognitionOnly; testRequest.interactionChoiceSetIDList = [@[@1, @2, @3] mutableCopy]; testRequest.helpPrompt = [@[chunk2] mutableCopy]; testRequest.timeoutPrompt = [@[chunk3] mutableCopy]; testRequest.timeout = @42000; testRequest.vrHelp = [@[helpItem] mutableCopy]; - testRequest.interactionLayout = [SDLLayoutMode ICON_WITH_SEARCH]; + testRequest.interactionLayout = SDLLayoutModeIconWithSearch; expect(testRequest.initialText).to(equal(@"a")); expect(testRequest.initialPrompt).to(equal([@[chunk1] mutableCopy])); - expect(testRequest.interactionMode).to(equal([SDLInteractionMode VR_ONLY])); + expect(testRequest.interactionMode).to(equal(SDLInteractionModeVoiceRecognitionOnly)); expect(testRequest.interactionChoiceSetIDList).to(equal([@[@1, @2, @3] mutableCopy])); expect(testRequest.helpPrompt).to(equal([@[chunk2] mutableCopy])); expect(testRequest.timeoutPrompt).to(equal([@[chunk3] mutableCopy])); expect(testRequest.timeout).to(equal(@42000)); expect(testRequest.vrHelp).to(equal([@[helpItem] mutableCopy])); - expect(testRequest.interactionLayout).to(equal([SDLLayoutMode ICON_WITH_SEARCH])); + expect(testRequest.interactionLayout).to(equal(SDLLayoutModeIconWithSearch)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_initialText:@"a", - NAMES_initialPrompt:[@[chunk1] mutableCopy], - NAMES_interactionMode:[SDLInteractionMode VR_ONLY], - NAMES_interactionChoiceSetIDList:[@[@1, @2, @3] mutableCopy], - NAMES_helpPrompt:[@[chunk2] mutableCopy], - NAMES_timeoutPrompt:[@[chunk3] mutableCopy], - NAMES_timeout:@42000, - NAMES_vrHelp:[@[helpItem] mutableCopy], - NAMES_interactionLayout:[SDLLayoutMode ICON_WITH_SEARCH]}, - NAMES_operation_name:NAMES_PerformInteraction}} mutableCopy]; + 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]; SDLPerformInteraction* testRequest = [[SDLPerformInteraction alloc] initWithDictionary:dict]; expect(testRequest.initialText).to(equal(@"a")); expect(testRequest.initialPrompt).to(equal([@[chunk1] mutableCopy])); - expect(testRequest.interactionMode).to(equal([SDLInteractionMode VR_ONLY])); + expect(testRequest.interactionMode).to(equal(SDLInteractionModeVoiceRecognitionOnly)); expect(testRequest.interactionChoiceSetIDList).to(equal([@[@1, @2, @3] mutableCopy])); expect(testRequest.helpPrompt).to(equal([@[chunk2] mutableCopy])); expect(testRequest.timeoutPrompt).to(equal([@[chunk3] mutableCopy])); expect(testRequest.timeout).to(equal(@42000)); expect(testRequest.vrHelp).to(equal([@[helpItem] mutableCopy])); - expect(testRequest.interactionLayout).to(equal([SDLLayoutMode ICON_WITH_SEARCH])); + expect(testRequest.interactionLayout).to(equal(SDLLayoutModeIconWithSearch)); }); it(@"Should return nil if not set", ^ { @@ -88,4 +88,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPutFileSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPutFileSpec.m index bfa24dc13..54ad81b28 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPutFileSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLPutFileSpec.m @@ -20,14 +20,14 @@ SDLPutFile* testRequest = [[SDLPutFile alloc] init]; testRequest.syncFileName = @"fileName"; - testRequest.fileType = [SDLFileType GRAPHIC_JPEG]; + testRequest.fileType = SDLFileTypeJPEG; testRequest.persistentFile = @YES; testRequest.systemFile = @NO; testRequest.offset = @987654321; testRequest.length = @123456789; expect(testRequest.syncFileName).to(equal(@"fileName")); - expect(testRequest.fileType).to(equal([SDLFileType GRAPHIC_JPEG])); + expect(testRequest.fileType).to(equal(SDLFileTypeJPEG)); expect(testRequest.persistentFile).to(equal(@YES)); expect(testRequest.systemFile).to(equal(@NO)); expect(testRequest.offset).to(equal(@987654321)); @@ -35,19 +35,19 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_syncFileName:@"fileName", - NAMES_fileType:[SDLFileType GRAPHIC_JPEG], - NAMES_persistentFile:@YES, - NAMES_systemFile:@NO, - NAMES_offset:@987654321, - NAMES_length:@123456789}, - NAMES_operation_name:NAMES_PutFile}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameSyncFileName:@"fileName", + SDLNameFileType:SDLFileTypeJPEG, + SDLNamePersistentFile:@YES, + SDLNameSystemFile:@NO, + SDLNameOffset:@987654321, + SDLNameLength:@123456789}, + SDLNameOperationName:SDLNamePutFile}} mutableCopy]; SDLPutFile* testRequest = [[SDLPutFile alloc] initWithDictionary:dict]; expect(testRequest.syncFileName).to(equal(@"fileName")); - expect(testRequest.fileType).to(equal([SDLFileType GRAPHIC_JPEG])); + expect(testRequest.fileType).to(equal(SDLFileTypeJPEG)); expect(testRequest.persistentFile).to(equal(@YES)); expect(testRequest.systemFile).to(equal(@NO)); expect(testRequest.offset).to(equal(@987654321)); @@ -66,4 +66,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLReadDIDSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLReadDIDSpec.m index 7c5598bbb..f0290c3b6 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLReadDIDSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLReadDIDSpec.m @@ -25,11 +25,11 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_ecuName:@33112, - NAMES_didLocation:[@[@200, @201, @205] mutableCopy]}, - NAMES_operation_name:NAMES_EndAudioPassThru}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameECUName:@33112, + SDLNameDIDLocation:[@[@200, @201, @205] mutableCopy]}, + SDLNameOperationName:SDLNameEndAudioPassThru}} mutableCopy]; SDLReadDID* testRequest = [[SDLReadDID alloc] initWithDictionary:dict]; expect(testRequest.ecuName).to(equal(@33112)); @@ -44,4 +44,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLRegisterAppInterfaceSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLRegisterAppInterfaceSpec.m index 9aecc3127..b3e926715 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLRegisterAppInterfaceSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLRegisterAppInterfaceSpec.m @@ -35,9 +35,9 @@ testRequest.ngnMediaScreenAppName = @"whatisanngn"; testRequest.vrSynonyms = [@[@"paraphrase of the original name"] mutableCopy]; testRequest.isMediaApplication = @NO; - testRequest.languageDesired = [SDLLanguage NO_NO]; - testRequest.hmiDisplayLanguageDesired = [SDLLanguage PT_PT]; - testRequest.appHMIType = [@[[SDLAppHMIType MESSAGING], [SDLAppHMIType INFORMATION]] copy]; + testRequest.languageDesired = SDLLanguageNoNo; + testRequest.hmiDisplayLanguageDesired = SDLLanguagePtPt; + testRequest.appHMIType = [@[SDLAppHMITypeMessaging, SDLAppHMITypeInformation] copy]; testRequest.hashID = @"gercd35grw2"; testRequest.deviceInfo = info; testRequest.appID = @"123456789"; @@ -49,9 +49,9 @@ expect(testRequest.ngnMediaScreenAppName).to(equal(@"whatisanngn")); expect(testRequest.vrSynonyms).to(equal([@[@"paraphrase of the original name"] mutableCopy])); expect(testRequest.isMediaApplication).to(equal(@NO)); - expect(testRequest.languageDesired).to(equal([SDLLanguage NO_NO])); - expect(testRequest.hmiDisplayLanguageDesired).to(equal([SDLLanguage PT_PT])); - expect(testRequest.appHMIType).to(equal([@[[SDLAppHMIType MESSAGING], [SDLAppHMIType INFORMATION]] copy])); + expect(testRequest.languageDesired).to(equal(SDLLanguageNoNo)); + expect(testRequest.hmiDisplayLanguageDesired).to(equal(SDLLanguagePtPt)); + expect(testRequest.appHMIType).to(equal([@[SDLAppHMITypeMessaging, SDLAppHMITypeInformation] copy])); expect(testRequest.hashID).to(equal(@"gercd35grw2")); expect(testRequest.deviceInfo).to(equal(info)); expect(testRequest.appID).to(equal(@"123456789")); @@ -59,22 +59,22 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_syncMsgVersion:version, - NAMES_appName:@"app56", - NAMES_ttsName:[@[chunk] mutableCopy], - NAMES_ngnMediaScreenAppName:@"whatisanngn", - NAMES_vrSynonyms:[@[@"paraphrase of the original name"] mutableCopy], - NAMES_isMediaApplication:@NO, - NAMES_languageDesired:[SDLLanguage NO_NO], - NAMES_hmiDisplayLanguageDesired:[SDLLanguage PT_PT], - NAMES_appHMIType:[@[[SDLAppHMIType MESSAGING], [SDLAppHMIType INFORMATION]] copy], - NAMES_hashID:@"gercd35grw2", - NAMES_deviceInfo:info, - NAMES_appID:@"123456789", - NAMES_appInfo:appInfo}, - NAMES_operation_name:NAMES_RegisterAppInterface}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameSyncMessageVersion:version, + SDLNameAppName:@"app56", + SDLNameTTSName:[@[chunk] mutableCopy], + SDLNameNGNMediaScreenAppName:@"whatisanngn", + SDLNameVRSynonyms:[@[@"paraphrase of the original name"] mutableCopy], + SDLNameIsMediaApplication:@NO, + SDLNameLanguageDesired:SDLLanguageNoNo, + SDLNameHMIDisplayLanguageDesired:SDLLanguagePtPt, + SDLNameAppHMIType:[@[SDLAppHMITypeMessaging, SDLAppHMITypeInformation] copy], + SDLNameHashId:@"gercd35grw2", + SDLNameDeviceInfo:info, + SDLNameAppId:@"123456789", + SDLNameAppInfo:appInfo}, + SDLNameOperationName:SDLNameRegisterAppInterface}} mutableCopy]; SDLRegisterAppInterface* testRequest = [[SDLRegisterAppInterface alloc] initWithDictionary:dict]; expect(testRequest.syncMsgVersion).to(equal(version)); @@ -83,9 +83,9 @@ expect(testRequest.ngnMediaScreenAppName).to(equal(@"whatisanngn")); expect(testRequest.vrSynonyms).to(equal([@[@"paraphrase of the original name"] mutableCopy])); expect(testRequest.isMediaApplication).to(equal(@NO)); - expect(testRequest.languageDesired).to(equal([SDLLanguage NO_NO])); - expect(testRequest.hmiDisplayLanguageDesired).to(equal([SDLLanguage PT_PT])); - expect(testRequest.appHMIType).to(equal([@[[SDLAppHMIType MESSAGING], [SDLAppHMIType INFORMATION]] copy])); + expect(testRequest.languageDesired).to(equal(SDLLanguageNoNo)); + expect(testRequest.hmiDisplayLanguageDesired).to(equal(SDLLanguagePtPt)); + expect(testRequest.appHMIType).to(equal([@[SDLAppHMITypeMessaging, SDLAppHMITypeInformation] copy])); expect(testRequest.hashID).to(equal(@"gercd35grw2")); expect(testRequest.deviceInfo).to(equal(info)); expect(testRequest.appID).to(equal(@"123456789")); @@ -111,4 +111,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLResetGlobalPropertiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLResetGlobalPropertiesSpec.m index e99320f18..1d45f37a4 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLResetGlobalPropertiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLResetGlobalPropertiesSpec.m @@ -18,19 +18,19 @@ it(@"Should set and get correctly", ^ { SDLResetGlobalProperties* testRequest = [[SDLResetGlobalProperties alloc] init]; - testRequest.properties = [@[[SDLGlobalProperty MENUNAME], [SDLGlobalProperty VRHELPTITLE]] copy]; + testRequest.properties = [@[SDLGlobalPropertyMenuName, SDLGlobalPropertyVoiceRecognitionHelpTitle] copy]; - expect(testRequest.properties).to(equal([@[[SDLGlobalProperty MENUNAME], [SDLGlobalProperty VRHELPTITLE]] copy])); + expect(testRequest.properties).to(equal([@[SDLGlobalPropertyMenuName, SDLGlobalPropertyVoiceRecognitionHelpTitle] copy])); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_properties:[@[[SDLGlobalProperty MENUNAME], [SDLGlobalProperty VRHELPTITLE]] copy]}, - NAMES_operation_name:NAMES_ResetGlobalProperties}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameProperties:[@[SDLGlobalPropertyMenuName, SDLGlobalPropertyVoiceRecognitionHelpTitle] copy]}, + SDLNameOperationName:SDLNameResetGlobalProperties}} mutableCopy]; SDLResetGlobalProperties* testRequest = [[SDLResetGlobalProperties alloc] initWithDictionary:dict]; - expect(testRequest.properties).to(equal([@[[SDLGlobalProperty MENUNAME], [SDLGlobalProperty VRHELPTITLE]] copy])); + expect(testRequest.properties).to(equal([@[SDLGlobalPropertyMenuName, SDLGlobalPropertyVoiceRecognitionHelpTitle] copy])); }); it(@"Should return nil if not set", ^ { @@ -40,4 +40,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLScrollableMessageSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLScrollableMessageSpec.m index 6b1142d6b..f4b50c3f9 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLScrollableMessageSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLScrollableMessageSpec.m @@ -30,12 +30,12 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_scrollableMessageBody:@"thatmessagebody", - NAMES_timeout:@9182, - NAMES_softButtons:[@[button] mutableCopy]}, - NAMES_operation_name:NAMES_ScrollableMessage}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameScrollableMessageBody:@"thatmessagebody", + SDLNameTimeout:@9182, + SDLNameSoftButtons:[@[button] mutableCopy]}, + SDLNameOperationName:SDLNameScrollableMessage}} mutableCopy]; SDLScrollableMessage* testRequest = [[SDLScrollableMessage alloc] initWithDictionary:dict]; expect(testRequest.scrollableMessageBody).to(equal(@"thatmessagebody")); @@ -52,4 +52,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendHapticDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendHapticDataSpec.m index 7919e578a..24bf7ddb2 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendHapticDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendHapticDataSpec.m @@ -2,7 +2,7 @@ // SDLSendHapticDataSpec.m // SmartDeviceLink-iOS // -// Created by Nicole on 8/2/17. +// Created by Nicole on 8/4/17. // Copyright © 2017 smartdevicelink. All rights reserved. // @@ -12,8 +12,9 @@ #import #import "SDLNames.h" -#import "SDLSendHapticData.h" #import "SDLHapticRect.h" +#import "SDLRectangle.h" +#import "SDLSendHapticData.h" QuickSpecBegin(SDLSendHapticDataSpec) @@ -21,14 +22,7 @@ __block SDLHapticRect *testStruct = nil; beforeEach(^{ - NSMutableDictionary *dict = [@{NAMES_id:@2, - NAMES_hapticRectData: @{ - NAMES_x:@20, - NAMES_y:@200, - NAMES_width:@2000, - NAMES_height:@3000 - }} mutableCopy]; - testStruct = [[SDLHapticRect alloc] initWithDictionary:dict]; + testStruct = [[SDLHapticRect alloc] initWithId:123 rect:[[SDLRectangle alloc] initWithX:23.1 y:45.6 width:69.0 height:69]]; }); context(@"Getter/Setter Tests", ^ { @@ -42,29 +36,27 @@ context(@"Init tests", ^{ it(@"Should get correctly when initialized with a dictionary", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_hapticRectData:@[testStruct]}, - NAMES_operation_name:NAMES_SendHapticData}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameHapticRectData:@[testStruct]}, + SDLNameOperationName:SDLNameSendHapticData}} mutableCopy]; SDLSendHapticData *testRequest = [[SDLSendHapticData alloc] initWithDictionary:dict]; expect(testRequest.hapticRectData).to(equal(@[testStruct])); }); it(@"Should initialize correctly with initWithType:", ^{ - SDLSendHapticData *testRequest = [[SDLSendHapticData alloc] initWithHapticRectData:[NSMutableArray arrayWithArray:@[testStruct]]]; + SDLSendHapticData *testRequest = [[SDLSendHapticData alloc] initWithHapticRectData:@[testStruct]]; expect(testRequest.hapticRectData).to(equal(@[testStruct])); }); it(@"Should return nil if not set", ^ { SDLSendHapticData *testRequest = [[SDLSendHapticData alloc] init]; - + expect(testRequest.hapticRectData).to(beNil()); }); }); }); - - QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendLocationSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendLocationSpec.m index 65b068843..c0539943a 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendLocationSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendLocationSpec.m @@ -17,10 +17,10 @@ __block NSNumber *someLatitude = nil; __block NSString *someLocation = nil; __block NSString *someLocationDescription = nil; - __block NSArray *someAddressLines = nil; + __block NSArray *someAddressLines = nil; __block NSString *somePhoneNumber = nil; __block SDLImage *someImage = nil; - __block SDLDeliveryMode *someDeliveryMode = nil; + __block SDLDeliveryMode someDeliveryMode = nil; __block SDLDateTime* someTime = nil; __block SDLOasisAddress* someAddress = nil; @@ -38,7 +38,7 @@ someAddressLines = @[@"3136 Hilton Rd", @"Ferndale, MI", @"48220"]; somePhoneNumber = @"248-591-0333"; someImage = [[SDLImage alloc] init]; - someDeliveryMode = [SDLDeliveryMode PROMPT]; + someDeliveryMode = SDLDeliveryModePrompt; someTime = [[SDLDateTime alloc] init]; someAddress = [[SDLOasisAddress alloc] init]; @@ -159,22 +159,22 @@ someAddressLines = @[@"3136 Hilton Rd", @"Ferndale, MI", @"48220"]; somePhoneNumber = @"248-591-0333"; someImage = [[SDLImage alloc] init]; - someDeliveryMode = [SDLDeliveryMode PROMPT]; + someDeliveryMode = SDLDeliveryModePrompt; someTime = [[SDLDateTime alloc] init]; someAddress = [[SDLOasisAddress alloc] init]; NSDictionary *initDict = @{ - NAMES_request: @{ - NAMES_parameters: @{ - NAMES_longitudeDegrees: someLongitude, - NAMES_latitudeDegrees: someLatitude, - NAMES_locationName: someLocation, - NAMES_locationDescription: someLocationDescription, - NAMES_addressLines: someAddressLines, - NAMES_phoneNumber: somePhoneNumber, - NAMES_locationImage: someImage, - NAMES_deliveryMode: someDeliveryMode, - NAMES_timeStamp: someTime, - NAMES_address: someAddress + SDLNameRequest: @{ + SDLNameParameters: @{ + SDLNameLongitudeDegrees: someLongitude, + SDLNameLatitudeDegrees: someLatitude, + SDLNameLocationName: someLocation, + SDLNameLocationDescription: someLocationDescription, + SDLNameAddressLines: someAddressLines, + SDLNamePhoneNumber: somePhoneNumber, + SDLNameLocationImage: someImage, + SDLNameDeliveryMode: someDeliveryMode, + SDLNameLocationTimeStamp: someTime, + SDLNameAddress: someAddress } } }; @@ -236,9 +236,9 @@ context(@"when parameters are not set", ^{ beforeEach(^{ - NSDictionary *initDict = @{ - NAMES_request: @{ - NAMES_parameters: @{} + NSDictionary *initDict = @{ + SDLNameRequest: @{ + SDLNameParameters: @{} } }; diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetAppIconSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetAppIconSpec.m index 9c24c9e91..29c0f14f5 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetAppIconSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetAppIconSpec.m @@ -23,10 +23,10 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_syncFileName:@"A/File/Name"}, - NAMES_operation_name:NAMES_SetAppIcon}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameSyncFileName:@"A/File/Name"}, + SDLNameOperationName:SDLNameSetAppIcon}} mutableCopy]; SDLSetAppIcon* testRequest = [[SDLSetAppIcon alloc] initWithDictionary:dict]; expect(testRequest.syncFileName).to(equal(@"A/File/Name")); @@ -39,4 +39,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetDisplayLayoutSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetDisplayLayoutSpec.m index 41e63323a..ed712dede 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetDisplayLayoutSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetDisplayLayoutSpec.m @@ -23,10 +23,10 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_displayLayout:@"wat"}, - NAMES_operation_name:NAMES_SetDisplayLayout}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameDisplayLayout:@"wat"}, + SDLNameOperationName:SDLNameSetDisplayLayout}} mutableCopy]; SDLSetDisplayLayout* testRequest = [[SDLSetDisplayLayout alloc] initWithDictionary:dict]; expect(testRequest.displayLayout).to(equal(@"wat")); @@ -39,4 +39,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetGlobalPropertiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetGlobalPropertiesSpec.m index 437218896..15062d29b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetGlobalPropertiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetGlobalPropertiesSpec.m @@ -46,16 +46,16 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_helpPrompt:[@[chunk1] mutableCopy], - NAMES_timeoutPrompt:[@[chunk2] mutableCopy], - NAMES_vrHelpTitle:@"vr", - NAMES_vrHelp:[@[help] mutableCopy], - NAMES_menuTitle:@"TheNewMenu", - NAMES_menuIcon:image, - NAMES_keyboardProperties:keyboard}, - NAMES_operation_name:NAMES_SetGlobalProperties}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameHelpPrompt:[@[chunk1] mutableCopy], + SDLNameTimeoutPrompt:[@[chunk2] mutableCopy], + SDLNameVRHelpTitle:@"vr", + SDLNameVRHelp:[@[help] mutableCopy], + SDLNameMenuTitle:@"TheNewMenu", + SDLNameMenuIcon:image, + SDLNameKeyboardProperties:keyboard}, + SDLNameOperationName:SDLNameSetGlobalProperties}} mutableCopy]; SDLSetGlobalProperties* testRequest = [[SDLSetGlobalProperties alloc] initWithDictionary:dict]; expect(testRequest.helpPrompt).to(equal([@[chunk1] mutableCopy])); @@ -80,4 +80,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetInteriorVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetInteriorVehicleDataSpec.m new file mode 100644 index 000000000..5eb39c8f2 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetInteriorVehicleDataSpec.m @@ -0,0 +1,51 @@ +// +// SDLSetInteriorVehicleDataSpec.m +// SmartDeviceLink-iOS +// + +#import + +#import +#import + +#import "SDLSetInteriorVehicleData.h" +#import "SDLNames.h" +#import "SDLModuleData.h" + + +QuickSpecBegin(SDLSetInteriorVehicleDataSpec) + +SDLModuleData *someModuleData = [[SDLModuleData alloc] init]; + +describe(@"Getter/Setter Tests", ^ { + it(@"Should set and get correctly", ^ { + SDLSetInteriorVehicleData* testRequest = [[SDLSetInteriorVehicleData alloc] init]; + testRequest.moduleData = someModuleData; + + expect(testRequest.moduleData).to(equal(someModuleData)); + }); + + it(@"Should get correctly when initialized", ^ { + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameModuleData : someModuleData}, + SDLNameOperationName:SDLNameSetInteriorVehicleData}} mutableCopy]; + SDLSetInteriorVehicleData* testRequest = [[SDLSetInteriorVehicleData alloc] initWithDictionary:dict]; + + expect(testRequest.moduleData).to(equal(someModuleData)); + }); + + it(@"Should get correctly when initialized with module data", ^ { + SDLSetInteriorVehicleData* testRequest = [[SDLSetInteriorVehicleData alloc] initWithModuleData:someModuleData]; + + expect(testRequest.moduleData).to(equal(someModuleData)); + }); + + it(@"Should return nil if not set", ^ { + SDLSetInteriorVehicleData* testRequest = [[SDLSetInteriorVehicleData alloc] init]; + + expect(testRequest.moduleData).to(beNil()); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetMediaClockTimerSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetMediaClockTimerSpec.m index 8d2a9a36e..bf8243ab8 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetMediaClockTimerSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetMediaClockTimerSpec.m @@ -25,25 +25,25 @@ testRequest.startTime = time1; testRequest.endTime = time2; - testRequest.updateMode = [SDLUpdateMode COUNTUP]; + testRequest.updateMode = SDLUpdateModeCountUp; expect(testRequest.startTime).to(equal(time1)); expect(testRequest.endTime).to(equal(time2)); - expect(testRequest.updateMode).to(equal([SDLUpdateMode COUNTUP])); + expect(testRequest.updateMode).to(equal(SDLUpdateModeCountUp)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_startTime:time1, - NAMES_endTime:time2, - NAMES_updateMode:[SDLUpdateMode COUNTUP]}, - NAMES_operation_name:NAMES_SetMediaClockTimer}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameStartTime:time1, + SDLNameEndTime:time2, + SDLNameUpdateMode:SDLUpdateModeCountUp}, + 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([SDLUpdateMode COUNTUP])); + expect(testRequest.updateMode).to(equal(SDLUpdateModeCountUp)); }); it(@"Should return nil if not set", ^ { @@ -55,4 +55,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowConstantTBTSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowConstantTBTSpec.m index 3af100462..491096b84 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowConstantTBTSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowConstantTBTSpec.m @@ -50,20 +50,20 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_navigationText1:@"nav1", - NAMES_navigationText2:@"nav2", - NAMES_eta:@"4/1/7015", - NAMES_timeToDestination:@"5000 Years", - NAMES_totalDistance:@"1 parsec", - NAMES_turnIcon:image1, - NAMES_nextTurnIcon:image2, - NAMES_distanceToManeuver:@2, - NAMES_distanceToManeuverScale:@4, - NAMES_maneuverComplete:@NO, - NAMES_softButtons:[@[button] mutableCopy]}, - NAMES_operation_name:NAMES_ShowConstantTBT}} mutableCopy]; + NSMutableDictionary *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]; SDLShowConstantTBT* testRequest = [[SDLShowConstantTBT alloc] initWithDictionary:dict]; expect(testRequest.navigationText1).to(equal(@"nav1")); @@ -96,4 +96,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowSpec.m index 8d0896240..80733245e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLShowSpec.m @@ -22,18 +22,18 @@ SDLImage* image2 = [[SDLImage alloc] init]; SDLSoftButton* button = [[SDLSoftButton alloc] init]; -NSArray *formatArray = @[[SDLMetadataType MEDIA_ARTIST], [SDLMetadataType MEDIA_TITLE]]; +NSArray *formatArray = @[SDLMetadataTypeMediaArtist,SDLMetadataTypeMediaTitle]; SDLMetadataTags* testMetadata = [[SDLMetadataTags alloc] initWithTextFieldTypes:formatArray mainField2:formatArray mainField3:formatArray mainField4:formatArray]; describe(@"Getter/Setter Tests", ^ { it(@"Should set and get correctly", ^ { SDLShow* testRequest = [[SDLShow alloc] init]; - + testRequest.mainField1 = @"field1"; testRequest.mainField2 = @"field2"; testRequest.mainField3 = @"field3"; testRequest.mainField4 = @"field4"; - testRequest.alignment = [SDLTextAlignment LEFT_ALIGNED]; + testRequest.alignment = SDLTextAlignmentLeft; testRequest.statusBar = @"status"; testRequest.mediaClock = @"TheTime"; testRequest.mediaTrack = @"In The Clear"; @@ -42,12 +42,12 @@ testRequest.softButtons = [@[button] mutableCopy]; testRequest.customPresets = [@[@"preset1", @"preset2"] mutableCopy]; testRequest.metadataTags = testMetadata; - + expect(testRequest.mainField1).to(equal(@"field1")); expect(testRequest.mainField2).to(equal(@"field2")); expect(testRequest.mainField3).to(equal(@"field3")); expect(testRequest.mainField4).to(equal(@"field4")); - expect(testRequest.alignment).to(equal([SDLTextAlignment LEFT_ALIGNED])); + expect(testRequest.alignment).to(equal(SDLTextAlignmentLeft)); expect(testRequest.statusBar).to(equal(@"status")); expect(testRequest.mediaClock).to(equal(@"TheTime")); expect(testRequest.mediaTrack).to(equal(@"In The Clear")); @@ -56,32 +56,33 @@ expect(testRequest.softButtons).to(equal([@[button] mutableCopy])); expect(testRequest.customPresets).to(equal([@[@"preset1", @"preset2"] mutableCopy])); expect(testRequest.metadataTags).to(equal(testMetadata)); + }); - + it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_mainField1:@"field1", - NAMES_mainField2:@"field2", - NAMES_mainField3:@"field3", - NAMES_mainField4:@"field4", - NAMES_alignment:[SDLTextAlignment LEFT_ALIGNED], - NAMES_statusBar:@"status", - NAMES_mediaClock:@"TheTime", - NAMES_mediaTrack:@"In The Clear", - NAMES_graphic:image1, - NAMES_secondaryGraphic:image2, - NAMES_softButtons:[@[button] mutableCopy], - NAMES_customPresets:[@[@"preset1", @"preset2"] mutableCopy], - NAMES_metadataTags: testMetadata}, - NAMES_operation_name:NAMES_Show}} mutableCopy]; + 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]; SDLShow* testRequest = [[SDLShow alloc] initWithDictionary:dict]; - + expect(testRequest.mainField1).to(equal(@"field1")); expect(testRequest.mainField2).to(equal(@"field2")); expect(testRequest.mainField3).to(equal(@"field3")); expect(testRequest.mainField4).to(equal(@"field4")); - expect(testRequest.alignment).to(equal([SDLTextAlignment LEFT_ALIGNED])); + expect(testRequest.alignment).to(equal(SDLTextAlignmentLeft)); expect(testRequest.statusBar).to(equal(@"status")); expect(testRequest.mediaClock).to(equal(@"TheTime")); expect(testRequest.mediaTrack).to(equal(@"In The Clear")); @@ -92,27 +93,9 @@ expect(testRequest.metadataTags).to(equal(testMetadata)); }); - it(@"Should get correctly when initialized without a dictionary", ^ { - - SDLShow* testRequest = [[SDLShow alloc] initWithMainField1:@"field1" mainField2:@"field2" mainField3:@"field3" mainField4:@"field4" alignment:[SDLTextAlignment LEFT_ALIGNED] statusBar:@"status" mediaClock:@"TheTime" mediaTrack:@"In The Clear" graphic:image1 softButtons:[@[button] mutableCopy] customPresets:[@[@"preset1", @"preset2"] mutableCopy] textFieldMetadata:testMetadata]; - - expect(testRequest.mainField1).to(equal(@"field1")); - expect(testRequest.mainField2).to(equal(@"field2")); - expect(testRequest.mainField3).to(equal(@"field3")); - expect(testRequest.mainField4).to(equal(@"field4")); - expect(testRequest.alignment).to(equal([SDLTextAlignment LEFT_ALIGNED])); - expect(testRequest.statusBar).to(equal(@"status")); - expect(testRequest.mediaClock).to(equal(@"TheTime")); - expect(testRequest.mediaTrack).to(equal(@"In The Clear")); - expect(testRequest.graphic).to(equal(image1)); - expect(testRequest.softButtons).to(equal([@[button] mutableCopy])); - expect(testRequest.customPresets).to(equal([@[@"preset1", @"preset2"] mutableCopy])); - expect(testRequest.metadataTags).to(equal(testMetadata)); - }); - it(@"Should return nil if not set", ^ { SDLShow* testRequest = [[SDLShow alloc] init]; - + expect(testRequest.mainField1).to(beNil()); expect(testRequest.mainField2).to(beNil()); expect(testRequest.mainField3).to(beNil()); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSliderSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSliderSpec.m index 7455bcf51..294e0ce50 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSliderSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSliderSpec.m @@ -31,14 +31,14 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_numTicks:@2, - NAMES_position:@1, - NAMES_sliderHeader:@"Head", - NAMES_sliderFooter:[@[@"LeftFoot", @"RightFoot"] mutableCopy], - NAMES_timeout:@2000}, - NAMES_operation_name:NAMES_Slider}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameNumberTicks:@2, + SDLNamePosition:@1, + SDLNameSliderHeader:@"Head", + SDLNameSliderFooter:[@[@"LeftFoot", @"RightFoot"] mutableCopy], + SDLNameTimeout:@2000}, + SDLNameOperationName:SDLNameSlider}} mutableCopy]; SDLSlider* testRequest = [[SDLSlider alloc] initWithDictionary:dict]; expect(testRequest.numTicks).to(equal(@2)); @@ -59,4 +59,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSpeakSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSpeakSpec.m index dd6b6a400..e336b0067 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSpeakSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSpeakSpec.m @@ -26,10 +26,10 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_ttsChunks:[@[chunk] mutableCopy]}, - NAMES_operation_name:NAMES_Speak}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameTTSChunks:[@[chunk] mutableCopy]}, + SDLNameOperationName:SDLNameSpeak}} mutableCopy]; SDLSpeak* testRequest = [[SDLSpeak alloc] initWithDictionary:dict]; expect(testRequest.ttsChunks).to(equal([@[chunk] mutableCopy])); @@ -42,4 +42,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeButtonSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeButtonSpec.m index d51ae33a6..c541ccc40 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeButtonSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeButtonSpec.m @@ -19,19 +19,19 @@ it(@"Should set and get correctly", ^ { SDLSubscribeButton* testRequest = [[SDLSubscribeButton alloc] init]; - testRequest.buttonName = [SDLButtonName PRESET_5]; + testRequest.buttonName = SDLButtonNamePreset5; - expect(testRequest.buttonName).to(equal([SDLButtonName PRESET_5])); + expect(testRequest.buttonName).to(equal(SDLButtonNamePreset5)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_buttonName:[SDLButtonName PRESET_5]}, - NAMES_operation_name:NAMES_SubscribeButton}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameButtonName:SDLButtonNamePreset5}, + SDLNameOperationName:SDLNameSubscribeButton}} mutableCopy]; SDLSubscribeButton* testRequest = [[SDLSubscribeButton alloc] initWithDictionary:dict]; - expect(testRequest.buttonName).to(equal([SDLButtonName PRESET_5])); + expect(testRequest.buttonName).to(equal(SDLButtonNamePreset5)); }); it(@"Should return nil if not set", ^ { @@ -41,4 +41,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeVehicleDataSpec.m index c35d45db3..b85671aa4 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeVehicleDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeVehicleDataSpec.m @@ -69,33 +69,33 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_gps:@YES, - NAMES_speed:@NO, - NAMES_rpm:@YES, - NAMES_fuelLevel:@NO, - NAMES_fuelLevel_State:@YES, - NAMES_instantFuelConsumption:@NO, - NAMES_externalTemperature:@YES, - NAMES_prndl:@YES, - NAMES_tirePressure:@NO, - NAMES_odometer:@YES, - NAMES_beltStatus:@NO, - NAMES_bodyInformation:@YES, - NAMES_deviceStatus:@NO, - NAMES_driverBraking:@YES, - NAMES_wiperStatus:@NO, - NAMES_headLampStatus:@YES, - NAMES_engineTorque:@NO, - NAMES_accPedalPosition:@YES, - NAMES_steeringWheelAngle:@NO, - NAMES_eCallInfo:@YES, - NAMES_airbagStatus:@NO, - NAMES_emergencyEvent:@YES, - NAMES_clusterModeStatus:@NO, - NAMES_myKey:@YES}, - NAMES_operation_name:NAMES_SubscribeVehicleData}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameGPS:@YES, + SDLNameSpeed:@NO, + SDLNameRPM:@YES, + SDLNameFuelLevel:@NO, + SDLNameFuelLevelState:@YES, + SDLNameInstantFuelConsumption:@NO, + SDLNameExternalTemperature:@YES, + SDLNamePRNDL:@YES, + SDLNameTirePressure:@NO, + SDLNameOdometer:@YES, + SDLNameBeltStatus:@NO, + SDLNameBodyInformation:@YES, + SDLNameDeviceStatus:@NO, + SDLNameDriverBraking:@YES, + SDLNameWiperStatus:@NO, + SDLNameHeadLampStatus:@YES, + SDLNameEngineTorque:@NO, + SDLNameAccelerationPedalPosition:@YES, + SDLNameSteeringWheelAngle:@NO, + SDLNameECallInfo:@YES, + SDLNameAirbagStatus:@NO, + SDLNameEmergencyEvent:@YES, + SDLNameClusterModeStatus:@NO, + SDLNameMyKey:@YES}, + SDLNameOperationName:SDLNameSubscribeVehicleData}} mutableCopy]; SDLSubscribeVehicleData* testRequest = [[SDLSubscribeVehicleData alloc] initWithDictionary:dict]; expect(testRequest.gps).to(equal(@YES)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSystemRequestSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSystemRequestSpec.m index ade3fb762..d7ccade49 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSystemRequestSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSystemRequestSpec.m @@ -18,22 +18,22 @@ it(@"Should set and get correctly", ^ { SDLSystemRequest* testRequest = [[SDLSystemRequest alloc] init]; - testRequest.requestType = [SDLRequestType AUTH_REQUEST]; + testRequest.requestType = SDLRequestTypeAuthenticationRequest; testRequest.fileName = @"AnotherFile"; - expect(testRequest.requestType).to(equal([SDLRequestType AUTH_REQUEST])); + expect(testRequest.requestType).to(equal(SDLRequestTypeAuthenticationRequest)); expect(testRequest.fileName).to(equal(@"AnotherFile")); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_requestType:[SDLRequestType AUTH_REQUEST], - NAMES_fileName:@"AnotherFile"}, - NAMES_operation_name:NAMES_SystemRequest}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameRequestType:SDLRequestTypeAuthenticationRequest, + SDLNameFilename:@"AnotherFile"}, + SDLNameOperationName:SDLNameSystemRequest}} mutableCopy]; SDLSystemRequest* testRequest = [[SDLSystemRequest alloc] initWithDictionary:dict]; - expect(testRequest.requestType).to(equal([SDLRequestType AUTH_REQUEST])); + expect(testRequest.requestType).to(equal(SDLRequestTypeAuthenticationRequest)); expect(testRequest.fileName).to(equal(@"AnotherFile")); }); @@ -45,4 +45,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeButtonSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeButtonSpec.m index 4c0bfc3f1..e4d693685 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeButtonSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeButtonSpec.m @@ -19,19 +19,19 @@ it(@"Should set and get correctly", ^ { SDLUnsubscribeButton* testRequest = [[SDLUnsubscribeButton alloc] init]; - testRequest.buttonName = [SDLButtonName PRESET_0]; + testRequest.buttonName = SDLButtonNamePreset0; - expect(testRequest.buttonName).to(equal([SDLButtonName PRESET_0])); + expect(testRequest.buttonName).to(equal(SDLButtonNamePreset0)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_buttonName:[SDLButtonName PRESET_0]}, - NAMES_operation_name:NAMES_UnsubscribeButton}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameButtonName:SDLButtonNamePreset0}, + SDLNameOperationName:SDLNameUnsubscribeButton}} mutableCopy]; SDLUnsubscribeButton* testRequest = [[SDLUnsubscribeButton alloc] initWithDictionary:dict]; - expect(testRequest.buttonName).to(equal([SDLButtonName PRESET_0])); + expect(testRequest.buttonName).to(equal(SDLButtonNamePreset0)); }); it(@"Should return nil if not set", ^ { @@ -41,4 +41,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeVehicleDataSpec.m index 1bb2cb125..40ec363f8 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeVehicleDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeVehicleDataSpec.m @@ -69,33 +69,33 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_gps:@YES, - NAMES_speed:@YES, - NAMES_rpm:@YES, - NAMES_fuelLevel:@YES, - NAMES_fuelLevel_State:@YES, - NAMES_instantFuelConsumption:@YES, - NAMES_externalTemperature:@YES, - NAMES_prndl:@YES, - NAMES_tirePressure:@YES, - NAMES_odometer:@YES, - NAMES_beltStatus:@YES, - NAMES_bodyInformation:@YES, - NAMES_deviceStatus:@YES, - NAMES_driverBraking:@YES, - NAMES_wiperStatus:@YES, - NAMES_headLampStatus:@YES, - NAMES_engineTorque:@YES, - NAMES_accPedalPosition:@YES, - NAMES_steeringWheelAngle:@YES, - NAMES_eCallInfo:@YES, - NAMES_airbagStatus:@YES, - NAMES_emergencyEvent:@YES, - NAMES_clusterModeStatus:@YES, - NAMES_myKey:@YES}, - NAMES_operation_name:NAMES_UnsubscribeVehicleData}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameGPS:@YES, + SDLNameSpeed:@YES, + SDLNameRPM:@YES, + SDLNameFuelLevel:@YES, + SDLNameFuelLevelState:@YES, + SDLNameInstantFuelConsumption:@YES, + SDLNameExternalTemperature:@YES, + SDLNamePRNDL:@YES, + SDLNameTirePressure:@YES, + SDLNameOdometer:@YES, + SDLNameBeltStatus:@YES, + SDLNameBodyInformation:@YES, + SDLNameDeviceStatus:@YES, + SDLNameDriverBraking:@YES, + SDLNameWiperStatus:@YES, + SDLNameHeadLampStatus:@YES, + SDLNameEngineTorque:@YES, + SDLNameAccelerationPedalPosition:@YES, + SDLNameSteeringWheelAngle:@YES, + SDLNameECallInfo:@YES, + SDLNameAirbagStatus:@YES, + SDLNameEmergencyEvent:@YES, + SDLNameClusterModeStatus:@YES, + SDLNameMyKey:@YES}, + SDLNameOperationName:SDLNameUnsubscribeVehicleData}} mutableCopy]; SDLUnsubscribeVehicleData* testRequest = [[SDLUnsubscribeVehicleData alloc] initWithDictionary:dict]; expect(testRequest.gps).to(equal(@YES)); diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUpdateTurnListSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUpdateTurnListSpec.m index ae1d55823..24bd699d2 100644 --- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUpdateTurnListSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUpdateTurnListSpec.m @@ -30,11 +30,11 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_turnList:[@[turn] mutableCopy], - NAMES_softButtons:[@[button] mutableCopy]}, - NAMES_operation_name:NAMES_UpdateTurnList}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameTurnList:[@[turn] mutableCopy], + SDLNameSoftButtons:[@[button] mutableCopy]}, + SDLNameOperationName:SDLNameUpdateTurnList}} mutableCopy]; SDLUpdateTurnList* testRequest = [[SDLUpdateTurnList alloc] initWithDictionary:dict]; expect(testRequest.turnList).to(equal([@[turn] mutableCopy])); @@ -49,4 +49,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLAlertResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLAlertResponseSpec.m index e29e23ed3..73cb0023c 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLAlertResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLAlertResponseSpec.m @@ -13,4 +13,19 @@ QuickSpecBegin(SDLAlertResponseSpec) -QuickSpecEnd \ No newline at end of file +describe(@"Getter/Setter Tests", ^ { + it(@"Should set and get correctly", ^ { + SDLAlertResponse* testResponse = [[SDLAlertResponse alloc] init]; + testResponse.tryAgainTime = @2; + + expect(testResponse.tryAgainTime).to(equal(@2)); + }); + + it(@"Should return nil if not set", ^ { + SDLAlertResponse* testResponse = [[SDLAlertResponse alloc] init]; + + expect(testResponse.tryAgainTime).to(beNil()); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLButtonPressResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLButtonPressResponseSpec.m new file mode 100644 index 000000000..d9fc72fc8 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLButtonPressResponseSpec.m @@ -0,0 +1,16 @@ +// +// SDLButtonPressResponseSpec.m +// SmartDeviceLink-iOS +// + +#import + +#import +#import + +#import "SDLButtonPressResponse.h" +#import "SDLNames.h" + +QuickSpecBegin(SDLButtonPressResponseSpec) + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteFileResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteFileResponseSpec.m index 64e8522c9..13f68a2ea 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteFileResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteFileResponseSpec.m @@ -23,10 +23,10 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_response: - @{NAMES_parameters: - @{NAMES_spaceAvailable:@0}, - NAMES_operation_name:NAMES_DeleteFile}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameResponse: + @{SDLNameParameters: + @{SDLNameSpaceAvailable:@0}, + SDLNameOperationName:SDLNameDeleteFile}} mutableCopy]; SDLDeleteFileResponse* testResponse = [[SDLDeleteFileResponse alloc] initWithDictionary:dict]; expect(testResponse.spaceAvailable).to(equal(@0)); @@ -39,4 +39,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDiagnosticMessageResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDiagnosticMessageResponseSpec.m index 7507bbe5a..eac33a7da 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDiagnosticMessageResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDiagnosticMessageResponseSpec.m @@ -17,19 +17,19 @@ it(@"Should set and get correctly", ^ { SDLDiagnosticMessageResponse* testResponse = [[SDLDiagnosticMessageResponse alloc] init]; - testResponse.messageDataResult = [@[@3, @9, @27, @81] mutableCopy]; + testResponse.messageDataResult = @[@3, @9, @27, @81]; - expect(testResponse.messageDataResult).to(equal([@[@3, @9, @27, @81] mutableCopy])); + expect(testResponse.messageDataResult).to(equal(@[@3, @9, @27, @81])); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_response: - @{NAMES_parameters: - @{NAMES_messageDataResult:[@[@3, @9, @27, @81] mutableCopy]}, - NAMES_operation_name:NAMES_DiagnosticMessage}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameResponse: + @{SDLNameParameters: + @{SDLNameMessageDataResult:@[@3, @9, @27, @81]}, + SDLNameOperationName:SDLNameDiagnosticMessage}} mutableCopy]; SDLDiagnosticMessageResponse* testResponse = [[SDLDiagnosticMessageResponse alloc] initWithDictionary:dict]; - expect(testResponse.messageDataResult).to(equal([@[@3, @9, @27, @81] mutableCopy])); + expect(testResponse.messageDataResult).to(equal(@[@3, @9, @27, @81])); }); it(@"Should return nil if not set", ^ { @@ -39,4 +39,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetDTCsResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetDTCsResponseSpec.m index 150f9bd73..d22e8fd1b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetDTCsResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetDTCsResponseSpec.m @@ -25,11 +25,11 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_response: - @{NAMES_parameters: - @{NAMES_ecuHeader:@404, - NAMES_dtc:[@[@"FFFF", @"FFFE", @"FFFD"] mutableCopy]}, - NAMES_operation_name:NAMES_GetDTCs}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameResponse: + @{SDLNameParameters: + @{SDLNameECUHeader:@404, + SDLNameDTC:[@[@"FFFF", @"FFFE", @"FFFD"] mutableCopy]}, + SDLNameOperationName:SDLNameGetDTCs}} mutableCopy]; SDLGetDTCsResponse* testResponse = [[SDLGetDTCsResponse alloc] initWithDictionary:dict]; expect(testResponse.ecuHeader).to(equal(@404)); @@ -44,4 +44,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetInteriorVehicleDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetInteriorVehicleDataResponseSpec.m new file mode 100644 index 000000000..7878eedce --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetInteriorVehicleDataResponseSpec.m @@ -0,0 +1,56 @@ +// +// SDLGetInteriorVehicleDataResponseSpec.m +// SmartDeviceLink-iOS +// + +#import + +#import +#import + +#import "SDLGetInteriorVehicleDataResponse.h" +#import "SDLModuleData.h" +#import "SDLNames.h" + +QuickSpecBegin(SDLGetInteriorVehicleDataResponseSpec) + +describe(@"Getter/Setter Tests", ^ { + __block SDLModuleData* someModuleData = nil; + + beforeEach(^{ + someModuleData = [[SDLModuleData alloc] init]; + }); + + it(@"Should set and get correctly", ^ { + SDLGetInteriorVehicleDataResponse* testResponse = [[SDLGetInteriorVehicleDataResponse alloc] init]; + + testResponse.moduleData = someModuleData; + testResponse.isSubscribed = @NO; + + expect(testResponse.moduleData).to(equal(someModuleData)); + expect(testResponse.isSubscribed).to(equal(@NO)); + }); + + + + it(@"Should get correctly when initialized", ^ { + NSMutableDictionary *dict = [@{SDLNameResponse: + @{SDLNameParameters: + @{SDLNameModuleData:someModuleData, + SDLNameIsSubscribed:@NO}, + SDLNameOperationName:SDLNameGetInteriorVehicleData}} mutableCopy]; + SDLGetInteriorVehicleDataResponse* testResponse = [[SDLGetInteriorVehicleDataResponse alloc] initWithDictionary:dict]; + + expect(testResponse.moduleData).to(equal(someModuleData)); + expect(testResponse.isSubscribed).to(equal(@NO)); + }); + + it(@"Should return nil if not set", ^ { + SDLGetInteriorVehicleDataResponse* testResponse = [[SDLGetInteriorVehicleDataResponse alloc] init]; + + expect(testResponse.moduleData).to(beNil()); + expect(testResponse.isSubscribed).to(beNil()); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetSystemCapabilitiesResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetSystemCapabilityResponseSpec.m similarity index 76% rename from SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetSystemCapabilitiesResponseSpec.m rename to SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetSystemCapabilityResponseSpec.m index 4524ca2fa..a7f6ed74f 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetSystemCapabilitiesResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetSystemCapabilityResponseSpec.m @@ -10,7 +10,7 @@ #import "SDLSystemCapability.h" #import "SDLSystemCapabilityType.h" -QuickSpecBegin(SDLGetSystemCapabilitiesResponseSpec) +QuickSpecBegin(SDLGetSystemCapabilityResponseSpec) describe(@"Getter/Setter Tests", ^ { it(@"Should set and get correctly", ^ { @@ -18,7 +18,7 @@ testRequest.systemCapability = [[SDLSystemCapability alloc] initWithNavigationCapability:[[SDLNavigationCapability alloc] initWithSendLocation:YES waypoints:NO]]; - expect(testRequest.systemCapability.systemCapabilityType).to(equal([SDLSystemCapabilityType NAVIGATION])); + expect(testRequest.systemCapability.systemCapabilityType).to(equal(SDLSystemCapabilityTypeNavigation)); expect(testRequest.systemCapability.navigationCapability.sendLocationEnabled).to(equal(YES)); expect(testRequest.systemCapability.navigationCapability.getWayPointsEnabled).to(equal(NO)); expect(testRequest.systemCapability.phoneCapability).to(beNil()); @@ -27,17 +27,17 @@ describe(@"Initialization tests", ^{ it(@"Should get correctly when initialized with a dictionary", ^ { - NSDictionary *dict = @{NAMES_response: @{ - NAMES_parameters: @{ - NAMES_systemCapability: @{NAMES_systemCapabilityType: @"NAVIGATION", - NAMES_navigationCapability: @{NAMES_getWayPointsEnabled: @(NO), - NAMES_sendLocationEnabled: @(YES)}} + NSDictionary *dict = @{SDLNameResponse: @{ + SDLNameParameters: @{ + SDLNameSystemCapability: @{SDLNameSystemCapabilityType: @"NAVIGATION", + SDLNameNavigationCapability: @{SDLNameGetWayPointsEnabled: @(NO), + SDLNameSendLocationEnabled: @(YES)}} } } }; - SDLGetSystemCapabilityResponse *testResponse = [[SDLGetSystemCapabilityResponse alloc] initWithDictionary:[dict mutableCopy]]; + SDLGetSystemCapabilityResponse *testResponse = [[SDLGetSystemCapabilityResponse alloc] initWithDictionary:dict]; - expect(testResponse.systemCapability.systemCapabilityType).to(equal([SDLSystemCapabilityType NAVIGATION])); + expect(testResponse.systemCapability.systemCapabilityType).to(equal(SDLSystemCapabilityTypeNavigation)); expect(testResponse.systemCapability.navigationCapability.sendLocationEnabled).to(equal(YES)); expect(testResponse.systemCapability.navigationCapability.getWayPointsEnabled).to(equal(NO)); expect(testResponse.systemCapability.phoneCapability).to(beNil()); diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m index d70e8f12b..9831ec761 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m @@ -34,18 +34,18 @@ testResponse.speed = @100; testResponse.rpm = @3; testResponse.fuelLevel = @99.9999; - testResponse.fuelLevel_State = [SDLComponentVolumeStatus FAULT]; + testResponse.fuelLevel_State = SDLComponentVolumeStatusFault; testResponse.instantFuelConsumption = @40.7; testResponse.externalTemperature = @0; testResponse.vin = @"6574839201"; - testResponse.prndl = [SDLPRNDL PARK]; + testResponse.prndl = SDLPRNDLPark; testResponse.tirePressure = tires; testResponse.odometer = @70000; testResponse.beltStatus = belt; testResponse.bodyInformation = body; testResponse.deviceStatus = device; - testResponse.driverBraking = [SDLVehicleDataEventStatus NO_EVENT]; - testResponse.wiperStatus = [SDLWiperStatus AUTO_HIGH]; + testResponse.driverBraking = SDLVehicleDataEventStatusNoEvent; + testResponse.wiperStatus = SDLWiperStatusAutomaticHigh; testResponse.headLampStatus = headLamp; testResponse.engineTorque = @630.4; testResponse.accPedalPosition = @0; @@ -60,18 +60,18 @@ expect(testResponse.speed).to(equal(@100)); expect(testResponse.rpm).to(equal(@3)); expect(testResponse.fuelLevel).to(equal(@99.9999)); - expect(testResponse.fuelLevel_State).to(equal([SDLComponentVolumeStatus FAULT])); + expect(testResponse.fuelLevel_State).to(equal(SDLComponentVolumeStatusFault)); expect(testResponse.instantFuelConsumption).to(equal(@40.7)); expect(testResponse.externalTemperature).to(equal(@0)); expect(testResponse.vin).to(equal(@"6574839201")); - expect(testResponse.prndl).to(equal([SDLPRNDL PARK])); + expect(testResponse.prndl).to(equal(SDLPRNDLPark)); expect(testResponse.tirePressure).to(equal(tires)); expect(testResponse.odometer).to(equal(@70000)); expect(testResponse.beltStatus).to(equal(belt)); expect(testResponse.bodyInformation).to(equal(body)); expect(testResponse.deviceStatus).to(equal(device)); - expect(testResponse.driverBraking).to(equal([SDLVehicleDataEventStatus NO_EVENT])); - expect(testResponse.wiperStatus).to(equal([SDLWiperStatus AUTO_HIGH])); + expect(testResponse.driverBraking).to(equal(SDLVehicleDataEventStatusNoEvent)); + expect(testResponse.wiperStatus).to(equal(SDLWiperStatusAutomaticHigh)); expect(testResponse.headLampStatus).to(equal(headLamp)); expect(testResponse.engineTorque).to(equal(@630.4)); expect(testResponse.accPedalPosition).to(equal(@0)); @@ -84,52 +84,52 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_notification: - @{NAMES_parameters: - @{NAMES_gps:gps, - NAMES_speed:@100, - NAMES_rpm:@3, - NAMES_fuelLevel:@99.9999, - NAMES_fuelLevel_State:[SDLComponentVolumeStatus FAULT], - NAMES_instantFuelConsumption:@40.7, - NAMES_externalTemperature:@0, - NAMES_vin:@"6574839201", - NAMES_prndl:[SDLPRNDL PARK], - NAMES_tirePressure:tires, - NAMES_odometer:@70000, - NAMES_beltStatus:belt, - NAMES_bodyInformation:body, - NAMES_deviceStatus:device, - NAMES_driverBraking:[SDLVehicleDataEventStatus NO_EVENT], - NAMES_wiperStatus:[SDLWiperStatus AUTO_HIGH], - NAMES_headLampStatus:headLamp, - NAMES_engineTorque:@630.4, - NAMES_accPedalPosition:@0, - NAMES_steeringWheelAngle:@-1500, - NAMES_eCallInfo:eCall, - NAMES_airbagStatus:airbag, - NAMES_emergencyEvent:event, - NAMES_clusterModeStatus:clusterMode, - NAMES_myKey:myKey}, - NAMES_operation_name:NAMES_GetVehicleData}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameNotification: + @{SDLNameParameters: + @{SDLNameGPS:gps, + SDLNameSpeed:@100, + SDLNameRPM:@3, + SDLNameFuelLevel:@99.9999, + SDLNameFuelLevelState:SDLComponentVolumeStatusFault, + SDLNameInstantFuelConsumption:@40.7, + SDLNameExternalTemperature:@0, + SDLNameVIN:@"6574839201", + SDLNamePRNDL:SDLPRNDLPark, + SDLNameTirePressure:tires, + SDLNameOdometer:@70000, + SDLNameBeltStatus:belt, + SDLNameBodyInformation:body, + SDLNameDeviceStatus:device, + SDLNameDriverBraking:SDLVehicleDataEventStatusNoEvent, + SDLNameWiperStatus:SDLWiperStatusAutomaticHigh, + SDLNameHeadLampStatus:headLamp, + SDLNameEngineTorque:@630.4, + SDLNameAccelerationPedalPosition:@0, + SDLNameSteeringWheelAngle:@-1500, + SDLNameECallInfo:eCall, + SDLNameAirbagStatus:airbag, + SDLNameEmergencyEvent:event, + SDLNameClusterModeStatus:clusterMode, + SDLNameMyKey:myKey}, + SDLNameOperationName:SDLNameGetVehicleData}} mutableCopy]; SDLGetVehicleDataResponse* testResponse = [[SDLGetVehicleDataResponse alloc] initWithDictionary:dict]; expect(testResponse.gps).to(equal(gps)); expect(testResponse.speed).to(equal(@100)); expect(testResponse.rpm).to(equal(@3)); expect(testResponse.fuelLevel).to(equal(@99.9999)); - expect(testResponse.fuelLevel_State).to(equal([SDLComponentVolumeStatus FAULT])); + expect(testResponse.fuelLevel_State).to(equal(SDLComponentVolumeStatusFault)); expect(testResponse.instantFuelConsumption).to(equal(@40.7)); expect(testResponse.externalTemperature).to(equal(@0)); expect(testResponse.vin).to(equal(@"6574839201")); - expect(testResponse.prndl).to(equal([SDLPRNDL PARK])); + expect(testResponse.prndl).to(equal(SDLPRNDLPark)); expect(testResponse.tirePressure).to(equal(tires)); expect(testResponse.odometer).to(equal(@70000)); expect(testResponse.beltStatus).to(equal(belt)); expect(testResponse.bodyInformation).to(equal(body)); expect(testResponse.deviceStatus).to(equal(device)); - expect(testResponse.driverBraking).to(equal([SDLVehicleDataEventStatus NO_EVENT])); - expect(testResponse.wiperStatus).to(equal([SDLWiperStatus AUTO_HIGH])); + expect(testResponse.driverBraking).to(equal(SDLVehicleDataEventStatusNoEvent)); + expect(testResponse.wiperStatus).to(equal(SDLWiperStatusAutomaticHigh)); expect(testResponse.headLampStatus).to(equal(headLamp)); expect(testResponse.engineTorque).to(equal(@630.4)); expect(testResponse.accPedalPosition).to(equal(@0)); @@ -172,4 +172,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetWaypointsResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetWaypointsResponseSpec.m index d1f2a0ab3..9b5f0b873 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetWaypointsResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetWaypointsResponseSpec.m @@ -63,9 +63,9 @@ someWaypoints = @[someLocation]; - NSDictionary *initDict = @{NAMES_response : @{ - NAMES_parameters: @{ - NAMES_waypoints: someWaypoints + NSDictionary *initDict = @{SDLNameResponse : @{ + SDLNameParameters: @{ + SDLNameWayPoints: someWaypoints } } }; @@ -83,8 +83,8 @@ context(@"when parameters are not set", ^{ beforeEach(^{ NSDictionary *initDict = @{ - NAMES_request: @{ - NAMES_parameters: @{} + SDLNameRequest: @{ + SDLNameParameters: @{} } }; diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLListFilesResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLListFilesResponseSpec.m index 824bc7517..9cc6571a5 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLListFilesResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLListFilesResponseSpec.m @@ -25,11 +25,11 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_response: - @{NAMES_parameters: - @{NAMES_filenames:[@[@"Music/music.mp3", @"Documents/document.txt", @"Downloads/format.exe"] mutableCopy], - NAMES_spaceAvailable:@500000000}, - NAMES_operation_name:NAMES_ListFiles}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameResponse: + @{SDLNameParameters: + @{SDLNameFilenames:[@[@"Music/music.mp3", @"Documents/document.txt", @"Downloads/format.exe"] mutableCopy], + SDLNameSpaceAvailable:@500000000}, + SDLNameOperationName:SDLNameListFiles}} mutableCopy]; SDLListFilesResponse* testResponse = [[SDLListFilesResponse alloc] initWithDictionary:dict]; expect(testResponse.filenames).to(equal([@[@"Music/music.mp3", @"Documents/document.txt", @"Downloads/format.exe"] mutableCopy])); @@ -44,4 +44,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPerformInteractionResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPerformInteractionResponseSpec.m index b32b44cd6..fc2219356 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPerformInteractionResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPerformInteractionResponseSpec.m @@ -21,25 +21,25 @@ testResponse.choiceID = @25; testResponse.manualTextEntry = @"entry"; - testResponse.triggerSource = [SDLTriggerSource KEYBOARD]; + testResponse.triggerSource = SDLTriggerSourceKeyboard; expect(testResponse.choiceID).to(equal(@25)); expect(testResponse.manualTextEntry).to(equal(@"entry")); - expect(testResponse.triggerSource).to(equal([SDLTriggerSource KEYBOARD])); + expect(testResponse.triggerSource).to(equal(SDLTriggerSourceKeyboard)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_response: - @{NAMES_parameters: - @{NAMES_choiceID:@25, - NAMES_manualTextEntry:@"entry", - NAMES_triggerSource:[SDLTriggerSource KEYBOARD]}, - NAMES_operation_name:NAMES_PerformInteraction}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameResponse: + @{SDLNameParameters: + @{SDLNameChoiceId:@25, + SDLNameManualTextEntry:@"entry", + SDLNameTriggerSource:SDLTriggerSourceKeyboard}, + SDLNameOperationName:SDLNamePerformInteraction}} mutableCopy]; SDLPerformInteractionResponse* testResponse = [[SDLPerformInteractionResponse alloc] initWithDictionary:dict]; expect(testResponse.choiceID).to(equal(@25)); expect(testResponse.manualTextEntry).to(equal(@"entry")); - expect(testResponse.triggerSource).to(equal([SDLTriggerSource KEYBOARD])); + expect(testResponse.triggerSource).to(equal(SDLTriggerSourceKeyboard)); }); it(@"Should return nil if not set", ^ { @@ -51,4 +51,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPutFileResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPutFileResponseSpec.m index 565f97a79..09ae52453 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPutFileResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLPutFileResponseSpec.m @@ -23,10 +23,10 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_response: - @{NAMES_parameters: - @{NAMES_spaceAvailable:@1248}, - NAMES_operation_name:NAMES_PutFile}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameResponse: + @{SDLNameParameters: + @{SDLNameSpaceAvailable:@1248}, + SDLNameOperationName:SDLNamePutFile}} mutableCopy]; SDLPutFileResponse* testResponse = [[SDLPutFileResponse alloc] initWithDictionary:dict]; expect(testResponse.spaceAvailable).to(equal(@1248)); @@ -39,4 +39,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLReadDIDResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLReadDIDResponseSpec.m index 0ae2c5b9d..e8432243a 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLReadDIDResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLReadDIDResponseSpec.m @@ -26,10 +26,10 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_response: - @{NAMES_parameters: - @{NAMES_didResult:[@[result] mutableCopy]}, - NAMES_operation_name:NAMES_ReadDID}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameResponse: + @{SDLNameParameters: + @{SDLNameDIDResult:[@[result] mutableCopy]}, + SDLNameOperationName:SDLNameReadDID}} mutableCopy]; SDLReadDIDResponse* testResponse = [[SDLReadDIDResponse alloc] initWithDictionary:dict]; expect(testResponse.didResult).to(equal([@[result] mutableCopy])); @@ -42,4 +42,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLRegisterAppInterfaceResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLRegisterAppInterfaceResponseSpec.m index 62eb9b152..2e2123c3f 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLRegisterAppInterfaceResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLRegisterAppInterfaceResponseSpec.m @@ -28,80 +28,84 @@ SDLRegisterAppInterfaceResponse* testResponse = [[SDLRegisterAppInterfaceResponse alloc] init]; testResponse.syncMsgVersion = version; - testResponse.language = [SDLLanguage ES_MX]; - testResponse.hmiDisplayLanguage = [SDLLanguage RU_RU]; + testResponse.language = SDLLanguageEsMx; + testResponse.hmiDisplayLanguage = SDLLanguageRuRu; testResponse.displayCapabilities = info; - testResponse.buttonCapabilities = [@[button] mutableCopy]; - testResponse.softButtonCapabilities = [@[softButton] mutableCopy]; + testResponse.buttonCapabilities = @[button]; + testResponse.softButtonCapabilities = @[softButton]; testResponse.presetBankCapabilities = presetBank; - testResponse.hmiZoneCapabilities = [@[[SDLHMIZoneCapabilities BACK], [SDLHMIZoneCapabilities FRONT]] copy]; - testResponse.speechCapabilities = [@[[SDLSpeechCapabilities SAPI_PHONEMES], [SDLSpeechCapabilities SILENCE]] copy]; - testResponse.vrCapabilities = [@[[SDLVRCapabilities TEXT]] copy]; - testResponse.audioPassThruCapabilities = [@[audioPassThru] mutableCopy]; + testResponse.hmiZoneCapabilities = @[SDLHMIZoneCapabilitiesBack, SDLHMIZoneCapabilitiesFront]; + testResponse.speechCapabilities = @[SDLSpeechCapabilitiesSAPIPhonemes, SDLSpeechCapabilitiesSilence]; + testResponse.vrCapabilities = @[SDLVRCapabilitiesText]; + testResponse.audioPassThruCapabilities = @[audioPassThru]; + testResponse.pcmStreamCapabilities = audioPassThru; testResponse.vehicleType = vehicle; - testResponse.prerecordedSpeech = [@[[SDLPrerecordedSpeech LISTEN_JINGLE], [SDLPrerecordedSpeech HELP_JINGLE]] copy]; - testResponse.supportedDiagModes = [@[@67, @99, @111] mutableCopy]; + testResponse.prerecordedSpeech = @[SDLPrerecordedSpeechListen, SDLPrerecordedSpeechHelp]; + testResponse.supportedDiagModes = @[@67, @99, @111]; testResponse.hmiCapabilities = hmiCapabilities; testResponse.sdlVersion = @"sdlVersion"; testResponse.systemSoftwareVersion = @"systemSoftwareVersion"; expect(testResponse.syncMsgVersion).to(equal(version)); - expect(testResponse.language).to(equal([SDLLanguage ES_MX])); - expect(testResponse.hmiDisplayLanguage).to(equal([SDLLanguage RU_RU])); + expect(testResponse.language).to(equal(SDLLanguageEsMx)); + expect(testResponse.hmiDisplayLanguage).to(equal(SDLLanguageRuRu)); expect(testResponse.displayCapabilities).to(equal(info)); - expect(testResponse.buttonCapabilities).to(equal([@[button] mutableCopy])); - expect(testResponse.softButtonCapabilities).to(equal([@[softButton] mutableCopy])); + expect(testResponse.buttonCapabilities).to(equal(@[button])); + expect(testResponse.softButtonCapabilities).to(equal(@[softButton])); expect(testResponse.presetBankCapabilities).to(equal(presetBank)); - expect(testResponse.hmiZoneCapabilities).to(equal([@[[SDLHMIZoneCapabilities BACK], [SDLHMIZoneCapabilities FRONT]] copy])); - expect(testResponse.speechCapabilities).to(equal([@[[SDLSpeechCapabilities SAPI_PHONEMES], [SDLSpeechCapabilities SILENCE]] copy])); - expect(testResponse.vrCapabilities).to(equal([@[[SDLVRCapabilities TEXT]] copy])); - expect(testResponse.audioPassThruCapabilities).to(equal([@[audioPassThru] mutableCopy])); + expect(testResponse.hmiZoneCapabilities).to(equal(@[SDLHMIZoneCapabilitiesBack, SDLHMIZoneCapabilitiesFront])); + expect(testResponse.speechCapabilities).to(equal(@[SDLSpeechCapabilitiesSAPIPhonemes, SDLSpeechCapabilitiesSilence])); + expect(testResponse.vrCapabilities).to(equal(@[SDLVRCapabilitiesText])); + expect(testResponse.audioPassThruCapabilities).to(equal(@[audioPassThru])); + expect(testResponse.pcmStreamCapabilities).to(equal(audioPassThru)); expect(testResponse.vehicleType).to(equal(vehicle)); - expect(testResponse.prerecordedSpeech).to(equal([@[[SDLPrerecordedSpeech LISTEN_JINGLE], [SDLPrerecordedSpeech HELP_JINGLE]] copy])); - expect(testResponse.supportedDiagModes).to(equal([@[@67, @99, @111] mutableCopy])); + expect(testResponse.prerecordedSpeech).to(equal(@[SDLPrerecordedSpeechListen, SDLPrerecordedSpeechHelp])); + expect(testResponse.supportedDiagModes).to(equal(@[@67, @99, @111])); expect(testResponse.hmiCapabilities).to(equal(hmiCapabilities)); expect(testResponse.sdlVersion).to(equal(@"sdlVersion")); expect(testResponse.systemSoftwareVersion).to(equal(@"systemSoftwareVersion")); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_syncMsgVersion:version, - NAMES_language:[SDLLanguage ES_MX], - NAMES_hmiDisplayLanguage:[SDLLanguage RU_RU], - NAMES_displayCapabilities:info, - NAMES_buttonCapabilities:[@[button] mutableCopy], - NAMES_softButtonCapabilities:[@[softButton] mutableCopy], - NAMES_presetBankCapabilities:presetBank, - NAMES_hmiZoneCapabilities:[@[[SDLHMIZoneCapabilities BACK], [SDLHMIZoneCapabilities FRONT]] copy], - NAMES_speechCapabilities:[@[[SDLSpeechCapabilities SAPI_PHONEMES], [SDLSpeechCapabilities SILENCE]] copy], - NAMES_vrCapabilities:[@[[SDLVRCapabilities TEXT]] copy], - NAMES_audioPassThruCapabilities:[@[audioPassThru] mutableCopy], - NAMES_vehicleType:vehicle, - NAMES_prerecordedSpeech:[@[[SDLPrerecordedSpeech LISTEN_JINGLE], [SDLPrerecordedSpeech HELP_JINGLE]] mutableCopy], - NAMES_supportedDiagModes:[@[@67, @99, @111] mutableCopy], - NAMES_hmiCapabilities: hmiCapabilities, - NAMES_sdlVersion: @"sdlVersion", - NAMES_systemSoftwareVersion: @"systemSoftwareVersion" + 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" }, - NAMES_operation_name:NAMES_RegisterAppInterface}} mutableCopy]; + SDLNameOperationName:SDLNameRegisterAppInterface}}; SDLRegisterAppInterfaceResponse* testResponse = [[SDLRegisterAppInterfaceResponse alloc] initWithDictionary:dict]; expect(testResponse.syncMsgVersion).to(equal(version)); - expect(testResponse.language).to(equal([SDLLanguage ES_MX])); - expect(testResponse.hmiDisplayLanguage).to(equal([SDLLanguage RU_RU])); + expect(testResponse.language).to(equal(SDLLanguageEsMx)); + expect(testResponse.hmiDisplayLanguage).to(equal(SDLLanguageRuRu)); expect(testResponse.displayCapabilities).to(equal(info)); - expect(testResponse.buttonCapabilities).to(equal([@[button] mutableCopy])); - expect(testResponse.softButtonCapabilities).to(equal([@[softButton] mutableCopy])); + expect(testResponse.buttonCapabilities).to(equal(@[button])); + expect(testResponse.softButtonCapabilities).to(equal(@[softButton])); expect(testResponse.presetBankCapabilities).to(equal(presetBank)); - expect(testResponse.hmiZoneCapabilities).to(equal([@[[SDLHMIZoneCapabilities BACK], [SDLHMIZoneCapabilities FRONT]] copy])); - expect(testResponse.speechCapabilities).to(equal([@[[SDLSpeechCapabilities SAPI_PHONEMES], [SDLSpeechCapabilities SILENCE]] copy])); - expect(testResponse.vrCapabilities).to(equal([@[[SDLVRCapabilities TEXT]] copy])); - expect(testResponse.audioPassThruCapabilities).to(equal([@[audioPassThru] mutableCopy])); + expect(testResponse.hmiZoneCapabilities).to(equal(@[SDLHMIZoneCapabilitiesBack, SDLHMIZoneCapabilitiesFront])); + expect(testResponse.speechCapabilities).to(equal(@[SDLSpeechCapabilitiesSAPIPhonemes, SDLSpeechCapabilitiesSilence])); + expect(testResponse.vrCapabilities).to(equal(@[SDLVRCapabilitiesText])); + expect(testResponse.audioPassThruCapabilities).to(equal(@[audioPassThru])); + expect(testResponse.pcmStreamCapabilities).to(equal(audioPassThru)); expect(testResponse.vehicleType).to(equal(vehicle)); - expect(testResponse.prerecordedSpeech).to(equal([@[[SDLPrerecordedSpeech LISTEN_JINGLE], [SDLPrerecordedSpeech HELP_JINGLE]] copy])); - expect(testResponse.supportedDiagModes).to(equal([@[@67, @99, @111] mutableCopy])); + expect(testResponse.prerecordedSpeech).to(equal(@[SDLPrerecordedSpeechListen, SDLPrerecordedSpeechHelp])); + expect(testResponse.supportedDiagModes).to(equal(@[@67, @99, @111])); expect(testResponse.hmiCapabilities).to(equal(hmiCapabilities)); expect(testResponse.sdlVersion).to(equal(@"sdlVersion")); expect(testResponse.systemSoftwareVersion).to(equal(@"systemSoftwareVersion")); @@ -121,6 +125,7 @@ expect(testResponse.speechCapabilities).to(beNil()); expect(testResponse.vrCapabilities).to(beNil()); expect(testResponse.audioPassThruCapabilities).to(beNil()); + expect(testResponse.pcmStreamCapabilities).to(beNil()); expect(testResponse.vehicleType).to(beNil()); expect(testResponse.prerecordedSpeech).to(beNil()); expect(testResponse.supportedDiagModes).to(beNil()); diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSendHapticDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSendHapticDataResponseSpec.m index 693e3841a..29be138ad 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSendHapticDataResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSendHapticDataResponseSpec.m @@ -2,7 +2,7 @@ // SDLSendHapticDataResponseSpec.m // SmartDeviceLink-iOS // -// Created by Nicole on 8/3/17. +// Created by Nicole on 8/4/17. // Copyright © 2017 smartdevicelink. All rights reserved. // diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetDisplayLayoutResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetDisplayLayoutResponseSpec.m index 3eeab76a1..29b589eef 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetDisplayLayoutResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetDisplayLayoutResponseSpec.m @@ -39,13 +39,13 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_request: - @{NAMES_parameters: - @{NAMES_displayCapabilities:info, - NAMES_buttonCapabilities:[@[button] mutableCopy], - NAMES_softButtonCapabilities:[@[softButton] mutableCopy], - NAMES_presetBankCapabilities:presetBank}, - NAMES_operation_name:NAMES_SetDisplayLayout}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRequest: + @{SDLNameParameters: + @{SDLNameDisplayCapabilities:info, + SDLNameButtonCapabilities:[@[button] mutableCopy], + SDLNameSoftButtonCapabilities:[@[softButton] mutableCopy], + SDLNamePresetBankCapabilities:presetBank}, + SDLNameOperationName:SDLNameSetDisplayLayout}} mutableCopy]; SDLSetDisplayLayoutResponse* testResponse = [[SDLSetDisplayLayoutResponse alloc] initWithDictionary:dict]; expect(testResponse.displayCapabilities).to(equal(info)); @@ -64,4 +64,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetInteriorVehicleDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetInteriorVehicleDataResponseSpec.m new file mode 100644 index 000000000..a41210e91 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSetInteriorVehicleDataResponseSpec.m @@ -0,0 +1,50 @@ +// +// SDLSetInteriorVehicleDataResponseSpec.m +// SmartDeviceLink-iOS +// + +#import + +#import +#import + +#import "SDLSetInteriorVehicleDataResponse.h" +#import "SDLModuleData.h" +#import "SDLNames.h" + +QuickSpecBegin(SDLSetInteriorVehicleDataResponseSpec) + +describe(@"Getter/Setter Tests", ^ { + __block SDLModuleData* someModuleData = nil; + + beforeEach(^{ + someModuleData = [[SDLModuleData alloc] init]; + }); + + it(@"Should set and get correctly", ^ { + SDLSetInteriorVehicleDataResponse* testResponse = [[SDLSetInteriorVehicleDataResponse alloc] init]; + testResponse.moduleData = someModuleData; + + expect(testResponse.moduleData).to(equal(someModuleData)); + }); + + + + it(@"Should get correctly when initialized", ^ { + NSMutableDictionary *dict = [@{SDLNameResponse: + @{SDLNameParameters: + @{SDLNameModuleData:someModuleData}, + SDLNameOperationName:SDLNameSetInteriorVehicleData}} mutableCopy]; + SDLSetInteriorVehicleDataResponse* testResponse = [[SDLSetInteriorVehicleDataResponse alloc] initWithDictionary:dict]; + + expect(testResponse.moduleData).to(equal(someModuleData)); + }); + + it(@"Should return nil if not set", ^ { + SDLSetInteriorVehicleDataResponse* testResponse = [[SDLSetInteriorVehicleDataResponse alloc] init]; + + expect(testResponse.moduleData).to(beNil()); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSliderResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSliderResponseSpec.m index 6f92c1e48..b7dce33cb 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSliderResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSliderResponseSpec.m @@ -24,10 +24,10 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_response: - @{NAMES_parameters: - @{NAMES_sliderPosition:@13}, - NAMES_operation_name:NAMES_Slider}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameResponse: + @{SDLNameParameters: + @{SDLNameSliderPosition:@13}, + SDLNameOperationName:SDLNameSlider}} mutableCopy]; SDLSliderResponse* testResponse = [[SDLSliderResponse alloc] initWithDictionary:dict]; expect(testResponse.sliderPosition).to(equal(@13)); @@ -40,4 +40,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeVehicleDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeVehicleDataResponseSpec.m index d6c0dc6ac..a8b890a8d 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeVehicleDataResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeVehicleDataResponseSpec.m @@ -73,33 +73,33 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_response: - @{NAMES_parameters: - @{NAMES_gps:vehicleDataResult, - NAMES_speed:vehicleDataResult, - NAMES_rpm:vehicleDataResult, - NAMES_fuelLevel:vehicleDataResult, - NAMES_fuelLevel_State:vehicleDataResult, - NAMES_instantFuelConsumption:vehicleDataResult, - NAMES_externalTemperature:vehicleDataResult, - NAMES_prndl:vehicleDataResult, - NAMES_tirePressure:vehicleDataResult, - NAMES_odometer:vehicleDataResult, - NAMES_beltStatus:vehicleDataResult, - NAMES_bodyInformation:vehicleDataResult, - NAMES_deviceStatus:vehicleDataResult, - NAMES_driverBraking:vehicleDataResult, - NAMES_wiperStatus:vehicleDataResult, - NAMES_headLampStatus:vehicleDataResult, - NAMES_engineTorque:vehicleDataResult, - NAMES_accPedalPosition:vehicleDataResult, - NAMES_steeringWheelAngle:vehicleDataResult, - NAMES_eCallInfo:vehicleDataResult, - NAMES_airbagStatus:vehicleDataResult, - NAMES_emergencyEvent:vehicleDataResult, - NAMES_clusterModes:vehicleDataResult, - NAMES_myKey:vehicleDataResult}, - NAMES_operation_name:NAMES_SubscribeVehicleData}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameResponse: + @{SDLNameParameters: + @{SDLNameGPS:vehicleDataResult, + SDLNameSpeed:vehicleDataResult, + SDLNameRPM:vehicleDataResult, + SDLNameFuelLevel:vehicleDataResult, + SDLNameFuelLevelState:vehicleDataResult, + SDLNameInstantFuelConsumption:vehicleDataResult, + SDLNameExternalTemperature:vehicleDataResult, + SDLNamePRNDL:vehicleDataResult, + SDLNameTirePressure:vehicleDataResult, + SDLNameOdometer:vehicleDataResult, + SDLNameBeltStatus:vehicleDataResult, + SDLNameBodyInformation:vehicleDataResult, + SDLNameDeviceStatus:vehicleDataResult, + SDLNameDriverBraking:vehicleDataResult, + SDLNameWiperStatus:vehicleDataResult, + SDLNameHeadLampStatus:vehicleDataResult, + SDLNameEngineTorque:vehicleDataResult, + SDLNameAccelerationPedalPosition:vehicleDataResult, + SDLNameSteeringWheelAngle:vehicleDataResult, + SDLNameECallInfo:vehicleDataResult, + SDLNameAirbagStatus:vehicleDataResult, + SDLNameEmergencyEvent:vehicleDataResult, + SDLNameClusterModes:vehicleDataResult, + SDLNameMyKey:vehicleDataResult}, + SDLNameOperationName:SDLNameSubscribeVehicleData}} mutableCopy]; SDLSubscribeVehicleDataResponse* testResponse = [[SDLSubscribeVehicleDataResponse alloc] initWithDictionary:dict]; expect(testResponse.gps).to(equal(vehicleDataResult)); diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeVehicleDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeVehicleDataResponseSpec.m index 29cb4e08c..129d9cbd2 100644 --- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeVehicleDataResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeVehicleDataResponseSpec.m @@ -73,33 +73,33 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_response: - @{NAMES_parameters: - @{NAMES_gps:vehicleDataResult, - NAMES_speed:vehicleDataResult, - NAMES_rpm:vehicleDataResult, - NAMES_fuelLevel:vehicleDataResult, - NAMES_fuelLevel_State:vehicleDataResult, - NAMES_instantFuelConsumption:vehicleDataResult, - NAMES_externalTemperature:vehicleDataResult, - NAMES_prndl:vehicleDataResult, - NAMES_tirePressure:vehicleDataResult, - NAMES_odometer:vehicleDataResult, - NAMES_beltStatus:vehicleDataResult, - NAMES_bodyInformation:vehicleDataResult, - NAMES_deviceStatus:vehicleDataResult, - NAMES_driverBraking:vehicleDataResult, - NAMES_wiperStatus:vehicleDataResult, - NAMES_headLampStatus:vehicleDataResult, - NAMES_engineTorque:vehicleDataResult, - NAMES_accPedalPosition:vehicleDataResult, - NAMES_steeringWheelAngle:vehicleDataResult, - NAMES_eCallInfo:vehicleDataResult, - NAMES_airbagStatus:vehicleDataResult, - NAMES_emergencyEvent:vehicleDataResult, - NAMES_clusterModes:vehicleDataResult, - NAMES_myKey:vehicleDataResult}, - NAMES_operation_name:NAMES_UnsubscribeVehicleData}} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameResponse: + @{SDLNameParameters: + @{SDLNameGPS:vehicleDataResult, + SDLNameSpeed:vehicleDataResult, + SDLNameRPM:vehicleDataResult, + SDLNameFuelLevel:vehicleDataResult, + SDLNameFuelLevelState:vehicleDataResult, + SDLNameInstantFuelConsumption:vehicleDataResult, + SDLNameExternalTemperature:vehicleDataResult, + SDLNamePRNDL:vehicleDataResult, + SDLNameTirePressure:vehicleDataResult, + SDLNameOdometer:vehicleDataResult, + SDLNameBeltStatus:vehicleDataResult, + SDLNameBodyInformation:vehicleDataResult, + SDLNameDeviceStatus:vehicleDataResult, + SDLNameDriverBraking:vehicleDataResult, + SDLNameWiperStatus:vehicleDataResult, + SDLNameHeadLampStatus:vehicleDataResult, + SDLNameEngineTorque:vehicleDataResult, + SDLNameAccelerationPedalPosition:vehicleDataResult, + SDLNameSteeringWheelAngle:vehicleDataResult, + SDLNameECallInfo:vehicleDataResult, + SDLNameAirbagStatus:vehicleDataResult, + SDLNameEmergencyEvent:vehicleDataResult, + SDLNameClusterModes:vehicleDataResult, + SDLNameMyKey:vehicleDataResult}, + SDLNameOperationName:SDLNameUnsubscribeVehicleData}} mutableCopy]; SDLUnsubscribeVehicleDataResponse* testResponse = [[SDLUnsubscribeVehicleDataResponse alloc] initWithDictionary:dict]; expect(testResponse.gps).to(equal(vehicleDataResult)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAirbagStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAirbagStatusSpec.m index ea88855c5..01a535ce4 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAirbagStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAirbagStatusSpec.m @@ -19,44 +19,44 @@ it(@"Should set and get correctly", ^ { SDLAirbagStatus* testStruct = [[SDLAirbagStatus alloc] init]; - testStruct.driverAirbagDeployed = [SDLVehicleDataEventStatus _YES]; - testStruct.driverSideAirbagDeployed = [SDLVehicleDataEventStatus NO_EVENT]; - testStruct.driverCurtainAirbagDeployed = [SDLVehicleDataEventStatus _NO]; - testStruct.passengerAirbagDeployed = [SDLVehicleDataEventStatus NOT_SUPPORTED]; - testStruct.passengerCurtainAirbagDeployed = [SDLVehicleDataEventStatus FAULT]; - testStruct.driverKneeAirbagDeployed = [SDLVehicleDataEventStatus _NO]; - testStruct.passengerSideAirbagDeployed = [SDLVehicleDataEventStatus _YES]; - testStruct.passengerKneeAirbagDeployed = [SDLVehicleDataEventStatus NO_EVENT]; + testStruct.driverAirbagDeployed = SDLVehicleDataEventStatusYes; + testStruct.driverSideAirbagDeployed = SDLVehicleDataEventStatusNoEvent; + testStruct.driverCurtainAirbagDeployed = SDLVehicleDataEventStatusNo; + testStruct.passengerAirbagDeployed = SDLVehicleDataEventStatusNotSupported; + testStruct.passengerCurtainAirbagDeployed = SDLVehicleDataEventStatusFault; + testStruct.driverKneeAirbagDeployed = SDLVehicleDataEventStatusNo; + testStruct.passengerSideAirbagDeployed = SDLVehicleDataEventStatusYes; + testStruct.passengerKneeAirbagDeployed = SDLVehicleDataEventStatusNoEvent; - expect(testStruct.driverAirbagDeployed).to(equal([SDLVehicleDataEventStatus _YES])); - expect(testStruct.driverSideAirbagDeployed).to(equal([SDLVehicleDataEventStatus NO_EVENT])); - expect(testStruct.driverCurtainAirbagDeployed).to(equal([SDLVehicleDataEventStatus _NO])); - expect(testStruct.passengerAirbagDeployed).to(equal([SDLVehicleDataEventStatus NOT_SUPPORTED])); - expect(testStruct.passengerCurtainAirbagDeployed).to(equal([SDLVehicleDataEventStatus FAULT])); - expect(testStruct.driverKneeAirbagDeployed).to(equal([SDLVehicleDataEventStatus _NO])); - expect(testStruct.passengerSideAirbagDeployed).to(equal([SDLVehicleDataEventStatus _YES])); - expect(testStruct.passengerKneeAirbagDeployed).to(equal([SDLVehicleDataEventStatus NO_EVENT])); + expect(testStruct.driverAirbagDeployed).to(equal(SDLVehicleDataEventStatusYes)); + expect(testStruct.driverSideAirbagDeployed).to(equal(SDLVehicleDataEventStatusNoEvent)); + expect(testStruct.driverCurtainAirbagDeployed).to(equal(SDLVehicleDataEventStatusNo)); + expect(testStruct.passengerAirbagDeployed).to(equal(SDLVehicleDataEventStatusNotSupported)); + expect(testStruct.passengerCurtainAirbagDeployed).to(equal(SDLVehicleDataEventStatusFault)); + expect(testStruct.driverKneeAirbagDeployed).to(equal(SDLVehicleDataEventStatusNo)); + expect(testStruct.passengerSideAirbagDeployed).to(equal(SDLVehicleDataEventStatusYes)); + expect(testStruct.passengerKneeAirbagDeployed).to(equal(SDLVehicleDataEventStatusNoEvent)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_driverAirbagDeployed:[SDLVehicleDataEventStatus _YES], - NAMES_driverSideAirbagDeployed:[SDLVehicleDataEventStatus NO_EVENT], - NAMES_driverCurtainAirbagDeployed:[SDLVehicleDataEventStatus _NO], - NAMES_passengerAirbagDeployed:[SDLVehicleDataEventStatus NOT_SUPPORTED], - NAMES_passengerCurtainAirbagDeployed:[SDLVehicleDataEventStatus FAULT], - NAMES_driverKneeAirbagDeployed:[SDLVehicleDataEventStatus _NO], - NAMES_passengerSideAirbagDeployed:[SDLVehicleDataEventStatus _YES], - NAMES_passengerKneeAirbagDeployed:[SDLVehicleDataEventStatus NO_EVENT]} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameDriverAirbagDeployed:SDLVehicleDataEventStatusYes, + SDLNameDriverSideAirbagDeployed:SDLVehicleDataEventStatusNoEvent, + SDLNameDriverCurtainAirbagDeployed:SDLVehicleDataEventStatusNo, + SDLNamePassengerAirbagDeployed:SDLVehicleDataEventStatusNotSupported, + SDLNamePassengerCurtainAirbagDeployed:SDLVehicleDataEventStatusFault, + SDLNameDriverKneeAirbagDeployed:SDLVehicleDataEventStatusNo, + SDLNamePassengerSideAirbagDeployed:SDLVehicleDataEventStatusYes, + SDLNamePassengerKneeAirbagDeployed:SDLVehicleDataEventStatusNoEvent} mutableCopy]; SDLAirbagStatus* testStruct = [[SDLAirbagStatus alloc] initWithDictionary:dict]; - expect(testStruct.driverAirbagDeployed).to(equal([SDLVehicleDataEventStatus _YES])); - expect(testStruct.driverSideAirbagDeployed).to(equal([SDLVehicleDataEventStatus NO_EVENT])); - expect(testStruct.driverCurtainAirbagDeployed).to(equal([SDLVehicleDataEventStatus _NO])); - expect(testStruct.passengerAirbagDeployed).to(equal([SDLVehicleDataEventStatus NOT_SUPPORTED])); - expect(testStruct.passengerCurtainAirbagDeployed).to(equal([SDLVehicleDataEventStatus FAULT])); - expect(testStruct.driverKneeAirbagDeployed).to(equal([SDLVehicleDataEventStatus _NO])); - expect(testStruct.passengerSideAirbagDeployed).to(equal([SDLVehicleDataEventStatus _YES])); - expect(testStruct.passengerKneeAirbagDeployed).to(equal([SDLVehicleDataEventStatus NO_EVENT])); + expect(testStruct.driverAirbagDeployed).to(equal(SDLVehicleDataEventStatusYes)); + expect(testStruct.driverSideAirbagDeployed).to(equal(SDLVehicleDataEventStatusNoEvent)); + expect(testStruct.driverCurtainAirbagDeployed).to(equal(SDLVehicleDataEventStatusNo)); + expect(testStruct.passengerAirbagDeployed).to(equal(SDLVehicleDataEventStatusNotSupported)); + expect(testStruct.passengerCurtainAirbagDeployed).to(equal(SDLVehicleDataEventStatusFault)); + expect(testStruct.driverKneeAirbagDeployed).to(equal(SDLVehicleDataEventStatusNo)); + expect(testStruct.passengerSideAirbagDeployed).to(equal(SDLVehicleDataEventStatusYes)); + expect(testStruct.passengerKneeAirbagDeployed).to(equal(SDLVehicleDataEventStatusNoEvent)); }); it(@"Should return nil if not set", ^ { @@ -73,4 +73,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppInfoSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppInfoSpec.m index 424c299b8..b8495dc74 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppInfoSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAppInfoSpec.m @@ -28,9 +28,9 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_appDisplayName:@"display name", - NAMES_appVersion:@"1.2.3.4", - NAMES_appBundleID:@"com.app.bundle"} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameAppDisplayName:@"display name", + SDLNameAppVersion:@"1.2.3.4", + SDLNameAppBundleId:@"com.app.bundle"} mutableCopy]; SDLAppInfo* testStruct = [[SDLAppInfo alloc] initWithDictionary:dict]; expect(testStruct.appDisplayName).to(equal(@"display name")); @@ -47,4 +47,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioPassThruCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioPassThruCapabilitiesSpec.m index 8d66fc8af..5e2981852 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioPassThruCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioPassThruCapabilitiesSpec.m @@ -21,24 +21,24 @@ it(@"Should set and get correctly", ^ { SDLAudioPassThruCapabilities* testStruct = [[SDLAudioPassThruCapabilities alloc] init]; - testStruct.samplingRate = [SDLSamplingRate _22KHZ]; - testStruct.bitsPerSample = [SDLBitsPerSample _8_BIT]; - testStruct.audioType = [SDLAudioType PCM]; + testStruct.samplingRate = SDLSamplingRate22KHZ; + testStruct.bitsPerSample = SDLBitsPerSample8Bit; + testStruct.audioType = SDLAudioTypePCM; - expect(testStruct.samplingRate).to(equal([SDLSamplingRate _22KHZ])); - expect(testStruct.bitsPerSample).to(equal([SDLBitsPerSample _8_BIT])); - expect(testStruct.audioType).to(equal([SDLAudioType PCM])); + expect(testStruct.samplingRate).to(equal(SDLSamplingRate22KHZ)); + expect(testStruct.bitsPerSample).to(equal(SDLBitsPerSample8Bit)); + expect(testStruct.audioType).to(equal(SDLAudioTypePCM)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_samplingRate:[SDLSamplingRate _22KHZ], - NAMES_bitsPerSample:[SDLBitsPerSample _8_BIT], - NAMES_audioType:[SDLAudioType PCM]} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameSamplingRate:SDLSamplingRate22KHZ, + SDLNameBitsPerSample:SDLBitsPerSample8Bit, + SDLNameAudioType:SDLAudioTypePCM} mutableCopy]; SDLAudioPassThruCapabilities* testStruct = [[SDLAudioPassThruCapabilities alloc] initWithDictionary:dict]; - expect(testStruct.samplingRate).to(equal([SDLSamplingRate _22KHZ])); - expect(testStruct.bitsPerSample).to(equal([SDLBitsPerSample _8_BIT])); - expect(testStruct.audioType).to(equal([SDLAudioType PCM])); + expect(testStruct.samplingRate).to(equal(SDLSamplingRate22KHZ)); + expect(testStruct.bitsPerSample).to(equal(SDLBitsPerSample8Bit)); + expect(testStruct.audioType).to(equal(SDLAudioTypePCM)); }); it(@"Should return nil if not set", ^ { @@ -50,4 +50,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLBeltStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLBeltStatusSpec.m index e0d8c4883..e6e9495c5 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLBeltStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLBeltStatusSpec.m @@ -19,72 +19,72 @@ it(@"Should set and get correctly", ^ { SDLBeltStatus* testStruct = [[SDLBeltStatus alloc] init]; - testStruct.driverBeltDeployed = [SDLVehicleDataEventStatus _YES]; - testStruct.passengerBeltDeployed = [SDLVehicleDataEventStatus NO_EVENT]; - testStruct.passengerBuckleBelted = [SDLVehicleDataEventStatus FAULT]; - testStruct.driverBuckleBelted = [SDLVehicleDataEventStatus _YES]; - testStruct.leftRow2BuckleBelted = [SDLVehicleDataEventStatus FAULT]; - testStruct.passengerChildDetected = [SDLVehicleDataEventStatus NOT_SUPPORTED]; - testStruct.rightRow2BuckleBelted = [SDLVehicleDataEventStatus _YES]; - testStruct.middleRow2BuckleBelted = [SDLVehicleDataEventStatus NO_EVENT]; - testStruct.middleRow3BuckleBelted = [SDLVehicleDataEventStatus NOT_SUPPORTED]; - testStruct.leftRow3BuckleBelted = [SDLVehicleDataEventStatus _YES]; - testStruct.rightRow3BuckleBelted = [SDLVehicleDataEventStatus _NO]; - testStruct.leftRearInflatableBelted = [SDLVehicleDataEventStatus NOT_SUPPORTED]; - testStruct.rightRearInflatableBelted = [SDLVehicleDataEventStatus FAULT]; - testStruct.middleRow1BeltDeployed = [SDLVehicleDataEventStatus _YES]; - testStruct.middleRow1BuckleBelted = [SDLVehicleDataEventStatus _NO]; + testStruct.driverBeltDeployed = SDLVehicleDataEventStatusYes; + testStruct.passengerBeltDeployed = SDLVehicleDataEventStatusNoEvent; + testStruct.passengerBuckleBelted = SDLVehicleDataEventStatusFault; + testStruct.driverBuckleBelted = SDLVehicleDataEventStatusYes; + testStruct.leftRow2BuckleBelted = SDLVehicleDataEventStatusFault; + testStruct.passengerChildDetected = SDLVehicleDataEventStatusNotSupported; + testStruct.rightRow2BuckleBelted = SDLVehicleDataEventStatusYes; + testStruct.middleRow2BuckleBelted = SDLVehicleDataEventStatusNoEvent; + testStruct.middleRow3BuckleBelted = SDLVehicleDataEventStatusNotSupported; + testStruct.leftRow3BuckleBelted = SDLVehicleDataEventStatusYes; + testStruct.rightRow3BuckleBelted = SDLVehicleDataEventStatusNo; + testStruct.leftRearInflatableBelted = SDLVehicleDataEventStatusNotSupported; + testStruct.rightRearInflatableBelted = SDLVehicleDataEventStatusFault; + testStruct.middleRow1BeltDeployed = SDLVehicleDataEventStatusYes; + testStruct.middleRow1BuckleBelted = SDLVehicleDataEventStatusNo; - expect(testStruct.driverBeltDeployed).to(equal([SDLVehicleDataEventStatus _YES])); - expect(testStruct.passengerBeltDeployed).to(equal([SDLVehicleDataEventStatus NO_EVENT])); - expect(testStruct.passengerBuckleBelted).to(equal([SDLVehicleDataEventStatus FAULT])); - expect(testStruct.driverBuckleBelted).to(equal([SDLVehicleDataEventStatus _YES])); - expect(testStruct.leftRow2BuckleBelted).to(equal([SDLVehicleDataEventStatus FAULT])); - expect(testStruct.passengerChildDetected).to(equal([SDLVehicleDataEventStatus NOT_SUPPORTED])); - expect(testStruct.rightRow2BuckleBelted).to(equal([SDLVehicleDataEventStatus _YES])); - expect(testStruct.middleRow2BuckleBelted).to(equal([SDLVehicleDataEventStatus NO_EVENT])); - expect(testStruct.middleRow3BuckleBelted).to(equal([SDLVehicleDataEventStatus NOT_SUPPORTED])); - expect(testStruct.leftRow3BuckleBelted).to(equal([SDLVehicleDataEventStatus _YES])); - expect(testStruct.rightRow3BuckleBelted).to(equal([SDLVehicleDataEventStatus _NO])); - expect(testStruct.leftRearInflatableBelted).to(equal([SDLVehicleDataEventStatus NOT_SUPPORTED])); - expect(testStruct.rightRearInflatableBelted).to(equal([SDLVehicleDataEventStatus FAULT])); - expect(testStruct.middleRow1BeltDeployed).to(equal([SDLVehicleDataEventStatus _YES])); - expect(testStruct.middleRow1BuckleBelted).to(equal([SDLVehicleDataEventStatus _NO])); + expect(testStruct.driverBeltDeployed).to(equal(SDLVehicleDataEventStatusYes)); + expect(testStruct.passengerBeltDeployed).to(equal(SDLVehicleDataEventStatusNoEvent)); + expect(testStruct.passengerBuckleBelted).to(equal(SDLVehicleDataEventStatusFault)); + expect(testStruct.driverBuckleBelted).to(equal(SDLVehicleDataEventStatusYes)); + expect(testStruct.leftRow2BuckleBelted).to(equal(SDLVehicleDataEventStatusFault)); + expect(testStruct.passengerChildDetected).to(equal(SDLVehicleDataEventStatusNotSupported)); + expect(testStruct.rightRow2BuckleBelted).to(equal(SDLVehicleDataEventStatusYes)); + expect(testStruct.middleRow2BuckleBelted).to(equal(SDLVehicleDataEventStatusNoEvent)); + expect(testStruct.middleRow3BuckleBelted).to(equal(SDLVehicleDataEventStatusNotSupported)); + expect(testStruct.leftRow3BuckleBelted).to(equal(SDLVehicleDataEventStatusYes)); + expect(testStruct.rightRow3BuckleBelted).to(equal(SDLVehicleDataEventStatusNo)); + expect(testStruct.leftRearInflatableBelted).to(equal(SDLVehicleDataEventStatusNotSupported)); + expect(testStruct.rightRearInflatableBelted).to(equal(SDLVehicleDataEventStatusFault)); + expect(testStruct.middleRow1BeltDeployed).to(equal(SDLVehicleDataEventStatusYes)); + expect(testStruct.middleRow1BuckleBelted).to(equal(SDLVehicleDataEventStatusNo)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_driverBeltDeployed:[SDLVehicleDataEventStatus NO_EVENT], - NAMES_passengerBeltDeployed:[SDLVehicleDataEventStatus _YES], - NAMES_passengerBuckleBelted:[SDLVehicleDataEventStatus _NO], - NAMES_driverBuckleBelted:[SDLVehicleDataEventStatus FAULT], - NAMES_leftRow2BuckleBelted:[SDLVehicleDataEventStatus _YES], - NAMES_passengerChildDetected:[SDLVehicleDataEventStatus _NO], - NAMES_rightRow2BuckleBelted:[SDLVehicleDataEventStatus NOT_SUPPORTED], - NAMES_middleRow2BuckleBelted:[SDLVehicleDataEventStatus NO_EVENT], - NAMES_middleRow3BuckleBelted:[SDLVehicleDataEventStatus _YES], - NAMES_leftRow3BuckleBelted:[SDLVehicleDataEventStatus FAULT], - NAMES_rightRow3BuckleBelted:[SDLVehicleDataEventStatus _NO], - NAMES_leftRearInflatableBelted:[SDLVehicleDataEventStatus NOT_SUPPORTED], - NAMES_rightRearInflatableBelted:[SDLVehicleDataEventStatus FAULT], - NAMES_middleRow1BeltDeployed:[SDLVehicleDataEventStatus NO_EVENT], - NAMES_middleRow1BuckleBelted:[SDLVehicleDataEventStatus NOT_SUPPORTED]} mutableCopy]; + 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]; SDLBeltStatus* testStruct = [[SDLBeltStatus alloc] initWithDictionary:dict]; - expect(testStruct.driverBeltDeployed).to(equal([SDLVehicleDataEventStatus NO_EVENT])); - expect(testStruct.passengerBeltDeployed).to(equal([SDLVehicleDataEventStatus _YES])); - expect(testStruct.passengerBuckleBelted).to(equal([SDLVehicleDataEventStatus _NO])); - expect(testStruct.driverBuckleBelted).to(equal([SDLVehicleDataEventStatus FAULT])); - expect(testStruct.leftRow2BuckleBelted).to(equal([SDLVehicleDataEventStatus _YES])); - expect(testStruct.passengerChildDetected).to(equal([SDLVehicleDataEventStatus _NO])); - expect(testStruct.rightRow2BuckleBelted).to(equal([SDLVehicleDataEventStatus NOT_SUPPORTED])); - expect(testStruct.middleRow2BuckleBelted).to(equal([SDLVehicleDataEventStatus NO_EVENT])); - expect(testStruct.middleRow3BuckleBelted).to(equal([SDLVehicleDataEventStatus _YES])); - expect(testStruct.leftRow3BuckleBelted).to(equal([SDLVehicleDataEventStatus FAULT])); - expect(testStruct.rightRow3BuckleBelted).to(equal([SDLVehicleDataEventStatus _NO])); - expect(testStruct.leftRearInflatableBelted).to(equal([SDLVehicleDataEventStatus NOT_SUPPORTED])); - expect(testStruct.rightRearInflatableBelted).to(equal([SDLVehicleDataEventStatus FAULT])); - expect(testStruct.middleRow1BeltDeployed).to(equal([SDLVehicleDataEventStatus NO_EVENT])); - expect(testStruct.middleRow1BuckleBelted).to(equal([SDLVehicleDataEventStatus NOT_SUPPORTED])); + expect(testStruct.driverBeltDeployed).to(equal(SDLVehicleDataEventStatusNoEvent)); + expect(testStruct.passengerBeltDeployed).to(equal(SDLVehicleDataEventStatusYes)); + expect(testStruct.passengerBuckleBelted).to(equal(SDLVehicleDataEventStatusNo)); + expect(testStruct.driverBuckleBelted).to(equal(SDLVehicleDataEventStatusFault)); + expect(testStruct.leftRow2BuckleBelted).to(equal(SDLVehicleDataEventStatusYes)); + expect(testStruct.passengerChildDetected).to(equal(SDLVehicleDataEventStatusNo)); + expect(testStruct.rightRow2BuckleBelted).to(equal(SDLVehicleDataEventStatusNotSupported)); + expect(testStruct.middleRow2BuckleBelted).to(equal(SDLVehicleDataEventStatusNoEvent)); + expect(testStruct.middleRow3BuckleBelted).to(equal(SDLVehicleDataEventStatusYes)); + expect(testStruct.leftRow3BuckleBelted).to(equal(SDLVehicleDataEventStatusFault)); + expect(testStruct.rightRow3BuckleBelted).to(equal(SDLVehicleDataEventStatusNo)); + expect(testStruct.leftRearInflatableBelted).to(equal(SDLVehicleDataEventStatusNotSupported)); + expect(testStruct.rightRearInflatableBelted).to(equal(SDLVehicleDataEventStatusFault)); + expect(testStruct.middleRow1BeltDeployed).to(equal(SDLVehicleDataEventStatusNoEvent)); + expect(testStruct.middleRow1BuckleBelted).to(equal(SDLVehicleDataEventStatusNotSupported)); }); it(@"Should return nil if not set", ^ { @@ -108,4 +108,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLBodyInformationSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLBodyInformationSpec.m index a13a7cc9c..6ed210075 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLBodyInformationSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLBodyInformationSpec.m @@ -20,16 +20,16 @@ SDLBodyInformation* testStruct = [[SDLBodyInformation alloc] init]; testStruct.parkBrakeActive = @YES; - testStruct.ignitionStableStatus = [SDLIgnitionStableStatus IGNITION_SWITCH_STABLE]; - testStruct.ignitionStatus = [SDLIgnitionStatus START]; + testStruct.ignitionStableStatus = SDLIgnitionStableStatusStable; + testStruct.ignitionStatus = SDLIgnitionStatusStart; testStruct.driverDoorAjar = @NO; testStruct.passengerDoorAjar = @NO; testStruct.rearLeftDoorAjar = @NO; testStruct.rearRightDoorAjar = @YES; expect(testStruct.parkBrakeActive).to(equal(@YES)); - expect(testStruct.ignitionStableStatus).to(equal([SDLIgnitionStableStatus IGNITION_SWITCH_STABLE])); - expect(testStruct.ignitionStatus).to(equal([SDLIgnitionStatus START])); + expect(testStruct.ignitionStableStatus).to(equal(SDLIgnitionStableStatusStable)); + expect(testStruct.ignitionStatus).to(equal(SDLIgnitionStatusStart)); expect(testStruct.driverDoorAjar).to(equal(@NO)); expect(testStruct.passengerDoorAjar).to(equal(@NO)); expect(testStruct.rearLeftDoorAjar).to(equal(@NO)); @@ -37,18 +37,18 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_parkBrakeActive:@YES, - NAMES_ignitionStableStatus:[SDLIgnitionStableStatus IGNITION_SWITCH_NOT_STABLE], - NAMES_ignitionStatus:[SDLIgnitionStatus START], - NAMES_driverDoorAjar:@NO, - NAMES_passengerDoorAjar:@NO, - NAMES_rearLeftDoorAjar:@NO, - NAMES_rearRightDoorAjar:@YES} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameParkBrakeActive:@YES, + SDLNameIgnitionStableStatus:SDLIgnitionStableStatusNotStable, + SDLNameIgnitionStatus:SDLIgnitionStatusStart, + SDLNameDriverDoorAjar:@NO, + SDLNamePassengerDoorAjar:@NO, + SDLNameRearLeftDoorAjar:@NO, + SDLNameRearRightDoorAjar:@YES} mutableCopy]; SDLBodyInformation* testStruct = [[SDLBodyInformation alloc] initWithDictionary:dict]; expect(testStruct.parkBrakeActive).to(equal(@YES)); - expect(testStruct.ignitionStableStatus).to(equal([SDLIgnitionStableStatus IGNITION_SWITCH_NOT_STABLE])); - expect(testStruct.ignitionStatus).to(equal([SDLIgnitionStatus START])); + expect(testStruct.ignitionStableStatus).to(equal(SDLIgnitionStableStatusNotStable)); + expect(testStruct.ignitionStatus).to(equal(SDLIgnitionStatusStart)); expect(testStruct.driverDoorAjar).to(equal(@NO)); expect(testStruct.passengerDoorAjar).to(equal(@NO)); expect(testStruct.rearLeftDoorAjar).to(equal(@NO)); @@ -68,4 +68,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLButtonCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLButtonCapabilitiesSpec.m index a5f753629..b10e0b094 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLButtonCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLButtonCapabilitiesSpec.m @@ -19,25 +19,25 @@ it(@"Should set and get correctly", ^ { SDLButtonCapabilities* testStruct = [[SDLButtonCapabilities alloc] init]; - testStruct.name = [SDLButtonName TUNEUP]; + testStruct.name = SDLButtonNameTuneUp; testStruct.shortPressAvailable = @YES; testStruct.longPressAvailable = @YES; testStruct.upDownAvailable = @NO; - expect(testStruct.name).to(equal([SDLButtonName TUNEUP])); + expect(testStruct.name).to(equal(SDLButtonNameTuneUp)); expect(testStruct.shortPressAvailable).to(equal(@YES)); expect(testStruct.longPressAvailable).to(equal(@YES)); expect(testStruct.upDownAvailable).to(equal(@NO)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_name:[SDLButtonName CUSTOM_BUTTON], - NAMES_shortPressAvailable:@YES, - NAMES_longPressAvailable:@YES, - NAMES_upDownAvailable:@NO} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameName:SDLButtonNameCustomButton, + SDLNameShortPressAvailable:@YES, + SDLNameLongPressAvailable:@YES, + SDLNameUpDownAvailable:@NO} mutableCopy]; SDLButtonCapabilities* testStruct = [[SDLButtonCapabilities alloc] initWithDictionary:dict]; - expect(testStruct.name).to(equal([SDLButtonName CUSTOM_BUTTON])); + expect(testStruct.name).to(equal(SDLButtonNameCustomButton)); expect(testStruct.shortPressAvailable).to(equal(@YES)); expect(testStruct.longPressAvailable).to(equal(@YES)); expect(testStruct.upDownAvailable).to(equal(@NO)); @@ -53,4 +53,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLChoiceSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLChoiceSpec.m index 63116976a..3fa486a98 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLChoiceSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLChoiceSpec.m @@ -40,13 +40,13 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_choiceID:@3, - NAMES_menuName:@"Hello", - NAMES_vrCommands:[@[@"1", @"2"] mutableCopy], - NAMES_image:image, - NAMES_secondaryText:@"Arbitrary", - NAMES_tertiaryText:@"qwerty", - NAMES_secondaryImage:secondaryImage} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameChoiceId:@3, + SDLNameMenuName:@"Hello", + SDLNameVRCommands:[@[@"1", @"2"] mutableCopy], + SDLNameImage:image, + SDLNameSecondaryText:@"Arbitrary", + SDLNameTertiaryText:@"qwerty", + SDLNameSecondaryImage:secondaryImage} mutableCopy]; SDLChoice* testStruct = [[SDLChoice alloc] initWithDictionary:dict]; expect(testStruct.choiceID).to(equal(@3)); @@ -71,4 +71,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlCapabilitiesSpec.m new file mode 100644 index 000000000..d15d63185 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlCapabilitiesSpec.m @@ -0,0 +1,113 @@ +// +// SDLClimateControlCapabilitiesSpec.m +// SmartDeviceLink-iOS +// + +#import + +#import +#import + +#import "SDLClimateControlCapabilities.h" +#import "SDLDefrostZone.h" +#import "SDLVentilationMode.h" +#import "SDLNames.h" + + +QuickSpecBegin(SDLClimateControlCapabilitiesSpec) + +describe(@"Getter/Setter Tests", ^ { + it(@"Should set and get correctly", ^ { + + SDLClimateControlCapabilities* testStruct = [[SDLClimateControlCapabilities alloc] init]; + testStruct.moduleName = @"Name"; + testStruct.fanSpeedAvailable = @YES; + testStruct.desiredTemperatureAvailable = @NO; + testStruct.acEnableAvailable = @NO; + testStruct.acMaxEnableAvailable = @NO; + testStruct.circulateAirEnableAvailable = @YES; + testStruct.autoModeEnableAvailable = @NO; + testStruct.dualModeEnableAvailable = @NO; + testStruct.defrostZoneAvailable = @YES; + testStruct.defrostZone = [@[SDLDefrostZoneFront] copy]; + testStruct.ventilationModeAvailable = @NO; + testStruct.ventilationMode = [@[SDLVentilationModeUpper] copy]; + + expect(testStruct.moduleName).to(equal(@"Name")); + expect(testStruct.fanSpeedAvailable).to(equal(@YES)); + expect(testStruct.desiredTemperatureAvailable).to(equal(@NO)); + expect(testStruct.acEnableAvailable).to(equal(@NO)); + expect(testStruct.acMaxEnableAvailable).to(equal(@NO)); + expect(testStruct.circulateAirEnableAvailable).to(equal(@YES)); + expect(testStruct.autoModeEnableAvailable).to(equal(@NO)); + expect(testStruct.dualModeEnableAvailable).to(equal(@NO)); + expect(testStruct.defrostZoneAvailable).to(equal(@YES)); + expect(testStruct.defrostZone).to(equal([@[SDLDefrostZoneFront] copy])); + expect(testStruct.ventilationModeAvailable).to(equal(@NO)); + expect(testStruct.ventilationMode).to(equal([@[SDLVentilationModeUpper] copy])); + }); + + it(@"Should get correctly when initialized", ^ { + NSMutableDictionary *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]} mutableCopy]; + SDLClimateControlCapabilities* testStruct = [[SDLClimateControlCapabilities alloc] initWithDictionary:dict]; + + expect(testStruct.moduleName).to(equal(@"Name")); + expect(testStruct.fanSpeedAvailable).to(equal(@YES)); + expect(testStruct.desiredTemperatureAvailable).to(equal(@NO)); + expect(testStruct.acEnableAvailable).to(equal(@NO)); + expect(testStruct.acMaxEnableAvailable).to(equal(@NO)); + expect(testStruct.circulateAirEnableAvailable).to(equal(@YES)); + expect(testStruct.autoModeEnableAvailable).to(equal(@NO)); + expect(testStruct.dualModeEnableAvailable).to(equal(@NO)); + expect(testStruct.defrostZoneAvailable).to(equal(@YES)); + expect(testStruct.defrostZone).to(equal([@[SDLDefrostZoneFront] copy])); + expect(testStruct.ventilationModeAvailable).to(equal(@NO)); + expect(testStruct.ventilationMode).to(equal([@[SDLVentilationModeUpper] copy])); + }); + + it(@"Should get correctly when initialized with module data and other climate control capabilities parameters", ^ { + SDLClimateControlCapabilities* testStruct = [[SDLClimateControlCapabilities alloc] initWithModuleName:@"Name" fanSpeedAvailable:YES desiredTemperatureAvailable:NO acEnableAvailable:NO acMaxEnableAvailable:YES circulateAirAvailable:NO autoModeEnableAvailable:NO dualModeEnableAvailable:NO defrostZoneAvailable:YES ventilationModeAvailable:YES]; + + expect(testStruct.moduleName).to(equal(@"Name")); + expect(testStruct.fanSpeedAvailable).to(equal(@YES)); + expect(testStruct.desiredTemperatureAvailable).to(equal(@NO)); + expect(testStruct.acEnableAvailable).to(equal(@NO)); + expect(testStruct.acMaxEnableAvailable).to(equal(@YES)); + expect(testStruct.circulateAirEnableAvailable).to(equal(@NO)); + expect(testStruct.autoModeEnableAvailable).to(equal(@NO)); + expect(testStruct.dualModeEnableAvailable).to(equal(@NO)); + expect(testStruct.defrostZoneAvailable).to(equal(@YES)); + expect(testStruct.ventilationModeAvailable).to(equal(@YES)); + }); + + it(@"Should return nil if not set", ^ { + SDLClimateControlCapabilities* testStruct = [[SDLClimateControlCapabilities alloc] init]; + + expect(testStruct.moduleName).to(beNil()); + expect(testStruct.fanSpeedAvailable).to(beNil()); + expect(testStruct.desiredTemperatureAvailable).to(beNil()); + expect(testStruct.acEnableAvailable).to(beNil()); + expect(testStruct.acMaxEnableAvailable).to(beNil()); + expect(testStruct.circulateAirEnableAvailable).to(beNil()); + expect(testStruct.autoModeEnableAvailable).to(beNil()); + expect(testStruct.dualModeEnableAvailable).to(beNil()); + expect(testStruct.defrostZoneAvailable).to(beNil()); + expect(testStruct.defrostZone).to(beNil()); + expect(testStruct.ventilationModeAvailable).to(beNil()); + expect(testStruct.ventilationMode).to(beNil()); + + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlDataSpec.m new file mode 100644 index 000000000..3ff841b8d --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlDataSpec.m @@ -0,0 +1,110 @@ +// +// SDLClimateControlDataSpec.m +// SmartDeviceLink-iOS +// + +#import + +#import +#import + +#import "SDLClimateControlData.h" +#import "SDLTemperature.h" +#import "SDLDefrostZone.h" +#import "SDLVentilationMode.h" +#import "SDLNames.h" + +QuickSpecBegin(SDLClimateControlDataSpec) + +describe(@"Getter/Setter Tests", ^ { + __block SDLTemperature* currentTemp = nil; + __block SDLTemperature* desiredTemp = nil; + + beforeEach(^{ + currentTemp = [[SDLTemperature alloc] init]; + desiredTemp = [[SDLTemperature alloc] init]; + }); + + it(@"Should set and get correctly", ^ { + SDLClimateControlData* testStruct = [[SDLClimateControlData alloc] init]; + + testStruct.fanSpeed = @43; + testStruct.currentTemperature = currentTemp; + testStruct.desiredTemperature = desiredTemp; + testStruct.acEnable = @YES; + testStruct.circulateAirEnable = @YES; + testStruct.autoModeEnable = @NO; + testStruct.defrostZone = SDLDefrostZoneFront; + testStruct.dualModeEnable = @NO; + testStruct.acMaxEnable = @YES; + testStruct.ventilationMode = SDLVentilationModeBoth; + + expect(testStruct.fanSpeed).to(equal(@43)); + expect(testStruct.currentTemperature).to(equal(currentTemp)); + expect(testStruct.desiredTemperature).to(equal(desiredTemp)); + expect(testStruct.acEnable).to(equal(YES)); + expect(testStruct.circulateAirEnable).to(equal(YES)); + expect(testStruct.autoModeEnable).to(equal(NO)); + expect(testStruct.defrostZone).to(equal(SDLDefrostZoneFront)); + expect(testStruct.dualModeEnable).to(equal(NO)); + expect(testStruct.acMaxEnable).to(equal(YES)); + expect(testStruct.ventilationMode).to(equal(SDLVentilationModeBoth)); + }); + + it(@"Should get correctly when initialized with FanSpeed and other climate control parameters", ^ { + SDLClimateControlData* testStruct = [[SDLClimateControlData alloc] initWithFanSpeed:@43 desiredTemperature:desiredTemp acEnable:@YES circulateAirEnable:@YES autoModeEnable:@NO defrostZone:SDLDefrostZoneFront dualModeEnable:@NO acMaxEnable:@YES ventilationMode:SDLVentilationModeBoth]; + + expect(testStruct.fanSpeed).to(equal(@43)); + expect(testStruct.desiredTemperature).to(equal(desiredTemp)); + expect(testStruct.acEnable).to(equal(YES)); + expect(testStruct.circulateAirEnable).to(equal(YES)); + expect(testStruct.autoModeEnable).to(equal(NO)); + expect(testStruct.defrostZone).to(equal(SDLDefrostZoneFront)); + expect(testStruct.dualModeEnable).to(equal(NO)); + expect(testStruct.acMaxEnable).to(equal(YES)); + expect(testStruct.ventilationMode).to(equal(SDLVentilationModeBoth)); + }); + + it(@"Should get correctly when initialized with a dictionary", ^ { + NSMutableDictionary *dict = [@{SDLNameFanSpeed : @43, + SDLNameCurrentTemperature : currentTemp, + SDLNameDesiredTemperature : desiredTemp, + SDLNameACEnable : @YES, + SDLNameCirculateAirEnable : @YES, + SDLNameAutoModeEnable : @NO, + SDLNameDefrostZone : SDLDefrostZoneFront, + SDLNameDualModeEnable : @NO, + SDLNameACMaxEnable : @YES, + SDLNameVentilationMode :SDLVentilationModeBoth} mutableCopy]; + SDLClimateControlData* testStruct = [[SDLClimateControlData alloc] initWithDictionary:dict]; + + expect(testStruct.fanSpeed).to(equal(@43)); + expect(testStruct.currentTemperature).to(equal(currentTemp)); + expect(testStruct.desiredTemperature).to(equal(desiredTemp)); + expect(testStruct.acEnable).to(equal(YES)); + expect(testStruct.circulateAirEnable).to(equal(YES)); + expect(testStruct.autoModeEnable).to(equal(NO)); + expect(testStruct.defrostZone).to(equal(SDLDefrostZoneFront)); + expect(testStruct.dualModeEnable).to(equal(NO)); + expect(testStruct.acMaxEnable).to(equal(YES)); + expect(testStruct.ventilationMode).to(equal(SDLVentilationModeBoth)); + }); + + it(@"Should return nil if not set", ^ { + SDLClimateControlData* testStruct = [[SDLClimateControlData alloc] init]; + + expect(testStruct.fanSpeed).to(beNil()); + expect(testStruct.currentTemperature).to(beNil()); + expect(testStruct.desiredTemperature).to(beNil()); + expect(testStruct.acEnable).to(beNil()); + expect(testStruct.circulateAirEnable).to(beNil()); + expect(testStruct.autoModeEnable).to(beNil()); + expect(testStruct.defrostZone).to(beNil()); + expect(testStruct.dualModeEnable).to(beNil()); + expect(testStruct.acMaxEnable).to(beNil()); + expect(testStruct.ventilationMode).to(beNil()); + }); + +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClusterModeStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClusterModeStatusSpec.m index 8e74324cf..f61afe79e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClusterModeStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClusterModeStatusSpec.m @@ -21,27 +21,27 @@ SDLClusterModeStatus* testStruct = [[SDLClusterModeStatus alloc] init]; testStruct.powerModeActive = @YES; - testStruct.powerModeQualificationStatus = [SDLPowerModeQualificationStatus POWER_MODE_EVALUATION_IN_PROGRESS]; - testStruct.carModeStatus = [SDLCarModeStatus CRASH]; - testStruct.powerModeStatus = [SDLPowerModeStatus IGNITION_ON_2]; + testStruct.powerModeQualificationStatus = SDLPowerModeQualificationStatusEvaluationInProgress; + testStruct.carModeStatus = SDLCarModeStatusCrash; + testStruct.powerModeStatus = SDLPowerModeStatusIgnitionOn; expect(testStruct.powerModeActive).to(equal(@YES)); - expect(testStruct.powerModeQualificationStatus).to(equal([SDLPowerModeQualificationStatus POWER_MODE_EVALUATION_IN_PROGRESS])); - expect(testStruct.carModeStatus).to(equal([SDLCarModeStatus CRASH])); - expect(testStruct.powerModeStatus).to(equal([SDLPowerModeStatus IGNITION_ON_2])); + expect(testStruct.powerModeQualificationStatus).to(equal(SDLPowerModeQualificationStatusEvaluationInProgress)); + expect(testStruct.carModeStatus).to(equal(SDLCarModeStatusCrash)); + expect(testStruct.powerModeStatus).to(equal(SDLPowerModeStatusIgnitionOn)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_powerModeActive:@NO, - NAMES_powerModeQualificationStatus:[SDLPowerModeQualificationStatus POWER_MODE_OK], - NAMES_carModeStatus:[SDLCarModeStatus CRASH], - NAMES_powerModeStatus:[SDLPowerModeStatus KEY_OUT]} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNamePowerModeActive:@NO, + SDLNamePowerModeQualificationStatus:SDLPowerModeQualificationStatusOk, + SDLNameCarModeStatus:SDLCarModeStatusCrash, + SDLNamePowerModeStatus:SDLPowerModeStatusKeyOut} mutableCopy]; SDLClusterModeStatus* testStruct = [[SDLClusterModeStatus alloc] initWithDictionary:dict]; expect(testStruct.powerModeActive).to(equal(@NO)); - expect(testStruct.powerModeQualificationStatus).to(equal([SDLPowerModeQualificationStatus POWER_MODE_OK])); - expect(testStruct.carModeStatus).to(equal([SDLCarModeStatus CRASH])); - expect(testStruct.powerModeStatus).to(equal([SDLPowerModeStatus KEY_OUT])); + expect(testStruct.powerModeQualificationStatus).to(equal(SDLPowerModeQualificationStatusOk)); + expect(testStruct.carModeStatus).to(equal(SDLCarModeStatusCrash)); + expect(testStruct.powerModeStatus).to(equal(SDLPowerModeStatusKeyOut)); }); it(@"Should return nil if not set", ^ { @@ -54,4 +54,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDIDResult.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDIDResult.m index db626f959..d0715bded 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDIDResult.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDIDResult.m @@ -19,22 +19,22 @@ it(@"Should set and get correctly", ^ { SDLDIDResult* testStruct = [[SDLDIDResult alloc] init]; - testStruct.resultCode = [SDLVehicleDataResultCode DATA_NOT_SUBSCRIBED]; + testStruct.resultCode = SDLVehicleDataResultCodeDataNotSubscribed; testStruct.didLocation = @300; testStruct.data = @"gertwydhty4235tdhedt4tue"; - expect(testStruct.resultCode).to(equal([SDLVehicleDataResultCode DATA_NOT_SUBSCRIBED])); + expect(testStruct.resultCode).to(equal(SDLVehicleDataResultCodeDataNotSubscribed)); expect(testStruct.didLocation).to(equal(@300)); expect(testStruct.data).to(equal(@"gertwydhty4235tdhedt4tue")); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_resultCode:[SDLVehicleDataResultCode DATA_NOT_SUBSCRIBED], - NAMES_didLocation:@300, - NAMES_data:@"gertwydhty4235tdhedt4tue"} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameResultCode:SDLVehicleDataResultCodeDataNotSubscribed, + SDLNameDIDLocation:@300, + SDLNameData:@"gertwydhty4235tdhedt4tue"} mutableCopy]; SDLDIDResult* testStruct = [[SDLDIDResult alloc] initWithDictionary:dict]; - expect(testStruct.resultCode).to(equal([SDLVehicleDataResultCode DATA_NOT_SUBSCRIBED])); + expect(testStruct.resultCode).to(equal(SDLVehicleDataResultCodeDataNotSubscribed)); expect(testStruct.didLocation).to(equal(@300)); expect(testStruct.data).to(equal(@"gertwydhty4235tdhedt4tue")); }); @@ -48,4 +48,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDateTimeSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDateTimeSpec.m index 3aee83e11..c152ad461 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDateTimeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDateTimeSpec.m @@ -42,15 +42,15 @@ }); it(@"Should get correctly when initialized with dictionary", ^{ - NSMutableDictionary* dict = [@{NAMES_millisecond:@100, - NAMES_second:@4, - NAMES_minute:@12, - NAMES_hour:@20, - NAMES_day:@30, - NAMES_month:@1, - NAMES_year:@4000, - NAMES_timezoneMinuteOffset:@0, - NAMES_timezoneHourOffset:@1000} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameMillisecond:@100, + SDLNameSecond:@4, + SDLNameMinute:@12, + SDLNameHour:@20, + SDLNameDay:@30, + SDLNameMonth:@1, + SDLNameYear:@4000, + SDLNameTimezoneMinuteOffset:@0, + SDLNameTimezoneHourOffset:@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 beb3b2d80..3108257f4 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDeviceInfoSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDeviceInfoSpec.m @@ -33,12 +33,12 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_hardware:@"GDFR34F", - NAMES_firmwareRev:@"4.2a", - NAMES_os:@"Robot", - NAMES_osVersion:@"9.9", - NAMES_carrier:@"ThatOneWirelessCompany", - NAMES_maxNumberRFCOMMPorts:@20} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameHardware:@"GDFR34F", + SDLNameFirmwareRevision:@"4.2a", + SDLNameOS:@"Robot", + SDLNameOSVersion:@"9.9", + SDLNameCarrier:@"ThatOneWirelessCompany", + SDLNameMaxNumberRFCOMMPorts:@20} mutableCopy]; SDLDeviceInfo* testStruct = [[SDLDeviceInfo alloc] initWithDictionary:dict]; expect(testStruct.hardware).to(equal(@"GDFR34F")); @@ -61,4 +61,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDeviceStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDeviceStatusSpec.m index 1996e45a8..eb56a11a0 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDeviceStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDeviceStatusSpec.m @@ -25,11 +25,11 @@ testStruct.callActive = @YES; testStruct.phoneRoaming = @NO; testStruct.textMsgAvailable = @YES; - testStruct.battLevelStatus = [SDLDeviceLevelStatus FOUR_LEVEL_BARS]; + testStruct.battLevelStatus = SDLDeviceLevelStatusFourBars; testStruct.stereoAudioOutputMuted = @YES; testStruct.monoAudioOutputMuted = @YES; - testStruct.signalLevelStatus = [SDLDeviceLevelStatus TWO_LEVEL_BARS]; - testStruct.primaryAudioSource = [SDLPrimaryAudioSource BLUETOOTH_STEREO_BTST]; + testStruct.signalLevelStatus = SDLDeviceLevelStatusTwoBars; + testStruct.primaryAudioSource = SDLPrimaryAudioSourceBluetoothStereo; testStruct.eCallEventActive = @NO; expect(testStruct.voiceRecOn).to(equal(@NO)); @@ -37,26 +37,26 @@ expect(testStruct.callActive).to(equal(@YES)); expect(testStruct.phoneRoaming).to(equal(@NO)); expect(testStruct.textMsgAvailable).to(equal(@YES)); - expect(testStruct.battLevelStatus).to(equal([SDLDeviceLevelStatus FOUR_LEVEL_BARS])); + expect(testStruct.battLevelStatus).to(equal(SDLDeviceLevelStatusFourBars)); expect(testStruct.stereoAudioOutputMuted).to(equal(@YES)); expect(testStruct.monoAudioOutputMuted).to(equal(@YES)); - expect(testStruct.signalLevelStatus).to(equal([SDLDeviceLevelStatus TWO_LEVEL_BARS])); - expect(testStruct.primaryAudioSource).to(equal([SDLPrimaryAudioSource BLUETOOTH_STEREO_BTST])); + expect(testStruct.signalLevelStatus).to(equal(SDLDeviceLevelStatusTwoBars)); + expect(testStruct.primaryAudioSource).to(equal(SDLPrimaryAudioSourceBluetoothStereo)); expect(testStruct.eCallEventActive).to(equal(@NO)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_voiceRecOn:@NO, - NAMES_btIconOn:@NO, - NAMES_callActive:@YES, - NAMES_phoneRoaming:@NO, - NAMES_textMsgAvailable:@YES, - NAMES_battLevelStatus:[SDLDeviceLevelStatus FOUR_LEVEL_BARS], - NAMES_stereoAudioOutputMuted:@YES, - NAMES_monoAudioOutputMuted:@YES, - NAMES_signalLevelStatus:[SDLDeviceLevelStatus TWO_LEVEL_BARS], - NAMES_primaryAudioSource:[SDLPrimaryAudioSource BLUETOOTH_STEREO_BTST], - NAMES_eCallEventActive:@NO} mutableCopy]; + 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]; SDLDeviceStatus* testStruct = [[SDLDeviceStatus alloc] initWithDictionary:dict]; expect(testStruct.voiceRecOn).to(equal(@NO)); @@ -64,11 +64,11 @@ expect(testStruct.callActive).to(equal(@YES)); expect(testStruct.phoneRoaming).to(equal(@NO)); expect(testStruct.textMsgAvailable).to(equal(@YES)); - expect(testStruct.battLevelStatus).to(equal([SDLDeviceLevelStatus FOUR_LEVEL_BARS])); + expect(testStruct.battLevelStatus).to(equal(SDLDeviceLevelStatusFourBars)); expect(testStruct.stereoAudioOutputMuted).to(equal(@YES)); expect(testStruct.monoAudioOutputMuted).to(equal(@YES)); - expect(testStruct.signalLevelStatus).to(equal([SDLDeviceLevelStatus TWO_LEVEL_BARS])); - expect(testStruct.primaryAudioSource).to(equal([SDLPrimaryAudioSource BLUETOOTH_STEREO_BTST])); + expect(testStruct.signalLevelStatus).to(equal(SDLDeviceLevelStatusTwoBars)); + expect(testStruct.primaryAudioSource).to(equal(SDLPrimaryAudioSourceBluetoothStereo)); expect(testStruct.eCallEventActive).to(equal(@NO)); }); @@ -89,4 +89,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDisplayCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDisplayCapabilitiesSpec.m index 02cac7f54..32bbeb29d 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDisplayCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDisplayCapabilitiesSpec.m @@ -27,19 +27,19 @@ it(@"Should set and get correctly", ^ { SDLDisplayCapabilities* testStruct = [[SDLDisplayCapabilities alloc] init]; - testStruct.displayType = [SDLDisplayType GEN2_6_DMA]; + testStruct.displayType = SDLDisplayTypeGen26DMA; testStruct.textFields = [@[textField] mutableCopy]; testStruct.imageFields = [@[imageField] mutableCopy]; - testStruct.mediaClockFormats = [@[[SDLMediaClockFormat CLOCKTEXT1], [SDLMediaClockFormat CLOCK3], [SDLMediaClockFormat CLOCKTEXT3]] copy]; + testStruct.mediaClockFormats = [@[SDLMediaClockFormatClockText1, SDLMediaClockFormatClock3, SDLMediaClockFormatClockText3] copy]; testStruct.graphicSupported = @YES; testStruct.templatesAvailable = [@[@"String", @"String", @"String"] mutableCopy]; testStruct.screenParams = screenParams; testStruct.numCustomPresetsAvailable = @43; - expect(testStruct.displayType).to(equal([SDLDisplayType GEN2_6_DMA])); + expect(testStruct.displayType).to(equal(SDLDisplayTypeGen26DMA)); expect(testStruct.textFields).to(equal([@[textField] mutableCopy])); expect(testStruct.imageFields).to(equal([@[imageField] mutableCopy])); - expect(testStruct.mediaClockFormats).to(equal([@[[SDLMediaClockFormat CLOCKTEXT1], [SDLMediaClockFormat CLOCK3], [SDLMediaClockFormat CLOCKTEXT3]] copy])); + expect(testStruct.mediaClockFormats).to(equal([@[SDLMediaClockFormatClockText1, SDLMediaClockFormatClock3, SDLMediaClockFormatClockText3] copy])); expect(testStruct.graphicSupported).to(equal(@YES)); expect(testStruct.templatesAvailable).to(equal([@[@"String", @"String", @"String"] mutableCopy])); expect(testStruct.screenParams).to(equal(screenParams)); @@ -47,20 +47,20 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_displayType:[SDLDisplayType GEN2_6_DMA], - NAMES_textFields:[@[textField] mutableCopy], - NAMES_imageFields:[@[imageField] mutableCopy], - NAMES_mediaClockFormats:[@[[SDLMediaClockFormat CLOCKTEXT1], [SDLMediaClockFormat CLOCK3], [SDLMediaClockFormat CLOCKTEXT3]] copy], - NAMES_graphicSupported:@YES, - NAMES_templatesAvailable:[@[@"String", @"String", @"String"] mutableCopy], - NAMES_screenParams:screenParams, - NAMES_numCustomPresetsAvailable:@43} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameDisplayType:SDLDisplayTypeGen26DMA, + SDLNameTextFields:[@[textField] mutableCopy], + SDLNameImageFields:[@[imageField] mutableCopy], + SDLNameMediaClockFormats:[@[SDLMediaClockFormatClockText1, SDLMediaClockFormatClock3, SDLMediaClockFormatClockText3] copy], + SDLNameGraphicSupported:@YES, + SDLNameTemplatesAvailable:[@[@"String", @"String", @"String"] mutableCopy], + SDLNameScreenParams:screenParams, + SDLNameNumberCustomPresetsAvailable:@43} mutableCopy]; SDLDisplayCapabilities* testStruct = [[SDLDisplayCapabilities alloc] initWithDictionary:dict]; - expect(testStruct.displayType).to(equal([SDLDisplayType GEN2_6_DMA])); + expect(testStruct.displayType).to(equal(SDLDisplayTypeGen26DMA)); expect(testStruct.textFields).to(equal([@[textField] mutableCopy])); expect(testStruct.imageFields).to(equal([@[imageField] mutableCopy])); - expect(testStruct.mediaClockFormats).to(equal([@[[SDLMediaClockFormat CLOCKTEXT1], [SDLMediaClockFormat CLOCK3], [SDLMediaClockFormat CLOCKTEXT3]] copy])); + expect(testStruct.mediaClockFormats).to(equal([@[SDLMediaClockFormatClockText1, SDLMediaClockFormatClock3, SDLMediaClockFormatClockText3] copy])); expect(testStruct.graphicSupported).to(equal(@YES)); expect(testStruct.templatesAvailable).to(equal([@[@"String", @"String", @"String"] mutableCopy])); expect(testStruct.screenParams).to(equal(screenParams)); @@ -81,4 +81,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLECallInfoSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLECallInfoSpec.m index 28e226187..c69c46b84 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLECallInfoSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLECallInfoSpec.m @@ -20,24 +20,24 @@ it(@"Should set and get correctly", ^ { SDLECallInfo* testStruct = [[SDLECallInfo alloc] init]; - testStruct.eCallNotificationStatus = [SDLVehicleDataNotificationStatus NORMAL]; - testStruct.auxECallNotificationStatus = [SDLVehicleDataNotificationStatus ACTIVE]; - testStruct.eCallConfirmationStatus = [SDLECallConfirmationStatus CALL_IN_PROGRESS]; + testStruct.eCallNotificationStatus = SDLVehicleDataNotificationStatusNormal; + testStruct.auxECallNotificationStatus = SDLVehicleDataNotificationStatusActive; + testStruct.eCallConfirmationStatus = SDLECallConfirmationStatusInProgress; - expect(testStruct.eCallNotificationStatus).to(equal([SDLVehicleDataNotificationStatus NORMAL])); - expect(testStruct.auxECallNotificationStatus).to(equal([SDLVehicleDataNotificationStatus ACTIVE])); - expect(testStruct.eCallConfirmationStatus).to(equal([SDLECallConfirmationStatus CALL_IN_PROGRESS])); + expect(testStruct.eCallNotificationStatus).to(equal(SDLVehicleDataNotificationStatusNormal)); + expect(testStruct.auxECallNotificationStatus).to(equal(SDLVehicleDataNotificationStatusActive)); + expect(testStruct.eCallConfirmationStatus).to(equal(SDLECallConfirmationStatusInProgress)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_eCallNotificationStatus:[SDLVehicleDataNotificationStatus NORMAL], - NAMES_auxECallNotificationStatus:[SDLVehicleDataNotificationStatus ACTIVE], - NAMES_eCallConfirmationStatus:[SDLECallConfirmationStatus CALL_IN_PROGRESS]} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameECallNotificationStatus:SDLVehicleDataNotificationStatusNormal, + SDLNameAuxECallNotificationStatus:SDLVehicleDataNotificationStatusActive, + SDLNameECallConfirmationStatus:SDLECallConfirmationStatusInProgress} mutableCopy]; SDLECallInfo* testStruct = [[SDLECallInfo alloc] initWithDictionary:dict]; - expect(testStruct.eCallNotificationStatus).to(equal([SDLVehicleDataNotificationStatus NORMAL])); - expect(testStruct.auxECallNotificationStatus).to(equal([SDLVehicleDataNotificationStatus ACTIVE])); - expect(testStruct.eCallConfirmationStatus).to(equal([SDLECallConfirmationStatus CALL_IN_PROGRESS])); + expect(testStruct.eCallNotificationStatus).to(equal(SDLVehicleDataNotificationStatusNormal)); + expect(testStruct.auxECallNotificationStatus).to(equal(SDLVehicleDataNotificationStatusActive)); + expect(testStruct.eCallConfirmationStatus).to(equal(SDLECallConfirmationStatusInProgress)); }); it(@"Should return nil if not set", ^ { @@ -49,4 +49,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLEmergencyEventSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLEmergencyEventSpec.m index c67f45d45..0048ffdff 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLEmergencyEventSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLEmergencyEventSpec.m @@ -21,32 +21,32 @@ it(@"Should set and get correctly", ^ { SDLEmergencyEvent* testStruct = [[SDLEmergencyEvent alloc] init]; - testStruct.emergencyEventType = [SDLEmergencyEventType FRONTAL]; - testStruct.fuelCutoffStatus = [SDLFuelCutoffStatus NORMAL_OPERATION]; - testStruct.rolloverEvent = [SDLVehicleDataEventStatus _YES]; + testStruct.emergencyEventType = SDLEmergencyEventTypeFrontal; + testStruct.fuelCutoffStatus = SDLFuelCutoffStatusNormalOperation; + testStruct.rolloverEvent = SDLVehicleDataEventStatusYes; testStruct.maximumChangeVelocity = @33; - testStruct.multipleEvents = [SDLVehicleDataEventStatus _NO]; + testStruct.multipleEvents = SDLVehicleDataEventStatusNo; - expect(testStruct.emergencyEventType).to(equal([SDLEmergencyEventType FRONTAL])); - expect(testStruct.fuelCutoffStatus).to(equal([SDLFuelCutoffStatus NORMAL_OPERATION])); - expect(testStruct.rolloverEvent).to(equal([SDLVehicleDataEventStatus _YES])); + expect(testStruct.emergencyEventType).to(equal(SDLEmergencyEventTypeFrontal)); + expect(testStruct.fuelCutoffStatus).to(equal(SDLFuelCutoffStatusNormalOperation)); + expect(testStruct.rolloverEvent).to(equal(SDLVehicleDataEventStatusYes)); expect(testStruct.maximumChangeVelocity).to(equal(@33)); - expect(testStruct.multipleEvents).to(equal([SDLVehicleDataEventStatus _NO])); + expect(testStruct.multipleEvents).to(equal(SDLVehicleDataEventStatusNo)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_emergencyEventType:[SDLEmergencyEventType FRONTAL], - NAMES_fuelCutoffStatus:[SDLFuelCutoffStatus NORMAL_OPERATION], - NAMES_rolloverEvent:[SDLVehicleDataEventStatus _YES], - NAMES_maximumChangeVelocity:@33, - NAMES_multipleEvents:[SDLVehicleDataEventStatus _NO]} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameEmergencyEventType:SDLEmergencyEventTypeFrontal, + SDLNameFuelCutoffStatus:SDLFuelCutoffStatusNormalOperation, + SDLNameRolloverEvent:SDLVehicleDataEventStatusYes, + SDLNameMaximumChangeVelocity:@33, + SDLNameMultipleEvents:SDLVehicleDataEventStatusNo} mutableCopy]; SDLEmergencyEvent* testStruct = [[SDLEmergencyEvent alloc] initWithDictionary:dict]; - expect(testStruct.emergencyEventType).to(equal([SDLEmergencyEventType FRONTAL])); - expect(testStruct.fuelCutoffStatus).to(equal([SDLFuelCutoffStatus NORMAL_OPERATION])); - expect(testStruct.rolloverEvent).to(equal([SDLVehicleDataEventStatus _YES])); + expect(testStruct.emergencyEventType).to(equal(SDLEmergencyEventTypeFrontal)); + expect(testStruct.fuelCutoffStatus).to(equal(SDLFuelCutoffStatusNormalOperation)); + expect(testStruct.rolloverEvent).to(equal(SDLVehicleDataEventStatusYes)); expect(testStruct.maximumChangeVelocity).to(equal(@33)); - expect(testStruct.multipleEvents).to(equal([SDLVehicleDataEventStatus _NO])); + expect(testStruct.multipleEvents).to(equal(SDLVehicleDataEventStatusNo)); }); it(@"Should return nil if not set", ^ { @@ -60,4 +60,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLGPSDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLGPSDataSpec.m index 6d19dbf77..35cc2b659 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLGPSDataSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLGPSDataSpec.m @@ -28,13 +28,13 @@ testStruct.utcHours = @23; testStruct.utcMinutes = @59; testStruct.utcSeconds = @59; - testStruct.compassDirection = [SDLCompassDirection SOUTHEAST]; + testStruct.compassDirection = SDLCompassDirectionSoutheast; testStruct.pdop = @3.4; testStruct.hdop = @9.9; testStruct.vdop = @0; testStruct.actual = @NO; testStruct.satellites = @12; - testStruct.dimension = [SDLDimension _3D]; + testStruct.dimension = SDLDimension3D; testStruct.altitude = @3000; testStruct.heading = @96; testStruct.speed = @64; @@ -47,37 +47,37 @@ expect(testStruct.utcHours).to(equal(@23)); expect(testStruct.utcMinutes).to(equal(@59)); expect(testStruct.utcSeconds).to(equal(@59)); - expect(testStruct.compassDirection).to(equal([SDLCompassDirection SOUTHEAST])); + expect(testStruct.compassDirection).to(equal(SDLCompassDirectionSoutheast)); expect(testStruct.pdop).to(equal(@3.4)); expect(testStruct.hdop).to(equal(@9.9)); expect(testStruct.vdop).to(equal(@0)); expect(testStruct.actual).to(equal(@NO)); expect(testStruct.satellites).to(equal(@12)); - expect(testStruct.dimension).to(equal([SDLDimension _3D])); + expect(testStruct.dimension).to(equal(SDLDimension3D)); expect(testStruct.altitude).to(equal(@3000)); expect(testStruct.heading).to(equal(@96)); expect(testStruct.speed).to(equal(@64)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_longitudeDegrees:@31.41592653589793, - NAMES_latitudeDegrees:@45, - NAMES_utcYear:@2015, - NAMES_utcMonth:@1, - NAMES_utcDay:@26, - NAMES_utcHours:@23, - NAMES_utcMinutes:@59, - NAMES_utcSeconds:@59, - NAMES_compassDirection:[SDLCompassDirection SOUTHEAST], - NAMES_pdop:@3.4, - NAMES_hdop:@9.9, - NAMES_vdop:@0, - NAMES_actual:@NO, - NAMES_satellites:@12, - NAMES_dimension:[SDLDimension _3D], - NAMES_altitude:@3000, - NAMES_heading:@96, - NAMES_speed:@64} mutableCopy]; + 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]; SDLGPSData* testStruct = [[SDLGPSData alloc] initWithDictionary:dict]; expect(testStruct.longitudeDegrees).to(equal(@31.41592653589793)); @@ -88,13 +88,13 @@ expect(testStruct.utcHours).to(equal(@23)); expect(testStruct.utcMinutes).to(equal(@59)); expect(testStruct.utcSeconds).to(equal(@59)); - expect(testStruct.compassDirection).to(equal([SDLCompassDirection SOUTHEAST])); + expect(testStruct.compassDirection).to(equal(SDLCompassDirectionSoutheast)); expect(testStruct.pdop).to(equal(@3.4)); expect(testStruct.hdop).to(equal(@9.9)); expect(testStruct.vdop).to(equal(@0)); expect(testStruct.actual).to(equal(@NO)); expect(testStruct.satellites).to(equal(@12)); - expect(testStruct.dimension).to(equal([SDLDimension _3D])); + expect(testStruct.dimension).to(equal(SDLDimension3D)); expect(testStruct.altitude).to(equal(@3000)); expect(testStruct.heading).to(equal(@96)); expect(testStruct.speed).to(equal(@64)); @@ -124,4 +124,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMICapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMICapabilitiesSpec.m index ba452bb7e..72cc3df64 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMICapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMICapabilitiesSpec.m @@ -41,10 +41,10 @@ context(@"When initialized with a dictionary", ^{ beforeEach(^{ - NSDictionary *structInitDict = @{ - NAMES_navigation: someNavigationState, - NAMES_phoneCall: somePhoneCallState, - NAMES_videoStreaming: someVideoStreamState + NSDictionary *structInitDict = @{ + SDLNameNavigation: someNavigationState, + SDLNamePhoneCall: somePhoneCallState, + SDLNameVideoStreaming: someVideoStreamState }; testStruct = [[SDLHMICapabilities alloc] initWithDictionary:[structInitDict mutableCopy]]; }); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMIPermissionsSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMIPermissionsSpec.m index 63df146cb..aed9830d4 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMIPermissionsSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMIPermissionsSpec.m @@ -18,20 +18,20 @@ it(@"Should set and get correctly", ^ { SDLHMIPermissions* testStruct = [[SDLHMIPermissions alloc] init]; - testStruct.allowed = [@[[SDLHMILevel BACKGROUND], [SDLHMILevel FULL]] copy]; - testStruct.userDisallowed = [@[[SDLHMILevel NONE], [SDLHMILevel LIMITED]] copy]; + testStruct.allowed = [@[SDLHMILevelBackground, SDLHMILevelFull] copy]; + testStruct.userDisallowed = [@[SDLHMILevelNone, SDLHMILevelLimited] copy]; - expect(testStruct.allowed).to(equal([@[[SDLHMILevel BACKGROUND], [SDLHMILevel FULL]] copy])); - expect(testStruct.userDisallowed).to(equal([@[[SDLHMILevel NONE], [SDLHMILevel LIMITED]] copy])); + expect(testStruct.allowed).to(equal([@[SDLHMILevelBackground, SDLHMILevelFull] copy])); + expect(testStruct.userDisallowed).to(equal([@[SDLHMILevelNone, SDLHMILevelLimited] copy])); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_allowed:[@[[SDLHMILevel BACKGROUND], [SDLHMILevel FULL]] copy], - NAMES_userDisallowed:[@[[SDLHMILevel NONE], [SDLHMILevel LIMITED]] copy]} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameAllowed:[@[SDLHMILevelBackground, SDLHMILevelFull] copy], + SDLNameUserDisallowed:[@[SDLHMILevelNone, SDLHMILevelLimited] copy]} mutableCopy]; SDLHMIPermissions* testStruct = [[SDLHMIPermissions alloc] initWithDictionary:dict]; - expect(testStruct.allowed).to(equal([@[[SDLHMILevel BACKGROUND], [SDLHMILevel FULL]] copy])); - expect(testStruct.userDisallowed).to(equal([@[[SDLHMILevel NONE], [SDLHMILevel LIMITED]] copy])); + expect(testStruct.allowed).to(equal([@[SDLHMILevelBackground, SDLHMILevelFull] copy])); + expect(testStruct.userDisallowed).to(equal([@[SDLHMILevelNone, SDLHMILevelLimited] copy])); }); it(@"Should return nil if not set", ^ { @@ -42,4 +42,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHapticRectSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHapticRectSpec.m index 5f0d6f11d..6235ea62f 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHapticRectSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHapticRectSpec.m @@ -2,7 +2,7 @@ // SDLHapticRectSpec.m // SmartDeviceLink-iOS // -// Created by Nicole on 8/2/17. +// Created by Nicole on 8/3/17. // Copyright © 2017 smartdevicelink. All rights reserved. // @@ -18,8 +18,12 @@ QuickSpecBegin(SDLHapticRectSpec) describe(@"Getter/Setter Tests", ^{ + __block SDLRectangle *testRect = nil; + beforeEach(^{ + testRect = [[SDLRectangle alloc] initWithX:1.2 y:42.3 width:78.9 height:69]; + }); + it(@"Should set and get correctly", ^{ - SDLRectangle *testRect = [[SDLRectangle alloc] initWithX:@1 y:@2 width:@3 height:@4]; SDLHapticRect *testStruct = [[SDLHapticRect alloc] init]; testStruct.id = @1; @@ -29,15 +33,23 @@ expect(testStruct.rect).to(equal(testRect)); }); - it(@"Should get correctly when initialized", ^{ - NSMutableDictionary *dict = [@{NAMES_id:@2, - NAMES_rect: @{ - NAMES_x:@20, - NAMES_y:@200, - NAMES_width:@2000, - NAMES_height:@3000 - }} mutableCopy]; - SDLHapticRect * testStruct = [[SDLHapticRect alloc] initWithDictionary:dict]; + it(@"Should get correctly when initialized with parameters", ^{ + SDLHapticRect *testStruct = [[SDLHapticRect alloc] initWithId:23 rect:testRect]; + + expect(testStruct.id).to(equal(@23)); + expect(testStruct.rect).to(equal(testRect)); + }); + + it(@"Should get correctly when initialized with a dict", ^{ + NSMutableDictionary *dict = [@{SDLNameId:@2, + SDLNameRect: @{ + SDLNameX:@20, + SDLNameY:@200, + SDLNameWidth:@2000, + SDLNameHeight:@3000 + } + } mutableCopy]; + SDLHapticRect *testStruct = [[SDLHapticRect alloc] initWithDictionary:dict]; expect(testStruct.id).to(equal(@2)); expect(testStruct.rect.x).to(equal(@20)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHeadLampStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHeadLampStatusSpec.m index b418b962b..fe7a21198 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHeadLampStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHeadLampStatusSpec.m @@ -21,22 +21,22 @@ testStruct.lowBeamsOn = @YES; testStruct.highBeamsOn = @NO; - testStruct.ambientLightSensorStatus = [SDLAmbientLightStatus TWILIGHT_3]; + testStruct.ambientLightSensorStatus = SDLAmbientLightStatusTwilight3; expect(testStruct.lowBeamsOn).to(equal(@YES)); expect(testStruct.highBeamsOn).to(equal(@NO)); - expect(testStruct.ambientLightSensorStatus).to(equal([SDLAmbientLightStatus TWILIGHT_3])); + expect(testStruct.ambientLightSensorStatus).to(equal(SDLAmbientLightStatusTwilight3)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_lowBeamsOn:@YES, - NAMES_highBeamsOn:@NO, - NAMES_ambientLightSensorStatus:[SDLAmbientLightStatus TWILIGHT_3]} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameLowBeamsOn:@YES, + SDLNameHighBeamsOn:@NO, + SDLNameAmbientLightSensorStatus:SDLAmbientLightStatusTwilight3} mutableCopy]; SDLHeadLampStatus* testStruct = [[SDLHeadLampStatus alloc] initWithDictionary:dict]; expect(testStruct.lowBeamsOn).to(equal(@YES)); expect(testStruct.highBeamsOn).to(equal(@NO)); - expect(testStruct.ambientLightSensorStatus).to(equal([SDLAmbientLightStatus TWILIGHT_3])); + expect(testStruct.ambientLightSensorStatus).to(equal(SDLAmbientLightStatusTwilight3)); }); it(@"Should return nil if not set", ^ { @@ -48,4 +48,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageFieldSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageFieldSpec.m index 2bcef11f1..b40371a4d 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageFieldSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageFieldSpec.m @@ -23,23 +23,23 @@ it(@"Should set and get correctly", ^ { SDLImageField* testStruct = [[SDLImageField alloc] init]; - testStruct.name = [SDLImageFieldName turnIcon]; - testStruct.imageTypeSupported = [@[[SDLFileType GRAPHIC_PNG], [SDLFileType GRAPHIC_JPEG]] copy]; + testStruct.name = SDLImageFieldNameTurnIcon; + testStruct.imageTypeSupported = [@[SDLFileTypePNG, SDLFileTypeJPEG] copy]; testStruct.imageResolution = resolution; - expect(testStruct.name).to(equal([SDLImageFieldName turnIcon])); - expect(testStruct.imageTypeSupported).to(equal([@[[SDLFileType GRAPHIC_PNG], [SDLFileType GRAPHIC_JPEG]] copy])); + expect(testStruct.name).to(equal(SDLImageFieldNameTurnIcon)); + expect(testStruct.imageTypeSupported).to(equal([@[SDLFileTypePNG, SDLFileTypeJPEG] copy])); expect(testStruct.imageResolution).to(equal(resolution)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_name:[SDLImageFieldName turnIcon], - NAMES_imageTypeSupported:[@[[SDLFileType GRAPHIC_PNG], [SDLFileType GRAPHIC_JPEG]] copy], - NAMES_imageResolution:resolution} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameName:SDLImageFieldNameTurnIcon, + SDLNameImageTypeSupported:[@[SDLFileTypePNG, SDLFileTypeJPEG] copy], + SDLNameImageResolution:resolution} mutableCopy]; SDLImageField* testStruct = [[SDLImageField alloc] initWithDictionary:dict]; - expect(testStruct.name).to(equal([SDLImageFieldName turnIcon])); - expect(testStruct.imageTypeSupported).to(equal([@[[SDLFileType GRAPHIC_PNG], [SDLFileType GRAPHIC_JPEG]] copy])); + expect(testStruct.name).to(equal(SDLImageFieldNameTurnIcon)); + expect(testStruct.imageTypeSupported).to(equal([@[SDLFileTypePNG, SDLFileTypeJPEG] copy])); expect(testStruct.imageResolution).to(equal(resolution)); }); @@ -52,4 +52,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageResolutionSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageResolutionSpec.m new file mode 100644 index 000000000..c56008516 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageResolutionSpec.m @@ -0,0 +1,46 @@ +#import +#import + +#import "SDLImageResolution.h" +#import "SDLNames.h" + +QuickSpecBegin(SDLImageResolutionSpec) + +describe(@"Getter/Setter Tests", ^ { + it(@"Should set and get correctly", ^ { + SDLImageResolution *testStruct = [[SDLImageResolution alloc] init]; + + testStruct.resolutionWidth = @245; + testStruct.resolutionHeight = @42; + + expect(testStruct.resolutionHeight).to(equal(@42)); + expect(testStruct.resolutionWidth).to(equal(@245)); + }); + + it(@"should correct initialize", ^{ + SDLImageResolution *testStruct = [[SDLImageResolution alloc] initWithWidth:1245 height:789]; + + expect(testStruct.resolutionHeight).to(equal(@789)); + expect(testStruct.resolutionWidth).to(equal(@1245)); + }); + + it(@"Should get correctly when initialized", ^ { + NSDictionary *dict = @{SDLNameResolutionHeight:@69, + SDLNameResolutionWidth:@869, + }; + SDLImageResolution *testStruct = [[SDLImageResolution alloc] initWithDictionary:dict]; + + expect(testStruct.resolutionWidth).to(equal(@869)); + expect(testStruct.resolutionHeight).to(equal(@69)); + }); + + it(@"Should return nil if not set", ^ { + SDLImageResolution *testStruct = [[SDLImageResolution alloc] init]; + + expect(testStruct.resolutionHeight).to(beNil()); + expect(testStruct.resolutionWidth).to(beNil()); + }); +}); + + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageSpec.m index dba2d630e..f1364c819 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLImageSpec.m @@ -20,19 +20,19 @@ SDLImage* testStruct = [[SDLImage alloc] init]; testStruct.value = @"value"; - testStruct.imageType = [SDLImageType STATIC]; + testStruct.imageType = SDLImageTypeStatic; expect(testStruct.value).to(equal(@"value")); - expect(testStruct.imageType).to(equal([SDLImageType STATIC])); + expect(testStruct.imageType).to(equal(SDLImageTypeStatic)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_value:@"value", - NAMES_imageType:[SDLImageType STATIC]} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameValue:@"value", + SDLNameImageType:SDLImageTypeStatic} mutableCopy]; SDLImage* testStruct = [[SDLImage alloc] initWithDictionary:dict]; expect(testStruct.value).to(equal(@"value")); - expect(testStruct.imageType).to(equal([SDLImageType STATIC])); + expect(testStruct.imageType).to(equal(SDLImageTypeStatic)); }); it(@"Should return nil if not set", ^ { @@ -43,4 +43,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLKeyboardPropertiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLKeyboardPropertiesSpec.m index 3e6793b62..4a8dc21bb 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLKeyboardPropertiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLKeyboardPropertiesSpec.m @@ -21,30 +21,30 @@ it(@"Should set and get correctly", ^ { SDLKeyboardProperties* testStruct = [[SDLKeyboardProperties alloc] init]; - testStruct.language = [SDLLanguage DA_DK]; - testStruct.keyboardLayout = [SDLKeyboardLayout QWERTZ]; - testStruct.keypressMode = [SDLKeypressMode RESEND_CURRENT_ENTRY]; + testStruct.language = SDLLanguageDaDk; + testStruct.keyboardLayout = SDLKeyboardLayoutQWERTZ; + testStruct.keypressMode = SDLKeypressModeResendCurrentEntry; testStruct.limitedCharacterList = [@[@"s", @"r", @"f", @"q"] mutableCopy]; testStruct.autoCompleteText = @"Auto Carrot"; - expect(testStruct.language).to(equal([SDLLanguage DA_DK])); - expect(testStruct.keyboardLayout).to(equal([SDLKeyboardLayout QWERTZ])); - expect(testStruct.keypressMode).to(equal([SDLKeypressMode RESEND_CURRENT_ENTRY])); + expect(testStruct.language).to(equal(SDLLanguageDaDk)); + expect(testStruct.keyboardLayout).to(equal(SDLKeyboardLayoutQWERTZ)); + expect(testStruct.keypressMode).to(equal(SDLKeypressModeResendCurrentEntry)); expect(testStruct.limitedCharacterList).to(equal([@[@"s", @"r", @"f", @"q"] mutableCopy])); expect(testStruct.autoCompleteText).to(equal(@"Auto Carrot")); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_language:[SDLLanguage DA_DK], - NAMES_keyboardLayout:[SDLKeyboardLayout QWERTZ], - NAMES_keypressMode:[SDLKeypressMode RESEND_CURRENT_ENTRY], - NAMES_limitedCharacterList:[@[@"s", @"r", @"f", @"q"] mutableCopy], - NAMES_autoCompleteText:@"Auto Carrot"} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameLanguage:SDLLanguageDaDk, + SDLNameKeyboardLayout:SDLKeyboardLayoutQWERTZ, + SDLNameKeypressMode:SDLKeypressModeResendCurrentEntry, + SDLNameLimitedCharacterList:[@[@"s", @"r", @"f", @"q"] mutableCopy], + SDLNameAutoCompleteText:@"Auto Carrot"} mutableCopy]; SDLKeyboardProperties* testStruct = [[SDLKeyboardProperties alloc] initWithDictionary:dict]; - expect(testStruct.language).to(equal([SDLLanguage DA_DK])); - expect(testStruct.keyboardLayout).to(equal([SDLKeyboardLayout QWERTZ])); - expect(testStruct.keypressMode).to(equal([SDLKeypressMode RESEND_CURRENT_ENTRY])); + expect(testStruct.language).to(equal(SDLLanguageDaDk)); + expect(testStruct.keyboardLayout).to(equal(SDLKeyboardLayoutQWERTZ)); + expect(testStruct.keypressMode).to(equal(SDLKeypressModeResendCurrentEntry)); expect(testStruct.limitedCharacterList).to(equal([@[@"s", @"r", @"f", @"q"] mutableCopy])); expect(testStruct.autoCompleteText).to(equal(@"Auto Carrot")); }); @@ -60,4 +60,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationCoordinateSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationCoordinateSpec.m index 85c9a2b5e..663eae3fe 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationCoordinateSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationCoordinateSpec.m @@ -51,8 +51,8 @@ someLongitude = @123.4567; someLatitude = @65.4321; NSDictionary *initDict = @{ - NAMES_longitudeDegrees: someLongitude, - NAMES_latitudeDegrees: someLatitude, + SDLNameLongitudeDegrees: someLongitude, + SDLNameLatitudeDegrees: someLatitude, }; testStruct = [[SDLLocationCoordinate alloc] initWithDictionary:[NSMutableDictionary dictionaryWithDictionary:initDict]]; @@ -73,9 +73,6 @@ context(@"when parameters are not set", ^{ beforeEach(^{ NSDictionary *initDict = @{ - NAMES_request: @{ - NAMES_parameters: @{} - } }; testStruct = [[SDLLocationCoordinate alloc] initWithDictionary:[NSMutableDictionary dictionaryWithDictionary:initDict]]; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationDetailsSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationDetailsSpec.m index 77b970275..de18bb501 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationDetailsSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationDetailsSpec.m @@ -99,13 +99,13 @@ someImage = [[SDLImage alloc] init]; someAddress = [[SDLOasisAddress alloc] initWithSubThoroughfare:@"test" thoroughfare:@"1" locality:@"local" administrativeArea:@"admin" postalCode:@"48067" countryCode:@"12345"]; NSDictionary *initDict = @{ - NAMES_locationCoordinate: someCoordinate, - NAMES_locationName: someLocation, - NAMES_locationDescription: someLocationDescription, - NAMES_addressLines: someAddressLines, - NAMES_phoneNumber: somePhoneNumber, - NAMES_locationImage: someImage, - NAMES_searchAddress: someAddress + SDLNameLocationCoordinate: someCoordinate, + SDLNameLocationName: someLocation, + SDLNameLocationDescription: someLocationDescription, + SDLNameAddressLines: someAddressLines, + SDLNamePhoneNumber: somePhoneNumber, + SDLNameLocationImage: someImage, + SDLNameSearchAddress: someAddress }; testStruct = [[SDLLocationDetails alloc] initWithDictionary:[NSMutableDictionary dictionaryWithDictionary:initDict]]; @@ -151,8 +151,8 @@ context(@"when parameters are not set", ^{ beforeEach(^{ NSDictionary *initDict = @{ - NAMES_request: @{ - NAMES_parameters: @{} + SDLNameRequest: @{ + SDLNameParameters: @{} } }; diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMenuParamsSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMenuParamsSpec.m index ec9cc2457..e2f5612d7 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMenuParamsSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMenuParamsSpec.m @@ -27,9 +27,9 @@ }); it(@"should properly initialize initWithDictionary", ^{ - NSMutableDictionary* dict = [@{NAMES_parentID:@(testParentId), - NAMES_position:@(testPosition), - NAMES_menuName:testMenuName} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameParentId:@(testParentId), + SDLNamePosition:@(testPosition), + SDLNameMenuName: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 aa1b10ac3..db7d2d855 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataTagsSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMetadataTagsSpec.m @@ -2,7 +2,7 @@ // SDLMetadataTagsSpec.m // SmartDeviceLink-iOS // -// Created by Brett McIsaac on 8/1/17. +// Created by Brett McIsaac on 8/3/17. // Copyright © 2017 smartdevicelink. All rights reserved. // @@ -11,21 +11,16 @@ #import #import -#import "SDLNames.h" #import "SDLMetadataTags.h" +#import "SDLNames.h" #import "SDLMetadataType.h" QuickSpecBegin(SDLMetadataTagsSpec) describe(@"Initialization tests", ^{ - it(@"Should get correctly when initialized with a dictionary", ^ { - NSArray *formatArray = @[[SDLMetadataType MEDIA_ARTIST], [SDLMetadataType MEDIA_TITLE]]; - NSMutableDictionary* dict = [@{NAMES_mainField1: formatArray, - NAMES_mainField2: formatArray, - NAMES_mainField3: formatArray, - NAMES_mainField4: formatArray} mutableCopy]; - - SDLMetadataTags* testStruct = [[SDLMetadataTags alloc] initWithDictionary:dict]; + it(@"Should get correctly when initialized with Arrays", ^ { + NSArray *formatArray = @[SDLMetadataTypeMediaArtist, SDLMetadataTypeMediaTitle]; + SDLMetadataTags* testStruct = [[SDLMetadataTags alloc] initWithTextFieldTypes:formatArray mainField2:formatArray mainField3:formatArray mainField4:formatArray]; expect(testStruct.mainField1).to(equal(formatArray)); expect(testStruct.mainField2).to(equal(formatArray)); @@ -34,23 +29,13 @@ }); it(@"Should return nil if not set", ^ { - SDLMetadataTags* testStruct = [[SDLMetadataTags alloc] init]; + SDLMetadataTags *testStruct = [[SDLMetadataTags alloc] init]; expect(testStruct.mainField1).to(beNil()); expect(testStruct.mainField2).to(beNil()); expect(testStruct.mainField3).to(beNil()); expect(testStruct.mainField4).to(beNil()); }); - - it(@"Should get correctly when initialized with Arrays", ^ { - NSArray *formatArray = @[[SDLMetadataType MEDIA_ARTIST], [SDLMetadataType MEDIA_TITLE]]; - SDLMetadataTags* testStruct = [[SDLMetadataTags alloc] initWithTextFieldTypes:formatArray mainField2:formatArray mainField3:formatArray mainField4:formatArray]; - - expect(testStruct.mainField1).to(equal(formatArray)); - expect(testStruct.mainField2).to(equal(formatArray)); - expect(testStruct.mainField3).to(equal(formatArray)); - expect(testStruct.mainField4).to(equal(formatArray)); - }); }); QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLModuleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLModuleDataSpec.m new file mode 100644 index 000000000..ee14ff803 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLModuleDataSpec.m @@ -0,0 +1,71 @@ +// +// SDLModuleDataSpec.m +// SmartDeviceLink-iOS +// + +#import + +#import +#import + +#import "SDLModuleData.h" +#import "SDLModuleType.h" +#import "SDLClimateControlData.h" +#import "SDLRadioControlData.h" +#import "SDLNames.h" + +QuickSpecBegin(SDLModuleDataSpec) + +describe(@"Initialization tests", ^{ + __block SDLRadioControlData* someRadioData = [[SDLRadioControlData alloc] init]; + __block SDLClimateControlData* someClimateData = [[SDLClimateControlData alloc] init]; + + it(@"should properly initialize init", ^{ + SDLModuleData* testStruct = [[SDLModuleData alloc] init]; + + expect(testStruct.moduleType).to(beNil()); + expect(testStruct.radioControlData).to(beNil()); + expect(testStruct.climateControlData).to(beNil()); + }); + + it(@"should properly initialize initWithDictionary", ^{ + + NSMutableDictionary* dict = [@{SDLNameModuleType:SDLModuleTypeRadio, + SDLNameRadioControlData:someRadioData, + SDLNameClimateControlData:someClimateData} mutableCopy]; + SDLModuleData* testStruct = [[SDLModuleData alloc] initWithDictionary:dict]; + + expect(testStruct.moduleType).to(equal(SDLModuleTypeRadio)); + expect(testStruct.radioControlData).to(equal(someRadioData)); + expect(testStruct.climateControlData).to(equal(someClimateData)); + }); + + it(@"Should set and get correctly", ^{ + SDLModuleData* testStruct = [[SDLModuleData alloc] init]; + testStruct.moduleType = SDLModuleTypeRadio; + testStruct.radioControlData = someRadioData; + testStruct.climateControlData = someClimateData; + + expect(testStruct.moduleType).to(equal(SDLModuleTypeRadio)); + expect(testStruct.radioControlData).to(equal(someRadioData)); + expect(testStruct.climateControlData).to(equal(someClimateData)); + }); + + it(@"Should get correctly when initialized with RadioControlData", ^ { + SDLModuleData* testStruct = [[SDLModuleData alloc] initWithRadioControlData:someRadioData]; + + expect(testStruct.moduleType).to(equal(SDLModuleTypeRadio)); + expect(testStruct.radioControlData).to(equal(someRadioData)); + expect(testStruct.climateControlData).to(beNil()); + }); + + it(@"Should get correctly when initialized with ClimateControlData", ^ { + SDLModuleData* testStruct = [[SDLModuleData alloc] initWithClimateControlData:someClimateData]; + + expect(testStruct.moduleType).to(equal(SDLModuleTypeClimate)); + expect(testStruct.climateControlData).to(equal(someClimateData)); + expect(testStruct.radioControlData).to(beNil()); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMyKeySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMyKeySpec.m index c442e2cfc..6d0a462fb 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMyKeySpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLMyKeySpec.m @@ -19,16 +19,16 @@ it(@"Should set and get correctly", ^ { SDLMyKey* testStruct = [[SDLMyKey alloc] init]; - testStruct.e911Override = [SDLVehicleDataStatus OFF]; + testStruct.e911Override = SDLVehicleDataStatusOff; - expect(testStruct.e911Override).to(equal([SDLVehicleDataStatus OFF])); + expect(testStruct.e911Override).to(equal(SDLVehicleDataStatusOff)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_e911Override:[SDLVehicleDataStatus ON]} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameE911Override:SDLVehicleDataStatusOn} mutableCopy]; SDLMyKey* testStruct = [[SDLMyKey alloc] initWithDictionary:dict]; - expect(testStruct.e911Override).to(equal([SDLVehicleDataStatus ON])); + expect(testStruct.e911Override).to(equal(SDLVehicleDataStatusOn)); }); it(@"Should return nil if not set", ^ { @@ -38,4 +38,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLNavigationCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLNavigationCapabilitySpec.m index ecbf9d012..99c85cdc8 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLNavigationCapabilitySpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLNavigationCapabilitySpec.m @@ -23,8 +23,8 @@ describe(@"Initialization tests", ^{ it(@"Should get correctly when initialized with a dictionary", ^ { - NSMutableDictionary* dict = [@{NAMES_getWayPointsEnabled: @(YES), - NAMES_sendLocationEnabled: @(YES)} mutableCopy]; + NSDictionary *dict = @{SDLNameGetWayPointsEnabled: @(YES), + SDLNameSendLocationEnabled: @(YES)}; SDLNavigationCapability* testStruct = [[SDLNavigationCapability alloc] initWithDictionary:dict]; expect(testStruct.getWayPointsEnabled).to(equal(YES)); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLOasisAddressSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLOasisAddressSpec.m index a1de08e68..5a4bf7cef 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLOasisAddressSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLOasisAddressSpec.m @@ -38,15 +38,15 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_countryName:@"United States", - NAMES_countryCode:@"US", - NAMES_postalCode:@"123456", - NAMES_administrativeArea:@"CA", - NAMES_subAdministrativeArea:@"Santa Clara", - NAMES_locality:@"Palo Alto", - NAMES_subLocality:@"18", - NAMES_thoroughfare:@"Candy Lane", - NAMES_subThoroughfare:@"123"} mutableCopy]; + 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]; 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 08e375e9f..92b6a5ef6 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLParameterPermissionsSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLParameterPermissionsSpec.m @@ -18,20 +18,20 @@ it(@"Should set and get correctly", ^ { SDLParameterPermissions* testStruct = [[SDLParameterPermissions alloc] init]; - testStruct.allowed = [@[[SDLHMILevel BACKGROUND], [SDLHMILevel FULL]] copy]; - testStruct.userDisallowed = [@[[SDLHMILevel NONE], [SDLHMILevel LIMITED]] copy]; + testStruct.allowed = [@[SDLHMILevelBackground, SDLHMILevelFull] copy]; + testStruct.userDisallowed = [@[SDLHMILevelNone, SDLHMILevelLimited] copy]; - expect(testStruct.allowed).to(equal([@[[SDLHMILevel BACKGROUND], [SDLHMILevel FULL]] copy])); - expect(testStruct.userDisallowed).to(equal([@[[SDLHMILevel NONE], [SDLHMILevel LIMITED]] copy])); + expect(testStruct.allowed).to(equal([@[SDLHMILevelBackground, SDLHMILevelFull] copy])); + expect(testStruct.userDisallowed).to(equal([@[SDLHMILevelNone, SDLHMILevelLimited] copy])); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_allowed:[@[[SDLHMILevel BACKGROUND], [SDLHMILevel FULL]] copy], - NAMES_userDisallowed:[@[[SDLHMILevel NONE], [SDLHMILevel LIMITED]] copy]} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameAllowed:[@[SDLHMILevelBackground, SDLHMILevelFull] copy], + SDLNameUserDisallowed:[@[SDLHMILevelNone, SDLHMILevelLimited] copy]} mutableCopy]; SDLParameterPermissions* testStruct = [[SDLParameterPermissions alloc] initWithDictionary:dict]; - expect(testStruct.allowed).to(equal([@[[SDLHMILevel BACKGROUND], [SDLHMILevel FULL]] copy])); - expect(testStruct.userDisallowed).to(equal([@[[SDLHMILevel NONE], [SDLHMILevel LIMITED]] copy])); + expect(testStruct.allowed).to(equal([@[SDLHMILevelBackground, SDLHMILevelFull] copy])); + expect(testStruct.userDisallowed).to(equal([@[SDLHMILevelNone, SDLHMILevelLimited] copy])); }); it(@"Should return nil if not set", ^ { @@ -42,4 +42,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPermissionItemSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPermissionItemSpec.m index 0e5b367d1..4ff0ce5e5 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPermissionItemSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPermissionItemSpec.m @@ -32,9 +32,9 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_rpcName:@"RPCNameThing", - NAMES_hmiPermissions:hmiPermissions, - NAMES_parameterPermissions:parameterPermissions} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameRPCName:@"RPCNameThing", + SDLNameHMIPermissions:hmiPermissions, + SDLNameParameterPermissions:parameterPermissions} mutableCopy]; SDLPermissionItem* testStruct = [[SDLPermissionItem alloc] initWithDictionary:dict]; expect(testStruct.rpcName).to(equal(@"RPCNameThing")); @@ -51,4 +51,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPhoneCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPhoneCapabilitySpec.m index 141c17a76..af01dae52 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPhoneCapabilitySpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPhoneCapabilitySpec.m @@ -20,8 +20,8 @@ describe(@"Initialization tests", ^{ it(@"Should get correctly when initialized with a dictionary", ^ { - NSMutableDictionary* dict = [@{NAMES_dialNumberEnabled: @(YES)} mutableCopy]; - SDLPhoneCapability* testStruct = [[SDLPhoneCapability alloc] initWithDictionary:dict]; + NSDictionary *dict = @{SDLNameDialNumberEnabled: @(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 f473c60b6..8bab3c147 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPresetBankCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPresetBankCapabilitiesSpec.m @@ -23,7 +23,7 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_onScreenPresetsAvailable:@YES} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameOnScreenPresetsAvailable:@YES} mutableCopy]; SDLPresetBankCapabilities* testStruct = [[SDLPresetBankCapabilities alloc] initWithDictionary:dict]; expect(testStruct.onScreenPresetsAvailable).to(equal(@YES)); @@ -36,4 +36,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRDSDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRDSDataSpec.m new file mode 100644 index 000000000..414aaa22c --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRDSDataSpec.m @@ -0,0 +1,89 @@ +// +// SDLRDSDataSpec.m +// SmartDeviceLink-iOS +// + +#import + +#import +#import + +#import "SDLRDSData.h" +#import "SDLNames.h" + +QuickSpecBegin(SDLRDSDataSpec) + +describe(@"Initialization tests", ^{ + + it(@"should properly initialize init", ^{ + SDLRDSData* testStruct = [[SDLRDSData alloc] init]; + + expect(testStruct.programService).to(beNil()); + expect(testStruct.radioText).to(beNil()); + expect(testStruct.clockText).to(beNil()); + expect(testStruct.programIdentification).to(beNil()); + expect(testStruct.programType).to(beNil()); + expect(testStruct.trafficProgramIdentification).to(beNil()); + expect(testStruct.trafficAnnouncementIdentification).to(beNil()); + expect(testStruct.region).to(beNil()); + }); + + 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]; + SDLRDSData* testStruct = [[SDLRDSData alloc] initWithDictionary:dict]; + + expect(testStruct.programService).to(equal(@"ps")); + expect(testStruct.radioText).to(equal(@"rt")); + expect(testStruct.clockText).to(equal(@"2017-07-25T19:20:30-5:00")); + expect(testStruct.programIdentification).to(equal(@"pi")); + expect(testStruct.programType).to(equal(@5)); + expect(testStruct.trafficProgramIdentification).to(equal(@NO)); + expect(testStruct.trafficAnnouncementIdentification).to(equal(@YES)); + expect(testStruct.region).to(equal(@"reg")); + }); + + it(@"Should set and get correctly", ^{ + SDLRDSData* testStruct = [[SDLRDSData alloc] init]; + + testStruct.programService = @"ps"; + testStruct.radioText = @"rt"; + testStruct.clockText = @"2017-07-25T19:20:30-5:00"; + testStruct.programIdentification = @"pi"; + testStruct.programType = @5; + testStruct.trafficProgramIdentification = @NO; + testStruct.trafficAnnouncementIdentification = @YES; + testStruct.region = @"reg"; + + expect(testStruct.programService).to(equal(@"ps")); + expect(testStruct.radioText).to(equal(@"rt")); + expect(testStruct.clockText).to(equal(@"2017-07-25T19:20:30-5:00")); + expect(testStruct.programIdentification).to(equal(@"pi")); + expect(testStruct.programType).to(equal(@5)); + expect(testStruct.trafficProgramIdentification).to(equal(@NO)); + expect(testStruct.trafficAnnouncementIdentification).to(equal(@YES)); + expect(testStruct.region).to(equal(@"reg")); + }); + + it(@"Should get correctly when initialized with Program serive and other RDS parameters", ^ { + SDLRDSData* testStruct = [[SDLRDSData alloc] initWithProgramService:@"ps" radioText:@"rt" clockText:@"2017-07-25T19:20:30-5:00" programIdentification:@"pi" programType:@5 trafficProgramIdentification:@NO trafficAnnouncementIdentification:@YES region:@"reg"]; + + expect(testStruct.programService).to(equal(@"ps")); + expect(testStruct.radioText).to(equal(@"rt")); + expect(testStruct.clockText).to(equal(@"2017-07-25T19:20:30-5:00")); + expect(testStruct.programIdentification).to(equal(@"pi")); + expect(testStruct.programType).to(equal(@5)); + expect(testStruct.trafficProgramIdentification).to(equal(@NO)); + expect(testStruct.trafficAnnouncementIdentification).to(equal(@YES)); + expect(testStruct.region).to(equal(@"reg")); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlCapabilitiesSpec.m new file mode 100644 index 000000000..d6e07fe11 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlCapabilitiesSpec.m @@ -0,0 +1,101 @@ +// +// SDLRadioControlCapabilitiesSpec.m +// SmartDeviceLink-iOS +// + +#import + +#import +#import + +#import "SDLRadioControlCapabilities.h" +#import "SDLNames.h" + +QuickSpecBegin(SDLRadioControlCapabilitiesSpec) + +describe(@"Initialization tests", ^{ + + it(@"should properly initialize init", ^{ + SDLRadioControlCapabilities* testStruct = [[SDLRadioControlCapabilities alloc] init]; + + expect(testStruct.moduleName).to(beNil()); + expect(testStruct.radioEnableAvailable).to(beNil()); + expect(testStruct.radioBandAvailable).to(beNil()); + expect(testStruct.radioFrequencyAvailable).to(beNil()); + expect(testStruct.hdChannelAvailable).to(beNil()); + expect(testStruct.rdsDataAvailable).to(beNil()); + expect(testStruct.availableHDsAvailable).to(beNil()); + expect(testStruct.stateAvailable).to(beNil()); + expect(testStruct.signalStrengthAvailable).to(beNil()); + expect(testStruct.signalChangeThresholdAvailable).to(beNil()); + }); + + 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} mutableCopy]; + SDLRadioControlCapabilities* testStruct = [[SDLRadioControlCapabilities alloc] initWithDictionary:dict]; + + expect(testStruct.moduleName).to(equal(@"someName")); + expect(testStruct.radioEnableAvailable).to(equal(@YES)); + expect(testStruct.radioBandAvailable).to(equal(@YES)); + expect(testStruct.radioFrequencyAvailable).to(equal(@YES)); + expect(testStruct.hdChannelAvailable).to(equal(@NO)); + expect(testStruct.rdsDataAvailable).to(equal(@NO)); + expect(testStruct.availableHDsAvailable).to(equal(@NO)); + expect(testStruct.stateAvailable).to(equal(@YES)); + expect(testStruct.signalStrengthAvailable).to(equal(@YES)); + expect(testStruct.signalChangeThresholdAvailable).to(equal(@NO)); + }); + + it(@"Should set and get correctly", ^{ + SDLRadioControlCapabilities* testStruct = [[SDLRadioControlCapabilities alloc] init]; + + testStruct.moduleName = @"someName"; + testStruct.radioEnableAvailable = @YES; + testStruct.radioBandAvailable = @YES; + testStruct.radioFrequencyAvailable = @YES; + testStruct.hdChannelAvailable = @NO; + testStruct.rdsDataAvailable = @NO; + testStruct.availableHDsAvailable = @NO; + testStruct.stateAvailable = @YES; + testStruct.signalStrengthAvailable = @YES; + testStruct.signalChangeThresholdAvailable = @NO; + + expect(testStruct.moduleName).to(equal(@"someName")); + expect(testStruct.radioEnableAvailable).to(equal(@YES)); + expect(testStruct.radioBandAvailable).to(equal(@YES)); + expect(testStruct.radioFrequencyAvailable).to(equal(@YES)); + expect(testStruct.hdChannelAvailable).to(equal(@NO)); + expect(testStruct.rdsDataAvailable).to(equal(@NO)); + expect(testStruct.availableHDsAvailable).to(equal(@NO)); + expect(testStruct.stateAvailable).to(equal(@YES)); + expect(testStruct.signalStrengthAvailable).to(equal(@YES)); + expect(testStruct.signalChangeThresholdAvailable).to(equal(@NO)); + }); + + it(@"Should get correctly when initialized with Module Name and other radio control capabilite's parameters", ^ { + SDLRadioControlCapabilities* testStruct = [[SDLRadioControlCapabilities alloc] initWithModuleName:@"someName" radioEnableAvailable:YES radioBandAvailable:NO radioFrequencyAvailable:YES hdChannelAvailable:NO rdsDataAvailable:NO availableHDsAvailable:NO stateAvailable:YES signalStrengthAvailable:YES signalChangeThresholdAvailable:NO]; + + expect(testStruct.moduleName).to(equal(@"someName")); + expect(testStruct.radioEnableAvailable).to(equal(@YES)); + expect(testStruct.radioBandAvailable).to(equal(@NO)); + expect(testStruct.radioFrequencyAvailable).to(equal(@YES)); + expect(testStruct.hdChannelAvailable).to(equal(@NO)); + expect(testStruct.rdsDataAvailable).to(equal(@NO)); + expect(testStruct.availableHDsAvailable).to(equal(@NO)); + expect(testStruct.stateAvailable).to(equal(@YES)); + expect(testStruct.signalStrengthAvailable).to(equal(@YES)); + expect(testStruct.signalChangeThresholdAvailable).to(equal(@NO)); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlDataSpec.m new file mode 100644 index 000000000..4a5ebee64 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlDataSpec.m @@ -0,0 +1,99 @@ +// +// SDLRadioControlDataSpec.m +// SmartDeviceLink-iOS +// + +#import + +#import +#import + +#import "SDLRadioControlData.h" +#import "SDLRadioBand.h" +#import "SDLRadioState.h" +#import "SDLRDSData.h" +#import "SDLNames.h" + +QuickSpecBegin(SDLRadioControlDataSpec) +__block SDLRDSData* someRdsData = [[SDLRDSData alloc] init]; + +describe(@"Initialization tests", ^{ + + it(@"should properly initialize init", ^{ + SDLRadioControlData* testStruct = [[SDLRadioControlData alloc] init]; + + expect(testStruct.frequencyInteger).to(beNil()); + expect(testStruct.frequencyFraction).to(beNil()); + expect(testStruct.band).to(beNil()); + expect(testStruct.rdsData).to(beNil()); + expect(testStruct.availableHDs).to(beNil()); + expect(testStruct.hdChannel).to(beNil()); + expect(testStruct.signalStrength).to(beNil()); + expect(testStruct.signalChangeThreshold).to(beNil()); + expect(testStruct.radioEnable).to(beNil()); + expect(testStruct.state).to(beNil()); + }); + + 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} mutableCopy]; + SDLRadioControlData* testStruct = [[SDLRadioControlData alloc] initWithDictionary:dict]; + + expect(testStruct.frequencyInteger).to(equal(@101)); + expect(testStruct.frequencyFraction).to(equal(@7)); + expect(testStruct.band).to(equal(SDLRadioBandAM)); + expect(testStruct.rdsData).to(equal(someRdsData)); + expect(testStruct.availableHDs).to(equal(@2)); + expect(testStruct.hdChannel).to(equal(@2)); + expect(testStruct.signalStrength).to(equal(@54)); + expect(testStruct.signalChangeThreshold).to(equal(@76)); + expect(testStruct.radioEnable).to(equal(@YES)); + expect(testStruct.state).to(equal(SDLRadioStateNotFound)); + }); + + it(@"Should set and get correctly", ^{ + SDLRadioControlData* testStruct = [[SDLRadioControlData alloc] init]; + testStruct.frequencyInteger = @101; + testStruct.frequencyFraction = @7; + testStruct.band = SDLRadioBandAM; + testStruct.rdsData = someRdsData; + testStruct.availableHDs = @2; + testStruct.hdChannel = @2; + testStruct.signalStrength = @54; + testStruct.signalChangeThreshold = @76; + testStruct.radioEnable = @YES; + testStruct.state = SDLRadioStateNotFound; + + expect(testStruct.frequencyInteger).to(equal(@101)); + expect(testStruct.frequencyFraction).to(equal(@7)); + expect(testStruct.band).to(equal(SDLRadioBandAM)); + expect(testStruct.rdsData).to(equal(someRdsData)); + expect(testStruct.availableHDs).to(equal(@2)); + expect(testStruct.hdChannel).to(equal(@2)); + expect(testStruct.signalStrength).to(equal(@54)); + expect(testStruct.signalChangeThreshold).to(equal(@76)); + expect(testStruct.radioEnable).to(equal(@YES)); + expect(testStruct.state).to(equal(SDLRadioStateNotFound)); + }); + + it(@"Should get correctly when initialized with Module Name and other radio control capabilite's parameters", ^ { + SDLRadioControlData* testStruct = [[SDLRadioControlData alloc] initWithFrequencyInteger:@101 frequencyFraction:@7 band:SDLRadioBandAM hdChannel:@2 radioEnable:@YES]; + + expect(testStruct.frequencyInteger).to(equal(@101)); + expect(testStruct.frequencyFraction).to(equal(@7)); + expect(testStruct.band).to(equal(SDLRadioBandAM)); + expect(testStruct.hdChannel).to(equal(@2)); + expect(testStruct.radioEnable).to(equal(@YES)); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRectangleSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRectangleSpec.m index ae4ee0791..59749135d 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRectangleSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRectangleSpec.m @@ -1,3 +1,5 @@ +#import + #import #import @@ -6,49 +8,51 @@ QuickSpecBegin(SDLRectangleSpec) -it(@"Should set and get correctly", ^{ - SDLRectangle *testStruct = [[SDLRectangle alloc] init]; - - testStruct.x = @10; - testStruct.y = @100; - testStruct.width = @1000; - testStruct.height = @2000; - - expect(testStruct.x).to(equal(@10)); - expect(testStruct.y).to(equal(@100)); - expect(testStruct.width).to(equal(@1000)); - expect(testStruct.height).to(equal(@2000)); -}); - -it(@"Should get correctly when initialized with parameters", ^{ - SDLRectangle *testStruct = [[SDLRectangle alloc] initWithX:@50.5 y:@60.2 width:@500 height:@600]; - - expect(testStruct.x).to(beCloseTo(@50.5)); - expect(testStruct.y).to(beCloseTo(@60.2)); - expect(testStruct.width).to(equal(@500.0)); - expect(testStruct.height).to(equal(@600.0)); -}); - -it(@"Should get correctly when initialized with a dict", ^{ - NSDictionary *dict = @{NAMES_x:@20, - NAMES_y:@200, - NAMES_width:@2000, - NAMES_height:@3000}; - SDLRectangle *testStruct = [[SDLRectangle alloc] initWithDictionary:[dict mutableCopy]]; - - expect(testStruct.x).to(equal(@20)); - expect(testStruct.y).to(equal(@200)); - expect(testStruct.width).to(equal(@2000)); - expect(testStruct.height).to(equal(@3000)); -}); - -it(@"Should return nil if not set", ^{ - SDLRectangle *testStruct = [[SDLRectangle alloc] init]; - - expect(testStruct.x).to(beNil()); - expect(testStruct.y).to(beNil()); - expect(testStruct.width).to(beNil()); - expect(testStruct.height).to(beNil()); +describe(@"Getter/Setter Tests", ^{ + it(@"Should set and get correctly", ^{ + SDLRectangle *testStruct = [[SDLRectangle alloc] init]; + + testStruct.x = @10; + testStruct.y = @100; + testStruct.width = @1000; + testStruct.height = @2000; + + expect(testStruct.x).to(equal(@10)); + expect(testStruct.y).to(equal(@100)); + expect(testStruct.width).to(equal(@1000)); + expect(testStruct.height).to(equal(@2000)); + }); + + it(@"Should get correctly when initialized with parameters", ^{ + SDLRectangle *testStruct = [[SDLRectangle alloc] initWithX:50.5 y:60.2 width:500 height:600]; + + expect(testStruct.x).to(beCloseTo(@50.5)); + expect(testStruct.y).to(beCloseTo(@60.2)); + expect(testStruct.width).to(equal(@500.0)); + expect(testStruct.height).to(equal(@600.0)); + }); + + it(@"Should get correctly when initialized with a dict", ^{ + NSDictionary *dict = @{SDLNameX:@20, + SDLNameY:@200, + SDLNameWidth:@2000, + SDLNameHeight:@3000}; + SDLRectangle *testStruct = [[SDLRectangle alloc] initWithDictionary:dict]; + + expect(testStruct.x).to(equal(@20)); + expect(testStruct.y).to(equal(@200)); + expect(testStruct.width).to(equal(@2000)); + expect(testStruct.height).to(equal(@3000)); + }); + + it(@"Should return nil if not set", ^{ + SDLRectangle *testStruct = [[SDLRectangle alloc] init]; + + expect(testStruct.x).to(beNil()); + expect(testStruct.y).to(beNil()); + expect(testStruct.width).to(beNil()); + expect(testStruct.height).to(beNil()); + }); }); QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRemoteControlCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRemoteControlCapabilitiesSpec.m new file mode 100644 index 000000000..0dc04323a --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRemoteControlCapabilitiesSpec.m @@ -0,0 +1,66 @@ +// +// SDLRemoteControlCapabilitiesSpec.m +// SmartDeviceLink-iOS +// + +#import + +#import +#import + +#import "SDLRemoteControlCapabilities.h" +#import "SDLClimateControlCapabilities.h" +#import "SDLRadioControlCapabilities.h" +#import "SDLButtonCapabilities.h" +#import "SDLNames.h" + +QuickSpecBegin(SDLRemoteControlCapabilitiesSpec) + +__block SDLClimateControlCapabilities* someClimateControlCapabilities = [[SDLClimateControlCapabilities alloc] init]; +__block SDLRadioControlCapabilities* someRadioControlCapabilities = [[SDLRadioControlCapabilities alloc] init]; +__block SDLButtonCapabilities* someButtonControlCapabilities = [[SDLButtonCapabilities alloc] init]; + + +describe(@"Initialization tests", ^{ + it(@"should properly initialize init", ^{ + SDLRemoteControlCapabilities* testStruct = [[SDLRemoteControlCapabilities alloc] init]; + + expect(testStruct.climateControlCapabilities).to(beNil()); + expect(testStruct.radioControlCapabilities).to(beNil()); + expect(testStruct.buttonCapabilities).to(beNil()); + }); + + it(@"should properly initialize initWithDictionary", ^{ + + NSMutableDictionary* dict = [@{SDLNameClimateControlCapabilities : [@[someClimateControlCapabilities] copy], + SDLNameRadioControlCapabilities :[@[someRadioControlCapabilities] copy], + SDLNameButtonCapabilities :[@[someButtonControlCapabilities] copy] } mutableCopy]; + SDLRemoteControlCapabilities* testStruct = [[SDLRemoteControlCapabilities alloc] initWithDictionary:dict]; + + expect(testStruct.climateControlCapabilities).to(equal([@[someClimateControlCapabilities] copy])); + expect(testStruct.radioControlCapabilities).to(equal([@[someRadioControlCapabilities] copy])); + expect(testStruct.buttonCapabilities).to(equal([@[someButtonControlCapabilities] copy])); + }); + + it(@"Should set and get correctly", ^{ + SDLRemoteControlCapabilities* testStruct = [[SDLRemoteControlCapabilities alloc] init]; + + testStruct.climateControlCapabilities = ([@[someClimateControlCapabilities] copy]); + testStruct.radioControlCapabilities = [@[someRadioControlCapabilities] copy]; + testStruct.buttonCapabilities = [@[someButtonControlCapabilities] copy]; + + expect(testStruct.climateControlCapabilities).to(equal(([@[someClimateControlCapabilities] copy]))); + expect(testStruct.radioControlCapabilities).to(equal([@[someRadioControlCapabilities] copy])); + expect(testStruct.buttonCapabilities).to(equal([@[someButtonControlCapabilities] copy])); + }); + + it(@"Should get correctly when initialized with climateControlCapabilities and other RemoteControlCapabilities parameters", ^ { + SDLRemoteControlCapabilities* testStruct = [[SDLRemoteControlCapabilities alloc] initWithClimateControlCapabilities:[@[someClimateControlCapabilities] copy] radioControlCapabilities:[@[someRadioControlCapabilities] copy] buttonCapabilities:[@[someButtonControlCapabilities] copy]]; + + expect(testStruct.climateControlCapabilities).to(equal(([@[someClimateControlCapabilities] copy]))); + expect(testStruct.radioControlCapabilities).to(equal([@[someRadioControlCapabilities] copy])); + expect(testStruct.buttonCapabilities).to(equal([@[someButtonControlCapabilities] copy])); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLScreenParamsSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLScreenParamsSpec.m index 0438b8a21..6c574d040 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLScreenParamsSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLScreenParamsSpec.m @@ -31,8 +31,8 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_resolution:resolution, - NAMES_touchEventAvailable:capabilities} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameResolution:resolution, + SDLNameTouchEventAvailable:capabilities} mutableCopy]; SDLScreenParams* testStruct = [[SDLScreenParams alloc] initWithDictionary:dict]; expect(testStruct.resolution).to(equal(resolution)); @@ -47,4 +47,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSingleTireStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSingleTireStatusSpec.m index 6482a4f75..69c0d347d 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSingleTireStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSingleTireStatusSpec.m @@ -18,16 +18,16 @@ it(@"Should set and get correctly", ^ { SDLSingleTireStatus* testStruct = [[SDLSingleTireStatus alloc] init]; - testStruct.status = [SDLComponentVolumeStatus NORMAL]; + testStruct.status = SDLComponentVolumeStatusNormal; - expect(testStruct.status).to(equal([SDLComponentVolumeStatus NORMAL])); + expect(testStruct.status).to(equal(SDLComponentVolumeStatusNormal)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_status:[SDLComponentVolumeStatus LOW]} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameStatus:SDLComponentVolumeStatusLow} mutableCopy]; SDLSingleTireStatus* testStruct = [[SDLSingleTireStatus alloc] initWithDictionary:dict]; - expect(testStruct.status).to(equal([SDLComponentVolumeStatus LOW])); + expect(testStruct.status).to(equal(SDLComponentVolumeStatusLow)); }); it(@"Should return nil if not set", ^ { @@ -37,4 +37,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSoftButtonCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSoftButtonCapabilitiesSpec.m index 0cb200414..4000f2764 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSoftButtonCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSoftButtonCapabilitiesSpec.m @@ -29,10 +29,10 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_shortPressAvailable:@NO, - NAMES_longPressAvailable:@YES, - NAMES_upDownAvailable:@NO, - NAMES_imageSupported:@NO} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameShortPressAvailable:@NO, + SDLNameLongPressAvailable:@YES, + SDLNameUpDownAvailable:@NO, + SDLNameImageSupported:@NO} mutableCopy]; SDLSoftButtonCapabilities* testStruct = [[SDLSoftButtonCapabilities alloc] initWithDictionary:dict]; expect(testStruct.shortPressAvailable).to(equal(@NO)); @@ -51,4 +51,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSoftButtonSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSoftButtonSpec.m index c9e766a65..df938b7dc 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSoftButtonSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSoftButtonSpec.m @@ -23,36 +23,36 @@ it(@"Should set and get correctly", ^ { SDLSoftButton* testStruct = [[SDLSoftButton alloc] init]; - testStruct.type = [SDLSoftButtonType IMAGE]; + testStruct.type = SDLSoftButtonTypeImage; testStruct.text = @"Button"; testStruct.image = image; testStruct.isHighlighted = @YES; testStruct.softButtonID = @5423; - testStruct.systemAction = [SDLSystemAction KEEP_CONTEXT]; + testStruct.systemAction = SDLSystemActionKeepContext; - expect(testStruct.type).to(equal([SDLSoftButtonType IMAGE])); + expect(testStruct.type).to(equal(SDLSoftButtonTypeImage)); expect(testStruct.text).to(equal(@"Button")); expect(testStruct.image).to(equal(image)); expect(testStruct.isHighlighted).to(equal(@YES)); expect(testStruct.softButtonID).to(equal(@5423)); - expect(testStruct.systemAction).to(equal([SDLSystemAction KEEP_CONTEXT])); + expect(testStruct.systemAction).to(equal(SDLSystemActionKeepContext)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_type:[SDLSoftButtonType IMAGE], - NAMES_text:@"Button", - NAMES_image:image, - NAMES_isHighlighted:@YES, - NAMES_softButtonID:@5423, - NAMES_systemAction:[SDLSystemAction KEEP_CONTEXT]} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameType:SDLSoftButtonTypeImage, + SDLNameText:@"Button", + SDLNameImage:image, + SDLNameIsHighlighted:@YES, + SDLNameSoftButtonId:@5423, + SDLNameSystemAction:SDLSystemActionKeepContext} mutableCopy]; SDLSoftButton* testStruct = [[SDLSoftButton alloc] initWithDictionary:dict]; - expect(testStruct.type).to(equal([SDLSoftButtonType IMAGE])); + expect(testStruct.type).to(equal(SDLSoftButtonTypeImage)); expect(testStruct.text).to(equal(@"Button")); expect(testStruct.image).to(equal(image)); expect(testStruct.isHighlighted).to(equal(@YES)); expect(testStruct.softButtonID).to(equal(@5423)); - expect(testStruct.systemAction).to(equal([SDLSystemAction KEEP_CONTEXT])); + expect(testStruct.systemAction).to(equal(SDLSystemActionKeepContext)); }); it(@"Should return nil if not set", ^ { @@ -67,4 +67,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLStartTimeSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLStartTimeSpec.m index 476fc6500..4de9c43f4 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLStartTimeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLStartTimeSpec.m @@ -27,9 +27,9 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_hours:@22, - NAMES_minutes:@39, - NAMES_seconds:@11} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameHours:@22, + SDLNameMinutes:@39, + SDLNameSeconds:@11} mutableCopy]; SDLStartTime* testStruct = [[SDLStartTime alloc] initWithDictionary:dict]; expect(testStruct.hours).to(equal(@22)); @@ -46,4 +46,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSyncMsgVersionSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSyncMsgVersionSpec.m index 180a52842..598f04d2e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSyncMsgVersionSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSyncMsgVersionSpec.m @@ -16,30 +16,30 @@ describe(@"Getter/Setter Tests", ^ { it(@"Should set and get correctly", ^ { SDLSyncMsgVersion* testStruct = [[SDLSyncMsgVersion alloc] init]; - + testStruct.majorVersion = @4; testStruct.minorVersion = @532; testStruct.patchVersion = @12; - + expect(testStruct.majorVersion).to(equal(@4)); expect(testStruct.minorVersion).to(equal(@532)); expect(testStruct.patchVersion).to(equal(@12)); }); - + it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_majorVersion:@4, - NAMES_minorVersion:@532, - NAMES_patchVersion:@12} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameMajorVersion:@4, + SDLNameMinorVersion:@532, + SDLNamePatchVersion:@12} mutableCopy]; SDLSyncMsgVersion* testStruct = [[SDLSyncMsgVersion alloc] initWithDictionary:dict]; - + expect(testStruct.majorVersion).to(equal(@4)); expect(testStruct.minorVersion).to(equal(@532)); expect(testStruct.patchVersion).to(equal(@12)); }); - + it(@"Should return nil if not set", ^ { SDLSyncMsgVersion* testStruct = [[SDLSyncMsgVersion alloc] init]; - + expect(testStruct.majorVersion).to(beNil()); expect(testStruct.minorVersion).to(beNil()); expect(testStruct.patchVersion).to(beNil()); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m old mode 100644 new mode 100755 index ed50ce71d..abfd13afb --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m @@ -9,6 +9,8 @@ #import "SDLNavigationCapability.h" #import "SDLPhoneCapability.h" #import "SDLSystemCapabilityType.h" +#import "SDLRemoteControlCapabilities.h" +#import "SDLNames.h" #import "SDLVideoStreamingCapability.h" #import "SDLVideoStreamingCodec.h" #import "SDLVideoStreamingFormat.h" @@ -18,38 +20,43 @@ QuickSpecBegin(SDLSystemCapabilitySpec) +SDLRemoteControlCapabilities *someRemoteControlCapabilities = [[SDLRemoteControlCapabilities alloc] init]; describe(@"Getter/Setter Tests", ^ { it(@"Should set and get correctly", ^ { SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] init]; - testStruct.systemCapabilityType = [SDLSystemCapabilityType NAVIGATION]; + testStruct.systemCapabilityType = SDLSystemCapabilityTypeNavigation; testStruct.navigationCapability = [[SDLNavigationCapability alloc] initWithSendLocation:YES waypoints:NO]; testStruct.phoneCapability = [[SDLPhoneCapability alloc] initWithDialNumber:YES]; + testStruct.remoteControlCapability = someRemoteControlCapabilities; - expect(testStruct.systemCapabilityType).to(equal([SDLSystemCapabilityType NAVIGATION])); + 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 = [SDLSystemCapabilityType VIDEO_STREAMING]; + testStruct.systemCapabilityType = SDLSystemCapabilityTypeVideoStreaming; - expect(testStruct.systemCapabilityType).to(equal([SDLSystemCapabilityType VIDEO_STREAMING])); + expect(testStruct.systemCapabilityType).to(equal(SDLSystemCapabilityTypeVideoStreaming)); + expect(testStruct.remoteControlCapability).to(equal(someRemoteControlCapabilities)); }); }); describe(@"Initialization tests", ^{ it(@"Should get correctly when initialized with a dictionary", ^ { - NSMutableDictionary* dict = [@{NAMES_systemCapabilityType: @"NAVIGATION", - NAMES_navigationCapability: @{NAMES_getWayPointsEnabled: @(NO), - NAMES_sendLocationEnabled: @(YES)}, - NAMES_phoneCapability: @{NAMES_dialNumberEnabled: @(YES)}} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameSystemCapabilityType: @"NAVIGATION", + SDLNameNavigationCapability: @{SDLNameGetWayPointsEnabled: @(NO), + SDLNameSendLocationEnabled: @(YES)}, + SDLNamePhoneCapability: @{SDLNameDialNumberEnabled: @(YES)}, + SDLNameRemoteControlCapability: someRemoteControlCapabilities} mutableCopy]; SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] initWithDictionary:dict]; - expect(testStruct.systemCapabilityType).to(equal([SDLSystemCapabilityType NAVIGATION])); + 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)); }); it(@"Should return nil if not set", ^ { @@ -59,27 +66,31 @@ 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 initWithPhoneCapability:", ^{ SDLPhoneCapability *testPhoneStruct = [[SDLPhoneCapability alloc] initWithDialNumber:YES]; SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] initWithPhoneCapability:testPhoneStruct]; - expect(testStruct.systemCapabilityType).to(equal([SDLSystemCapabilityType PHONE_CALL])); + expect(testStruct.systemCapabilityType).to(equal(SDLSystemCapabilityTypePhoneCall)); expect(testStruct.phoneCapability.dialNumberEnabled).to(equal(YES)); expect(testStruct.navigationCapability).to(beNil()); expect(testStruct.videoStreamingCapability).to(beNil()); + expect(testStruct.remoteControlCapability).to(beNil()); }); it(@"should initialize correctly with initWithNavigationCapability:", ^{ SDLNavigationCapability *testNavStruct = [[SDLNavigationCapability alloc] initWithSendLocation:YES waypoints:YES]; SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] initWithNavigationCapability:testNavStruct]; - expect(testStruct.systemCapabilityType).to(equal([SDLSystemCapabilityType NAVIGATION])); + expect(testStruct.systemCapabilityType).to(equal(SDLSystemCapabilityTypeNavigation)); expect(testStruct.navigationCapability.sendLocationEnabled).to(equal(YES)); expect(testStruct.navigationCapability.getWayPointsEnabled).to(equal(YES)); expect(testStruct.phoneCapability).to(beNil()); expect(testStruct.videoStreamingCapability).to(beNil()); + expect(testStruct.remoteControlCapability).to(beNil()); }); it(@"should initialize correctly with initWithVideoStreamingCapability:", ^{ @@ -87,28 +98,38 @@ resolution.resolutionWidth = @600; resolution.resolutionHeight = @500; - NSNumber *maxBitrate = @100; + int32_t maxBitrate = 100; NSNumber *hapticDataSupported = @YES; SDLVideoStreamingFormat *format1 = [[SDLVideoStreamingFormat alloc] init]; - format1.codec = [SDLVideoStreamingCodec H264]; - format1.protocol = [SDLVideoStreamingProtocol RTP]; + format1.codec = SDLVideoStreamingCodecH264; + format1.protocol = SDLVideoStreamingProtocolRAW; SDLVideoStreamingFormat *format2 = [[SDLVideoStreamingFormat alloc] init]; - format2.codec = [SDLVideoStreamingCodec H265]; - format2.protocol = [SDLVideoStreamingProtocol RTSP]; + format2.codec = SDLVideoStreamingCodecH265; + format2.protocol = SDLVideoStreamingProtocolRTP; NSArray *formatArray = @[format1, format2]; - SDLVideoStreamingCapability *testVidStruct = [[SDLVideoStreamingCapability alloc] initWithVideoStreaming:resolution maxBitrate:maxBitrate supportedFormats:formatArray hapticDataSupported:hapticDataSupported]; + SDLVideoStreamingCapability *testVidStruct = [[SDLVideoStreamingCapability alloc] initWithPreferredResolution:resolution maxBitrate:maxBitrate supportedFormats:formatArray hapticDataSupported:hapticDataSupported]; SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] initWithVideoStreamingCapability:testVidStruct]; - expect(testStruct.systemCapabilityType).to(equal([SDLSystemCapabilityType VIDEO_STREAMING])); + expect(testStruct.systemCapabilityType).to(equal(SDLSystemCapabilityTypeVideoStreaming)); expect(testStruct.navigationCapability.sendLocationEnabled).to(beNil()); expect(testStruct.navigationCapability.getWayPointsEnabled).to(beNil()); expect(testStruct.phoneCapability).to(beNil()); - + + }); + + it(@"should initialize correctly with initWithRemoteControlCapability:", ^{ + SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] initWithRemoteControlCapability:someRemoteControlCapabilities]; + + expect(testStruct.systemCapabilityType).to(equal(SDLSystemCapabilityTypeRemoteControl)); + expect(testStruct.navigationCapability).to(beNil()); + expect(testStruct.phoneCapability).to(beNil()); + expect(testStruct.remoteControlCapability).to(equal(someRemoteControlCapabilities)); }); }); + QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTTSChunkSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTTSChunkSpec.m index 78ca915c9..52fef2d53 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTTSChunkSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTTSChunkSpec.m @@ -20,19 +20,19 @@ SDLTTSChunk* testStruct = [[SDLTTSChunk alloc] init]; testStruct.text = @"TEXT"; - testStruct.type = [SDLSpeechCapabilities PRE_RECORDED]; + testStruct.type = SDLSpeechCapabilitiesPrerecorded; expect(testStruct.text).to(equal(@"TEXT")); - expect(testStruct.type).to(equal([SDLSpeechCapabilities PRE_RECORDED])); + expect(testStruct.type).to(equal(SDLSpeechCapabilitiesPrerecorded)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_text:@"TEXT", - NAMES_type:[SDLSpeechCapabilities PRE_RECORDED]} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameText:@"TEXT", + SDLNameType:SDLSpeechCapabilitiesPrerecorded} mutableCopy]; SDLTTSChunk* testStruct = [[SDLTTSChunk alloc] initWithDictionary:dict]; expect(testStruct.text).to(equal(@"TEXT")); - expect(testStruct.type).to(equal([SDLSpeechCapabilities PRE_RECORDED])); + expect(testStruct.type).to(equal(SDLSpeechCapabilitiesPrerecorded)); }); it(@"Should return nil if not set", ^ { @@ -43,4 +43,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTemperatureSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTemperatureSpec.m new file mode 100644 index 000000000..9151e0df5 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTemperatureSpec.m @@ -0,0 +1,54 @@ +// +// SDLTemperatureSpec.m +// SmartDeviceLink-iOS +// + +#import + +#import +#import + +#import "SDLTemperature.h" +#import "SDLTemperatureUnit.h" +#import "SDLNames.h" + +QuickSpecBegin(SDLTemperatureSpec) + +describe(@"Initialization tests", ^{ + + it(@"should properly initialize init", ^{ + SDLTemperature* testStruct = [[SDLTemperature alloc] init]; + + expect(testStruct.unit).to(beNil()); + expect(testStruct.value).to(beNil()); + }); + + it(@"should properly initialize initWithDictionary", ^{ + + NSMutableDictionary* dict = [@{SDLNameUnit : SDLTemperatureUnitCelsius , + SDLNameValue:@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", ^{ + SDLTemperature *testStruct = [[SDLTemperature alloc] initWithUnit:SDLTemperatureUnitCelsius value:30]; + + expect(testStruct.unit).to(equal(SDLTemperatureUnitCelsius)); + expect(testStruct.value).to(equal(@30)); + }); + + it(@"Should set and get correctly", ^{ + SDLTemperature* testStruct = [[SDLTemperature alloc] init]; + + testStruct.unit = SDLTemperatureUnitCelsius; + testStruct.value = @30; + + expect(testStruct.unit).to(equal(SDLTemperatureUnitCelsius)); + expect(testStruct.value).to(equal(@30)); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTextFieldSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTextFieldSpec.m index a07331a59..065945f48 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTextFieldSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTextFieldSpec.m @@ -20,26 +20,26 @@ it(@"Should set and get correctly", ^ { SDLTextField* testStruct = [[SDLTextField alloc] init]; - testStruct.name = [SDLTextFieldName tertiaryText]; - testStruct.characterSet = [SDLCharacterSet TYPE5SET]; + testStruct.name = SDLTextFieldNameTertiaryText; + testStruct.characterSet = SDLCharacterSetType5; testStruct.width = @111; testStruct.rows = @4; - expect(testStruct.name).to(equal([SDLTextFieldName tertiaryText])); - expect(testStruct.characterSet).to(equal([SDLCharacterSet TYPE5SET])); + expect(testStruct.name).to(equal(SDLTextFieldNameTertiaryText)); + expect(testStruct.characterSet).to(equal(SDLCharacterSetType5)); expect(testStruct.width).to(equal(@111)); expect(testStruct.rows).to(equal(@4)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_name:[SDLTextFieldName tertiaryText], - NAMES_characterSet:[SDLCharacterSet TYPE5SET], - NAMES_width:@111, - NAMES_rows:@4} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameName:SDLTextFieldNameTertiaryText, + SDLNameCharacterSet:SDLCharacterSetType5, + SDLNameWidth:@111, + SDLNameRows:@4} mutableCopy]; SDLTextField* testStruct = [[SDLTextField alloc] initWithDictionary:dict]; - expect(testStruct.name).to(equal([SDLTextFieldName tertiaryText])); - expect(testStruct.characterSet).to(equal([SDLCharacterSet TYPE5SET])); + expect(testStruct.name).to(equal(SDLTextFieldNameTertiaryText)); + expect(testStruct.characterSet).to(equal(SDLCharacterSetType5)); expect(testStruct.width).to(equal(@111)); expect(testStruct.rows).to(equal(@4)); }); @@ -54,4 +54,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTireStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTireStatusSpec.m index dcad4943d..ebe9eb7e3 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTireStatusSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTireStatusSpec.m @@ -26,7 +26,7 @@ it(@"Should set and get correctly", ^ { SDLTireStatus* testStruct = [[SDLTireStatus alloc] init]; - testStruct.pressureTelltale = [SDLWarningLightStatus OFF]; + testStruct.pressureTelltale = SDLWarningLightStatusOff; testStruct.leftFront = tire1; testStruct.rightFront = tire2; testStruct.leftRear = tire3; @@ -34,7 +34,7 @@ testStruct.innerLeftRear = tire5; testStruct.innerRightRear = tire6; - expect(testStruct.pressureTelltale).to(equal([SDLWarningLightStatus OFF])); + expect(testStruct.pressureTelltale).to(equal(SDLWarningLightStatusOff)); expect(testStruct.leftFront).to(equal(tire1)); expect(testStruct.rightFront).to(equal(tire2)); expect(testStruct.leftRear).to(equal(tire3)); @@ -44,16 +44,16 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_pressureTelltale:[SDLWarningLightStatus OFF], - NAMES_leftFront:tire1, - NAMES_rightFront:tire2, - NAMES_leftRear:tire3, - NAMES_rightRear:tire4, - NAMES_innerLeftRear:tire5, - NAMES_innerRightRear:tire6} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNamePressureTelltale:SDLWarningLightStatusOff, + SDLNameLeftFront:tire1, + SDLNameRightFront:tire2, + SDLNameLeftRear:tire3, + SDLNameRightRear:tire4, + SDLNameInnerLeftRear:tire5, + SDLNameInnerRightRear:tire6} mutableCopy]; SDLTireStatus* testStruct = [[SDLTireStatus alloc] initWithDictionary:dict]; - expect(testStruct.pressureTelltale).to(equal([SDLWarningLightStatus OFF])); + expect(testStruct.pressureTelltale).to(equal(SDLWarningLightStatusOff)); expect(testStruct.leftFront).to(equal(tire1)); expect(testStruct.rightFront).to(equal(tire2)); expect(testStruct.leftRear).to(equal(tire3)); @@ -75,4 +75,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchCoordSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchCoordSpec.m index eedca3a9b..bc9ab9495 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchCoordSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchCoordSpec.m @@ -25,8 +25,8 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_x:@67, - NAMES_y:@362} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameX:@67, + SDLNameY:@362} mutableCopy]; SDLTouchCoord* testStruct = [[SDLTouchCoord alloc] initWithDictionary:dict]; expect(testStruct.x).to(equal(@67)); @@ -41,4 +41,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchEventCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchEventCapabilitiesSpec.m index a8b8c73e0..6df769068 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchEventCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchEventCapabilitiesSpec.m @@ -27,9 +27,9 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_pressAvailable:@YES, - NAMES_multiTouchAvailable:@NO, - NAMES_doublePressAvailable:@NO} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNamePressAvailable:@YES, + SDLNameMultiTouchAvailable:@NO, + SDLNameDoublePressAvailable:@NO} mutableCopy]; SDLTouchEventCapabilities* testStruct = [[SDLTouchEventCapabilities alloc] initWithDictionary:dict]; expect(testStruct.pressAvailable).to(equal(@YES)); @@ -46,4 +46,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchEventSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchEventSpec.m index c95cfb525..0419916e5 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchEventSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchEventSpec.m @@ -30,9 +30,9 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_id:@3, - NAMES_ts:[@[@23, @52, @41345234] mutableCopy], - NAMES_c:[@[coord] mutableCopy]} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameId:@3, + SDLNameTimestamp:[@[@23, @52, @41345234] mutableCopy], + SDLNameCoordinate:[@[coord] mutableCopy]} mutableCopy]; SDLTouchEvent* testStruct = [[SDLTouchEvent alloc] initWithDictionary:dict]; expect(testStruct.touchEventId).to(equal(@3)); @@ -49,4 +49,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTurnSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTurnSpec.m index 07152ad92..c445da76e 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTurnSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTurnSpec.m @@ -28,8 +28,8 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_navigationText:@"NAVTEXT", - NAMES_turnIcon:image} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameNavigationText:@"NAVTEXT", + SDLNameTurnIcon:image} mutableCopy]; SDLTurn* testStruct = [[SDLTurn alloc] initWithDictionary:dict]; expect(testStruct.navigationText).to(equal(@"NAVTEXT")); @@ -44,4 +44,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleDataResultSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleDataResultSpec.m index ee3c4774a..fba4445bc 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleDataResultSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleDataResultSpec.m @@ -19,20 +19,20 @@ it(@"Should set and get correctly", ^ { SDLVehicleDataResult* testStruct = [[SDLVehicleDataResult alloc] init]; - testStruct.dataType = [SDLVehicleDataType VEHICLEDATA_AIRBAGSTATUS]; - testStruct.resultCode = [SDLVehicleDataResultCode DISALLOWED]; + testStruct.dataType = SDLVehicleDataTypeAirbagStatus; + testStruct.resultCode = SDLVehicleDataResultCodeDisallowed; - expect(testStruct.dataType).to(equal([SDLVehicleDataType VEHICLEDATA_AIRBAGSTATUS])); - expect(testStruct.resultCode).to(equal([SDLVehicleDataResultCode DISALLOWED])); + expect(testStruct.dataType).to(equal(SDLVehicleDataTypeAirbagStatus)); + expect(testStruct.resultCode).to(equal(SDLVehicleDataResultCodeDisallowed)); }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_dataType:[SDLVehicleDataType VEHICLEDATA_AIRBAGSTATUS], - NAMES_resultCode:[SDLVehicleDataResultCode DISALLOWED]} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameDataType:SDLVehicleDataTypeAirbagStatus, + SDLNameResultCode:SDLVehicleDataResultCodeDisallowed} mutableCopy]; SDLVehicleDataResult* testStruct = [[SDLVehicleDataResult alloc] initWithDictionary:dict]; - expect(testStruct.dataType).to(equal([SDLVehicleDataType VEHICLEDATA_AIRBAGSTATUS])); - expect(testStruct.resultCode).to(equal([SDLVehicleDataResultCode DISALLOWED])); + expect(testStruct.dataType).to(equal(SDLVehicleDataTypeAirbagStatus)); + expect(testStruct.resultCode).to(equal(SDLVehicleDataResultCodeDisallowed)); }); it(@"Should return nil if not set", ^ { @@ -43,4 +43,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleTypeSpec.m index 9a282b72e..eefc4618b 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleTypeSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleTypeSpec.m @@ -29,10 +29,10 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_make:@"Make", - NAMES_model:@"Model", - NAMES_modelYear:@"3.141*10^36", - NAMES_trim:@"AE"} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameMake:@"Make", + SDLNameModel:@"Model", + SDLNameModelYear:@"3.141*10^36", + SDLNameTrim:@"AE"} mutableCopy]; SDLVehicleType* testStruct = [[SDLVehicleType alloc] initWithDictionary:dict]; expect(testStruct.make).to(equal(@"Make")); @@ -51,4 +51,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingCapabilitySpec.m index fc7e7f0be..ce42ce9d2 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingCapabilitySpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingCapabilitySpec.m @@ -27,29 +27,29 @@ resolution.resolutionHeight = @500; NSNumber *maxBitrate = @100; - NSNumber *hapticSpatialDataSupported = @NO; + NSNumber *hapticDataSupported = @NO; SDLVideoStreamingFormat *format1 = [[SDLVideoStreamingFormat alloc] init]; - format1.codec = [SDLVideoStreamingCodec H264]; - format1.protocol = [SDLVideoStreamingProtocol RTP]; + format1.codec = SDLVideoStreamingCodecH264; + format1.protocol = SDLVideoStreamingProtocolRTP; SDLVideoStreamingFormat *format2 = [[SDLVideoStreamingFormat alloc] init]; - format2.codec = [SDLVideoStreamingCodec H265]; - format2.protocol = [SDLVideoStreamingProtocol RTSP]; + format2.codec = SDLVideoStreamingCodecH265; + format2.protocol = SDLVideoStreamingProtocolRTSP; NSArray *formatArray = @[format1, format2]; - NSMutableDictionary* dict = [@{NAMES_preferredResolution: resolution, - NAMES_maxBitrate: maxBitrate, - NAMES_supportedFormats: formatArray, - NAMES_hapticSpatialDataSupported: hapticSpatialDataSupported} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNamePreferredResolution: resolution, + SDLNameMaxBitrate: maxBitrate, + SDLNameSupportedFormats: formatArray, + SDLNameHapticSpatialDataSupported: hapticDataSupported} mutableCopy]; SDLVideoStreamingCapability* testStruct = [[SDLVideoStreamingCapability alloc] initWithDictionary:dict]; expect(testStruct.preferredResolution).to(equal(resolution)); expect(testStruct.maxBitrate).to(equal(maxBitrate)); expect(testStruct.supportedFormats).to(equal(formatArray)); - expect(testStruct.hapticSpatialDataSupported).to(equal(hapticSpatialDataSupported)); + expect(testStruct.hapticSpatialDataSupported).to(equal(hapticDataSupported)); }); it(@"Should return nil if not set", ^ { @@ -58,35 +58,34 @@ expect(testStruct.preferredResolution).to(beNil()); expect(testStruct.maxBitrate).to(beNil()); expect(testStruct.supportedFormats).to(beNil()); - expect(testStruct.hapticSpatialDataSupported).to(beNil()); }); - it(@"Should initialize correctly with initWithVideoStreaming:(SDLImageResolution *)preferredResolution (NSNumber *)maxBitrate (NSArray *)suportedFormats", ^ { + it(@"Should initialize correctly with initWithVideoStreaming:maxBitrate:suportedFormats", ^ { SDLImageResolution* resolution = [[SDLImageResolution alloc] init]; resolution.resolutionWidth = @600; resolution.resolutionHeight = @500; - NSNumber *maxBitrate = @100; - NSNumber *hapticSpatialDataSupported = @YES; + int32_t maxBitrate = 100; + NSNumber *hapticDataSupported = @YES; SDLVideoStreamingFormat *format1 = [[SDLVideoStreamingFormat alloc] init]; - format1.codec = [SDLVideoStreamingCodec H264]; - format1.protocol = [SDLVideoStreamingProtocol RTP]; + format1.codec = SDLVideoStreamingCodecH264; + format1.protocol = SDLVideoStreamingProtocolRTP; SDLVideoStreamingFormat *format2 = [[SDLVideoStreamingFormat alloc] init]; - format2.codec = [SDLVideoStreamingCodec H265]; - format2.protocol = [SDLVideoStreamingProtocol RTSP]; + format2.codec = SDLVideoStreamingCodecH265; + format2.protocol = SDLVideoStreamingProtocolRTSP; NSArray *formatArray = @[format1, format2]; - SDLVideoStreamingCapability *testStruct = [[SDLVideoStreamingCapability alloc] initWithVideoStreaming:resolution maxBitrate:maxBitrate supportedFormats:formatArray hapticDataSupported:hapticSpatialDataSupported]; + SDLVideoStreamingCapability *testStruct = [[SDLVideoStreamingCapability alloc] initWithPreferredResolution:resolution maxBitrate:maxBitrate supportedFormats:formatArray hapticDataSupported:hapticDataSupported]; expect(testStruct.preferredResolution).to(equal(resolution)); expect(testStruct.maxBitrate).to(equal(maxBitrate)); expect(testStruct.supportedFormats).to(equal(formatArray)); - expect(testStruct.hapticSpatialDataSupported).to(equal(hapticSpatialDataSupported)); + expect(testStruct.hapticSpatialDataSupported).to(equal(hapticDataSupported)); }); - + }); QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingFormatSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingFormatSpec.m index b1f0a4e16..551110ee8 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingFormatSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVideoStreamingFormatSpec.m @@ -20,12 +20,12 @@ describe(@"Initialization tests", ^{ it(@"Should get correctly when initialized with a dictionary", ^ { - NSMutableDictionary* dict = [@{NAMES_videoProtocol: [SDLVideoStreamingProtocol RAW], - NAMES_videoCodec: [SDLVideoStreamingCodec H264]} mutableCopy]; + NSMutableDictionary* dict = [@{SDLNameVideoProtocol: SDLVideoStreamingProtocolRAW, + SDLNameVideoCodec: SDLVideoStreamingCodecH264} mutableCopy]; SDLVideoStreamingFormat* testStruct = [[SDLVideoStreamingFormat alloc] initWithDictionary:dict]; - expect(testStruct.protocol).to(equal([SDLVideoStreamingProtocol RAW])); - expect(testStruct.codec).to(equal([SDLVideoStreamingCodec H264])); + expect(testStruct.protocol).to(equal(SDLVideoStreamingProtocolRAW)); + expect(testStruct.codec).to(equal(SDLVideoStreamingCodecH264)); }); it(@"Should return nil if not set", ^ { diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVrHelpItemSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVrHelpItemSpec.m index e76be2558..307d92621 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVrHelpItemSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVrHelpItemSpec.m @@ -31,9 +31,9 @@ }); it(@"Should get correctly when initialized", ^ { - NSMutableDictionary* dict = [@{NAMES_text:@"DON'T PANIC", - NAMES_image:image, - NAMES_position:@42} mutableCopy]; + NSMutableDictionary *dict = [@{SDLNameText:@"DON'T PANIC", + SDLNameImage:image, + SDLNamePosition:@42} mutableCopy]; SDLVRHelpItem* testStruct = [[SDLVRHelpItem alloc] initWithDictionary:dict]; expect(testStruct.text).to(equal(@"DON'T PANIC")); @@ -50,4 +50,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLEnumSpec.m b/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLEnumSpec.m deleted file mode 100644 index e4d330a3c..000000000 --- a/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLEnumSpec.m +++ /dev/null @@ -1,25 +0,0 @@ -// -// SDLEnumSpec.m -// SmartDeviceLink-iOS - - -#import - -#import -#import - -#import "SDLEnum.h" - -QuickSpecBegin(SDLEnumSpec) - -describe(@"Value Tests", ^ { - it(@"Should get value correctly when initialized", ^ { - SDLEnum* enumValue = [[SDLEnum alloc] initWithValue:@"Enum"]; - - expect(enumValue).toNot(beNil()); - - expect(enumValue.value).to(equal(@"Enum")); - }); -}); - -QuickSpecEnd \ No newline at end of file diff --git a/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLRPCMessageSpec.m b/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLRPCMessageSpec.m index 39a9ebc74..57dbd3513 100644 --- a/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLRPCMessageSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLRPCMessageSpec.m @@ -21,13 +21,13 @@ }); it(@"Should get correctly when initialized with dictionary", ^ { - SDLRPCMessage* testMessage = [[SDLRPCMessage alloc] initWithDictionary:[@{NAMES_notification: - @{NAMES_parameters: + SDLRPCMessage* testMessage = [[SDLRPCMessage alloc] initWithDictionary:[@{SDLNameNotification: + @{SDLNameParameters: @{@"name":@"George"}, - NAMES_operation_name:@"Poorly Named"}} mutableCopy]]; + SDLNameOperationName:@"Poorly Named"}} mutableCopy]]; expect(testMessage.name).to(equal(@"Poorly Named")); - expect(testMessage.messageType).to(equal(NAMES_notification)); + expect(testMessage.messageType).to(equal(SDLNameNotification)); }); }); @@ -41,10 +41,10 @@ }); it(@"Should get correctly when initialized", ^ { - SDLRPCMessage* testMessage = [[SDLRPCMessage alloc] initWithDictionary:[@{NAMES_response: - @{NAMES_parameters: + SDLRPCMessage* testMessage = [[SDLRPCMessage alloc] initWithDictionary:[@{SDLNameResponse: + @{SDLNameParameters: @{@"age":@25}, - NAMES_operation_name:@"Nameless"}} mutableCopy]]; + SDLNameOperationName:@"Nameless"}} mutableCopy]]; expect([testMessage getParameters:@"age"]).to(equal(@25)); }); @@ -66,10 +66,10 @@ }); it(@"Should get correctly when initialized", ^ { - SDLRPCMessage* testMessage = [[SDLRPCMessage alloc] initWithDictionary:[@{NAMES_request: - @{NAMES_parameters: + SDLRPCMessage* testMessage = [[SDLRPCMessage alloc] initWithDictionary:[@{SDLNameRequest: + @{SDLNameParameters: @{@"age":@25}, - NAMES_operation_name:@"DoNothing"}} mutableCopy]]; + SDLNameOperationName:@"DoNothing"}} mutableCopy]]; expect([testMessage getFunctionName]).to(equal(@"DoNothing")); @@ -79,8 +79,8 @@ }); it(@"Should be nil if not set", ^ { - SDLRPCMessage* testMessage = [[SDLRPCMessage alloc] initWithDictionary:[@{NAMES_notification: - @{NAMES_parameters: + SDLRPCMessage* testMessage = [[SDLRPCMessage alloc] initWithDictionary:[@{SDLNameNotification: + @{SDLNameParameters: @{}}} mutableCopy]]; expect([testMessage getFunctionName]).to(beNil()); }); @@ -97,10 +97,10 @@ }); it(@"Should get correctly when initialized", ^ { - SDLRPCMessage* testMessage = [[SDLRPCMessage alloc] initWithDictionary:[@{NAMES_notification: - @{NAMES_parameters: + SDLRPCMessage* testMessage = [[SDLRPCMessage alloc] initWithDictionary:[@{SDLNameNotification: + @{SDLNameParameters: @{}}, - NAMES_bulkData:[NSData dataWithBytes:"ImageData" length:strlen("ImageData")]} mutableCopy]]; + SDLNameBulkData:[NSData dataWithBytes:"ImageData" length:strlen("ImageData")]} mutableCopy]]; expect(testMessage.bulkData).to(equal([NSData dataWithBytes:"ImageData" length:strlen("ImageData")])); }); @@ -112,4 +112,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLRPCResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLRPCResponseSpec.m index 0619dd3dc..073135985 100644 --- a/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLRPCResponseSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLRPCResponseSpec.m @@ -8,6 +8,7 @@ #import #import +#import "SDLNames.h" #import "SDLResult.h" #import "SDLRPCResponse.h" @@ -20,14 +21,32 @@ response.correlationID = @14641; response.success = @YES; - response.resultCode = [SDLResult IGNORED]; + response.resultCode = SDLResultIgnored; response.info = @"It has been done"; expect(response.correlationID).to(equal(@14641)); expect(response.success).to(equal(@YES)); - expect(response.resultCode).to(equal([SDLResult IGNORED])); + expect(response.resultCode).to(equal(SDLResultIgnored)); expect(response.info).to(equal(@"It has been done")); }); + + it(@"Should get correctly when initialized", ^ { + NSMutableDictionary* dict = [@{SDLNameResponse: + @{SDLNameParameters: + @{SDLNameSuccess:@YES, + SDLNameResultCode:SDLNameSuccess, + SDLNameInfo:@"Test Info"}, + SDLNameCorrelationId:@1004, + SDLNameOperationName:SDLNameResponse}} mutableCopy]; + SDLRPCResponse* testResponse = [[SDLRPCResponse alloc] initWithDictionary:dict]; + + expect(testResponse.getFunctionName).to(equal(SDLNameResponse)); + expect(testResponse.correlationID).to(equal(@1004)); + expect(testResponse.success).to(equal(@YES)); + expect(testResponse.resultCode).to(equal(SDLNameSuccess)); + expect(testResponse.info).to(equal(@"Test Info")); + + }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLRPCStructSpec.m b/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLRPCStructSpec.m index 9352569ed..1b2c4d348 100644 --- a/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLRPCStructSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/SuperclassSpecs/SDLRPCStructSpec.m @@ -14,11 +14,11 @@ describe(@"SerializeAsDictionary Tests", ^ { it(@"Should serialize correctly", ^ { - NSMutableDictionary* dict = [@{@"Key":@"Value", @"Answer":@42, @"Struct":[[SDLRPCStruct alloc] initWithDictionary:[@{@"Array":@[@1, @1, @1, @1]} mutableCopy]]} mutableCopy]; + NSMutableDictionary *dict = [@{@"Key":@"Value", @"Answer":@42, @"Struct":[[SDLRPCStruct alloc] initWithDictionary:[@{@"Array":@[@1, @1, @1, @1]} mutableCopy]]} mutableCopy]; SDLRPCStruct* testStruct = [[SDLRPCStruct alloc] initWithDictionary:dict]; expect([testStruct serializeAsDictionary:2]).to(equal([@{@"Key":@"Value", @"Answer":@42, @"Struct":@{@"Array":@[@1, @1, @1, @1]}} mutableCopy])); }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testAppAndVehicleIcons@2x.png b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testAppAndVehicleIcons@2x.png index 30daef6ff..fb6f87fba 100644 Binary files a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testAppAndVehicleIcons@2x.png and b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testAppAndVehicleIcons@2x.png differ diff --git a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testLightBackgroundNoAppNoVehicleIcons@2x.png b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testLightBackgroundNoAppNoVehicleIcons@2x.png index 401793f2c..0830ec96c 100644 Binary files a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testLightBackgroundNoAppNoVehicleIcons@2x.png and b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testLightBackgroundNoAppNoVehicleIcons@2x.png differ diff --git a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testNoAppNoVehicleIcons@2x.png b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testNoAppNoVehicleIcons@2x.png index c5eb09c13..ea74dd949 100644 Binary files a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testNoAppNoVehicleIcons@2x.png and b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testNoAppNoVehicleIcons@2x.png differ diff --git a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyAppIcon@2x.png b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyAppIcon@2x.png index b2c95cc82..6b242fb84 100644 Binary files a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyAppIcon@2x.png and b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyAppIcon@2x.png differ diff --git a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyVehicleIcon@2x.png b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyVehicleIcon@2x.png index b963922af..1e4539141 100644 Binary files a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyVehicleIcon@2x.png and b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyVehicleIcon@2x.png differ diff --git a/SmartDeviceLinkTests/SDLH264VideoEncoderSpec.m b/SmartDeviceLinkTests/SDLH264VideoEncoderSpec.m new file mode 100644 index 000000000..484b8b41a --- /dev/null +++ b/SmartDeviceLinkTests/SDLH264VideoEncoderSpec.m @@ -0,0 +1,128 @@ +// +// SDLVideoEncoderSpec.m +// SmartDeviceLink-iOS +// +// Created by Muller, Alexander (A.) on 2/7/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import +#import + +#import +#import +#import + +#import "SDLH264VideoEncoder.h" +#import "SDLRAWH264Packetizer.h" +#import "SDLRTPH264Packetizer.h" +#import "SDLVideoStreamingProtocol.h" + +QuickSpecBegin(SDLH264VideoEncoderSpec) + +describe(@"a video encoder", ^{ + __block SDLH264VideoEncoder *testVideoEncoder = nil; + __block CGSize testSize = CGSizeZero; + __block id videoEncoderDelegateMock = OCMProtocolMock(@protocol(SDLVideoEncoderDelegate)); + __block NSError *testError = nil; + __block SDLVideoStreamingProtocol testProtocol = nil; + + beforeEach(^{ + testSize = CGSizeMake(100, 200); + testProtocol = SDLVideoStreamingProtocolRAW; + testError = nil; + }); + + context(@"if using default video encoder settings", ^{ + beforeEach(^{ + testVideoEncoder = [[SDLH264VideoEncoder alloc] initWithProtocol:testProtocol dimensions:testSize properties:SDLH264VideoEncoder.defaultVideoEncoderSettings delegate:videoEncoderDelegateMock error:&testError]; + }); + + it(@"should initialize properties", ^{ + expect(testVideoEncoder).toNot(beNil()); + expect(testVideoEncoder.videoEncoderSettings).to(equal(SDLH264VideoEncoder.defaultVideoEncoderSettings)); + expect(@(testVideoEncoder.pixelBufferPool == NULL)).to(equal(@NO)); + expect(testError).to(beNil()); + expect(testVideoEncoder.packetizer).to(beAnInstanceOf([SDLRAWH264Packetizer class])); + + NSDictionary *pixelBufferProperties = (__bridge NSDictionary*)CVPixelBufferPoolGetPixelBufferAttributes(testVideoEncoder.pixelBufferPool); + expect(pixelBufferProperties[(__bridge NSString*)kCVPixelBufferWidthKey]).to(equal(@100)); + expect(pixelBufferProperties[(__bridge NSString*)kCVPixelBufferHeightKey]).to(equal(@200)); + }); + + context(@"when stopping", ^{ + beforeEach(^{ + [testVideoEncoder stop]; + }); + + it(@"should have a nil pixel buffer pool", ^{ + expect(@(testVideoEncoder.pixelBufferPool == NULL)).to(equal(@YES)); + }); + }); + }); + + describe(@"is using custom video encoder settings", ^{ + __block NSDictionary *testSettings = nil; + + context(@"that is a valid setting", ^{ + beforeEach(^{ + testSettings = @{ + (__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate : @1 + }; + + testVideoEncoder = [[SDLH264VideoEncoder alloc] initWithProtocol:testProtocol dimensions:testSize properties:testSettings delegate:videoEncoderDelegateMock error:&testError]; + }); + + it(@"should initialize properties", ^{ + expect(testVideoEncoder).toNot(beNil()); + expect(testVideoEncoder.videoEncoderSettings).to(equal(testSettings)); + expect(@(testVideoEncoder.pixelBufferPool == NULL)).to(equal(@NO)); + expect(testError).to(beNil()); + + NSDictionary *pixelBufferProperties = (__bridge NSDictionary*)CVPixelBufferPoolGetPixelBufferAttributes(testVideoEncoder.pixelBufferPool); + expect(pixelBufferProperties[(__bridge NSString*)kCVPixelBufferWidthKey]).to(equal(@100)); + expect(pixelBufferProperties[(__bridge NSString*)kCVPixelBufferHeightKey]).to(equal(@200)); + }); + }); + + context(@"that is not a valid setting", ^{ + beforeEach(^{ + testSettings = @{ + @"Bad" : @"Property" + }; + testVideoEncoder = [[SDLH264VideoEncoder alloc] initWithProtocol:testProtocol dimensions:testSize properties:testSettings delegate:videoEncoderDelegateMock error:&testError]; + }); + + it(@"should not be initialized", ^{ + expect(testVideoEncoder).to(beNil()); + expect(testError).to(equal([NSError errorWithDomain:SDLErrorDomainVideoEncoder code:SDLVideoEncoderErrorConfigurationCompressionSessionSetPropertyFailure userInfo:@{ NSLocalizedDescriptionKey : @"\"Bad\" is not a supported key." }])); + }); + }); + }); + + context(@"using an unknown protocol", ^{ + beforeEach(^{ + testProtocol = SDLVideoStreamingProtocolRTSP; + testVideoEncoder = [[SDLH264VideoEncoder alloc] initWithProtocol:testProtocol dimensions:testSize properties:SDLH264VideoEncoder.defaultVideoEncoderSettings delegate:videoEncoderDelegateMock error:&testError]; + }); + + it(@"should not be initialized", ^{ + expect(testVideoEncoder).to(beNil()); + expect(testError.code).to(equal(SDLVideoEncoderErrorProtocolUnknown)); + expect(testError.userInfo[@"encoder"]).to(equal(testProtocol)); + }); + }); + + context(@"creating with RTP H264 Protocol", ^{ + beforeEach(^{ + testProtocol = SDLVideoStreamingProtocolRTP; + testVideoEncoder = [[SDLH264VideoEncoder alloc] initWithProtocol:testProtocol dimensions:testSize properties:SDLH264VideoEncoder.defaultVideoEncoderSettings delegate:videoEncoderDelegateMock error:&testError]; + }); + + it(@"should create an RTP packetizer", ^{ + expect(testVideoEncoder.packetizer).to(beAnInstanceOf([SDLRTPH264Packetizer class])); + }); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/SDLLogConstantsSpec.m b/SmartDeviceLinkTests/SDLLogConstantsSpec.m new file mode 100644 index 000000000..cf10793d9 --- /dev/null +++ b/SmartDeviceLinkTests/SDLLogConstantsSpec.m @@ -0,0 +1,50 @@ +// +// SDLLogConstantsSpec.m +// SmartDeviceLink-iOS +// +// Created by Nicole on 9/12/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import +#import + +#import "SDLLogConstants.h" + +QuickSpecBegin(SDLLogConstantsSpec) + +describe(@"log constants", ^{ + it(@"should assigned the correct integer value to each SDLLogLevel", ^{ + expect((int)SDLLogLevelOff).to(beGreaterThan((int)SDLLogLevelDefault)); + expect((int)SDLLogLevelOff).to(beLessThan((int)SDLLogLevelError)); + expect((int)SDLLogLevelOff).to(beLessThan((int)SDLLogLevelWarning)); + expect((int)SDLLogLevelOff).to(beLessThan((int)SDLLogLevelDebug)); + expect((int)SDLLogLevelOff).to(beLessThan((int)SDLLogLevelVerbose)); + + expect((int)SDLLogLevelError).to(beGreaterThan((int)SDLLogLevelDefault)); + expect((int)SDLLogLevelError).to(beGreaterThan((int)SDLLogLevelOff)); + expect((int)SDLLogLevelError).to(beLessThan((int)SDLLogLevelWarning)); + expect((int)SDLLogLevelError).to(beLessThan((int)SDLLogLevelDebug)); + expect((int)SDLLogLevelError).to(beLessThan((int)SDLLogLevelVerbose)); + + expect((int)SDLLogLevelWarning).to(beGreaterThan((int)SDLLogLevelDefault)); + expect((int)SDLLogLevelWarning).to(beGreaterThan((int)SDLLogLevelOff)); + expect((int)SDLLogLevelWarning).to(beGreaterThan((int)SDLLogLevelError)); + expect((int)SDLLogLevelWarning).to(beLessThan((int)SDLLogLevelDebug)); + expect((int)SDLLogLevelWarning).to(beLessThan((int)SDLLogLevelVerbose)); + + expect((int)SDLLogLevelDebug).to(beGreaterThan((int)SDLLogLevelDefault)); + expect((int)SDLLogLevelDebug).to(beGreaterThan((int)SDLLogLevelOff)); + expect((int)SDLLogLevelDebug).to(beGreaterThan((int)SDLLogLevelError)); + expect((int)SDLLogLevelDebug).to(beGreaterThan((int)SDLLogLevelWarning)); + expect((int)SDLLogLevelDebug).to(beLessThan((int)SDLLogLevelVerbose)); + + expect((int)SDLLogLevelVerbose).to(beGreaterThan((int)SDLLogLevelDefault)); + expect((int)SDLLogLevelVerbose).to(beGreaterThan((int)SDLLogLevelOff)); + expect((int)SDLLogLevelVerbose).to(beGreaterThan((int)SDLLogLevelError)); + expect((int)SDLLogLevelVerbose).to(beGreaterThan((int)SDLLogLevelWarning)); + expect((int)SDLLogLevelVerbose).to(beGreaterThan((int)SDLLogLevelDebug)); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/SDLStreamingMediaLifecycleManagerSpec.m b/SmartDeviceLinkTests/SDLStreamingMediaLifecycleManagerSpec.m new file mode 100644 index 000000000..d20ed828a --- /dev/null +++ b/SmartDeviceLinkTests/SDLStreamingMediaLifecycleManagerSpec.m @@ -0,0 +1,685 @@ +// +// SDLStreamingMediaLifecycleManagerSpec.m +// SmartDeviceLink-iOS +// + +#import +#import +#import + +#import "SDLConnectionManagerType.h" +#import "SDLControlFramePayloadAudioStartServiceAck.h" +#import "SDLControlFramePayloadConstants.h" +#import "SDLControlFramePayloadNak.h" +#import "SDLControlFramePayloadVideoStartServiceAck.h" +#import "SDLDisplayCapabilities.h" +#import "SDLGenericResponse.h" +#import "SDLGetSystemCapability.h" +#import "SDLGetSystemCapabilityResponse.h" +#import "SDLGlobals.h" +#import "SDLFocusableItemLocatorType.h" +#import "SDLFocusableItemLocator.h" +#import "SDLHMILevel.h" +#import "SDLImageResolution.h" +#import "SDLNotificationConstants.h" +#import "SDLOnHMIStatus.h" +#import "SDLProtocol.h" +#import "SDLRPCNotificationNotification.h" +#import "SDLRegisterAppInterfaceResponse.h" +#import "SDLRPCResponseNotification.h" +#import "SDLScreenParams.h" +#import "SDLStateMachine.h" +#import "SDLStreamingMediaConfiguration.h" +#import "SDLStreamingMediaLifecycleManager.h" +#import "SDLFakeStreamingManagerDataSource.h" +#import "SDLSystemCapability.h" +#import "SDLV2ProtocolHeader.h" +#import "SDLV2ProtocolMessage.h" +#import "SDLVideoStreamingCapability.h" +#import "SDLVideoStreamingCodec.h" +#import "SDLVideoStreamingFormat.h" +#import "SDLVideoStreamingProtocol.h" +#import "TestConnectionManager.h" + +QuickSpecBegin(SDLStreamingMediaLifecycleManagerSpec) + +describe(@"the streaming media manager", ^{ + __block SDLStreamingMediaLifecycleManager *streamingLifecycleManager = nil; + __block SDLStreamingMediaConfiguration *testConfiguration = [SDLStreamingMediaConfiguration insecureConfiguration]; + __block UIWindow *testWindow = [[UIWindow alloc] init]; + __block SDLFakeStreamingManagerDataSource *testDataSource = [[SDLFakeStreamingManagerDataSource alloc] init]; + __block NSString *someBackgroundTitleString = nil; + __block TestConnectionManager *testConnectionManager = nil; + + __block void (^sendNotificationForHMILevel)(SDLHMILevel hmiLevel) = ^(SDLHMILevel hmiLevel) { + SDLOnHMIStatus *hmiStatus = [[SDLOnHMIStatus alloc] init]; + hmiStatus.hmiLevel = hmiLevel; + SDLRPCNotificationNotification *notification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidChangeHMIStatusNotification object:self rpcNotification:hmiStatus]; + [[NSNotificationCenter defaultCenter] postNotification:notification]; + + [NSThread sleepForTimeInterval:0.3]; + }; + + beforeEach(^{ + testConfiguration.customVideoEncoderSettings = @{ + (__bridge NSString *)kVTCompressionPropertyKey_ExpectedFrameRate : @1 + }; + testConfiguration.dataSource = testDataSource; + testConfiguration.window = testWindow; + someBackgroundTitleString = @"Open Test App"; + testConnectionManager = [[TestConnectionManager alloc] init]; + streamingLifecycleManager = [[SDLStreamingMediaLifecycleManager alloc] initWithConnectionManager:testConnectionManager configuration:testConfiguration]; + }); + + it(@"should initialize properties", ^{ + expect(streamingLifecycleManager.touchManager).toNot(beNil()); + expect(streamingLifecycleManager.focusableItemManager).toNot(beNil()); + expect(@(streamingLifecycleManager.isStreamingSupported)).to(equal(@NO)); + expect(@(streamingLifecycleManager.isVideoConnected)).to(equal(@NO)); + expect(@(streamingLifecycleManager.isAudioConnected)).to(equal(@NO)); + expect(@(streamingLifecycleManager.isVideoEncrypted)).to(equal(@NO)); + expect(@(streamingLifecycleManager.isAudioEncrypted)).to(equal(@NO)); + expect(@(streamingLifecycleManager.isVideoStreamingPaused)).to(equal(@YES)); + expect(@(CGSizeEqualToSize(streamingLifecycleManager.screenSize, CGSizeZero))).to(equal(@YES)); + expect(@(streamingLifecycleManager.pixelBufferPool == NULL)).to(equal(@YES)); + expect(@(streamingLifecycleManager.requestedEncryptionType)).to(equal(@(SDLStreamingEncryptionFlagNone))); + expect(streamingLifecycleManager.currentAppState).to(equal(SDLAppStateActive)); + expect(streamingLifecycleManager.currentAudioStreamState).to(equal(SDLAudioStreamStateStopped)); + expect(streamingLifecycleManager.currentVideoStreamState).to(equal(SDLVideoStreamStateStopped)); + expect(streamingLifecycleManager.videoFormat).to(beNil()); + expect(streamingLifecycleManager.dataSource).to(equal(testDataSource)); + expect(streamingLifecycleManager.supportedFormats).to(haveCount(2)); + expect(streamingLifecycleManager.preferredFormats).to(beNil()); + expect(streamingLifecycleManager.preferredResolutions).to(beNil()); + expect(streamingLifecycleManager.preferredFormatIndex).to(equal(0)); + expect(streamingLifecycleManager.preferredResolutionIndex).to(equal(0)); + }); + + describe(@"when started", ^{ + __block BOOL readyHandlerSuccess = NO; + __block NSError *readyHandlerError = nil; + + __block id protocolMock = OCMClassMock([SDLAbstractProtocol class]); + + beforeEach(^{ + readyHandlerSuccess = NO; + readyHandlerError = nil; + + [streamingLifecycleManager startWithProtocol:protocolMock]; + }); + + it(@"should be ready to stream", ^{ + expect(@(streamingLifecycleManager.isStreamingSupported)).to(equal(@NO)); + expect(@(streamingLifecycleManager.isVideoConnected)).to(equal(@NO)); + expect(@(streamingLifecycleManager.isAudioConnected)).to(equal(@NO)); + expect(@(streamingLifecycleManager.isVideoEncrypted)).to(equal(@NO)); + expect(@(streamingLifecycleManager.isAudioEncrypted)).to(equal(@NO)); + expect(@(streamingLifecycleManager.isVideoStreamingPaused)).to(equal(@YES)); + expect(@(CGSizeEqualToSize(streamingLifecycleManager.screenSize, CGSizeZero))).to(equal(@YES)); + expect(@(streamingLifecycleManager.pixelBufferPool == NULL)).to(equal(@YES)); + expect(streamingLifecycleManager.currentAppState).to(equal(SDLAppStateActive)); + expect(streamingLifecycleManager.currentAudioStreamState).to(match(SDLAudioStreamStateStopped)); + expect(streamingLifecycleManager.currentVideoStreamState).to(match(SDLVideoStreamStateStopped)); + }); + + describe(@"after receiving a register app interface notification", ^{ + __block SDLRegisterAppInterfaceResponse *someRegisterAppInterfaceResponse = nil; + __block SDLDisplayCapabilities *someDisplayCapabilities = nil; + __block SDLScreenParams *someScreenParams = nil; + __block SDLImageResolution *someImageResolution = nil; + + beforeEach(^{ + someImageResolution = [[SDLImageResolution alloc] init]; + someImageResolution.resolutionWidth = @(600); + someImageResolution.resolutionHeight = @(100); + + someScreenParams = [[SDLScreenParams alloc] init]; + someScreenParams.resolution = someImageResolution; + }); + + context(@"that does not support graphics", ^{ + beforeEach(^{ + someDisplayCapabilities = [[SDLDisplayCapabilities alloc] init]; + someDisplayCapabilities.graphicSupported = @NO; + + someDisplayCapabilities.screenParams = someScreenParams; + + someRegisterAppInterfaceResponse = [[SDLRegisterAppInterfaceResponse alloc] init]; + someRegisterAppInterfaceResponse.displayCapabilities = someDisplayCapabilities; + SDLRPCResponseNotification *notification = [[SDLRPCResponseNotification alloc] initWithName:SDLDidReceiveRegisterAppInterfaceResponse object:self rpcResponse:someRegisterAppInterfaceResponse]; + + [[NSNotificationCenter defaultCenter] postNotification:notification]; + [NSThread sleepForTimeInterval:0.1]; + }); + + it(@"should not support streaming", ^{ + expect(@(streamingLifecycleManager.isStreamingSupported)).to(equal(@NO)); + }); + }); + + context(@"that supports graphics", ^{ + beforeEach(^{ + someDisplayCapabilities = [[SDLDisplayCapabilities alloc] init]; + someDisplayCapabilities.graphicSupported = @YES; + + someDisplayCapabilities.screenParams = someScreenParams; + + someRegisterAppInterfaceResponse = [[SDLRegisterAppInterfaceResponse alloc] init]; + someRegisterAppInterfaceResponse.displayCapabilities = someDisplayCapabilities; + SDLRPCResponseNotification *notification = [[SDLRPCResponseNotification alloc] initWithName:SDLDidReceiveRegisterAppInterfaceResponse object:self rpcResponse:someRegisterAppInterfaceResponse]; + + [[NSNotificationCenter defaultCenter] postNotification:notification]; + [NSThread sleepForTimeInterval:0.1]; + }); + + it(@"should support streaming", ^{ + expect(@(streamingLifecycleManager.isStreamingSupported)).to(equal(@YES)); + expect(@(CGSizeEqualToSize(streamingLifecycleManager.screenSize, CGSizeMake(600, 100)))).to(equal(@YES)); + }); + }); + }); + + describe(@"if the app state is active", ^{ + __block id streamStub = nil; + + beforeEach(^{ + streamStub = OCMPartialMock(streamingLifecycleManager); + + OCMStub([streamStub isStreamingSupported]).andReturn(YES); + + [streamingLifecycleManager.appStateMachine setToState:SDLAppStateActive fromOldState:nil callEnterTransition:NO]; + }); + + describe(@"and both streams are open", ^{ + beforeEach(^{ + [streamingLifecycleManager.audioStreamStateMachine setToState:SDLAudioStreamStateReady fromOldState:nil callEnterTransition:NO]; + [streamingLifecycleManager.videoStreamStateMachine setToState:SDLVideoStreamStateReady fromOldState:nil callEnterTransition:NO]; + }); + + describe(@"and the hmi state is limited", ^{ + beforeEach(^{ + streamingLifecycleManager.hmiLevel = SDLHMILevelLimited; + }); + + describe(@"and the hmi state changes to", ^{ + context(@"none", ^{ + beforeEach(^{ + sendNotificationForHMILevel(SDLHMILevelNone); + }); + + it(@"should close only the video stream", ^{ + expect(streamingLifecycleManager.currentAudioStreamState).to(equal(SDLAudioStreamStateReady)); + expect(streamingLifecycleManager.currentVideoStreamState).to(equal(SDLVideoStreamStateShuttingDown)); + }); + }); + + context(@"background", ^{ + beforeEach(^{ + sendNotificationForHMILevel(SDLHMILevelBackground); + }); + + it(@"should close only the video stream", ^{ + expect(streamingLifecycleManager.currentAudioStreamState).to(equal(SDLAudioStreamStateReady)); + expect(streamingLifecycleManager.currentVideoStreamState).to(equal(SDLVideoStreamStateShuttingDown)); + }); + }); + + context(@"limited", ^{ + beforeEach(^{ + sendNotificationForHMILevel(SDLHMILevelLimited); + }); + + it(@"should not close either stream", ^{ + expect(streamingLifecycleManager.currentAudioStreamState).to(equal(SDLAudioStreamStateReady)); + expect(streamingLifecycleManager.currentVideoStreamState).to(equal(SDLVideoStreamStateReady)); + }); + }); + + context(@"full", ^{ + beforeEach(^{ + sendNotificationForHMILevel(SDLHMILevelFull); + }); + + it(@"should not close either stream", ^{ + expect(streamingLifecycleManager.currentAudioStreamState).to(equal(SDLAudioStreamStateReady)); + expect(streamingLifecycleManager.currentVideoStreamState).to(equal(SDLVideoStreamStateReady)); + }); + }); + }); + + describe(@"and the app state changes to", ^{ + context(@"inactive", ^{ + beforeEach(^{ + [streamingLifecycleManager.appStateMachine setToState:SDLAppStateInactive fromOldState:nil callEnterTransition:YES]; + }); + + it(@"should flag to restart the video stream", ^{ + expect(@(streamingLifecycleManager.shouldRestartVideoStream)).to(equal(@YES)); + expect(streamingLifecycleManager.currentAudioStreamState).to(equal(SDLAudioStreamStateReady)); + expect(streamingLifecycleManager.currentVideoStreamState).to(equal(SDLVideoStreamStateReady)); + }); + }); + }); + }); + + describe(@"and the hmi state is full", ^{ + beforeEach(^{ + streamingLifecycleManager.hmiLevel = SDLHMILevelFull; + }); + + context(@"and hmi state changes to none", ^{ + beforeEach(^{ + sendNotificationForHMILevel(SDLHMILevelNone); + }); + + it(@"should close only the video stream", ^{ + expect(streamingLifecycleManager.currentAudioStreamState).to(equal(SDLAudioStreamStateReady)); + expect(streamingLifecycleManager.currentVideoStreamState).to(equal(SDLVideoStreamStateShuttingDown)); + }); + }); + + context(@"and hmi state changes to background", ^{ + beforeEach(^{ + sendNotificationForHMILevel(SDLHMILevelBackground); + }); + + it(@"should close only the video stream", ^{ + expect(streamingLifecycleManager.currentAudioStreamState).to(equal(SDLAudioStreamStateReady)); + expect(streamingLifecycleManager.currentVideoStreamState).to(equal(SDLVideoStreamStateShuttingDown)); + }); + }); + + context(@"and hmi state changes to limited", ^{ + beforeEach(^{ + sendNotificationForHMILevel(SDLHMILevelLimited); + }); + + it(@"should not close either stream", ^{ + expect(streamingLifecycleManager.currentAudioStreamState).to(equal(SDLAudioStreamStateReady)); + expect(streamingLifecycleManager.currentVideoStreamState).to(equal(SDLVideoStreamStateReady)); + }); + }); + + context(@"and hmi state changes to full", ^{ + beforeEach(^{ + sendNotificationForHMILevel(SDLHMILevelFull); + }); + + it(@"should not close either stream", ^{ + expect(streamingLifecycleManager.currentAudioStreamState).to(equal(SDLAudioStreamStateReady)); + expect(streamingLifecycleManager.currentVideoStreamState).to(equal(SDLVideoStreamStateReady)); + }); + }); + }); + }); + + describe(@"and both streams are closed", ^{ + beforeEach(^{ + [streamingLifecycleManager.audioStreamStateMachine setToState:SDLAudioStreamStateStopped fromOldState:nil callEnterTransition:NO]; + [streamingLifecycleManager.videoStreamStateMachine setToState:SDLVideoStreamStateStopped fromOldState:nil callEnterTransition:NO]; + }); + + describe(@"and the hmi state is none", ^{ + beforeEach(^{ + streamingLifecycleManager.hmiLevel = SDLHMILevelNone; + }); + + context(@"and hmi state changes to none", ^{ + beforeEach(^{ + sendNotificationForHMILevel(SDLHMILevelNone); + }); + + it(@"should only start the audio stream", ^{ + expect(streamingLifecycleManager.currentAudioStreamState).to(equal(SDLAudioStreamStateStarting)); + expect(streamingLifecycleManager.currentVideoStreamState).to(equal(SDLVideoStreamStateStopped)); + }); + }); + + context(@"and hmi state changes to background", ^{ + beforeEach(^{ + sendNotificationForHMILevel(SDLHMILevelBackground); + }); + + it(@"should only start the audio stream", ^{ + expect(streamingLifecycleManager.currentAudioStreamState).to(equal(SDLAudioStreamStateStarting)); + expect(streamingLifecycleManager.currentVideoStreamState).to(equal(SDLVideoStreamStateStopped)); + }); + }); + + context(@"and hmi state changes to limited", ^{ + beforeEach(^{ + sendNotificationForHMILevel(SDLHMILevelLimited); + }); + + it(@"should start both streams", ^{ + expect(streamingLifecycleManager.currentAudioStreamState).to(equal(SDLAudioStreamStateStarting)); + expect(streamingLifecycleManager.currentVideoStreamState).to(equal(SDLVideoStreamStateStarting)); + }); + }); + + context(@"and hmi state changes to full", ^{ + beforeEach(^{ + sendNotificationForHMILevel(SDLHMILevelFull); + }); + + it(@"should start both streams", ^{ + expect(streamingLifecycleManager.currentAudioStreamState).to(equal(SDLAudioStreamStateStarting)); + expect(streamingLifecycleManager.currentVideoStreamState).to(equal(SDLVideoStreamStateStarting)); + }); + }); + }); + }); + }); + + describe(@"sending a video capabilities request", ^{ + beforeEach(^{ + [streamingLifecycleManager.videoStreamStateMachine setToState:SDLVideoStreamStateStarting fromOldState:nil callEnterTransition:YES]; + }); + + it(@"should send out a video capabilities request", ^{ + expect(testConnectionManager.receivedRequests.lastObject).to(beAnInstanceOf([SDLGetSystemCapability class])); + + SDLGetSystemCapability *getCapability = (SDLGetSystemCapability *)testConnectionManager.receivedRequests.lastObject; + expect(getCapability.systemCapabilityType).to(equal(SDLSystemCapabilityTypeVideoStreaming)); + }); + + describe(@"after sending GetSystemCapabilities", ^{ + context(@"and receiving an error response", ^{ + // This happens if the HU doesn't understand GetSystemCapabilities + beforeEach(^{ + SDLGenericResponse *genericResponse = [[SDLGenericResponse alloc] init]; + genericResponse.resultCode = SDLResultInvalidData; + + [testConnectionManager respondToLastRequestWithResponse:genericResponse]; + }); + + it(@"should have correct format and resolution", ^{ + expect(streamingLifecycleManager.preferredFormats).to(haveCount(1)); + expect(streamingLifecycleManager.preferredFormats.firstObject.codec).to(equal(SDLVideoStreamingCodecH264)); + expect(streamingLifecycleManager.preferredFormats.firstObject.protocol).to(equal(SDLVideoStreamingProtocolRAW)); + + expect(streamingLifecycleManager.preferredResolutions).to(haveCount(1)); + expect(streamingLifecycleManager.preferredResolutions.firstObject.resolutionWidth).to(equal(0)); + expect(streamingLifecycleManager.preferredResolutions.firstObject.resolutionHeight).to(equal(0)); + }); + }); + + context(@"and receiving a response", ^{ + __block SDLImageResolution *resolution = nil; + __block int32_t maxBitrate = 0; + __block NSArray *testFormats = nil; + __block BOOL testHapticsSupported = NO; + + beforeEach(^{ + SDLGetSystemCapabilityResponse *response = [[SDLGetSystemCapabilityResponse alloc] init]; + response.success = @YES; + response.systemCapability = [[SDLSystemCapability alloc] init]; + response.systemCapability.systemCapabilityType = SDLSystemCapabilityTypeVideoStreaming; + + resolution = [[SDLImageResolution alloc] initWithWidth:42 height:69]; + maxBitrate = 12345; + testFormats = @[[[SDLVideoStreamingFormat alloc] initWithCodec:SDLVideoStreamingCodecH265 protocol:SDLVideoStreamingProtocolRTMP], [[SDLVideoStreamingFormat alloc] initWithCodec:SDLVideoStreamingCodecH264 protocol:SDLVideoStreamingProtocolRTP]]; + testHapticsSupported = YES; + response.systemCapability.videoStreamingCapability = [[SDLVideoStreamingCapability alloc] initWithPreferredResolution:resolution maxBitrate:maxBitrate supportedFormats:testFormats hapticDataSupported:testHapticsSupported]; + [testConnectionManager respondToLastRequestWithResponse:response]; + }); + + it(@"should have correct data from the data source", ^{ + // Correct formats should be retrieved from the data source + expect(streamingLifecycleManager.preferredResolutions).to(haveCount(1)); + expect(streamingLifecycleManager.preferredResolutions.firstObject.resolutionWidth).to(equal(resolution.resolutionWidth)); + expect(streamingLifecycleManager.preferredResolutions.firstObject.resolutionHeight).to(equal(resolution.resolutionHeight)); + + expect(streamingLifecycleManager.preferredFormats).to(haveCount(streamingLifecycleManager.supportedFormats.count + 1)); + expect(streamingLifecycleManager.preferredFormats.firstObject.codec).to(equal(testDataSource.extraFormat.codec)); + expect(streamingLifecycleManager.preferredFormats.firstObject.protocol).to(equal(testDataSource.extraFormat.protocol)); + + // The haptic manager should be enabled + expect(streamingLifecycleManager.focusableItemManager.enableHapticDataRequests).to(equal(YES)); + }); + + it(@"should have decided upon the correct preferred format and resolution", ^{ + SDLVideoStreamingFormat *preferredFormat = streamingLifecycleManager.preferredFormats[streamingLifecycleManager.preferredFormatIndex]; + expect(preferredFormat.codec).to(equal(SDLVideoStreamingCodecH264)); + expect(preferredFormat.protocol).to(equal(SDLVideoStreamingProtocolRTP)); + + SDLImageResolution *preferredResolution = streamingLifecycleManager.preferredResolutions[streamingLifecycleManager.preferredResolutionIndex]; + expect(preferredResolution.resolutionHeight).to(equal(@69)); + expect(preferredResolution.resolutionWidth).to(equal(@42)); + }); + }); + }); + + describe(@"after receiving a Video Start ACK", ^{ + __block SDLProtocolHeader *testVideoHeader = nil; + __block SDLProtocolMessage *testVideoMessage = nil; + __block SDLControlFramePayloadVideoStartServiceAck *testVideoStartServicePayload = nil; + __block int64_t testMTU = 789456; + __block int32_t testVideoHeight = 42; + __block int32_t testVideoWidth = 32; + __block SDLVideoStreamingCodec testVideoCodec = SDLVideoStreamingCodecH264; + __block SDLVideoStreamingProtocol testVideoProtocol = SDLVideoStreamingProtocolRTP; + + beforeEach(^{ + [streamingLifecycleManager.videoStreamStateMachine setToState:SDLVideoStreamStateStarting fromOldState:nil callEnterTransition:NO]; + + testVideoHeader = [[SDLV2ProtocolHeader alloc] initWithVersion:5]; + testVideoHeader.frameType = SDLFrameTypeSingle; + testVideoHeader.frameData = SDLFrameInfoStartServiceACK; + testVideoHeader.encrypted = YES; + testVideoHeader.serviceType = SDLServiceTypeVideo; + }); + + context(@"with data", ^{ + beforeEach(^{ + testVideoStartServicePayload = [[SDLControlFramePayloadVideoStartServiceAck alloc] initWithMTU:testMTU height:testVideoHeight width:testVideoWidth protocol:testVideoProtocol codec:testVideoCodec]; + testVideoMessage = [[SDLV2ProtocolMessage alloc] initWithHeader:testVideoHeader andPayload:testVideoStartServicePayload.data]; + [streamingLifecycleManager handleProtocolStartServiceACKMessage:testVideoMessage]; + }); + + it(@"should have set all the right properties", ^{ + expect([[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeVideo]).to(equal(testMTU)); + expect(CGSizeEqualToSize(streamingLifecycleManager.screenSize, CGSizeMake(testVideoWidth, testVideoHeight))).to(equal(YES)); + expect(streamingLifecycleManager.videoEncrypted).to(equal(YES)); + expect(streamingLifecycleManager.videoFormat).to(equal([[SDLVideoStreamingFormat alloc] initWithCodec:testVideoCodec protocol:testVideoProtocol])); + expect(streamingLifecycleManager.currentVideoStreamState).to(equal(SDLVideoStreamStateReady)); + }); + }); + + context(@"with missing data", ^{ + beforeEach(^{ + testVideoStartServicePayload = [[SDLControlFramePayloadVideoStartServiceAck alloc] initWithMTU:testMTU height:testVideoHeight width:testVideoWidth protocol:nil codec:nil]; + testVideoMessage = [[SDLV2ProtocolMessage alloc] initWithHeader:testVideoHeader andPayload:testVideoStartServicePayload.data]; + [streamingLifecycleManager handleProtocolStartServiceACKMessage:testVideoMessage]; + }); + + it(@"should fall back correctly", ^{ + expect(CGSizeEqualToSize(streamingLifecycleManager.screenSize, CGSizeMake(testVideoWidth, testVideoHeight))).to(equal(YES)); + expect(streamingLifecycleManager.videoFormat).to(equal([[SDLVideoStreamingFormat alloc] initWithCodec:SDLVideoStreamingCodecH264 protocol:SDLVideoStreamingProtocolRAW])); + expect(streamingLifecycleManager.currentVideoStreamState).to(equal(SDLVideoStreamStateReady)); + }); + }); + }); + + describe(@"after receiving a Video Start NAK", ^{ + __block SDLProtocolHeader *testVideoHeader = nil; + __block SDLProtocolMessage *testVideoMessage = nil; + __block SDLControlFramePayloadNak *testVideoStartNakPayload = nil; + + beforeEach(^{ + [streamingLifecycleManager.videoStreamStateMachine setToState:SDLVideoStreamStateStarting fromOldState:nil callEnterTransition:NO]; + + testVideoHeader = [[SDLV2ProtocolHeader alloc] initWithVersion:5]; + testVideoHeader.frameType = SDLFrameTypeSingle; + testVideoHeader.frameData = SDLFrameInfoStartServiceACK; + testVideoHeader.encrypted = YES; + testVideoHeader.serviceType = SDLServiceTypeVideo; + }); + + context(@"with data", ^{ + beforeEach(^{ + testVideoStartNakPayload = [[SDLControlFramePayloadNak alloc] initWithRejectedParams:@[[NSString stringWithUTF8String:SDLControlFrameHeightKey], [NSString stringWithUTF8String:SDLControlFrameVideoCodecKey]]]; + testVideoMessage = [[SDLV2ProtocolMessage alloc] initWithHeader:testVideoHeader andPayload:testVideoStartNakPayload.data]; + [streamingLifecycleManager handleProtocolStartServiceNAKMessage:testVideoMessage]; + }); + + it(@"should have retried with new properties", ^{ + expect(streamingLifecycleManager.preferredResolutionIndex).to(equal(1)); + expect(streamingLifecycleManager.preferredFormatIndex).to(equal(1)); + }); + }); + + context(@"with missing data", ^{ + beforeEach(^{ + testVideoStartNakPayload = [[SDLControlFramePayloadNak alloc] initWithRejectedParams:nil]; + testVideoMessage = [[SDLV2ProtocolMessage alloc] initWithHeader:testVideoHeader andPayload:testVideoStartNakPayload.data]; + [streamingLifecycleManager handleProtocolStartServiceNAKMessage:testVideoMessage]; + }); + + it(@"should end the service", ^{ + expect(streamingLifecycleManager.currentVideoStreamState).to(equal(SDLVideoStreamStateStopped)); + }); + }); + }); + + describe(@"after receiving a video end ACK", ^{ + __block SDLProtocolHeader *testVideoHeader = nil; + __block SDLProtocolMessage *testVideoMessage = nil; + + beforeEach(^{ + [streamingLifecycleManager.videoStreamStateMachine setToState:SDLVideoStreamStateStarting fromOldState:nil callEnterTransition:NO]; + + testVideoHeader = [[SDLV2ProtocolHeader alloc] initWithVersion:5]; + testVideoHeader.frameType = SDLFrameTypeSingle; + testVideoHeader.frameData = SDLFrameInfoEndServiceACK; + testVideoHeader.encrypted = NO; + testVideoHeader.serviceType = SDLServiceTypeVideo; + + testVideoMessage = [[SDLV2ProtocolMessage alloc] initWithHeader:testVideoHeader andPayload:nil]; + [streamingLifecycleManager handleProtocolEndServiceACKMessage:testVideoMessage]; + }); + + it(@"should have set all the right properties", ^{ + expect(streamingLifecycleManager.currentVideoStreamState).to(equal(SDLVideoStreamStateStopped)); + }); + }); + + describe(@"after receiving a video end NAK", ^{ + __block SDLProtocolHeader *testVideoHeader = nil; + __block SDLProtocolMessage *testVideoMessage = nil; + + beforeEach(^{ + [streamingLifecycleManager.videoStreamStateMachine setToState:SDLVideoStreamStateStarting fromOldState:nil callEnterTransition:NO]; + + testVideoHeader = [[SDLV2ProtocolHeader alloc] initWithVersion:5]; + testVideoHeader.frameType = SDLFrameTypeSingle; + testVideoHeader.frameData = SDLFrameInfoEndServiceNACK; + testVideoHeader.encrypted = NO; + testVideoHeader.serviceType = SDLServiceTypeVideo; + + testVideoMessage = [[SDLV2ProtocolMessage alloc] initWithHeader:testVideoHeader andPayload:nil]; + [streamingLifecycleManager handleProtocolEndServiceNAKMessage:testVideoMessage]; + }); + + it(@"should have set all the right properties", ^{ + expect(streamingLifecycleManager.currentVideoStreamState).to(equal(SDLVideoStreamStateStopped)); + }); + }); + + describe(@"after receiving an Audio Start ACK", ^{ + __block SDLProtocolHeader *testAudioHeader = nil; + __block SDLProtocolMessage *testAudioMessage = nil; + __block SDLControlFramePayloadAudioStartServiceAck *testAudioStartServicePayload = nil; + __block int64_t testMTU = 786579; + + beforeEach(^{ + [streamingLifecycleManager.audioStreamStateMachine setToState:SDLAudioStreamStateStarting fromOldState:nil callEnterTransition:NO]; + + testAudioHeader = [[SDLV2ProtocolHeader alloc] initWithVersion:5]; + testAudioHeader.frameType = SDLFrameTypeSingle; + testAudioHeader.frameData = SDLFrameInfoStartServiceACK; + testAudioHeader.encrypted = YES; + testAudioHeader.serviceType = SDLServiceTypeAudio; + + testAudioStartServicePayload = [[SDLControlFramePayloadAudioStartServiceAck alloc] initWithMTU:testMTU]; + testAudioMessage = [[SDLV2ProtocolMessage alloc] initWithHeader:testAudioHeader andPayload:testAudioStartServicePayload.data]; + [streamingLifecycleManager handleProtocolStartServiceACKMessage:testAudioMessage]; + }); + + it(@"should have set all the right properties", ^{ + expect([[SDLGlobals sharedGlobals] mtuSizeForServiceType:SDLServiceTypeAudio]).to(equal(testMTU)); + expect(streamingLifecycleManager.audioEncrypted).to(equal(YES)); + expect(streamingLifecycleManager.currentAudioStreamState).to(equal(SDLAudioStreamStateReady)); + }); + }); + + describe(@"after receiving an Audio Start NAK", ^{ + __block SDLProtocolHeader *testAudioHeader = nil; + __block SDLProtocolMessage *testAudioMessage = nil; + + beforeEach(^{ + [streamingLifecycleManager.videoStreamStateMachine setToState:SDLAudioStreamStateStarting fromOldState:nil callEnterTransition:NO]; + + testAudioHeader = [[SDLV2ProtocolHeader alloc] initWithVersion:5]; + testAudioHeader.frameType = SDLFrameTypeSingle; + testAudioHeader.frameData = SDLFrameInfoStartServiceNACK; + testAudioHeader.encrypted = NO; + testAudioHeader.serviceType = SDLServiceTypeAudio; + + testAudioMessage = [[SDLV2ProtocolMessage alloc] initWithHeader:testAudioHeader andPayload:nil]; + [streamingLifecycleManager handleProtocolEndServiceACKMessage:testAudioMessage]; + }); + + it(@"should have set all the right properties", ^{ + expect(streamingLifecycleManager.currentAudioStreamState).to(equal(SDLAudioStreamStateStopped)); + }); + }); + + describe(@"after receiving a audio end ACK", ^{ + __block SDLProtocolHeader *testAudioHeader = nil; + __block SDLProtocolMessage *testAudioMessage = nil; + + beforeEach(^{ + [streamingLifecycleManager.videoStreamStateMachine setToState:SDLAudioStreamStateStarting fromOldState:nil callEnterTransition:NO]; + + testAudioHeader = [[SDLV2ProtocolHeader alloc] initWithVersion:5]; + testAudioHeader.frameType = SDLFrameTypeSingle; + testAudioHeader.frameData = SDLFrameInfoEndServiceACK; + testAudioHeader.encrypted = NO; + testAudioHeader.serviceType = SDLServiceTypeAudio; + + testAudioMessage = [[SDLV2ProtocolMessage alloc] initWithHeader:testAudioHeader andPayload:nil]; + [streamingLifecycleManager handleProtocolEndServiceACKMessage:testAudioMessage]; + }); + + it(@"should have set all the right properties", ^{ + expect(streamingLifecycleManager.currentAudioStreamState).to(equal(SDLAudioStreamStateStopped)); + }); + }); + + describe(@"after receiving a audio end NAK", ^{ + __block SDLProtocolHeader *testAudioHeader = nil; + __block SDLProtocolMessage *testAudioMessage = nil; + + beforeEach(^{ + [streamingLifecycleManager.videoStreamStateMachine setToState:SDLAudioStreamStateStarting fromOldState:nil callEnterTransition:NO]; + + testAudioHeader = [[SDLV2ProtocolHeader alloc] initWithVersion:5]; + testAudioHeader.frameType = SDLFrameTypeSingle; + testAudioHeader.frameData = SDLFrameInfoEndServiceNACK; + testAudioHeader.encrypted = NO; + testAudioHeader.serviceType = SDLServiceTypeAudio; + + testAudioMessage = [[SDLV2ProtocolMessage alloc] initWithHeader:testAudioHeader andPayload:nil]; + [streamingLifecycleManager handleProtocolEndServiceNAKMessage:testAudioMessage]; + }); + + it(@"should have set all the right properties", ^{ + expect(streamingLifecycleManager.currentAudioStreamState).to(equal(SDLAudioStreamStateStopped)); + }); + }); + }); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/SDLStreamingMediaManagerSpec.m b/SmartDeviceLinkTests/SDLStreamingMediaManagerSpec.m new file mode 100644 index 000000000..404fa1f05 --- /dev/null +++ b/SmartDeviceLinkTests/SDLStreamingMediaManagerSpec.m @@ -0,0 +1,16 @@ +// +// SDLStreamingMediaManagerSpec.m +// SmartDeviceLink-iOS +// +#import +#import + +#import "SDLStreamingMediaManager.h" + +QuickSpecBegin(SDLStreamingMediaManagerSpec) + +describe(@"the streaming media manager", ^{ + +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/TestMultipleFilesConnectionManager.h b/SmartDeviceLinkTests/TestMultipleFilesConnectionManager.h new file mode 100644 index 000000000..91db7b6c9 --- /dev/null +++ b/SmartDeviceLinkTests/TestMultipleFilesConnectionManager.h @@ -0,0 +1,23 @@ +// +// TestMultipleFilesConnectionManager.h +// SmartDeviceLink-iOS +// +// Created by Nicole on 8/16/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "TestConnectionManager.h" +#import "SDLPutFileResponse.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface TestMultipleFilesConnectionManager : TestConnectionManager + +/** + * A response and error to pass into the last request's block + */ +@property (copy, nonatomic) NSMutableDictionary *responses; + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLinkTests/TestMultipleFilesConnectionManager.m b/SmartDeviceLinkTests/TestMultipleFilesConnectionManager.m new file mode 100644 index 000000000..ad239c0ed --- /dev/null +++ b/SmartDeviceLinkTests/TestMultipleFilesConnectionManager.m @@ -0,0 +1,42 @@ +// +// TestMultipleFilesConnectionManager.m +// SmartDeviceLink-iOS +// +// Created by Nicole on 8/16/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "TestMultipleFilesConnectionManager.h" +#import "SDLDeleteFile.h" +#import "SDLRPCRequest.h" +#import "SDLPutFile.h" +#import "SDLPutFileResponse.h" +#import "SDLNames.h" +#import "TestResponse.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation TestMultipleFilesConnectionManager + +- (void)sendManagerRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { + [super sendManagerRequest:request withResponseHandler:handler]; + + // Send a response if the request is a putfile + if ([[request name] isEqualToString:SDLNamePutFile]) { + 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]) { + SDLDeleteFile *deleteFileRequest = (SDLDeleteFile *)request; + TestResponse *response = self.responses[deleteFileRequest.syncFileName]; + + if (response == nil || handler == nil) { return; } + handler(request, response.testResponse, response.testError); + } +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLinkTests/TestProgressResponse.h b/SmartDeviceLinkTests/TestProgressResponse.h new file mode 100644 index 000000000..a98ccc5c4 --- /dev/null +++ b/SmartDeviceLinkTests/TestProgressResponse.h @@ -0,0 +1,19 @@ +// +// TestProgressResponse.h +// SmartDeviceLink-iOS +// +// Created by Nicole on 8/17/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import + +@interface TestProgressResponse : NSObject + +@property (strong, nonatomic) NSString *testFileName; +@property (nonatomic) float testUploadPercentage; +@property (strong, nonatomic) NSError *testError; + +- (instancetype)initWithFileName:(NSString *)testFileName testUploadPercentage:(float)testUploadPercentage error:(NSError *)testError; + +@end diff --git a/SmartDeviceLinkTests/TestProgressResponse.m b/SmartDeviceLinkTests/TestProgressResponse.m new file mode 100644 index 000000000..089d297db --- /dev/null +++ b/SmartDeviceLinkTests/TestProgressResponse.m @@ -0,0 +1,26 @@ +// +// TestProgressResponse.m +// SmartDeviceLink-iOS +// +// Created by Nicole on 8/17/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "TestProgressResponse.h" + +@implementation TestProgressResponse + +- (instancetype)initWithFileName:(NSString *)testFileName testUploadPercentage:(float)testUploadPercentage error:(NSError *)testError { + self = [super init]; + if (!self) { + return nil; + } + + _testFileName = testFileName; + _testUploadPercentage = testUploadPercentage; + _testError = testError; + + return self; +} + +@end diff --git a/SmartDeviceLinkTests/TestResponse.h b/SmartDeviceLinkTests/TestResponse.h new file mode 100644 index 000000000..326524daf --- /dev/null +++ b/SmartDeviceLinkTests/TestResponse.h @@ -0,0 +1,19 @@ +// +// TestResponse.h +// SmartDeviceLink-iOS +// +// Created by Nicole on 8/17/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import +#import "SDLPutFileResponse.h" + +@interface TestResponse : NSObject + +@property (strong, nonatomic) SDLRPCResponse *testResponse; +@property (strong, nonatomic) NSError *testError; + +- (instancetype)initWithResponse:(SDLRPCResponse *)testResponse error:(NSError *)testError; + +@end diff --git a/SmartDeviceLinkTests/TestResponse.m b/SmartDeviceLinkTests/TestResponse.m new file mode 100644 index 000000000..f949f3b1b --- /dev/null +++ b/SmartDeviceLinkTests/TestResponse.m @@ -0,0 +1,25 @@ +// +// TestResponse.m +// SmartDeviceLink-iOS +// +// Created by Nicole on 8/17/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "TestResponse.h" + +@implementation TestResponse + +- (instancetype)initWithResponse:(SDLRPCResponse *)testResponse error:(NSError *)testError { + self = [super init]; + if (!self) { + return nil; + } + + _testResponse = testResponse; + _testError = testError; + + return self; +} + +@end diff --git a/SmartDeviceLinkTests/TestUtilities/TestConnectionManager.h b/SmartDeviceLinkTests/TestUtilities/TestConnectionManager.h index 8d240335e..2dede3f0b 100644 --- a/SmartDeviceLinkTests/TestUtilities/TestConnectionManager.h +++ b/SmartDeviceLinkTests/TestUtilities/TestConnectionManager.h @@ -7,7 +7,6 @@ // #import - #import "SDLConnectionManagerType.h" #import "SDLNotificationConstants.h" @@ -39,7 +38,16 @@ NS_ASSUME_NONNULL_BEGIN * @param response The response to pass into the last request's block. * @param error The error to pass into the last request's block. */ -- (void)respondToLastRequestWithResponse:(__kindof SDLRPCResponse *_Nullable)response error:( NSError *_Nullable)error; +- (void)respondToLastRequestWithResponse:(__kindof SDLRPCResponse *_Nullable)response error:(NSError *_Nullable)error; + +/** + * Call the last request's block with a specific response, request, and error. + + @param response The RPC Response to pass into the last request's block. + @param requestNumber The request to pass into the last request's block. + @param error The error to pass into the last request's block. + */ +- (void)respondToRequestWithResponse:(__kindof SDLRPCResponse *)response requestNumber:(NSInteger)requestNumber error:(NSError *_Nullable)error; /** * Remove all received requests. @@ -48,4 +56,4 @@ NS_ASSUME_NONNULL_BEGIN @end -NS_ASSUME_NONNULL_END \ No newline at end of file +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLinkTests/TestUtilities/TestConnectionManager.m b/SmartDeviceLinkTests/TestUtilities/TestConnectionManager.m index 9bc410ced..bd9bd939d 100644 --- a/SmartDeviceLinkTests/TestUtilities/TestConnectionManager.m +++ b/SmartDeviceLinkTests/TestUtilities/TestConnectionManager.m @@ -7,7 +7,6 @@ // #import "TestConnectionManager.h" - #import "SDLRPCRequest.h" @@ -22,14 +21,13 @@ - (instancetype)init { } _receivedRequests = [NSMutableArray<__kindof SDLRPCRequest *> array]; - + return self; } - (void)sendManagerRequest:(__kindof SDLRPCRequest *)request withResponseHandler:(nullable SDLResponseHandler)handler { self.lastRequestBlock = handler; request.correlationID = [self test_nextCorrelationID]; - [self.receivedRequests addObject:request]; } @@ -37,6 +35,14 @@ - (void)respondToLastRequestWithResponse:(__kindof SDLRPCResponse *)response { [self respondToLastRequestWithResponse:response error:nil]; } +- (void)respondToRequestWithResponse:(__kindof SDLRPCResponse *)response requestNumber:(NSInteger)requestNumber error:(NSError *_Nullable)error { + if (self.lastRequestBlock != nil) { + self.lastRequestBlock([[self receivedRequests] objectAtIndex:requestNumber], response, error); + } else { + @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:@"Attempted to respond to last request, but there was no last request block" userInfo:nil]; + } +} + - (void)respondToLastRequestWithResponse:(__kindof SDLRPCResponse *_Nullable)response error:(NSError *_Nullable)error { if (self.lastRequestBlock != nil) { self.lastRequestBlock(self.receivedRequests.lastObject, response, error); diff --git a/SmartDeviceLinkTests/UtilitiesSpecs/HTTP Connection/SDLURLRequestTaskSpec.m b/SmartDeviceLinkTests/UtilitiesSpecs/HTTP Connection/SDLURLRequestTaskSpec.m deleted file mode 100644 index d78ff0c7f..000000000 --- a/SmartDeviceLinkTests/UtilitiesSpecs/HTTP Connection/SDLURLRequestTaskSpec.m +++ /dev/null @@ -1,140 +0,0 @@ -#import -#import -#import - -#import "SDLURLRequestTask.h" - - -QuickSpecBegin(SDLURLRequestTaskSpec) - -describe(@"a url request task", ^{ - __block SDLURLRequestTask *testTask = nil; - - describe(@"when the server returns correct data", ^{ - NSData *testData = [@"someData" dataUsingEncoding:NSUTF8StringEncoding]; - - __block NSData *testReturnData = nil; - __block NSURLResponse *testReturnResponse = nil; - __block NSError *testReturnError = nil; - - beforeEach(^{ - [OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest *request) { - return [request.URL.host isEqualToString:@"www.faketest.com"]; - } withStubResponse:^OHHTTPStubsResponse *(NSURLRequest *request) { - return [[OHHTTPStubsResponse responseWithData:testData statusCode:200 headers:nil] requestTime:0.5 responseTime:0]; - }]; - - NSURLRequest *someURLRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.faketest.com"]]; - - testTask = [[SDLURLRequestTask alloc] initWithURLRequest:someURLRequest completionHandler:^void(NSData *data, NSURLResponse *response, NSError *error) { - testReturnData = data; - testReturnResponse = response; - testReturnError = error; - }]; - }); - - afterEach(^{ - testTask = nil; - [OHHTTPStubs removeAllStubs]; - }); - - it(@"should return data", ^{ - expect(testReturnData).toEventually(equal(testData)); - }); - - it(@"should return a response", ^{ - expect(testReturnResponse).toEventuallyNot(beNil()); - }); - - it(@"should not return an error", ^{ - expect(testReturnError).toEventually(beNil()); - }); - }); - - describe(@"when the connection fails because there is no internet", ^{ - NSError *someNetworkError = [NSError errorWithDomain:NSURLErrorDomain code:kCFURLErrorNotConnectedToInternet userInfo:nil]; - - __block NSData *testReturnData = nil; - __block NSURLResponse *testReturnResponse = nil; - __block NSError *testReturnError = nil; - - beforeEach(^{ - [OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest *request) { - return [request.URL.host isEqualToString:@"www.faketest.com"]; - } withStubResponse:^OHHTTPStubsResponse *(NSURLRequest *request) { - return [OHHTTPStubsResponse responseWithError:someNetworkError]; - }]; - - NSURLRequest *someURLRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.faketest.com"]]; - - testTask = [[SDLURLRequestTask alloc] initWithURLRequest:someURLRequest completionHandler:^void(NSData *data, NSURLResponse *response, NSError *error) { - testReturnData = data; - testReturnResponse = response; - testReturnError = error; - }]; - }); - - afterEach(^{ - testTask = nil; - [OHHTTPStubs removeAllStubs]; - }); - - it(@"should return nil data", ^{ - expect(testReturnData).toEventually(beNil()); - }); - - it(@"should return a nil response", ^{ - expect(testReturnResponse).toEventually(beNil()); - }); - - it(@"should return an error", ^{ - expect(@(testReturnError.code)).toEventually(equal(@(someNetworkError.code))); - }); - }); - - describe(@"when the connection fails because it was cancelled", ^{ - NSData *testData = [@"testData" dataUsingEncoding:NSUTF8StringEncoding]; - - __block NSData *testReturnData = nil; - __block NSURLResponse *testReturnResponse = nil; - __block NSError *testReturnError = nil; - - beforeEach(^{ - [OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest *request) { - return [request.URL.host isEqualToString:@"www.faketest.com"]; - } withStubResponse:^OHHTTPStubsResponse *(NSURLRequest *request) { - return [[OHHTTPStubsResponse responseWithData:testData statusCode:200 headers:nil] requestTime:0.25 responseTime:0.25]; - }]; - - NSURLRequest *someURLRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.faketest.com"]]; - - - testTask = [[SDLURLRequestTask alloc] initWithURLRequest:someURLRequest completionHandler:^void(NSData *data, NSURLResponse *response, NSError *error) { - testReturnData = data; - testReturnResponse = response; - testReturnError = error; - }]; - - [testTask cancel]; - }); - - afterEach(^{ - testTask = nil; - [OHHTTPStubs removeAllStubs]; - }); - - it(@"should return nil data", ^{ - expect(testReturnData).toEventually(beNil()); - }); - - it(@"should return a nil response", ^{ - expect(testReturnResponse).toEventually(beNil()); - }); - - it(@"should return an error", ^{ - expect(@(testReturnError.code)).toEventually(equal(@(kCFURLErrorCancelled))); - }); - }); -}); - -QuickSpecEnd diff --git a/SmartDeviceLinkTests/UtilitiesSpecs/HTTP Connection/SDLURLSessionSpec.m b/SmartDeviceLinkTests/UtilitiesSpecs/HTTP Connection/SDLURLSessionSpec.m deleted file mode 100644 index ed613c8fb..000000000 --- a/SmartDeviceLinkTests/UtilitiesSpecs/HTTP Connection/SDLURLSessionSpec.m +++ /dev/null @@ -1,201 +0,0 @@ -#import -#import -#import - -#import "SDLURLSession.h" - -QuickSpecBegin(SDLURLSessionSpec) - -describe(@"the url session", ^{ - __block SDLURLSession *testSession = nil; - - describe(@"attempting to get good data", ^{ - context(@"from an https address", ^{ - context(@"uploading data", ^{ - NSData *testData = [@"testData" dataUsingEncoding:NSUTF8StringEncoding]; - NSArray *someJSONObject = @[@"one", @"two"]; - NSData *testJSONData = [NSJSONSerialization dataWithJSONObject:someJSONObject options:0 error:nil]; - - __block NSData *testReturnData = nil; - __block NSURLResponse *testReturnResponse = nil; - __block NSError *testReturnError = nil; - __block NSArray *testReturnJSONObject = nil; - - beforeEach(^{ - [OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest *request) { - if ([request.URL.host isEqualToString:@"www.faketest.com"]) { - testReturnJSONObject = [NSJSONSerialization JSONObjectWithData:request.HTTPBody options:0 error:nil]; - return YES; - } - - return NO; - } withStubResponse:^OHHTTPStubsResponse *(NSURLRequest *request) { - return [[OHHTTPStubsResponse responseWithData:testData statusCode:200 headers:nil] requestTime:0.5 responseTime:0]; - }]; - - testSession = [[SDLURLSession alloc] init]; - NSURLRequest *someURLRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.faketest.com"]]; - - [testSession uploadWithURLRequest:someURLRequest data:testJSONData completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - testReturnData = data; - testReturnResponse = response; - testReturnError = error; - }]; - }); - - afterEach(^{ - testSession = nil; - [OHHTTPStubs removeAllStubs]; - }); - - it(@"should have correct data", ^{ - expect(testReturnJSONObject).toEventually(equal(someJSONObject)); - expect(testReturnData).toEventually(equal(testData)); - expect(testReturnResponse).toEventuallyNot(beNil()); - expect(testReturnError).toEventually(beNil()); - }); - }); - - context(@"downloading data", ^{ - NSData *testData = [@"someData" dataUsingEncoding:NSUTF8StringEncoding]; - - __block NSData *testReturnData = nil; - __block NSURLResponse *testReturnResponse = nil; - __block NSError *testReturnError = nil; - - beforeEach(^{ - [OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest *request) { - return [request.URL.host isEqualToString:@"www.faketest.com"]; - } withStubResponse:^OHHTTPStubsResponse *(NSURLRequest *request) { - return [[OHHTTPStubsResponse responseWithData:testData statusCode:200 headers:nil] requestTime:0.5 responseTime:0]; - }]; - - testSession = [[SDLURLSession alloc] init]; - [testSession dataFromURL:[NSURL URLWithString:@"https://www.faketest.com"] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - testReturnData = data; - testReturnResponse = response; - testReturnError = error; - }]; - }); - - afterEach(^{ - testSession = nil; - [OHHTTPStubs removeAllStubs]; - }); - - it(@"should return correct info", ^{ - expect(testReturnData).toEventually(equal(testData)); - expect(testReturnResponse).toEventuallyNot(beNil()); - expect(testReturnError).toEventually(beNil()); - }); - }); - }); - - context(@"from an http address", ^{ - NSData *testData = [@"testData" dataUsingEncoding:NSUTF8StringEncoding]; - NSArray *someJSONObject = @[@"one", @"two"]; - NSData *testJSONData = [NSJSONSerialization dataWithJSONObject:someJSONObject options:0 error:nil]; - - __block NSString *testURLRequestComponent = nil; - - beforeEach(^{ - [OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest *request) { - if ([request.URL.host isEqualToString:@"www.faketest.com"]) { - testURLRequestComponent = request.URL.scheme; - return YES; - } - - return NO; - } withStubResponse:^OHHTTPStubsResponse *(NSURLRequest *request) { - return [[OHHTTPStubsResponse responseWithData:testData statusCode:200 headers:request.allHTTPHeaderFields] requestTime:0.5 responseTime:0]; - }]; - - testSession = [[SDLURLSession alloc] init]; - NSURLRequest *someURLRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.faketest.com"]]; - - [testSession uploadWithURLRequest:someURLRequest data:testJSONData completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {}]; - }); - - afterEach(^{ - testSession = nil; - [OHHTTPStubs removeAllStubs]; - }); - - it(@"should have called the HTTPS URL instead", ^{ - expect(testURLRequestComponent).toEventually(match(@"https")); - }); - }); - }); - - describe(@"when the connection fails because there is no internet", ^{ - NSError *someNetworkError = [NSError errorWithDomain:NSURLErrorDomain code:kCFURLErrorNotConnectedToInternet userInfo:nil]; - - __block NSData *testReturnData = nil; - __block NSURLResponse *testReturnResponse = nil; - __block NSError *testReturnError = nil; - - beforeEach(^{ - [OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest *request) { - return [request.URL.host isEqualToString:@"www.faketest.com"]; - } withStubResponse:^OHHTTPStubsResponse *(NSURLRequest *request) { - return [OHHTTPStubsResponse responseWithError:someNetworkError]; - }]; - - testSession = [[SDLURLSession alloc] init]; - [testSession dataFromURL:[NSURL URLWithString:@"http://www.faketest.com"] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - testReturnData = data; - testReturnResponse = response; - testReturnError = error; - }]; - }); - - afterEach(^{ - testSession = nil; - [OHHTTPStubs removeAllStubs]; - }); - - it(@"should return nil data", ^{ - expect(testReturnData).toEventually(beNil()); - expect(testReturnResponse).toEventually(beNil()); - expect(@(testReturnError.code)).toEventually(equal(@(someNetworkError.code))); - }); - }); - - describe(@"when the connection fails because it was cancelled", ^{ - NSData *testData = [@"testData" dataUsingEncoding:NSUTF8StringEncoding]; - - __block NSData *testReturnData = nil; - __block NSURLResponse *testReturnResponse = nil; - __block NSError *testReturnError = nil; - - beforeEach(^{ - [OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest *request) { - return [request.URL.host isEqualToString:@"www.faketest.com"]; - } withStubResponse:^OHHTTPStubsResponse *(NSURLRequest *request) { - return [[OHHTTPStubsResponse responseWithData:testData statusCode:200 headers:nil] requestTime:0.25 responseTime:0.25]; - }]; - - testSession = [[SDLURLSession alloc] init]; - [testSession dataFromURL:[NSURL URLWithString:@"http://www.faketest.com"] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - testReturnData = data; - testReturnResponse = response; - testReturnError = error; - }]; - - [testSession cancelAllTasks]; - }); - - afterEach(^{ - testSession = nil; - [OHHTTPStubs removeAllStubs]; - }); - - it(@"should return nil data", ^{ - expect(testReturnData).toEventually(beNil()); - expect(testReturnResponse).toEventually(beNil()); - expect(@(testReturnError.code)).toEventually(equal(@(kCFURLErrorCancelled))); - }); - }); -}); - -QuickSpecEnd diff --git a/SmartDeviceLinkTests/UtilitiesSpecs/SDLGlobalsSpec.m b/SmartDeviceLinkTests/UtilitiesSpecs/SDLGlobalsSpec.m index 191f7b705..7d203b75d 100644 --- a/SmartDeviceLinkTests/UtilitiesSpecs/SDLGlobalsSpec.m +++ b/SmartDeviceLinkTests/UtilitiesSpecs/SDLGlobalsSpec.m @@ -26,7 +26,7 @@ }); it(@"should give the v1 MTU size", ^{ - expect([testGlobals mtuSizeForServiceType:SDLServiceType_RPC]).to(equal(SDLV1MTUSize)); + expect([testGlobals mtuSizeForServiceType:SDLServiceTypeRPC]).to(equal(SDLV1MTUSize)); }); }); @@ -52,24 +52,24 @@ context(@"when protocol version is 1 - 2", ^{ it(@"should return the correct value when protocol version is 1", ^{ testGlobals.maxHeadUnitVersion = @"1.0.0"; - expect([testGlobals mtuSizeForServiceType:SDLServiceType_RPC]).to(equal(SDLV1MTUSize)); + expect([testGlobals mtuSizeForServiceType:SDLServiceTypeRPC]).to(equal(SDLV1MTUSize)); }); it(@"should return the correct value when protocol version is 2", ^{ testGlobals.maxHeadUnitVersion = @"2.0.0"; - expect([testGlobals mtuSizeForServiceType:SDLServiceType_RPC]).to(equal(SDLV1MTUSize)); + 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"; - expect([testGlobals mtuSizeForServiceType:SDLServiceType_RPC]).to(equal(SDLV3MTUSize)); + expect([testGlobals mtuSizeForServiceType:SDLServiceTypeRPC]).to(equal(SDLV3MTUSize)); }); it(@"should return the correct value when protocol version is 4", ^{ testGlobals.maxHeadUnitVersion = @"4.0.0"; - expect([testGlobals mtuSizeForServiceType:SDLServiceType_RPC]).to(equal(SDLV3MTUSize)); + expect([testGlobals mtuSizeForServiceType:SDLServiceTypeRPC]).to(equal(SDLV3MTUSize)); }); describe(@"when the max proxy version is lower than max head unit version", ^{ @@ -79,7 +79,7 @@ }); it(@"should return the v1 - 2 value", ^{ - expect([testGlobals mtuSizeForServiceType:SDLServiceType_RPC]).to(equal(SDLV1MTUSize)); + expect([testGlobals mtuSizeForServiceType:SDLServiceTypeRPC]).to(equal(SDLV1MTUSize)); }); }); }); @@ -96,44 +96,44 @@ context(@"Setting the RPC service MTU", ^{ beforeEach(^{ - [testGlobals setDynamicMTUSize:dynamicMTUSize1 forServiceType:SDLServiceType_RPC]; + [testGlobals setDynamicMTUSize:dynamicMTUSize1 forServiceType:SDLServiceTypeRPC]; }); it(@"should set the RPC service MTU", ^{ - expect([testGlobals mtuSizeForServiceType:SDLServiceType_RPC]).to(equal(dynamicMTUSize1)); + expect([testGlobals mtuSizeForServiceType:SDLServiceTypeRPC]).to(equal(dynamicMTUSize1)); }); it(@"should have the video service fall back to the RPC service MTU", ^{ - expect([testGlobals mtuSizeForServiceType:SDLServiceType_Video]).to(equal(dynamicMTUSize1)); + expect([testGlobals mtuSizeForServiceType:SDLServiceTypeVideo]).to(equal(dynamicMTUSize1)); }); }); context(@"setting the video service MTU", ^{ beforeEach(^{ - [testGlobals setDynamicMTUSize:dynamicMTUSize1 forServiceType:SDLServiceType_Video]; + [testGlobals setDynamicMTUSize:dynamicMTUSize1 forServiceType:SDLServiceTypeVideo]; }); it(@"should not set the RPC service MTU", ^{ - expect([testGlobals mtuSizeForServiceType:SDLServiceType_RPC]).to(equal(SDLV3MTUSize)); + expect([testGlobals mtuSizeForServiceType:SDLServiceTypeRPC]).to(equal(SDLV3MTUSize)); }); it(@"should have the video service fall back to the RPC service MTU", ^{ - expect([testGlobals mtuSizeForServiceType:SDLServiceType_Video]).to(equal(dynamicMTUSize1)); + expect([testGlobals mtuSizeForServiceType:SDLServiceTypeVideo]).to(equal(dynamicMTUSize1)); }); }); context(@"setting both the video service and RPC service MTU", ^{ beforeEach(^{ - [testGlobals setDynamicMTUSize:dynamicMTUSize1 forServiceType:SDLServiceType_RPC]; - [testGlobals setDynamicMTUSize:dynamicMTUSize2 forServiceType:SDLServiceType_Video]; + [testGlobals setDynamicMTUSize:dynamicMTUSize1 forServiceType:SDLServiceTypeRPC]; + [testGlobals setDynamicMTUSize:dynamicMTUSize2 forServiceType:SDLServiceTypeVideo]; }); it(@"should set the RPC service MTU", ^{ - expect([testGlobals mtuSizeForServiceType:SDLServiceType_RPC]).to(equal(dynamicMTUSize1)); + expect([testGlobals mtuSizeForServiceType:SDLServiceTypeRPC]).to(equal(dynamicMTUSize1)); }); it(@"should have the video service fall back to the RPC service MTU", ^{ - expect([testGlobals mtuSizeForServiceType:SDLServiceType_Video]).to(equal(dynamicMTUSize2)); + expect([testGlobals mtuSizeForServiceType:SDLServiceTypeVideo]).to(equal(dynamicMTUSize2)); }); }); }); diff --git a/SmartDeviceLinkTests/UtilitiesSpecs/SDLJingleSpec.m b/SmartDeviceLinkTests/UtilitiesSpecs/SDLJingleSpec.m deleted file mode 100644 index ed727abbb..000000000 --- a/SmartDeviceLinkTests/UtilitiesSpecs/SDLJingleSpec.m +++ /dev/null @@ -1,24 +0,0 @@ -// -// SDLJingleSpec.m -// SmartDeviceLink-iOS - -#import -#import -#import - -#import "SDLJingle.h" - - -QuickSpecBegin(SDLJingleSpec) - -describe(@"retrieving jingle strings", ^{ - it(@"returns each jingle correctly", ^{ - expect([SDLJingle NEGATIVE_JINGLE]).to(equal(@"NEGATIVE_JINGLE")); - expect([SDLJingle POSITIVE_JINGLE]).to(equal(@"POSITIVE_JINGLE")); - expect([SDLJingle LISTEN_JINGLE]).to(equal(@"LISTEN_JINGLE")); - expect([SDLJingle INITIAL_JINGLE]).to(equal(@"INITIAL_JINGLE")); - expect([SDLJingle HELP_JINGLE]).to(equal(@"HELP_JINGLE")); - }); -}); - -QuickSpecEnd diff --git a/SmartDeviceLinkTests/UtilitiesSpecs/Touches/SDLPinchGestureSpec.m b/SmartDeviceLinkTests/UtilitiesSpecs/Touches/SDLPinchGestureSpec.m index 99293ac8c..61c82061e 100644 --- a/SmartDeviceLinkTests/UtilitiesSpecs/Touches/SDLPinchGestureSpec.m +++ b/SmartDeviceLinkTests/UtilitiesSpecs/Touches/SDLPinchGestureSpec.m @@ -15,6 +15,7 @@ #import "SDLPinchGesture.h" #import "SDLTouchCoord.h" #import "SDLTouchEvent.h" +#import "SDLTouch.h" QuickSpecBegin(SDLPinchGestureSpec) @@ -46,8 +47,8 @@ SDLTouchEvent* firstTouchEvent = [[SDLTouchEvent alloc] init]; firstTouchEvent.touchEventId = @0; - firstTouchEvent.coord = [NSMutableArray arrayWithObject:firstCoord]; - firstTouchEvent.timeStamp = [NSMutableArray arrayWithObject:@(timeStamp)]; + firstTouchEvent.coord = [NSArray arrayWithObject:firstCoord]; + firstTouchEvent.timeStamp = [NSArray arrayWithObject:@(timeStamp)]; SDLTouch* firstTouch = [[SDLTouch alloc] initWithTouchEvent:firstTouchEvent]; @@ -57,8 +58,8 @@ SDLTouchEvent* secondTouchEvent = [[SDLTouchEvent alloc] init]; secondTouchEvent.touchEventId = @1; - secondTouchEvent.coord = [NSMutableArray arrayWithObject:secondCoord]; - secondTouchEvent.timeStamp = [NSMutableArray arrayWithObject:@(secondTimeStamp)]; + secondTouchEvent.coord = [NSArray arrayWithObject:secondCoord]; + secondTouchEvent.timeStamp = [NSArray arrayWithObject:@(secondTimeStamp)]; SDLTouch* secondTouch = [[SDLTouch alloc] initWithTouchEvent:secondTouchEvent]; @@ -103,8 +104,8 @@ SDLTouchEvent* firstTouchEvent = [[SDLTouchEvent alloc] init]; firstTouchEvent.touchEventId = @0; - firstTouchEvent.coord = [NSMutableArray arrayWithObject:firstCoord]; - firstTouchEvent.timeStamp = [NSMutableArray arrayWithObject:@(timeStamp)]; + firstTouchEvent.coord = [NSArray arrayWithObject:firstCoord]; + firstTouchEvent.timeStamp = [NSArray arrayWithObject:@(timeStamp)]; SDLTouch* firstTouch = [[SDLTouch alloc] initWithTouchEvent:firstTouchEvent]; @@ -114,8 +115,8 @@ SDLTouchEvent* secondTouchEvent = [[SDLTouchEvent alloc] init]; secondTouchEvent.touchEventId = @1; - secondTouchEvent.coord = [NSMutableArray arrayWithObject:secondCoord]; - secondTouchEvent.timeStamp = [NSMutableArray arrayWithObject:@(secondTimeStamp)]; + secondTouchEvent.coord = [NSArray arrayWithObject:secondCoord]; + secondTouchEvent.timeStamp = [NSArray arrayWithObject:@(secondTimeStamp)]; SDLTouch* secondTouch = [[SDLTouch alloc] initWithTouchEvent:secondTouchEvent]; @@ -128,13 +129,13 @@ SDLTouchEvent* newFirstTouchEvent = [[SDLTouchEvent alloc] init]; newFirstTouchEvent.touchEventId = @0; - newFirstTouchEvent.coord = [NSMutableArray arrayWithObject:newCoord]; - newFirstTouchEvent.timeStamp = [NSMutableArray arrayWithObject:@(newTimeStamp)]; + newFirstTouchEvent.coord = [NSArray arrayWithObject:newCoord]; + newFirstTouchEvent.timeStamp = [NSArray arrayWithObject:@(newTimeStamp)]; SDLTouchEvent* newSecondTouchEvent = [[SDLTouchEvent alloc] init]; newSecondTouchEvent.touchEventId = @1; - newSecondTouchEvent.coord = [NSMutableArray arrayWithObject:newCoord]; - newSecondTouchEvent.timeStamp = [NSMutableArray arrayWithObject:@(newTimeStamp)]; + newSecondTouchEvent.coord = [NSArray arrayWithObject:newCoord]; + newSecondTouchEvent.timeStamp = [NSArray arrayWithObject:@(newTimeStamp)]; newFirstTouch = [[SDLTouch alloc] initWithTouchEvent:newFirstTouchEvent]; newSecondTouch = [[SDLTouch alloc] initWithTouchEvent:newSecondTouchEvent]; @@ -179,4 +180,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLinkTests/UtilitiesSpecs/Touches/SDLTouchManagerSpec.m b/SmartDeviceLinkTests/UtilitiesSpecs/Touches/SDLTouchManagerSpec.m index 21d78c071..43a2f6fab 100644 --- a/SmartDeviceLinkTests/UtilitiesSpecs/Touches/SDLTouchManagerSpec.m +++ b/SmartDeviceLinkTests/UtilitiesSpecs/Touches/SDLTouchManagerSpec.m @@ -12,33 +12,46 @@ #import #import +#import "SDLNotificationConstants.h" +#import "SDLFocusableItemLocator.h" #import "SDLOnTouchEvent.h" +#import "SDLPinchGesture.h" +#import "SDLRPCNotificationNotification.h" #import "SDLTouchCoord.h" #import "SDLTouchEvent.h" #import "SDLTouchManager.h" +#import "SDLTouchManagerDelegate.h" #import "SDLTouchType.h" +#import "SDLTouch.h" + +@interface SDLTouchManager () + +@property (nonatomic, strong, nullable) SDLTouch *previousTouch; +@property (nonatomic, strong, nullable) SDLTouch *singleTapTouch; +@property (nonatomic, assign) CGFloat previousPinchDistance; +@property (nonatomic, strong, nullable) SDLPinchGesture *currentPinchGesture; +@property (nonatomic, strong, nullable) dispatch_source_t singleTapTimer; +@end QuickSpecBegin(SDLTouchManagerSpec) describe(@"SDLTouchManager Tests", ^{ - - __block SDLTouchManager* touchManager; - + __block SDLTouchManager *touchManager; + context(@"initializing", ^{ it(@"should correctly have default properties", ^{ - SDLTouchManager* touchManager = [[SDLTouchManager alloc] init]; + SDLTouchManager* touchManager = [[SDLTouchManager alloc] initWithHitTester:nil]; expect(touchManager.touchEventDelegate).to(beNil()); expect(@(touchManager.tapDistanceThreshold)).to(equal(@50)); expect(@(touchManager.tapTimeThreshold)).to(beCloseTo(@0.4).within(0.0001)); expect(@(touchManager.movementTimeThreshold)).to(beCloseTo(@0.05).within(0.0001)); expect(@(touchManager.isTouchEnabled)).to(beTruthy()); }); - }); - - xdescribe(@"touch events", ^{ + + describe(@"touch events", ^{ typedef void (^DelegateCallbackBlock)(NSInvocation* invocation); - + __block id delegateMock; __block CGPoint controlPoint; __block BOOL didCallSingleTap; @@ -46,564 +59,865 @@ __block BOOL didCallBeginPan; __block BOOL didCallMovePan; __block BOOL didCallEndPan; + __block BOOL didCallCancelPan; __block BOOL didCallBeginPinch; __block BOOL didCallMovePinch; __block BOOL didCallEndPinch; - + __block BOOL didCallCancelPinch; + + __block BOOL expectedDidCallSingleTap; + __block BOOL expectedDidCallDoubleTap; + __block BOOL expectedDidCallBeginPan; + __block BOOL expectedDidCallMovePan; + __block BOOL expectedDidCallEndPan; + __block BOOL expectedDidCallCancelPan; + __block BOOL expectedDidCallBeginPinch; + __block BOOL expectedDidCallMovePinch; + __block BOOL expectedDidCallEndPinch; + __block BOOL expectedDidCallCancelPinch; + __block DelegateCallbackBlock singleTapTests; __block DelegateCallbackBlock doubleTapTests; __block DelegateCallbackBlock panStartTests; __block DelegateCallbackBlock panMoveTests; __block DelegateCallbackBlock panEndTests; + __block DelegateCallbackBlock panCanceledTests; __block DelegateCallbackBlock pinchStartTests; __block DelegateCallbackBlock pinchMoveTests; __block DelegateCallbackBlock pinchEndTests; - + __block DelegateCallbackBlock pinchCanceledTests; + __block CGFloat additionalWaitTime = 1.0f; - + + __block NSUInteger numTimesHandlerCalled; + __block NSUInteger expectedNumTimesHandlerCalled; + __block void (^performTouchEvent)(SDLTouchManager* touchManager, SDLOnTouchEvent* onTouchEvent) = ^(SDLTouchManager* touchManager, SDLOnTouchEvent* onTouchEvent) { - SEL onOnTouchEvent = NSSelectorFromString(@"onOnTouchEvent:"); - ((void ( *)(id, SEL, id))[touchManager methodForSelector:onOnTouchEvent])(touchManager, onOnTouchEvent, onTouchEvent); + SDLRPCNotificationNotification *notification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveTouchEventNotification object:nil rpcNotification:onTouchEvent]; + [[NSNotificationCenter defaultCenter] postNotification:notification]; }; - + beforeEach(^{ - touchManager = [[SDLTouchManager alloc] init]; + touchManager = [[SDLTouchManager alloc] initWithHitTester:nil]; delegateMock = OCMProtocolMock(@protocol(SDLTouchManagerDelegate)); touchManager.touchEventDelegate = delegateMock; + touchManager.touchEventHandler = ^(SDLTouch *touch, SDLTouchType type) { + numTimesHandlerCalled++; + }; + touchManager.tapTimeThreshold = 0.4; + controlPoint = CGPointMake(100, 200); - + didCallSingleTap = NO; [[[[delegateMock stub] andDo:^(NSInvocation* invocation) { didCallSingleTap = YES; - singleTapTests(invocation); - }] ignoringNonObjectArgs] touchManager:[OCMArg any] didReceiveSingleTapAtPoint:CGPointZero]; - + }] ignoringNonObjectArgs] touchManager:[OCMArg any] didReceiveSingleTapForView:[OCMArg any] atPoint:CGPointZero]; singleTapTests = ^(NSInvocation* invocation) { failWithMessage(@"Failed to call Single Tap Tests."); }; - + didCallDoubleTap = NO; [[[[delegateMock stub] andDo:^(NSInvocation* invocation) { didCallDoubleTap = YES; - doubleTapTests(invocation); - }] ignoringNonObjectArgs] touchManager:[OCMArg any] didReceiveDoubleTapAtPoint:CGPointZero]; - + }] ignoringNonObjectArgs] touchManager:[OCMArg any] didReceiveDoubleTapForView:[OCMArg any] atPoint:CGPointZero]; doubleTapTests = ^(NSInvocation* invocation) { failWithMessage(@"Failed to call Double Tap Tests."); }; - + didCallBeginPan = NO; [[[[delegateMock stub] andDo:^(NSInvocation* invocation) { didCallBeginPan = YES; - panStartTests(invocation); - }] ignoringNonObjectArgs] touchManager:[OCMArg any] panningDidStartAtPoint:CGPointZero]; - + }] ignoringNonObjectArgs] touchManager:[OCMArg any] panningDidStartInView:[OCMArg any] atPoint:CGPointZero]; panStartTests = ^(NSInvocation* invocation) { failWithMessage(@"Failed to call Pan Start Tests."); }; - + didCallMovePan = NO; [[[[delegateMock stub] andDo:^(NSInvocation* invocation) { didCallMovePan = YES; - panMoveTests(invocation); }] ignoringNonObjectArgs] touchManager:[OCMArg any] didReceivePanningFromPoint:CGPointZero toPoint:CGPointZero]; - panMoveTests = ^(NSInvocation* invocation) { failWithMessage(@"Failed to call Pan Move Tests."); }; - + didCallEndPan = NO; [[[[delegateMock stub] andDo:^(NSInvocation* invocation) { didCallEndPan = YES; - panEndTests(invocation); - }] ignoringNonObjectArgs] touchManager:[OCMArg any] panningDidEndAtPoint:CGPointZero]; - + }] ignoringNonObjectArgs] touchManager:[OCMArg any] panningDidEndInView:[OCMArg any] atPoint:CGPointZero]; panEndTests = ^(NSInvocation* invocation) { failWithMessage(@"Failed to call Pan End Tests."); }; - + + didCallCancelPan = NO; + [[[[delegateMock stub] andDo:^(NSInvocation *invocation) { + didCallCancelPan = YES; + panCanceledTests(invocation); + }] ignoringNonObjectArgs] touchManager:[OCMArg any] panningCanceledAtPoint:CGPointZero]; + panCanceledTests = ^(NSInvocation* invocation) { + failWithMessage(@"Failed to call Pan Cancel Tests."); + }; + didCallBeginPinch = NO; [[[[delegateMock stub] andDo:^(NSInvocation* invocation) { didCallBeginPinch = YES; - pinchStartTests(invocation); - }] ignoringNonObjectArgs] touchManager:[OCMArg any] pinchDidStartAtCenterPoint:CGPointZero]; - + }] ignoringNonObjectArgs] touchManager:[OCMArg any] pinchDidStartInView:[OCMArg any] atCenterPoint:CGPointZero]; pinchStartTests = ^(NSInvocation* invocation) { failWithMessage(@"Failed to call Pinch Start Tests."); }; - + didCallMovePinch = NO; [[[[delegateMock stub] andDo:^(NSInvocation* invocation) { didCallMovePinch = YES; - pinchMoveTests(invocation); }] ignoringNonObjectArgs] touchManager:[OCMArg any] didReceivePinchAtCenterPoint:CGPointZero withScale:0]; - pinchMoveTests = ^(NSInvocation* invocation) { failWithMessage(@"Failed to call Pinch Move Tests."); }; - + didCallEndPinch = NO; [[[[delegateMock stub] andDo:^(NSInvocation* invocation) { didCallEndPinch = YES; - pinchEndTests(invocation); - }] ignoringNonObjectArgs] touchManager:[OCMArg any] pinchDidEndAtCenterPoint:CGPointZero]; - + }] ignoringNonObjectArgs] touchManager:[OCMArg any] pinchDidEndInView:[OCMArg any] atCenterPoint:CGPointZero]; pinchEndTests = ^(NSInvocation* invocation) { failWithMessage(@"Failed to call Pinch End Tests."); }; + + didCallCancelPinch = NO; + [[[[delegateMock stub] andDo:^(NSInvocation *invocation) { + didCallCancelPinch = YES; + pinchCanceledTests(invocation); + }] ignoringNonObjectArgs] touchManager:[OCMArg any] pinchCanceledAtCenterPoint:CGPointZero]; + pinchCanceledTests = ^(NSInvocation* invocation) { + failWithMessage(@"Failed to call Pinch Cancel Tests."); + }; + + expectedDidCallSingleTap = NO; + expectedDidCallDoubleTap = NO; + expectedDidCallBeginPan = NO; + expectedDidCallMovePan = NO; + expectedDidCallEndPan = NO; + expectedDidCallCancelPan = NO; + expectedDidCallBeginPinch = NO; + expectedDidCallMovePinch = NO; + expectedDidCallEndPinch = NO; + expectedDidCallCancelPinch = NO; + + numTimesHandlerCalled = 0; + expectedNumTimesHandlerCalled = 0; }); - - describe(@"single finger", ^{ + + describe(@"When receiving a tap gesture", ^{ __block SDLTouchCoord* firstTouchCoord; __block NSUInteger firstTouchTimeStamp; - __block SDLOnTouchEvent* firstOnTouchEventStart; __block SDLOnTouchEvent* firstOnTouchEventEnd; - + beforeEach(^{ firstTouchCoord = [[SDLTouchCoord alloc] init]; firstTouchCoord.x = @(controlPoint.x); firstTouchCoord.y = @(controlPoint.y); - firstTouchTimeStamp = [[NSDate date] timeIntervalSince1970] * 1000.0; - + SDLTouchEvent* touchEvent = [[SDLTouchEvent alloc] init]; touchEvent.touchEventId = @0; - touchEvent.coord = [NSMutableArray arrayWithObject:firstTouchCoord]; - touchEvent.timeStamp = [NSMutableArray arrayWithObject:@(firstTouchTimeStamp)]; - + touchEvent.coord = [NSArray arrayWithObject:firstTouchCoord]; + touchEvent.timeStamp = [NSArray arrayWithObject:@(firstTouchTimeStamp)]; + firstOnTouchEventStart = [[SDLOnTouchEvent alloc] init]; - firstOnTouchEventStart.type = SDLTouchType.BEGIN; - firstOnTouchEventStart.event = [NSMutableArray arrayWithObject:touchEvent]; - + firstOnTouchEventStart.type = SDLTouchTypeBegin; + firstOnTouchEventStart.event = [NSArray arrayWithObject:touchEvent]; + firstOnTouchEventEnd = [[SDLOnTouchEvent alloc] init]; - firstOnTouchEventEnd.type = SDLTouchType.END; - firstOnTouchEventEnd.event = [NSMutableArray arrayWithObject:touchEvent]; + firstOnTouchEventEnd.type = SDLTouchTypeEnd; + firstOnTouchEventEnd.event = [NSArray arrayWithObject:touchEvent]; }); - + describe(@"when receiving a single tap", ^{ it(@"should correctly handle a single tap", ^{ - singleTapTests = ^(NSInvocation* invocation) { __unsafe_unretained SDLTouchManager* touchManagerCallback; - CGPoint point; - [invocation getArgument:&touchManagerCallback atIndex:2]; - [invocation getArgument:&point atIndex:3]; - + [invocation getArgument:&point atIndex:4]; + expect(touchManagerCallback).to(equal(touchManager)); expect(@(CGPointEqualToPoint(point, controlPoint))).to(beTruthy()); }; - - performTouchEvent(touchManager, firstOnTouchEventStart); + performTouchEvent(touchManager, firstOnTouchEventStart); performTouchEvent(touchManager, firstOnTouchEventEnd); - - expect(@(didCallSingleTap)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beTruthy()); - expect(@(didCallDoubleTap)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallBeginPan)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallMovePan)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallEndPan)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallBeginPinch)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallMovePinch)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallEndPinch)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); + + expectedDidCallSingleTap = YES; + expectedNumTimesHandlerCalled = 2; }); }); - + describe(@"when receiving a double tap", ^{ __block CGPoint averagePoint; - __block SDLTouchEvent* secondTouchEvent; - __block SDLOnTouchEvent* secondOnTouchEventStart; __block SDLOnTouchEvent* secondOnTouchEventEnd; - + beforeEach(^{ secondOnTouchEventStart = [[SDLOnTouchEvent alloc] init]; - secondOnTouchEventStart.type = SDLTouchType.BEGIN; - + secondOnTouchEventStart.type = SDLTouchTypeBegin; + secondOnTouchEventEnd = [[SDLOnTouchEvent alloc] init]; - secondOnTouchEventEnd.type = SDLTouchType.END; - + secondOnTouchEventEnd.type = SDLTouchTypeEnd; + secondTouchEvent = [[SDLTouchEvent alloc] init]; secondTouchEvent.touchEventId = @0; NSUInteger secondTouchTimeStamp = firstTouchTimeStamp + (touchManager.tapTimeThreshold - 0.1) * 1000; - secondTouchEvent.timeStamp = [NSMutableArray arrayWithObject:@(secondTouchTimeStamp)]; + secondTouchEvent.timeStamp = [NSArray arrayWithObject:@(secondTouchTimeStamp)]; }); - + context(@"near the same point", ^{ beforeEach(^{ SDLTouchCoord* touchCoord = [[SDLTouchCoord alloc] init]; touchCoord.x = @(firstTouchCoord.x.floatValue + touchManager.tapDistanceThreshold); touchCoord.y = @(firstTouchCoord.y.floatValue + touchManager.tapDistanceThreshold); - - secondTouchEvent.coord = [NSMutableArray arrayWithObject:touchCoord]; - - secondOnTouchEventStart.event = [NSMutableArray arrayWithObject:secondTouchEvent]; - - secondOnTouchEventEnd.event = [NSMutableArray arrayWithObject:secondTouchEvent]; - + + secondTouchEvent.coord = [NSArray arrayWithObject:touchCoord]; + secondOnTouchEventStart.event = [NSArray arrayWithObject:secondTouchEvent]; + secondOnTouchEventEnd.event = [NSArray arrayWithObject:secondTouchEvent]; + averagePoint = CGPointMake((firstTouchCoord.x.floatValue + touchCoord.x.floatValue) / 2.0f, (firstTouchCoord.y.floatValue + touchCoord.y.floatValue) / 2.0f); }); - + it(@"should issue delegate callbacks", ^{ doubleTapTests = ^(NSInvocation* invocation) { __unsafe_unretained SDLTouchManager* touchManagerCallback; - CGPoint point; - [invocation getArgument:&touchManagerCallback atIndex:2]; - [invocation getArgument:&point atIndex:3]; - + [invocation getArgument:&point atIndex:4]; + expect(touchManagerCallback).to(equal(touchManager)); expect(@(CGPointEqualToPoint(point, averagePoint))).to(beTruthy()); }; - + performTouchEvent(touchManager, firstOnTouchEventStart); performTouchEvent(touchManager, firstOnTouchEventEnd); performTouchEvent(touchManager, secondOnTouchEventStart); performTouchEvent(touchManager, secondOnTouchEventEnd); - expect(@(didCallSingleTap)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallDoubleTap)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beTruthy()); - expect(@(didCallBeginPan)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallMovePan)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallEndPan)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallBeginPinch)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallMovePinch)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallEndPinch)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); + expectedDidCallDoubleTap = YES; + expectedNumTimesHandlerCalled = 4; }); }); - + context(@"not near the same point", ^{ - beforeEach(^{ + it(@"should should not issue delegate callbacks", ^{ SDLTouchCoord* touchCoord = [[SDLTouchCoord alloc] init]; touchCoord.x = @(firstTouchCoord.x.floatValue + touchManager.tapDistanceThreshold + 1); touchCoord.y = @(firstTouchCoord.y.floatValue + touchManager.tapDistanceThreshold + 1); - - secondTouchEvent.coord = [NSMutableArray arrayWithObject:touchCoord]; - - secondOnTouchEventStart.event = [NSMutableArray arrayWithObject:secondTouchEvent]; - - secondOnTouchEventEnd.event = [NSMutableArray arrayWithObject:secondTouchEvent]; - }); - - it(@"should should not issue delegate callbacks", ^{ + + secondTouchEvent.coord = [NSArray arrayWithObject:touchCoord]; + secondOnTouchEventStart.event = [NSArray arrayWithObject:secondTouchEvent]; + secondOnTouchEventEnd.event = [NSArray arrayWithObject:secondTouchEvent]; + performTouchEvent(touchManager, firstOnTouchEventStart); performTouchEvent(touchManager, firstOnTouchEventEnd); performTouchEvent(touchManager, secondOnTouchEventStart); performTouchEvent(touchManager, secondOnTouchEventEnd); - - expect(@(didCallSingleTap)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallDoubleTap)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallBeginPan)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallMovePan)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallEndPan)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallBeginPinch)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallMovePinch)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallEndPinch)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); + + expectedDidCallDoubleTap = NO; + expectedNumTimesHandlerCalled = 4; }); }); }); + + describe(@"when a tap gesture is canceled", ^{ + __block SDLOnTouchEvent* onTouchEventCanceled; + __block SDLTouchEvent* cancelTouchEvent; + __block int notificationCount; + + beforeEach(^{ + numTimesHandlerCalled = 0; + notificationCount = 0; + + SDLTouchCoord* cancelTouchCoord = [[SDLTouchCoord alloc] init]; + cancelTouchCoord.x = @(300); + cancelTouchCoord.y = @(400); + + cancelTouchEvent = [[SDLTouchEvent alloc] init]; + cancelTouchEvent.touchEventId = @0; + cancelTouchEvent.coord = [NSArray arrayWithObject:cancelTouchCoord]; + cancelTouchEvent.timeStamp = [NSArray arrayWithObject:@([[NSDate date] timeIntervalSince1970] * 1000.0)]; + + onTouchEventCanceled = [[SDLOnTouchEvent alloc] init]; + onTouchEventCanceled.type = SDLTouchTypeCancel; + onTouchEventCanceled.event = [NSArray arrayWithObject:cancelTouchEvent]; + }); + + context(@"when a single tap is canceled", ^{ + it(@"should not issue delegate callbacks for a canceled single tap", ^{ + performTouchEvent(touchManager, firstOnTouchEventStart); + performTouchEvent(touchManager, onTouchEventCanceled); + + expectedDidCallSingleTap = NO; + expectedNumTimesHandlerCalled = 2; + }); + }); + + context(@"when a double tap is canceled", ^{ + __block SDLOnTouchEvent* secondOnTouchEventStart; + __block SDLOnTouchEvent* secondOnTouchEventCancel; + __block SDLTouchEvent* secondTouchEvent; + + beforeEach(^{ + secondTouchEvent = [[SDLTouchEvent alloc] init]; + secondTouchEvent.touchEventId = @0; + NSUInteger secondTouchTimeStamp = firstTouchTimeStamp + (touchManager.tapTimeThreshold - 0.1) * 1000; + secondTouchEvent.timeStamp = [NSArray arrayWithObject:@(secondTouchTimeStamp)]; + + secondOnTouchEventStart = [[SDLOnTouchEvent alloc] init]; + secondOnTouchEventStart.type = SDLTouchTypeBegin; + secondOnTouchEventStart.event = [NSArray arrayWithObject:secondTouchEvent]; + + secondOnTouchEventCancel = [[SDLOnTouchEvent alloc] init]; + secondOnTouchEventCancel.type = SDLTouchTypeCancel; + secondOnTouchEventCancel.event = [NSArray arrayWithObject:secondTouchEvent]; + }); + + it(@"should not issue delegate callbacks when the second tap of a double tap is canceled", ^{ + performTouchEvent(touchManager, firstOnTouchEventStart); + performTouchEvent(touchManager, firstOnTouchEventEnd); + performTouchEvent(touchManager, secondOnTouchEventStart); + performTouchEvent(touchManager, secondOnTouchEventCancel); + + expectedDidCallDoubleTap = NO; + expectedNumTimesHandlerCalled = 4; + }); + + it(@"should not issue delegate callbacks when a double tap is canceled before the start of the second tap", ^{ + // If the single tap timer threshold is set to less than 1 second, a single tap notification may be sent before the timer can be canceled by the CANCEL onTouchEvent + touchManager.tapTimeThreshold = 1.0; + performTouchEvent(touchManager, firstOnTouchEventStart); + performTouchEvent(touchManager, firstOnTouchEventEnd); + performTouchEvent(touchManager, secondOnTouchEventCancel); + + expectedDidCallDoubleTap = NO; + expectedNumTimesHandlerCalled = 3; + }); + }); + + afterEach(^{ + expect(touchManager.previousTouch).toEventually(beNil()); + expect(touchManager.singleTapTouch).toEventually(beNil()); + expect(touchManager.singleTapTimer).toEventually(beNil()); + }); + }); }); + context(@"when receiving a pan", ^{ __block CGPoint panStartPoint; __block CGPoint panMovePoint; __block CGPoint panSecondMovePoint; __block CGPoint panEndPoint; - + __block CGPoint panCancelPointAfterMove; + __block CGPoint panCancelPointAfterSecondMove; + __block CGFloat distanceMoveX = 10; __block CGFloat distanceMoveY = 20; - + __block SDLOnTouchEvent* panStartOnTouchEvent; __block SDLOnTouchEvent* panMoveOnTouchEvent; __block SDLOnTouchEvent* panSecondMoveOnTouchEvent; __block SDLOnTouchEvent* panEndOnTouchEvent; - + __block SDLOnTouchEvent* panCancelAfterMoveOnTouchEvent; + __block SDLOnTouchEvent* panCancelAfterSecondMoveOnTouchEvent; + beforeEach(^{ // Finger touch down panStartPoint = controlPoint; - SDLTouchCoord* panStartTouchCoord = [[SDLTouchCoord alloc] init]; panStartTouchCoord.x = @(panStartPoint.x); panStartTouchCoord.y = @(panStartPoint.y); - double movementTimeThresholdOffset = (touchManager.movementTimeThreshold + .01) * 1000; - NSUInteger panStartTimeStamp = ([[NSDate date] timeIntervalSince1970] * 1000) + movementTimeThresholdOffset; - SDLTouchEvent* panStartTouchEvent = [[SDLTouchEvent alloc] init]; - panStartTouchEvent.coord = [NSMutableArray arrayWithObject:panStartTouchCoord]; - panStartTouchEvent.timeStamp = [NSMutableArray arrayWithObject:@(panStartTimeStamp)]; - + panStartTouchEvent.coord = [NSArray arrayWithObject:panStartTouchCoord]; + panStartTouchEvent.timeStamp = [NSArray arrayWithObject:@(panStartTimeStamp)]; panStartOnTouchEvent = [[SDLOnTouchEvent alloc] init]; - panStartOnTouchEvent.event = [NSMutableArray arrayWithObject:panStartTouchEvent]; - panStartOnTouchEvent.type = SDLTouchType.BEGIN; - + panStartOnTouchEvent.event = [NSArray arrayWithObject:panStartTouchEvent]; + panStartOnTouchEvent.type = SDLTouchTypeBegin; + // Finger Move panMovePoint = CGPointMake(panStartPoint.x + distanceMoveX, panStartPoint.y + distanceMoveY); - SDLTouchCoord* panMoveTouchCoord = [[SDLTouchCoord alloc] init]; panMoveTouchCoord.x = @(panMovePoint.x); panMoveTouchCoord.y = @(panMovePoint.y); - NSUInteger panMoveTimeStamp = panStartTimeStamp + movementTimeThresholdOffset; - SDLTouchEvent* panMoveTouchEvent = [[SDLTouchEvent alloc] init]; - panMoveTouchEvent.coord = [NSMutableArray arrayWithObject:panMoveTouchCoord]; - panMoveTouchEvent.timeStamp = [NSMutableArray arrayWithObject:@(panMoveTimeStamp)]; - + panMoveTouchEvent.coord = [NSArray arrayWithObject:panMoveTouchCoord]; + panMoveTouchEvent.timeStamp = [NSArray arrayWithObject:@(panMoveTimeStamp)]; panMoveOnTouchEvent = [[SDLOnTouchEvent alloc] init]; - panMoveOnTouchEvent.event = [NSMutableArray arrayWithObject:panMoveTouchEvent]; - panMoveOnTouchEvent.type = SDLTouchType.MOVE; - + panMoveOnTouchEvent.event = [NSArray arrayWithObject:panMoveTouchEvent]; + panMoveOnTouchEvent.type = SDLTouchTypeMove; + // Finger Move panSecondMovePoint = CGPointMake(panMovePoint.x + distanceMoveX, panMovePoint.y + distanceMoveY); - SDLTouchCoord* panSecondMoveTouchCoord = [[SDLTouchCoord alloc] init]; panSecondMoveTouchCoord.x = @(panSecondMovePoint.x); panSecondMoveTouchCoord.y = @(panSecondMovePoint.y); - NSUInteger panSecondMoveTimeStamp = panMoveTimeStamp + movementTimeThresholdOffset; - SDLTouchEvent* panSecondMoveTouchEvent = [[SDLTouchEvent alloc] init]; - panSecondMoveTouchEvent.coord = [NSMutableArray arrayWithObject:panSecondMoveTouchCoord]; - panSecondMoveTouchEvent.timeStamp = [NSMutableArray arrayWithObject:@(panSecondMoveTimeStamp)]; - + panSecondMoveTouchEvent.coord = [NSArray arrayWithObject:panSecondMoveTouchCoord]; + panSecondMoveTouchEvent.timeStamp = [NSArray arrayWithObject:@(panSecondMoveTimeStamp)]; panSecondMoveOnTouchEvent = [[SDLOnTouchEvent alloc] init]; - panSecondMoveOnTouchEvent.event = [NSMutableArray arrayWithObject:panSecondMoveTouchEvent]; - panSecondMoveOnTouchEvent.type = SDLTouchType.MOVE; - + panSecondMoveOnTouchEvent.event = [NSArray arrayWithObject:panSecondMoveTouchEvent]; + panSecondMoveOnTouchEvent.type = SDLTouchTypeMove; + // Finger End panEndPoint = CGPointMake(panSecondMovePoint.x, panSecondMovePoint.y); - SDLTouchCoord* panEndTouchCoord = [[SDLTouchCoord alloc] init]; panEndTouchCoord.x = @(panEndPoint.x); panEndTouchCoord.y = @(panEndPoint.y); - NSUInteger panEndTimeStamp = panSecondMoveTimeStamp + movementTimeThresholdOffset; - SDLTouchEvent* panEndTouchEvent = [[SDLTouchEvent alloc] init]; - panEndTouchEvent.coord = [NSMutableArray arrayWithObject:panEndTouchCoord]; - panEndTouchEvent.timeStamp = [NSMutableArray arrayWithObject:@(panEndTimeStamp)]; - + panEndTouchEvent.coord = [NSArray arrayWithObject:panEndTouchCoord]; + panEndTouchEvent.timeStamp = [NSArray arrayWithObject:@(panEndTimeStamp)]; panEndOnTouchEvent = [[SDLOnTouchEvent alloc] init]; - panEndOnTouchEvent.event = [NSMutableArray arrayWithObject:panEndTouchEvent]; - panEndOnTouchEvent.type = SDLTouchType.END; + panEndOnTouchEvent.event = [NSArray arrayWithObject:panEndTouchEvent]; + panEndOnTouchEvent.type = SDLTouchTypeEnd; + + // Pan cancel after start + panCancelPointAfterMove = panSecondMovePoint; + SDLTouchCoord* panCancelAfterMoveTouchCoord = [[SDLTouchCoord alloc] init]; + panCancelAfterMoveTouchCoord.x = @(panCancelPointAfterMove.x); + panCancelAfterMoveTouchCoord.y = @(panCancelPointAfterMove.y); + NSUInteger panCancelAfterMoveTimeStamp = panMoveTimeStamp + movementTimeThresholdOffset; + SDLTouchEvent* panCancelAfterMoveTouchEvent = [[SDLTouchEvent alloc] init]; + panCancelAfterMoveTouchEvent.coord = [NSArray arrayWithObject:panCancelAfterMoveTouchCoord]; + panCancelAfterMoveTouchEvent.timeStamp = [NSArray arrayWithObject:@(panCancelAfterMoveTimeStamp)]; + panCancelAfterMoveOnTouchEvent = [[SDLOnTouchEvent alloc] init]; + panCancelAfterMoveOnTouchEvent.event = [NSArray arrayWithObject:panCancelAfterMoveTouchEvent]; + panCancelAfterMoveOnTouchEvent.type = SDLTouchTypeCancel; + + // Pan cancel after start + move + panCancelPointAfterSecondMove = panEndPoint; + SDLTouchCoord* panCancelAfterSecondMoveTouchCoord = [[SDLTouchCoord alloc] init]; + panCancelAfterSecondMoveTouchCoord.x = @(panCancelPointAfterSecondMove.x); + panCancelAfterSecondMoveTouchCoord.y = @(panCancelPointAfterSecondMove.y); + NSUInteger panCancelAfterSecondMoveTimeStamp = panEndTimeStamp; + SDLTouchEvent* panCancelAfterSecondMoveTouchEvent = [[SDLTouchEvent alloc] init]; + panCancelAfterSecondMoveTouchEvent.coord = [NSArray arrayWithObject:panCancelAfterSecondMoveTouchCoord]; + panCancelAfterSecondMoveTouchEvent.timeStamp = [NSArray arrayWithObject:@(panCancelAfterSecondMoveTimeStamp)]; + panCancelAfterSecondMoveOnTouchEvent = [[SDLOnTouchEvent alloc] init]; + panCancelAfterSecondMoveOnTouchEvent.event = [NSArray arrayWithObject:panCancelAfterSecondMoveTouchEvent]; + panCancelAfterSecondMoveOnTouchEvent.type = SDLTouchTypeCancel; }); - - it(@"should correctly give all pan callbacks", ^{ - panStartTests = ^(NSInvocation* invocation) { - __unsafe_unretained SDLTouchManager* touchManagerCallback; - - CGPoint point; - - [invocation getArgument:&touchManagerCallback atIndex:2]; - [invocation getArgument:&point atIndex:3]; - - expect(touchManagerCallback).to(equal(touchManager)); - expect(@(CGPointEqualToPoint(point, panMovePoint))).to(beTruthy()); - }; - - panMoveTests = ^(NSInvocation* invocation) { - __unsafe_unretained SDLTouchManager* touchManagerCallback; - - CGPoint startPoint; - CGPoint endPoint; - - [invocation getArgument:&touchManagerCallback atIndex:2]; - [invocation getArgument:&startPoint atIndex:3]; - [invocation getArgument:&endPoint atIndex:4]; - - expect(touchManagerCallback).to(equal(touchManager)); - expect(@(CGPointEqualToPoint(startPoint, panMovePoint))).to(beTruthy()); - expect(@(CGPointEqualToPoint(endPoint, panSecondMovePoint))).to(beTruthy()); - }; - - panEndTests = ^(NSInvocation* invocation) { - __unsafe_unretained SDLTouchManager* touchManagerCallback; - - CGPoint point; - - [invocation getArgument:&touchManagerCallback atIndex:2]; - [invocation getArgument:&point atIndex:3]; - - expect(touchManagerCallback).to(equal(touchManager)); - expect(@(CGPointEqualToPoint(point, panEndPoint))).to(beTruthy()); - }; - - performTouchEvent(touchManager, panStartOnTouchEvent); - performTouchEvent(touchManager, panMoveOnTouchEvent); - performTouchEvent(touchManager, panSecondMoveOnTouchEvent); - performTouchEvent(touchManager, panEndOnTouchEvent); - - expect(@(didCallSingleTap)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallDoubleTap)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallBeginPan)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beTruthy()); - expect(@(didCallMovePan)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beTruthy()); - expect(@(didCallEndPan)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beTruthy()); - expect(@(didCallBeginPinch)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallMovePinch)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallEndPinch)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); + context(@"When a pan gesture not interrupted", ^{ + it(@"should correctly issue all pan delegate callbacks", ^{ + panStartTests = ^(NSInvocation* invocation) { + __unsafe_unretained SDLTouchManager* touchManagerCallback; + CGPoint point; + [invocation getArgument:&touchManagerCallback atIndex:2]; + [invocation getArgument:&point atIndex:4]; + + expect(touchManagerCallback).to(equal(touchManager)); + expect(@(CGPointEqualToPoint(point, panMovePoint))).to(beTruthy()); + }; + + panMoveTests = ^(NSInvocation* invocation) { + __unsafe_unretained SDLTouchManager* touchManagerCallback; + CGPoint startPoint; + CGPoint endPoint; + [invocation getArgument:&touchManagerCallback atIndex:2]; + [invocation getArgument:&startPoint atIndex:3]; + [invocation getArgument:&endPoint atIndex:4]; + + expect(touchManagerCallback).to(equal(touchManager)); + expect(@(CGPointEqualToPoint(startPoint, panMovePoint))).to(beTruthy()); + expect(@(CGPointEqualToPoint(endPoint, panSecondMovePoint))).to(beTruthy()); + }; + + panEndTests = ^(NSInvocation* invocation) { + __unsafe_unretained SDLTouchManager* touchManagerCallback; + CGPoint point; + [invocation getArgument:&touchManagerCallback atIndex:2]; + [invocation getArgument:&point atIndex:4]; + + expect(touchManagerCallback).to(equal(touchManager)); + expect(@(CGPointEqualToPoint(point, panEndPoint))).to(beTruthy()); + }; + + performTouchEvent(touchManager, panStartOnTouchEvent); + performTouchEvent(touchManager, panMoveOnTouchEvent); + performTouchEvent(touchManager, panSecondMoveOnTouchEvent); + performTouchEvent(touchManager, panEndOnTouchEvent); + + expectedDidCallBeginPan = YES; + expectedDidCallMovePan = YES; + expectedDidCallEndPan = YES; + expectedDidCallCancelPan = NO; + expectedNumTimesHandlerCalled = 4; + }); + }); + + context(@"when a pan gesture is canceled", ^{ + it(@"should issue a cancel pan delegate callback when the pan is canceled right after first move detected", ^{ + panStartTests = ^(NSInvocation* invocation) { + __unsafe_unretained SDLTouchManager* touchManagerCallback; + CGPoint point; + [invocation getArgument:&touchManagerCallback atIndex:2]; + [invocation getArgument:&point atIndex:4]; + + expect(touchManagerCallback).to(equal(touchManager)); + expect(@(CGPointEqualToPoint(point, panMovePoint))).to(beTruthy()); + }; + + panCanceledTests = ^(NSInvocation* invocation) { + __unsafe_unretained SDLTouchManager* touchManagerCallback; + CGPoint point; + [invocation getArgument:&touchManagerCallback atIndex:2]; + [invocation getArgument:&point atIndex:3]; + + expect(touchManagerCallback).to(equal(touchManager)); + expect(@(CGPointEqualToPoint(point, panCancelPointAfterMove))).to(beTruthy()); + }; + + performTouchEvent(touchManager, panStartOnTouchEvent); + performTouchEvent(touchManager, panMoveOnTouchEvent); + performTouchEvent(touchManager, panCancelAfterMoveOnTouchEvent); + + expectedDidCallBeginPan = YES; + expectedDidCallMovePan = NO; + expectedDidCallEndPan = NO; + expectedDidCallCancelPan = YES; + expectedNumTimesHandlerCalled = 3; + }); + + it(@"should issue a cancel pan delegate callback when a pan is canceled right after second move detected", ^{ + panStartTests = ^(NSInvocation* invocation) { + __unsafe_unretained SDLTouchManager* touchManagerCallback; + CGPoint point; + [invocation getArgument:&touchManagerCallback atIndex:2]; + [invocation getArgument:&point atIndex:4]; + + expect(touchManagerCallback).to(equal(touchManager)); + expect(@(CGPointEqualToPoint(point, panMovePoint))).to(beTruthy()); + }; + + panMoveTests = ^(NSInvocation* invocation) { + __unsafe_unretained SDLTouchManager* touchManagerCallback; + CGPoint startPoint; + CGPoint endPoint; + [invocation getArgument:&touchManagerCallback atIndex:2]; + [invocation getArgument:&startPoint atIndex:3]; + [invocation getArgument:&endPoint atIndex:4]; + + expect(touchManagerCallback).to(equal(touchManager)); + expect(@(CGPointEqualToPoint(startPoint, panMovePoint))).to(beTruthy()); + expect(@(CGPointEqualToPoint(endPoint, panSecondMovePoint))).to(beTruthy()); + }; + + panCanceledTests = ^(NSInvocation* invocation) { + __unsafe_unretained SDLTouchManager* touchManagerCallback; + CGPoint point; + [invocation getArgument:&touchManagerCallback atIndex:2]; + [invocation getArgument:&point atIndex:3]; + expect(touchManagerCallback).to(equal(touchManager)); + expect(@(CGPointEqualToPoint(point, panCancelPointAfterSecondMove))).to(beTruthy()); + }; + + performTouchEvent(touchManager, panStartOnTouchEvent); + performTouchEvent(touchManager, panMoveOnTouchEvent); + performTouchEvent(touchManager, panSecondMoveOnTouchEvent); + performTouchEvent(touchManager, panCancelAfterMoveOnTouchEvent); + + expectedDidCallBeginPan = YES; + expectedDidCallMovePan = YES; + expectedDidCallEndPan = NO; + expectedDidCallCancelPan = YES; + expectedNumTimesHandlerCalled = 4; + }); + + it(@"should not issue a cancel pan delegate callback if the cancel onTouchEvent is received while a pan gesture is not in progress", ^{ + performTouchEvent(touchManager, panCancelAfterSecondMoveOnTouchEvent); + + expectedDidCallBeginPan = NO; + expectedDidCallMovePan = NO; + expectedDidCallEndPan = NO; + expectedDidCallCancelPan = NO; + expectedNumTimesHandlerCalled = 1; + }); + + afterEach(^{ + expect(touchManager.currentPinchGesture).toEventually(beNil()); + }); }); }); - context(@"when receiving a pinch", ^{ - + + context(@"when receiving a pinch gesture", ^{ __block CGPoint pinchStartCenter; __block CGPoint pinchMoveCenter; __block CGFloat pinchMoveScale; __block CGPoint pinchEndCenter; - + __block CGPoint pinchFirstFingerCancelCenter; + __block CGPoint pinchSecondFingerCancelCenter; + __block SDLOnTouchEvent* pinchStartFirstFingerOnTouchEvent; __block SDLOnTouchEvent* pinchStartSecondFingerOnTouchEvent; __block SDLOnTouchEvent* pinchMoveSecondFingerOnTouchEvent; __block SDLOnTouchEvent* pinchEndSecondFingerOnTouchEvent; - + __block SDLOnTouchEvent* pinchCancelFirstFingerOnTouchEvent; + __block SDLOnTouchEvent* pinchCancelSecondFingerOnTouchEvent; + beforeEach(^{ // First finger touch down SDLTouchCoord* firstFingerTouchCoord = [[SDLTouchCoord alloc] init]; firstFingerTouchCoord.x = @(controlPoint.x); firstFingerTouchCoord.y = @(controlPoint.y); - NSUInteger firstFingerTimeStamp = [[NSDate date] timeIntervalSince1970] * 1000; - SDLTouchEvent* firstFingerTouchEvent = [[SDLTouchEvent alloc] init]; - firstFingerTouchEvent.coord = [NSMutableArray arrayWithObject:firstFingerTouchCoord]; - firstFingerTouchEvent.timeStamp = [NSMutableArray arrayWithObject:@(firstFingerTimeStamp)]; - + firstFingerTouchEvent.coord = [NSArray arrayWithObject:firstFingerTouchCoord]; + firstFingerTouchEvent.timeStamp = [NSArray arrayWithObject:@(firstFingerTimeStamp)]; pinchStartFirstFingerOnTouchEvent = [[SDLOnTouchEvent alloc] init]; - pinchStartFirstFingerOnTouchEvent.event = [NSMutableArray arrayWithObject:firstFingerTouchEvent]; - pinchStartFirstFingerOnTouchEvent.type = SDLTouchType.BEGIN; - + pinchStartFirstFingerOnTouchEvent.event = [NSArray arrayWithObject:firstFingerTouchEvent]; + pinchStartFirstFingerOnTouchEvent.type = SDLTouchTypeBegin; + // Second finger touch down SDLTouchCoord* secondFingerTouchCoord = [[SDLTouchCoord alloc] init]; secondFingerTouchCoord.x = @(firstFingerTouchCoord.x.floatValue + 100); secondFingerTouchCoord.y = @(firstFingerTouchCoord.y.floatValue + 100); - NSUInteger secondFingerTimeStamp = firstFingerTimeStamp; - SDLTouchEvent* secondFingerTouchEvent = [[SDLTouchEvent alloc] init]; secondFingerTouchEvent.touchEventId = @1; - secondFingerTouchEvent.coord = [NSMutableArray arrayWithObject:secondFingerTouchCoord]; - secondFingerTouchEvent.timeStamp = [NSMutableArray arrayWithObject:@(secondFingerTimeStamp)]; - + secondFingerTouchEvent.coord = [NSArray arrayWithObject:secondFingerTouchCoord]; + secondFingerTouchEvent.timeStamp = [NSArray arrayWithObject:@(secondFingerTimeStamp)]; pinchStartSecondFingerOnTouchEvent = [[SDLOnTouchEvent alloc] init]; - pinchStartSecondFingerOnTouchEvent.event = [NSMutableArray arrayWithObject:secondFingerTouchEvent]; - pinchStartSecondFingerOnTouchEvent.type = SDLTouchType.BEGIN; - + pinchStartSecondFingerOnTouchEvent.event = [NSArray arrayWithObject:secondFingerTouchEvent]; + pinchStartSecondFingerOnTouchEvent.type = SDLTouchTypeBegin; pinchStartCenter = CGPointMake((firstFingerTouchCoord.x.floatValue + secondFingerTouchCoord.x.floatValue) / 2.0f, (firstFingerTouchCoord.y.floatValue + secondFingerTouchCoord.y.floatValue) / 2.0f); - CGFloat pinchStartDistance = hypotf(firstFingerTouchCoord.x.floatValue - secondFingerTouchCoord.x.floatValue, firstFingerTouchCoord.y.floatValue - secondFingerTouchCoord.y.floatValue); - + // Second finger move SDLTouchCoord* secondFingerMoveTouchCoord = [[SDLTouchCoord alloc] init]; secondFingerMoveTouchCoord.x = @(secondFingerTouchCoord.x.floatValue - 50); secondFingerMoveTouchCoord.y = @(secondFingerTouchCoord.y.floatValue - 40); - NSUInteger secondFingerMoveTimeStamp = secondFingerTimeStamp + ((touchManager.movementTimeThreshold + 0.1) * 1000); - SDLTouchEvent* secondFingerMoveTouchEvent = [[SDLTouchEvent alloc] init]; secondFingerMoveTouchEvent.touchEventId = @1; - secondFingerMoveTouchEvent.coord = [NSMutableArray arrayWithObject:secondFingerMoveTouchCoord]; - secondFingerMoveTouchEvent.timeStamp = [NSMutableArray arrayWithObject:@(secondFingerMoveTimeStamp)]; - + secondFingerMoveTouchEvent.coord = [NSArray arrayWithObject:secondFingerMoveTouchCoord]; + secondFingerMoveTouchEvent.timeStamp = [NSArray arrayWithObject:@(secondFingerMoveTimeStamp)]; pinchMoveSecondFingerOnTouchEvent = [[SDLOnTouchEvent alloc] init]; - pinchMoveSecondFingerOnTouchEvent.event = [NSMutableArray arrayWithObject:secondFingerMoveTouchEvent]; - pinchMoveSecondFingerOnTouchEvent.type = SDLTouchType.MOVE; - + pinchMoveSecondFingerOnTouchEvent.event = [NSArray arrayWithObject:secondFingerMoveTouchEvent]; + pinchMoveSecondFingerOnTouchEvent.type = SDLTouchTypeMove; pinchMoveCenter = CGPointMake((firstFingerTouchCoord.x.floatValue + secondFingerMoveTouchCoord.x.floatValue) / 2.0f, (firstFingerTouchCoord.y.floatValue + secondFingerMoveTouchCoord.y.floatValue) / 2.0f); - CGFloat pinchMoveDistance = hypotf(firstFingerTouchCoord.x.floatValue - secondFingerMoveTouchCoord.x.floatValue, firstFingerTouchCoord.y.floatValue - secondFingerMoveTouchCoord.y.floatValue); - pinchMoveScale = pinchMoveDistance / pinchStartDistance; - + // Second finger end SDLTouchCoord* secondFingerEndTouchCoord = secondFingerMoveTouchCoord; - NSUInteger secondFingerEndTimeStamp = secondFingerMoveTimeStamp + ((touchManager.movementTimeThreshold + 0.1) * 1000); - SDLTouchEvent* secondFingerEndTouchEvent = [[SDLTouchEvent alloc] init]; secondFingerEndTouchEvent.touchEventId = @1; - secondFingerEndTouchEvent.coord = [NSMutableArray arrayWithObject:secondFingerEndTouchCoord]; - secondFingerEndTouchEvent.timeStamp = [NSMutableArray arrayWithObject:@(secondFingerEndTimeStamp)]; - + secondFingerEndTouchEvent.coord = [NSArray arrayWithObject:secondFingerEndTouchCoord]; + secondFingerEndTouchEvent.timeStamp = [NSArray arrayWithObject:@(secondFingerEndTimeStamp)]; pinchEndSecondFingerOnTouchEvent = [[SDLOnTouchEvent alloc] init]; - pinchEndSecondFingerOnTouchEvent.event = [NSMutableArray arrayWithObject:secondFingerEndTouchEvent]; - pinchEndSecondFingerOnTouchEvent.type = SDLTouchType.END; - - pinchEndCenter = CGPointMake((firstFingerTouchCoord.x.floatValue + secondFingerEndTouchCoord.x.floatValue) / 2.0f, - (firstFingerTouchCoord.y.floatValue + secondFingerEndTouchCoord.y.floatValue) / 2.0f); + pinchEndSecondFingerOnTouchEvent.event = [NSArray arrayWithObject:secondFingerEndTouchEvent]; + pinchEndSecondFingerOnTouchEvent.type = SDLTouchTypeEnd; + pinchEndCenter = CGPointMake((firstFingerTouchCoord.x.floatValue + secondFingerEndTouchCoord.x.floatValue) / 2.0f, (firstFingerTouchCoord.y.floatValue + secondFingerEndTouchCoord.y.floatValue) / 2.0f); + + // First finger cancel + SDLTouchCoord* firstFingerCanceledTouchCoord = secondFingerMoveTouchCoord; + NSUInteger firstFingerCanceledTimeStamp = secondFingerMoveTimeStamp + ((touchManager.movementTimeThreshold + 0.1) * 1000); + SDLTouchEvent* firstFingerCanceledTouchEvent = [[SDLTouchEvent alloc] init]; + firstFingerCanceledTouchEvent.touchEventId = @0; + firstFingerCanceledTouchEvent.coord = [NSArray arrayWithObject:firstFingerCanceledTouchCoord]; + firstFingerCanceledTouchEvent.timeStamp = [NSArray arrayWithObject:@(firstFingerCanceledTimeStamp)]; + pinchCancelFirstFingerOnTouchEvent = [[SDLOnTouchEvent alloc] init]; + pinchCancelFirstFingerOnTouchEvent.event = [NSArray arrayWithObject:firstFingerCanceledTouchEvent]; + pinchCancelFirstFingerOnTouchEvent.type = SDLTouchTypeCancel; + pinchFirstFingerCancelCenter = CGPointMake((firstFingerCanceledTouchCoord.x.floatValue + secondFingerTouchCoord.x.floatValue) / 2.0f, (firstFingerCanceledTouchCoord.y.floatValue + secondFingerTouchCoord.y.floatValue) / 2.0f); + + // Second finger cancel + SDLTouchCoord* secondFingerCanceledTouchCoord = secondFingerMoveTouchCoord; + NSUInteger secondFingerCanceledTimeStamp = firstFingerTimeStamp + ((touchManager.movementTimeThreshold + 0.1) * 1000); + SDLTouchEvent* secondFingerCanceledTouchEvent = [[SDLTouchEvent alloc] init]; + secondFingerCanceledTouchEvent.touchEventId = @1; + secondFingerCanceledTouchEvent.coord = [NSArray arrayWithObject:secondFingerCanceledTouchCoord]; + secondFingerCanceledTouchEvent.timeStamp = [NSArray arrayWithObject:@(secondFingerCanceledTimeStamp)]; + pinchCancelSecondFingerOnTouchEvent = [[SDLOnTouchEvent alloc] init]; + pinchCancelSecondFingerOnTouchEvent.event = [NSArray arrayWithObject:secondFingerCanceledTouchEvent]; + pinchCancelSecondFingerOnTouchEvent.type = SDLTouchTypeCancel; + pinchSecondFingerCancelCenter = CGPointMake((firstFingerTouchCoord.x.floatValue + secondFingerCanceledTouchCoord.x.floatValue) / 2.0f, (firstFingerTouchCoord.y.floatValue + secondFingerCanceledTouchCoord.y.floatValue) / 2.0f); }); - - it(@"should correctly give all pinch callback", ^{ - pinchStartTests = ^(NSInvocation* invocation) { - __unsafe_unretained SDLTouchManager* touchManagerCallback; - - CGPoint point; - - [invocation getArgument:&touchManagerCallback atIndex:2]; - [invocation getArgument:&point atIndex:3]; - - expect(touchManagerCallback).to(equal(touchManager)); - expect(@(CGPointEqualToPoint(point, pinchStartCenter))).to(beTruthy()); - }; - - pinchMoveTests = ^(NSInvocation* invocation) { - __unsafe_unretained SDLTouchManager* touchManagerCallback; - - CGPoint point; - CGFloat scale; - - [invocation getArgument:&touchManagerCallback atIndex:2]; - [invocation getArgument:&point atIndex:3]; - [invocation getArgument:&scale atIndex:4]; - - expect(touchManagerCallback).to(equal(touchManager)); - expect(@(CGPointEqualToPoint(point, pinchMoveCenter))).to(beTruthy()); - expect(@(scale)).to(beCloseTo(@(pinchMoveScale)).within(0.0001)); - }; - - pinchEndTests = ^(NSInvocation* invocation) { - __unsafe_unretained SDLTouchManager* touchManagerCallback; - - CGPoint point; + + context(@"When a pinch gesture is not interrupted", ^{ + it(@"should correctly send all pinch delegate callbacks", ^{ + pinchStartTests = ^(NSInvocation* invocation) { + __unsafe_unretained SDLTouchManager* touchManagerCallback; + + CGPoint point; + [invocation getArgument:&touchManagerCallback atIndex:2]; + [invocation getArgument:&point atIndex:4]; + + expect(touchManagerCallback).to(equal(touchManager)); + expect(@(CGPointEqualToPoint(point, pinchStartCenter))).to(beTruthy()); + }; + + pinchMoveTests = ^(NSInvocation* invocation) { + __unsafe_unretained SDLTouchManager* touchManagerCallback; + + CGPoint point; + CGFloat scale; + [invocation getArgument:&touchManagerCallback atIndex:2]; + [invocation getArgument:&point atIndex:3]; + [invocation getArgument:&scale atIndex:4]; + + expect(touchManagerCallback).to(equal(touchManager)); + expect(@(CGPointEqualToPoint(point, pinchMoveCenter))).to(beTruthy()); + expect(@(scale)).to(beCloseTo(@(pinchMoveScale)).within(0.0001)); + }; - [invocation getArgument:&touchManagerCallback atIndex:2]; - [invocation getArgument:&point atIndex:3]; + pinchEndTests = ^(NSInvocation* invocation) { + __unsafe_unretained SDLTouchManager* touchManagerCallback; + + CGPoint point; + [invocation getArgument:&touchManagerCallback atIndex:2]; + [invocation getArgument:&point atIndex:4]; + + expect(touchManagerCallback).to(equal(touchManager)); + expect(@(CGPointEqualToPoint(point, pinchEndCenter))).to(beTruthy()); + }; - expect(touchManagerCallback).to(equal(touchManager)); - expect(@(CGPointEqualToPoint(point, pinchEndCenter))).to(beTruthy()); - }; - - performTouchEvent(touchManager, pinchStartFirstFingerOnTouchEvent); - performTouchEvent(touchManager, pinchStartSecondFingerOnTouchEvent); - performTouchEvent(touchManager, pinchMoveSecondFingerOnTouchEvent); - performTouchEvent(touchManager, pinchEndSecondFingerOnTouchEvent); - - expect(@(didCallSingleTap)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallDoubleTap)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallBeginPan)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallMovePan)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallEndPan)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beFalsy()); - expect(@(didCallBeginPinch)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beTruthy()); - expect(@(didCallMovePinch)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beTruthy()); - expect(@(didCallEndPinch)).withTimeout(touchManager.tapTimeThreshold + additionalWaitTime).toEventually(beTruthy()); + performTouchEvent(touchManager, pinchStartFirstFingerOnTouchEvent); + performTouchEvent(touchManager, pinchStartSecondFingerOnTouchEvent); + performTouchEvent(touchManager, pinchMoveSecondFingerOnTouchEvent); + performTouchEvent(touchManager, pinchEndSecondFingerOnTouchEvent); + + expectedDidCallBeginPinch = YES; + expectedDidCallMovePinch = YES; + expectedDidCallEndPinch = YES; + expectedDidCallCancelPinch = NO; + expectedNumTimesHandlerCalled = 4; + }); }); + + context(@"when a pinch gesture is canceled", ^{ + it(@"should notify delegates if pinch is canceled right after it started", ^{ + pinchStartTests = ^(NSInvocation* invocation) { + __unsafe_unretained SDLTouchManager* touchManagerCallback; + CGPoint point; + [invocation getArgument:&touchManagerCallback atIndex:2]; + [invocation getArgument:&point atIndex:4]; + + expect(touchManagerCallback).to(equal(touchManager)); + expect(@(CGPointEqualToPoint(point, pinchStartCenter))).to(beTruthy()); + }; + + pinchCanceledTests = ^(NSInvocation* invocation) { + __unsafe_unretained SDLTouchManager* touchManagerCallback; + CGPoint point; + [invocation getArgument:&touchManagerCallback atIndex:2]; + [invocation getArgument:&point atIndex:3]; + + expect(touchManagerCallback).to(equal(touchManager)); + expect(@(CGPointEqualToPoint(point, pinchFirstFingerCancelCenter))).to(beTruthy()); + }; + + performTouchEvent(touchManager, pinchStartFirstFingerOnTouchEvent); + performTouchEvent(touchManager, pinchStartSecondFingerOnTouchEvent); + performTouchEvent(touchManager, pinchCancelFirstFingerOnTouchEvent); + + expectedDidCallBeginPinch = YES; + expectedDidCallMovePinch = NO; + expectedDidCallEndPinch = NO; + expectedDidCallCancelPinch = YES; + expectedNumTimesHandlerCalled = 3; + }); + + it(@"should notify delegates if pinch is canceled while it is in progress", ^{ + pinchStartTests = ^(NSInvocation* invocation) { + __unsafe_unretained SDLTouchManager* touchManagerCallback; + CGPoint point; + [invocation getArgument:&touchManagerCallback atIndex:2]; + [invocation getArgument:&point atIndex:4]; + + expect(touchManagerCallback).to(equal(touchManager)); + expect(@(CGPointEqualToPoint(point, pinchStartCenter))).to(beTruthy()); + }; + + pinchMoveTests = ^(NSInvocation* invocation) { + __unsafe_unretained SDLTouchManager* touchManagerCallback; + CGPoint point; + CGFloat scale; + [invocation getArgument:&touchManagerCallback atIndex:2]; + [invocation getArgument:&point atIndex:3]; + [invocation getArgument:&scale atIndex:4]; + + expect(touchManagerCallback).to(equal(touchManager)); + expect(@(CGPointEqualToPoint(point, pinchMoveCenter))).to(beTruthy()); + expect(@(scale)).to(beCloseTo(@(pinchMoveScale)).within(0.0001)); + }; + + pinchCanceledTests = ^(NSInvocation* invocation) { + __unsafe_unretained SDLTouchManager* touchManagerCallback; + CGPoint point; + [invocation getArgument:&touchManagerCallback atIndex:2]; + [invocation getArgument:&point atIndex:3]; + + expect(touchManagerCallback).to(equal(touchManager)); + expect(@(CGPointEqualToPoint(point, pinchSecondFingerCancelCenter))).to(beTruthy()); + }; + + performTouchEvent(touchManager, pinchStartFirstFingerOnTouchEvent); + performTouchEvent(touchManager, pinchStartSecondFingerOnTouchEvent); + performTouchEvent(touchManager, pinchMoveSecondFingerOnTouchEvent); + performTouchEvent(touchManager, pinchCancelSecondFingerOnTouchEvent); + + expectedDidCallBeginPinch = YES; + expectedDidCallMovePinch = YES; + expectedDidCallEndPinch = NO; + expectedDidCallCancelPinch = YES; + expectedNumTimesHandlerCalled = 4; + }); + + it(@"should not issue a cancel pinch delegate callback if the cancel onTouchEvent is received while a pinch gesture is not in progress", ^{ + performTouchEvent(touchManager, pinchCancelSecondFingerOnTouchEvent); + + expectedDidCallBeginPinch = NO; + expectedDidCallMovePinch = NO; + expectedDidCallEndPinch = NO; + expectedDidCallCancelPinch = NO; + expectedNumTimesHandlerCalled = 1; + }); + + afterEach(^{ + expect(touchManager.currentPinchGesture).toEventually(beNil()); + }); + }); + }); + + afterEach(^{ + CGFloat timeoutTime = touchManager.tapTimeThreshold + additionalWaitTime; + expect(@(didCallSingleTap)).withTimeout(timeoutTime).toEventually(expectedDidCallSingleTap ? beTruthy() : beFalsy()); + expect(@(didCallDoubleTap)).withTimeout(timeoutTime).toEventually(expectedDidCallDoubleTap ? beTruthy() : beFalsy()); + expect(@(didCallBeginPan)).withTimeout(timeoutTime).toEventually(expectedDidCallBeginPan ? beTruthy() : beFalsy()); + expect(@(didCallMovePan)).withTimeout(timeoutTime).toEventually(expectedDidCallMovePan ? beTruthy() : beFalsy()); + expect(@(didCallEndPan)).withTimeout(timeoutTime).toEventually(expectedDidCallEndPan ? beTruthy() : beFalsy()); + expect(@(didCallCancelPan)).withTimeout(timeoutTime).toEventually(expectedDidCallCancelPan ? beTruthy() : beFalsy()); + expect(@(didCallBeginPinch)).withTimeout(timeoutTime).toEventually(expectedDidCallBeginPinch ? beTruthy() : beFalsy()); + expect(@(didCallMovePinch)).withTimeout(timeoutTime).toEventually(expectedDidCallMovePinch ? beTruthy() : beFalsy()); + expect(@(didCallEndPinch)).withTimeout(timeoutTime).toEventually(expectedDidCallEndPinch ? beTruthy() : beFalsy()); + expect(@(didCallCancelPinch)).withTimeout(timeoutTime).toEventually(expectedDidCallCancelPinch ? beTruthy() : beFalsy()); + + expect(numTimesHandlerCalled).to(equal(@(expectedNumTimesHandlerCalled))); }); }); }); diff --git a/SmartDeviceLinkTests/UtilitiesSpecs/Touches/SDLTouchSpec.m b/SmartDeviceLinkTests/UtilitiesSpecs/Touches/SDLTouchSpec.m index c629cd72e..29973ffcb 100644 --- a/SmartDeviceLinkTests/UtilitiesSpecs/Touches/SDLTouchSpec.m +++ b/SmartDeviceLinkTests/UtilitiesSpecs/Touches/SDLTouchSpec.m @@ -48,8 +48,8 @@ SDLTouchEvent* touchEvent = [[SDLTouchEvent alloc] init]; touchEvent.touchEventId = @0; - touchEvent.coord = [NSMutableArray arrayWithObject:coord]; - touchEvent.timeStamp = [NSMutableArray arrayWithObject:@(timeStamp)]; + touchEvent.coord = [NSArray arrayWithObject:coord]; + touchEvent.timeStamp = [NSArray arrayWithObject:@(timeStamp)]; touch = [[SDLTouch alloc] initWithTouchEvent:touchEvent]; }); @@ -81,8 +81,8 @@ SDLTouchEvent* touchEvent = [[SDLTouchEvent alloc] init]; touchEvent.touchEventId = @1; - touchEvent.coord = [NSMutableArray arrayWithObject:coord]; - touchEvent.timeStamp = [NSMutableArray arrayWithObject:@(timeStamp)]; + touchEvent.coord = [NSArray arrayWithObject:coord]; + touchEvent.timeStamp = [NSArray arrayWithObject:@(timeStamp)]; touch = [[SDLTouch alloc] initWithTouchEvent:touchEvent]; }); @@ -104,4 +104,4 @@ }); }); -QuickSpecEnd \ No newline at end of file +QuickSpecEnd diff --git a/SmartDeviceLink_Example/Base.lproj/LaunchScreen.xib b/SmartDeviceLink_Example/Base.lproj/LaunchScreen.xib index 22193a99b..c1427dc91 100644 --- a/SmartDeviceLink_Example/Base.lproj/LaunchScreen.xib +++ b/SmartDeviceLink_Example/Base.lproj/LaunchScreen.xib @@ -1,8 +1,12 @@ - - + + + + + - + + @@ -19,7 +23,7 @@ - + diff --git a/SmartDeviceLink_Example/Classes/AppDelegate.m b/SmartDeviceLink_Example/Classes/AppDelegate.m index ac583c9cc..1ceb6f765 100644 --- a/SmartDeviceLink_Example/Classes/AppDelegate.m +++ b/SmartDeviceLink_Example/Classes/AppDelegate.m @@ -5,6 +5,7 @@ #import "AppDelegate.h" #import "ProxyManager.h" +#import "SDLLogMacros.h" #import "SDLManager.h" @@ -17,7 +18,6 @@ @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - return YES; } diff --git a/SmartDeviceLink_Example/Classes/ConnectionContainerViewController.m b/SmartDeviceLink_Example/Classes/ConnectionContainerViewController.m index b3fe8abc0..544a9f3c9 100644 --- a/SmartDeviceLink_Example/Classes/ConnectionContainerViewController.m +++ b/SmartDeviceLink_Example/Classes/ConnectionContainerViewController.m @@ -14,7 +14,7 @@ @interface ConnectionContainerViewController () @property (weak, nonatomic) IBOutlet UISegmentedControl *connectionTypeSegmentedControl; -@property (strong, nonatomic) NSArray *viewControllers; +@property (strong, nonatomic) NSArray *viewControllers; @property (strong, nonatomic) UIViewController *currentViewController; @property (strong, nonatomic) UIPanGestureRecognizer *panGestureRecognizer; diff --git a/SmartDeviceLink_Example/Classes/ConnectionTCPTableViewController.m b/SmartDeviceLink_Example/Classes/ConnectionTCPTableViewController.m index b32b2c215..94d6ebec4 100644 --- a/SmartDeviceLink_Example/Classes/ConnectionTCPTableViewController.m +++ b/SmartDeviceLink_Example/Classes/ConnectionTCPTableViewController.m @@ -46,10 +46,6 @@ - (void)dealloc { } @catch (NSException __unused *exception) {} } -- (void)didReceiveMemoryWarning { - NSLog(@"***** MEMORY WARNING *****"); -} - #pragma mark - IBActions diff --git a/SmartDeviceLink_Example/Classes/ProxyManager.m b/SmartDeviceLink_Example/Classes/ProxyManager.m index ada8d9e7b..478ae8296 100644 --- a/SmartDeviceLink_Example/Classes/ProxyManager.m +++ b/SmartDeviceLink_Example/Classes/ProxyManager.m @@ -12,8 +12,11 @@ NSString *const SDLAppName = @"SDL Example App"; NSString *const SDLAppId = @"9999"; -NSString *const PointingSoftButtonArtworkName = @"PointingSoftButtonIcon"; +NSString *const HexagonOffSoftButtonArtworkName = @"HexagonOffSoftButtonIcon"; +NSString *const HexagonOnSoftButtonArtworkName = @"HexagonOnSoftButtonIcon"; NSString *const MainGraphicArtworkName = @"MainArtwork"; +NSString *const MainGraphicBlankArtworkName = @"MainBlankArtwork"; +NSString *const StarSoftButtonArtworkName = @"StarSoftButtonIcon"; BOOL const ShouldRestartOnDisconnect = NO; @@ -74,12 +77,9 @@ - (void)startIAP { if (self.sdlManager) { return; } SDLLifecycleConfiguration *lifecycleConfig = [self.class sdlex_setLifecycleConfigurationPropertiesOnConfiguration:[SDLLifecycleConfiguration defaultConfigurationWithAppName:SDLAppName appId:SDLAppId]]; - // Assume this is production and disable logging - lifecycleConfig.logFlags = SDLLogOutputNone; - - SDLConfiguration *config = [SDLConfiguration configurationWithLifecycle:lifecycleConfig lockScreen:[SDLLockScreenConfiguration enabledConfiguration]]; + SDLConfiguration *config = [SDLConfiguration configurationWithLifecycle:lifecycleConfig lockScreen:[SDLLockScreenConfiguration enabledConfiguration] logging:[SDLLogConfiguration debugConfiguration]]; self.sdlManager = [[SDLManager alloc] initWithConfiguration:config delegate:self]; - + [self startManager]; } @@ -88,9 +88,9 @@ - (void)startTCP { // Check for previous instance of sdlManager if (self.sdlManager) { return; } SDLLifecycleConfiguration *lifecycleConfig = [self.class sdlex_setLifecycleConfigurationPropertiesOnConfiguration:[SDLLifecycleConfiguration debugConfigurationWithAppName:SDLAppName appId:SDLAppId ipAddress:[Preferences sharedPreferences].ipAddress port:[Preferences sharedPreferences].port]]; - SDLConfiguration *config = [SDLConfiguration configurationWithLifecycle:lifecycleConfig lockScreen:[SDLLockScreenConfiguration enabledConfiguration]]; + SDLConfiguration *config = [SDLConfiguration configurationWithLifecycle:lifecycleConfig lockScreen:[SDLLockScreenConfiguration enabledConfiguration] logging:[SDLLogConfiguration debugConfiguration]]; self.sdlManager = [[SDLManager alloc] initWithConfiguration:config delegate:self]; - + [self startManager]; } @@ -98,7 +98,7 @@ - (void)startManager { __weak typeof (self) weakSelf = self; [self.sdlManager startWithReadyHandler:^(BOOL success, NSError * _Nullable error) { if (!success) { - NSLog(@"SDL errored starting up: %@", error); + SDLLogE(@"SDL errored starting up: %@", error); [weakSelf sdlex_updateProxyState:ProxyStateStopped]; return; } @@ -107,7 +107,7 @@ - (void)startManager { [weakSelf sdlex_setupPermissionsCallbacks]; - if ([weakSelf.sdlManager.hmiLevel isEqualToEnum:[SDLHMILevel FULL]]) { + if ([weakSelf.sdlManager.hmiLevel isEqualToEnum:SDLHMILevelFull]) { [weakSelf sdlex_showInitialData]; } }]; @@ -124,54 +124,48 @@ - (void)reset { #pragma mark - Helpers - (void)sdlex_showInitialData { - if ((self.initialShowState != SDLHMIInitialShowStateDataAvailable) || ![self.sdlManager.hmiLevel isEqualToEnum:[SDLHMILevel FULL]]) { + if ((self.initialShowState != SDLHMIInitialShowStateDataAvailable) || ![self.sdlManager.hmiLevel isEqualToEnum:SDLHMILevelFull]) { return; } - NSLog(@"Sending capability requests"); - SDLGetSystemCapability *getNavigationCapability = [[SDLGetSystemCapability alloc] initWithType:[SDLSystemCapabilityType NAVIGATION]]; - [self.sdlManager sendRequest:getNavigationCapability withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - NSLog(@"Navigation Capability:\n" - "Request: %@" - "Response: %@" - "Error: %@", request, response, error); - }]; - SDLGetSystemCapability *getPhoneCapability = [[SDLGetSystemCapability alloc] initWithType:[SDLSystemCapabilityType PHONE_CALL]]; - [self.sdlManager sendRequest:getPhoneCapability withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - NSLog(@"Phone Capability:\n" - "Request: %@" - "Response: %@" - "Error: %@", request, response, error); - }]; - SDLGetSystemCapability *getVideoStreamingCapability = [[SDLGetSystemCapability alloc] initWithType:[SDLSystemCapabilityType VIDEO_STREAMING]]; - [self.sdlManager sendRequest:getVideoStreamingCapability withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { - NSLog(@"Video Streaming Capability:\n" - "Request: %@" - "Response: %@" - "Error: %@", request, response, error); - }]; - - SDLSetDisplayLayout *displayLayout = [[SDLSetDisplayLayout alloc] initWithLayout:[[SDLPredefinedLayout NON_MEDIA] value]]; + SDLSetDisplayLayout *displayLayout = [[SDLSetDisplayLayout alloc] initWithLayout:SDLPredefinedLayoutNonMedia]; [self.sdlManager sendRequest:displayLayout]; self.initialShowState = SDLHMIInitialShowStateShown; - - SDLShow* show = [[SDLShow alloc] initWithMainField1:@"SDL" mainField2:@"Test App" alignment:[SDLTextAlignment CENTERED]]; - SDLSoftButton *pointingSoftButton = [self.class sdlex_pointingSoftButtonWithManager:self.sdlManager]; - show.softButtons = [@[pointingSoftButton] mutableCopy]; - show.graphic = [self.class sdlex_mainGraphicImage]; - - [self.sdlManager sendRequest:show]; + [self sdlex_showWithManager:self.sdlManager]; + + SDLHapticRect *hapticRect = [[SDLHapticRect alloc] initWithId:1 rect:[[SDLRectangle alloc] initWithX:12.34 y:42.3 width:69 height:69]]; + SDLSendHapticData *sendHaptic = [[SDLSendHapticData alloc] initWithHapticRectData:@[hapticRect]]; + [self.sdlManager sendRequest:sendHaptic withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { + NSLog(@"STOP"); + }]; +} + +- (void)sdlex_showWithManager:(SDLManager *)manager { + NSString *mainField1Text = isTextOn ? @"Smart Device Link" : @""; + NSString *mainField2Text = isTextOn ? @"Example App" : @""; + SDLShow* show = [[SDLShow alloc] initWithMainField1:mainField1Text mainField2:mainField2Text alignment:SDLTextAlignmentCenter]; + show.softButtons = [self sdlex_softButtons]; + show.graphic = areImagesVisible ? [self.class sdlex_mainGraphicImage] : [self.class sdlex_mainGraphicImage]; + [manager sendRequest:show]; +} + +- (NSArray *)sdlex_softButtons { + SDLSoftButton *starSoftButton = [self.class sdlex_softButton1WithManager:self.sdlManager]; + SDLSoftButton *hexagonSoftButton = [self sdlex_softButton2WithManager:self.sdlManager]; + SDLSoftButton *textSoftButton = [self sdlex_softButton3WithManager:self.sdlManager]; + SDLSoftButton *imageSoftButton = [self sdlex_softButton4WithManager:self.sdlManager]; + return @[starSoftButton, hexagonSoftButton, textSoftButton, imageSoftButton]; } - (void)sdlex_setupPermissionsCallbacks { // This will tell you whether or not you can use the Show RPC right at this moment BOOL isAvailable = [self.sdlManager.permissionManager isRPCAllowed:@"Show"]; - NSLog(@"Show is allowed? %@", @(isAvailable)); + SDLLogD(@"Show is allowed? %@", @(isAvailable)); // This will set up a block that will tell you whether or not you can use none, all, or some of the RPCs specified, and notifies you when those permissions change SDLPermissionObserverIdentifier observerId = [self.sdlManager.permissionManager addObserverForRPCs:@[@"Show", @"Alert"] groupType:SDLPermissionGroupTypeAllAllowed withHandler:^(NSDictionary *> * _Nonnull change, SDLPermissionGroupStatus status) { - NSLog(@"Show changed permission to status: %@, dict: %@", @(status), change); + SDLLogD(@"Show changed permission to status: %@, dict: %@", @(status), change); }]; // The above block will be called immediately, this will then remove the block from being called any more [self.sdlManager.permissionManager removeObserverForIdentifier:observerId]; @@ -180,11 +174,11 @@ - (void)sdlex_setupPermissionsCallbacks { NSArray *rpcGroup =@[@"AddCommand", @"PerformInteraction"]; SDLPermissionGroupStatus commandPICSStatus = [self.sdlManager.permissionManager groupStatusOfRPCs:rpcGroup]; NSDictionary *commandPICSStatusDict = [self.sdlManager.permissionManager statusOfRPCs:rpcGroup]; - NSLog(@"Command / PICS status: %@, dict: %@", @(commandPICSStatus), commandPICSStatusDict); + SDLLogD(@"Command / PICS status: %@, dict: %@", @(commandPICSStatus), commandPICSStatusDict); // This will set up a long-term observer for the RPC group and will tell us when the status of any specified RPC changes (due to the `SDLPermissionGroupTypeAny`) option. [self.sdlManager.permissionManager addObserverForRPCs:rpcGroup groupType:SDLPermissionGroupTypeAny withHandler:^(NSDictionary *> * _Nonnull change, SDLPermissionGroupStatus status) { - NSLog(@"Command / PICS changed permission to status: %@, dict: %@", @(status), change); + SDLLogD(@"Command / PICS changed permission to status: %@, dict: %@", @(status), change); }]; } @@ -199,6 +193,16 @@ + (SDLLifecycleConfiguration *)sdlex_setLifecycleConfigurationPropertiesOnConfig return config; } ++ (SDLLogConfiguration *)sdlex_logConfiguration { + SDLLogConfiguration *logConfig = [SDLLogConfiguration defaultConfiguration]; + SDLLogFileModule *sdlExampleModule = [SDLLogFileModule moduleWithName:@"SDL Example" files:[NSSet setWithArray:@[@"ProxyManager"]]]; + logConfig.modules = [logConfig.modules setByAddingObject:sdlExampleModule]; + logConfig.targets = [logConfig.targets setByAddingObject:[SDLLogTargetFile logger]]; +// logConfig.filters = [logConfig.filters setByAddingObject:[SDLLogFilter filterByAllowingModules:[NSSet setWithObject:@"Transport"]]]; + + return logConfig; +} + - (void)sdlex_updateProxyState:(ProxyState)newState { if (self.state != newState) { [self willChangeValueForKey:@"state"]; @@ -216,7 +220,7 @@ + (SDLAddCommand *)sdlex_speakNameCommandWithManager:(SDLManager *)manager { commandMenuParams.menuName = commandName; SDLAddCommand *speakNameCommand = [[SDLAddCommand alloc] init]; - speakNameCommand.vrCommands = [NSMutableArray arrayWithObject:commandName]; + speakNameCommand.vrCommands = @[commandName]; speakNameCommand.menuParams = commandMenuParams; speakNameCommand.cmdID = @0; @@ -234,7 +238,7 @@ + (SDLAddCommand *)sdlex_interactionSetCommandWithManager:(SDLManager *)manager commandMenuParams.menuName = commandName; SDLAddCommand *performInteractionCommand = [[SDLAddCommand alloc] init]; - performInteractionCommand.vrCommands = [NSMutableArray arrayWithObject:commandName]; + performInteractionCommand.vrCommands = @[commandName]; performInteractionCommand.menuParams = commandMenuParams; performInteractionCommand.cmdID = @1; @@ -292,9 +296,9 @@ + (SDLCreateInteractionChoiceSet *)sdlex_createOnlyChoiceInteractionSet { SDLChoice *theOnlyChoice = [[SDLChoice alloc] init]; theOnlyChoice.choiceID = @0; theOnlyChoice.menuName = theOnlyChoiceName; - theOnlyChoice.vrCommands = [NSMutableArray arrayWithObject:theOnlyChoiceName]; + theOnlyChoice.vrCommands = @[theOnlyChoiceName]; - createInteractionSet.choiceSet = [NSMutableArray arrayWithArray:@[theOnlyChoice]]; + createInteractionSet.choiceSet = @[theOnlyChoice]; return createInteractionSet; } @@ -303,16 +307,17 @@ + (void)sdlex_sendPerformOnlyChoiceInteractionWithManager:(SDLManager *)manager SDLPerformInteraction *performOnlyChoiceInteraction = [[SDLPerformInteraction alloc] init]; performOnlyChoiceInteraction.initialText = @"Choose the only one! You have 5 seconds..."; performOnlyChoiceInteraction.initialPrompt = [SDLTTSChunk textChunksFromString:@"Choose it"]; - performOnlyChoiceInteraction.interactionMode = [SDLInteractionMode BOTH]; - performOnlyChoiceInteraction.interactionChoiceSetIDList = [NSMutableArray arrayWithObject:@0]; + performOnlyChoiceInteraction.interactionMode = SDLInteractionModeBoth; + performOnlyChoiceInteraction.interactionChoiceSetIDList = @[@0]; performOnlyChoiceInteraction.helpPrompt = [SDLTTSChunk textChunksFromString:@"Do it"]; performOnlyChoiceInteraction.timeoutPrompt = [SDLTTSChunk textChunksFromString:@"Too late"]; performOnlyChoiceInteraction.timeout = @5000; - performOnlyChoiceInteraction.interactionLayout = [SDLLayoutMode LIST_ONLY]; + performOnlyChoiceInteraction.interactionLayout = SDLLayoutModeListOnly; [manager sendRequest:performOnlyChoiceInteraction withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLPerformInteractionResponse * _Nullable response, NSError * _Nullable error) { + SDLLogD(@"Perform Interaction fired"); if ((response == nil) || (error != nil)) { - NSLog(@"Something went wrong, no perform interaction response: %@", error); + SDLLogE(@"Something went wrong, no perform interaction response: %@", error); } if ([response.choiceID isEqualToNumber:@0]) { @@ -323,30 +328,119 @@ + (void)sdlex_sendPerformOnlyChoiceInteractionWithManager:(SDLManager *)manager }]; } -+ (SDLSoftButton *)sdlex_pointingSoftButtonWithManager:(SDLManager *)manager { - SDLSoftButton* softButton = [[SDLSoftButton alloc] initWithHandler:^(__kindof SDLRPCNotification *notification) { - if ([notification isKindOfClass:[SDLOnButtonPress class]]) { - SDLAlert* alert = [[SDLAlert alloc] init]; - alert.alertText1 = @"You pushed the button!"; - [manager sendRequest:alert]; ++ (SDLSoftButton *)sdlex_softButton1WithManager:(SDLManager *)manager { + SDLSoftButton* softButton = [[SDLSoftButton alloc] initWithHandler:^(SDLOnButtonPress * _Nullable buttonPressNotification, SDLOnButtonEvent * _Nullable buttonEventNotification) { + if (buttonPressNotification == nil) { + return; } + + SDLAlert* alert = [[SDLAlert alloc] init]; + alert.alertText1 = @"You pushed the soft button!"; + [manager sendRequest:alert]; + + SDLLogD(@"Star icon soft button press fired"); }]; softButton.text = @"Press"; softButton.softButtonID = @100; - softButton.type = SDLSoftButtonType.BOTH; - - SDLImage* image = [[SDLImage alloc] init]; - image.imageType = SDLImageType.DYNAMIC; - image.value = PointingSoftButtonArtworkName; - softButton.image = image; - + + if (areImagesVisible) { + softButton.type = SDLSoftButtonTypeBoth; + SDLImage* image = [[SDLImage alloc] init]; + image.imageType = SDLImageTypeDynamic; + image.value = StarSoftButtonArtworkName; + softButton.image = image; + } else { + softButton.type = SDLSoftButtonTypeText; + } + + return softButton; +} + +static Boolean isHexagonOn = true; +- (SDLSoftButton *)sdlex_softButton2WithManager:(SDLManager *)manager { + SDLSoftButton* softButton = [[SDLSoftButton alloc] initWithHandler:^(SDLOnButtonPress * _Nullable buttonPressNotification, SDLOnButtonEvent * _Nullable buttonEventNotification) { + if (buttonPressNotification == nil) { + return; + } + + isHexagonOn = !isHexagonOn; + [self sdlex_showWithManager:manager]; + + SDLLogD(@"Hexagon icon button press fired %d", isHexagonOn); + }]; + softButton.softButtonID = @200; + + if (areImagesVisible) { + softButton.type = SDLSoftButtonTypeImage; + SDLImage* image = [[SDLImage alloc] init]; + image.value = isHexagonOn ? HexagonOnSoftButtonArtworkName : HexagonOffSoftButtonArtworkName; + image.imageType = SDLImageTypeDynamic; + softButton.image = image; + } else { + softButton.text = isHexagonOn ? @"➖Hex" : @"➕Hex"; + softButton.type = SDLSoftButtonTypeText; + } + + return softButton; +} + +static Boolean isTextOn = true; +- (SDLSoftButton *)sdlex_softButton3WithManager:(SDLManager *)manager { + SDLSoftButton* softButton = [[SDLSoftButton alloc] initWithHandler:^(SDLOnButtonPress * _Nullable buttonPressNotification, SDLOnButtonEvent * _Nullable buttonEventNotification) { + if (buttonPressNotification == nil) { + return; + } + + isTextOn = !isTextOn; + [self sdlex_showWithManager:manager]; + + SDLLogD(@"Text visibility soft button press fired"); + }]; + softButton.softButtonID = @300; + softButton.text = isTextOn ? @"➖Text" : @"➕Text"; + softButton.type = SDLSoftButtonTypeText; + + return softButton; +} + +static Boolean areImagesVisible = true; +- (SDLSoftButton *)sdlex_softButton4WithManager:(SDLManager *)manager { + SDLSoftButton* softButton = [[SDLSoftButton alloc] initWithHandler:^(SDLOnButtonPress * _Nullable buttonPressNotification, SDLOnButtonEvent * _Nullable buttonEventNotification) { + if (buttonPressNotification == nil) { return; } + + if (areImagesVisible) { + [self sdlex_deleteFiles:[self.class sdlex_allArtFileNames] completionHandler:^(BOOL success) { + if (!success) { return; } + [self sdlex_showWithManager:manager]; + }]; + } else { + [self sdlex_uploadFilesWithProgressHandler:[self.class sdlex_allArt] completionHandler:^(BOOL success) { + if (!success) { return; } + [self sdlex_showWithManager:manager]; + }]; + } + + areImagesVisible = !areImagesVisible; + + SDLLogD(@"Image visibility soft button press fired %d", isHexagonOn); + }]; + + softButton.text = areImagesVisible ? @"➖Icons" : @"➕Icons"; + softButton.softButtonID = @400; + softButton.type = SDLSoftButtonTypeText; + return softButton; } + (SDLImage *)sdlex_mainGraphicImage { SDLImage* image = [[SDLImage alloc] init]; - image.imageType = SDLImageType.DYNAMIC; - image.value = MainGraphicArtworkName; + if (areImagesVisible) { + image.imageType = SDLImageTypeDynamic; + image.value = MainGraphicArtworkName; + } else { + image.imageType = SDLImageTypeDynamic; + image.value = MainGraphicBlankArtworkName; + } return image; } @@ -359,17 +453,109 @@ + (void)sdlex_sendGetVehicleDataWithManager:(SDLManager *)manager { }]; } - #pragma mark - Files / Artwork -+ (SDLArtwork *)sdlex_pointingSoftButtonArtwork { - return [SDLArtwork artworkWithImage:[UIImage imageNamed:@"sdl_softbutton_icon"] name:PointingSoftButtonArtworkName asImageFormat:SDLArtworkImageFormatPNG]; ++ (NSArray *)sdlex_allArtAndBlankPlaceholderArt { + NSMutableArray *art = [NSMutableArray array]; + [art addObjectsFromArray:[self.class sdlex_allArt]]; + [art addObject:[self.class sdlex_mainGraphicBlank]]; + return art; +} + ++ (NSArray *)sdlex_allArt { + NSMutableArray *art = [NSMutableArray array]; + [art addObjectsFromArray:[self.class sdlex_softButtonArt]]; + [art addObject:[self.class sdlex_mainGraphicArtwork]]; + return art; +} + ++ (NSArray *)sdlex_allArtFileNames { + NSMutableArray *fileNames = [NSMutableArray array]; + for (SDLArtwork *art in [self.class sdlex_allArt]) { + [fileNames addObject:art.name]; + } + return fileNames; +} + ++ (NSArray *)sdlex_softButtonArt { + return [[NSArray alloc] initWithObjects:[self.class sdlex_softButton1Artwork], [self.class sdlex_softButton2OnArtwork], [self.class sdlex_softButton2OffArtwork], nil]; +} + ++ (NSArray *)sdlex_softButtonArtFileNames { + NSMutableArray *fileNames = [NSMutableArray array]; + for (SDLArtwork *art in [self.class sdlex_softButtonArt]) { + [fileNames addObject:art.name]; + } + return fileNames; +} + ++ (SDLArtwork *)sdlex_softButton1Artwork { + return [SDLArtwork artworkWithImage:[UIImage imageNamed:@"star_softbutton_icon"] name:StarSoftButtonArtworkName asImageFormat:SDLArtworkImageFormatPNG]; +} + ++ (SDLArtwork *)sdlex_softButton2OnArtwork { + return [SDLArtwork artworkWithImage:[UIImage imageNamed:@"hexagon_on_softbutton_icon"] name:HexagonOnSoftButtonArtworkName asImageFormat:SDLArtworkImageFormatPNG]; +} + ++ (SDLArtwork *)sdlex_softButton2OffArtwork { + return [SDLArtwork artworkWithImage:[UIImage imageNamed:@"hexagon_off_softbutton_icon"] name:HexagonOffSoftButtonArtworkName asImageFormat:SDLArtworkImageFormatPNG]; } + (SDLArtwork *)sdlex_mainGraphicArtwork { return [SDLArtwork artworkWithImage:[UIImage imageNamed:@"sdl_logo_green"] name:MainGraphicArtworkName asImageFormat:SDLArtworkImageFormatPNG]; } ++ (SDLArtwork *)sdlex_mainGraphicBlank { + UIGraphicsBeginImageContextWithOptions(CGSizeMake(5, 5), NO, 0.0); + UIImage *blankImage = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + SDLArtwork *mainGraphicBlank = [SDLArtwork artworkWithImage:blankImage name:MainGraphicBlankArtworkName asImageFormat:SDLArtworkImageFormatPNG]; + return mainGraphicBlank; +} + +- (void)sdlex_uploadFiles:(NSArray *)files completionHandler:(void (^)(BOOL success))completionHandler { + [self.sdlManager.fileManager uploadFiles:files completionHandler:^(NSError * _Nullable error) { + if(!error) { + return completionHandler(true); + } else { + SDLLogD(@"Failed file uploads: %@", error.userInfo); + return completionHandler(false); + } + }]; +} + +- (void)sdlex_uploadFilesWithProgressHandler:(NSArray *)files completionHandler:(void (^)(BOOL success))completionHandler { + [self.sdlManager.fileManager uploadFiles:files progressHandler:^BOOL(SDLFileName * _Nonnull fileName, float uploadPercentage, NSError * _Nullable error) { + if (error) { + SDLLogD(@"The file did not upload: %@", error); + // You may want to cancel all future file uploads if the last file failed during the upload process + return NO; + } + + // The file was sent successfully + // Keep uploading the rest of the files + return YES; + } completionHandler:^(NSError * _Nullable error) { + if(!error) { + return completionHandler(true); + } else { + SDLLogD(@"Failed file uploads: %@", error.userInfo); + return completionHandler(false); + } + }]; +} + +- (void)sdlex_deleteFiles:(NSArray *)fileNames completionHandler:(void (^)(BOOL success))completionHandler { + [self.sdlManager.fileManager deleteRemoteFilesWithNames:fileNames completionHandler:^(NSError * _Nullable error) { + if(!error) { + return completionHandler(true); + } else { + SDLLogD(@"Failed file deletes: %@", error.userInfo); + return completionHandler(false); + } + }]; +} + - (void)sdlex_prepareRemoteSystem { [self.sdlManager sendRequest:[self.class sdlex_speakNameCommandWithManager:self.sdlManager]]; [self.sdlManager sendRequest:[self.class sdlex_interactionSetCommandWithManager:self.sdlManager]]; @@ -377,27 +563,13 @@ - (void)sdlex_prepareRemoteSystem { dispatch_group_t dataDispatchGroup = dispatch_group_create(); dispatch_group_enter(dataDispatchGroup); - - dispatch_group_enter(dataDispatchGroup); - [self.sdlManager.fileManager uploadFile:[self.class sdlex_mainGraphicArtwork] completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError * _Nullable error) { - dispatch_group_leave(dataDispatchGroup); - - if (success == NO) { - NSLog(@"Something went wrong, image could not upload: %@", error); - return; - } - }]; dispatch_group_enter(dataDispatchGroup); - [self.sdlManager.fileManager uploadFile:[self.class sdlex_pointingSoftButtonArtwork] completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError * _Nullable error) { + [self sdlex_uploadFiles:[self.class sdlex_allArtAndBlankPlaceholderArt] completionHandler:^(BOOL success) { dispatch_group_leave(dataDispatchGroup); - - if (success == NO) { - NSLog(@"Something went wrong, image could not upload: %@", error); - return; - } + if (!success) { return; } }]; - + dispatch_group_enter(dataDispatchGroup); [self.sdlManager sendRequest:[self.class sdlex_createOnlyChoiceInteractionSet] withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) { // Interaction choice set ready @@ -424,8 +596,8 @@ - (void)managerDidDisconnect { } } -- (void)hmiLevel:(SDLHMILevel *)oldLevel didChangeToLevel:(SDLHMILevel *)newLevel { - if (![newLevel isEqualToEnum:[SDLHMILevel NONE]] && (self.firstTimeState == SDLHMIFirstStateNone)) { +- (void)hmiLevel:(SDLHMILevel)oldLevel didChangeToLevel:(SDLHMILevel)newLevel { + if (![newLevel isEqualToEnum:SDLHMILevelNone] && (self.firstTimeState == SDLHMIFirstStateNone)) { // This is our first time in a non-NONE state self.firstTimeState = SDLHMIFirstStateNonNone; @@ -433,12 +605,12 @@ - (void)hmiLevel:(SDLHMILevel *)oldLevel didChangeToLevel:(SDLHMILevel *)newLeve [self sdlex_prepareRemoteSystem]; } - if ([newLevel isEqualToEnum:[SDLHMILevel FULL]] && (self.firstTimeState != SDLHMIFirstStateFull)) { + if ([newLevel isEqualToEnum:SDLHMILevelFull] && (self.firstTimeState != SDLHMIFirstStateFull)) { // This is our first time in a FULL state self.firstTimeState = SDLHMIFirstStateFull; } - if ([newLevel isEqualToEnum:[SDLHMILevel FULL]]) { + if ([newLevel isEqualToEnum:SDLHMILevelFull]) { // We're always going to try to show the initial state, because if we've already shown it, it won't be shown, and we need to guard against some possible weird states [self sdlex_showInitialData]; } diff --git a/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_white.imageset/Contents.json b/SmartDeviceLink_Example/Images.xcassets/hexagon_off_softbutton_icon.imageset/Contents.json similarity index 67% rename from SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_white.imageset/Contents.json rename to SmartDeviceLink_Example/Images.xcassets/hexagon_off_softbutton_icon.imageset/Contents.json index 3943b868e..9affc0da6 100644 --- a/SmartDeviceLink/Assets/SDLAssets.xcassets/sdl_logo_white.imageset/Contents.json +++ b/SmartDeviceLink_Example/Images.xcassets/hexagon_off_softbutton_icon.imageset/Contents.json @@ -2,17 +2,15 @@ "images" : [ { "idiom" : "universal", - "filename" : "sdl_logo_white.png", + "filename" : "hexagon_black_softbutton_icon.png", "scale" : "1x" }, { "idiom" : "universal", - "filename" : "sdl_logo_white@2x.png", "scale" : "2x" }, { "idiom" : "universal", - "filename" : "sdl_logo_white@3x.png", "scale" : "3x" } ], diff --git a/SmartDeviceLink_Example/Images.xcassets/hexagon_off_softbutton_icon.imageset/hexagon_black_softbutton_icon.png b/SmartDeviceLink_Example/Images.xcassets/hexagon_off_softbutton_icon.imageset/hexagon_black_softbutton_icon.png new file mode 100644 index 000000000..2ec628d9e Binary files /dev/null and b/SmartDeviceLink_Example/Images.xcassets/hexagon_off_softbutton_icon.imageset/hexagon_black_softbutton_icon.png differ diff --git a/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_up_white.imageset/Contents.json b/SmartDeviceLink_Example/Images.xcassets/hexagon_on_softbutton_icon.imageset/Contents.json similarity index 65% rename from SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_up_white.imageset/Contents.json rename to SmartDeviceLink_Example/Images.xcassets/hexagon_on_softbutton_icon.imageset/Contents.json index 3140e0f82..5e22962d4 100644 --- a/SmartDeviceLink/Assets/SDLAssets.xcassets/lock_arrow_up_white.imageset/Contents.json +++ b/SmartDeviceLink_Example/Images.xcassets/hexagon_on_softbutton_icon.imageset/Contents.json @@ -2,17 +2,15 @@ "images" : [ { "idiom" : "universal", - "filename" : "lock_arrow_up_white.png", + "filename" : "hexagon_pink_softbutton_icon.png", "scale" : "1x" }, { "idiom" : "universal", - "filename" : "lock_arrow_up_white@2x.png", "scale" : "2x" }, { "idiom" : "universal", - "filename" : "lock_arrow_up_white@3x.png", "scale" : "3x" } ], diff --git a/SmartDeviceLink_Example/Images.xcassets/hexagon_on_softbutton_icon.imageset/hexagon_pink_softbutton_icon.png b/SmartDeviceLink_Example/Images.xcassets/hexagon_on_softbutton_icon.imageset/hexagon_pink_softbutton_icon.png new file mode 100644 index 000000000..8e588ebb5 Binary files /dev/null and b/SmartDeviceLink_Example/Images.xcassets/hexagon_on_softbutton_icon.imageset/hexagon_pink_softbutton_icon.png differ diff --git a/SmartDeviceLink_Example/Images.xcassets/sdl_softbutton_icon.imageset/sdl_softbutton_icon.png b/SmartDeviceLink_Example/Images.xcassets/sdl_softbutton_icon.imageset/sdl_softbutton_icon.png deleted file mode 100644 index 458d83fd9..000000000 Binary files a/SmartDeviceLink_Example/Images.xcassets/sdl_softbutton_icon.imageset/sdl_softbutton_icon.png and /dev/null differ diff --git a/SmartDeviceLink_Example/Images.xcassets/sdl_softbutton_icon.imageset/Contents.json b/SmartDeviceLink_Example/Images.xcassets/star_softbutton_icon.imageset/Contents.json similarity index 83% rename from SmartDeviceLink_Example/Images.xcassets/sdl_softbutton_icon.imageset/Contents.json rename to SmartDeviceLink_Example/Images.xcassets/star_softbutton_icon.imageset/Contents.json index 602211b70..1a3c6d569 100644 --- a/SmartDeviceLink_Example/Images.xcassets/sdl_softbutton_icon.imageset/Contents.json +++ b/SmartDeviceLink_Example/Images.xcassets/star_softbutton_icon.imageset/Contents.json @@ -2,7 +2,7 @@ "images" : [ { "idiom" : "universal", - "filename" : "sdl_softbutton_icon.png", + "filename" : "star_black_softbutton_icon.png", "scale" : "1x" }, { diff --git a/SmartDeviceLink_Example/Images.xcassets/star_softbutton_icon.imageset/star_black_softbutton_icon.png b/SmartDeviceLink_Example/Images.xcassets/star_softbutton_icon.imageset/star_black_softbutton_icon.png new file mode 100644 index 000000000..70812b60a Binary files /dev/null and b/SmartDeviceLink_Example/Images.xcassets/star_softbutton_icon.imageset/star_black_softbutton_icon.png differ diff --git a/SmartDeviceLink_Example/Info.plist b/SmartDeviceLink_Example/Info.plist index 71c7ef915..46063b5e1 100644 --- a/SmartDeviceLink_Example/Info.plist +++ b/SmartDeviceLink_Example/Info.plist @@ -9,13 +9,13 @@ CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion - 6.0 + 7.0 CFBundleName $(PRODUCT_NAME) CFBundlePackageType APPL CFBundleShortVersionString - 4.7.4 + 5.0.0 CFBundleSignature ???? CFBundleVersion diff --git a/docs/Categories.html b/docs/Categories.html new file mode 100644 index 000000000..094488c39 --- /dev/null +++ b/docs/Categories.html @@ -0,0 +1,27 @@ +

    Categories Reference

    + +

    Section Contents

    + + + +

    Overview

    + +

    The following categories are available globally.

    + + +
    +

    + NSString(SDLEnum) +

    + +

    Undocumented

    + + See more + + + + + +
    diff --git a/docs/Categories/NSString(SDLEnum).html b/docs/Categories/NSString(SDLEnum).html new file mode 100644 index 000000000..c0cc68463 --- /dev/null +++ b/docs/Categories/NSString(SDLEnum).html @@ -0,0 +1,26 @@ +

    NSString(SDLEnum) Category Reference

    + +

    Section Contents

    + + + +

    Overview

    + +

    Undocumented

    + + +
    +

    + -isEqualToEnum: +

    + +

    Undocumented

    + + + + + + +
    diff --git a/docs/Classes.html b/docs/Classes.html index bbae468ab..3de966192 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -14,36 +14,25 @@

    Section Contents

  • SDLAlertManeuver
  • SDLAlertManeuverResponse
  • SDLAlertResponse
  • -
  • SDLAmbientLightStatus
  • -
  • SDLAppHMIType
  • SDLAppInfo
  • -
  • SDLAppInterfaceUnregisteredReason
  • SDLArtwork
  • SDLAudioPassThruCapabilities
  • -
  • SDLAudioStreamingState
  • -
  • SDLAudioType
  • SDLBeltStatus
  • -
  • SDLBitsPerSample
  • SDLBodyInformation
  • SDLButtonCapabilities
  • -
  • SDLButtonEventMode
  • -
  • SDLButtonName
  • -
  • SDLButtonPressMode
  • -
  • SDLCarModeStatus
  • +
  • SDLButtonPress
  • +
  • SDLButtonPressResponse
  • SDLChangeRegistration
  • SDLChangeRegistrationResponse
  • -
  • SDLCharacterSet
  • SDLChoice
  • +
  • SDLClimateControlCapabilities
  • +
  • SDLClimateControlData
  • SDLClusterModeStatus
  • -
  • SDLCompassDirection
  • -
  • SDLComponentVolumeStatus
  • SDLConfiguration
  • -
  • SDLConsoleController
  • SDLCreateInteractionChoiceSet
  • SDLCreateInteractionChoiceSetResponse
  • SDLDIDResult
  • SDLDateTime
  • -
  • SDLDebugTool
  • SDLDeleteCommand
  • SDLDeleteCommandResponse
  • SDLDeleteFile
  • @@ -52,80 +41,60 @@

    Section Contents

  • SDLDeleteInteractionChoiceSetResponse
  • SDLDeleteSubMenu
  • SDLDeleteSubMenuResponse
  • -
  • SDLDeliveryMode
  • SDLDeviceInfo
  • -
  • SDLDeviceLevelStatus
  • SDLDeviceStatus
  • SDLDiagnosticMessage
  • SDLDiagnosticMessageResponse
  • SDLDialNumber
  • SDLDialNumberResponse
  • -
  • SDLDimension
  • SDLDisplayCapabilities
  • -
  • SDLDisplayType
  • -
  • SDLDriverDistractionState
  • -
  • SDLECallConfirmationStatus
  • SDLECallInfo
  • SDLEmergencyEvent
  • -
  • SDLEmergencyEventType
  • SDLEncodedSyncPData
  • SDLEncodedSyncPDataResponse
  • SDLEndAudioPassThru
  • SDLEndAudioPassThruResponse
  • -
  • SDLEnum
  • SDLFile
  • SDLFileManager
  • -
  • SDLFileType
  • -
  • SDLFuelCutoffStatus
  • SDLGPSData
  • SDLGenericResponse
  • SDLGetDTCs
  • SDLGetDTCsResponse
  • +
  • SDLGetInteriorVehicleData
  • +
  • SDLGetInteriorVehicleDataResponse
  • SDLGetSystemCapability
  • SDLGetSystemCapabilityResponse
  • SDLGetVehicleData
  • SDLGetVehicleDataResponse
  • SDLGetWayPoints
  • -
  • SDLGetWaypoints
  • SDLGetWayPointsResponse
  • -
  • SDLGetWaypointsResponse
  • -
  • SDLGlobalProperty
  • SDLHMICapabilities
  • -
  • SDLHMILevel
  • SDLHMIPermissions
  • -
  • SDLHMIZoneCapabilities
  • SDLHapticRect
  • SDLHeadLampStatus
  • SDLIAPTransport
  • -
  • SDLIgnitionStableStatus
  • -
  • SDLIgnitionStatus
  • SDLImage
  • SDLImageField
  • -
  • SDLImageFieldName
  • SDLImageResolution
  • -
  • SDLImageType
  • -
  • SDLInteractionMode
  • -
  • SDLJingle
  • -
  • SDLKeyboardEvent
  • -
  • SDLKeyboardLayout
  • SDLKeyboardProperties
  • -
  • SDLKeypressMode
  • -
  • SDLLanguage
  • -
  • SDLLayoutMode
  • SDLLifecycleConfiguration
  • SDLListFiles
  • SDLListFilesResponse
  • SDLLocationCoordinate
  • SDLLocationDetails
  • SDLLockScreenConfiguration
  • -
  • SDLLockScreenStatus
  • SDLLockScreenViewController
  • -
  • SDLMaintenanceModeStatus
  • +
  • SDLLogConfiguration
  • +
  • SDLLogFileModule
  • +
  • SDLLogFilter
  • +
  • SDLLogManager
  • +
  • SDLLogTargetAppleSystemLog
  • +
  • SDLLogTargetFile
  • +
  • SDLLogTargetOSLog
  • SDLManager
  • -
  • SDLMediaClockFormat
  • SDLMenuParams
  • SDLMetadataTags
  • -
  • SDLMetadataType
  • +
  • SDLModuleData
  • SDLMyKey
  • SDLNavigationCapability
  • SDLNotificationConstants
  • @@ -139,6 +108,7 @@

    Section Contents

  • SDLOnEncodedSyncPData
  • SDLOnHMIStatus
  • SDLOnHashChange
  • +
  • SDLOnInteriorVehicleData
  • SDLOnKeyboardInput
  • SDLOnLanguageChange
  • SDLOnLockScreenStatus
  • @@ -149,8 +119,6 @@

    Section Contents

  • SDLOnTouchEvent
  • SDLOnVehicleData
  • SDLOnWayPointChange
  • -
  • SDLOnWaypointChange
  • -
  • SDLPRNDL
  • SDLParameterPermissions
  • SDLPerformAudioPassThru
  • SDLPerformAudioPassThruResponse
  • @@ -158,14 +126,9 @@

    Section Contents

  • SDLPerformInteractionResponse
  • SDLPermissionItem
  • SDLPermissionManager
  • -
  • SDLPermissionStatus
  • SDLPhoneCapability
  • -
  • SDLPowerModeQualificationStatus
  • -
  • SDLPowerModeStatus
  • -
  • SDLPredefinedLayout
  • -
  • SDLPrerecordedSpeech
  • +
  • SDLPinchGesture
  • SDLPresetBankCapabilities
  • -
  • SDLPrimaryAudioSource
  • SDLProtocol
  • SDLProtocolHeader
  • SDLProtocolMessage
  • @@ -173,24 +136,24 @@

    Section Contents

  • SDLProxyFactory
  • SDLPutFile
  • SDLPutFileResponse
  • +
  • SDLRDSData
  • SDLRPCMessage
  • SDLRPCNotification
  • SDLRPCNotificationNotification
  • SDLRPCRequest
  • -
  • SDLRPCRequestFactory
  • SDLRPCResponse
  • SDLRPCResponseNotification
  • SDLRPCStruct
  • +
  • SDLRadioControlCapabilities
  • +
  • SDLRadioControlData
  • SDLReadDID
  • SDLReadDIDResponse
  • SDLRectangle
  • SDLRegisterAppInterface
  • SDLRegisterAppInterfaceResponse
  • -
  • SDLRequestType
  • +
  • SDLRemoteControlCapabilities
  • SDLResetGlobalProperties
  • SDLResetGlobalPropertiesResponse
  • -
  • SDLResult
  • -
  • SDLSamplingRate
  • SDLScreenParams
  • SDLScrollableMessage
  • SDLScrollableMessageResponse
  • @@ -204,6 +167,8 @@

    Section Contents

  • SDLSetDisplayLayoutResponse
  • SDLSetGlobalProperties
  • SDLSetGlobalPropertiesResponse
  • +
  • SDLSetInteriorVehicleData
  • +
  • SDLSetInteriorVehicleDataResponse
  • SDLSetMediaClockTimer
  • SDLSetMediaClockTimerResponse
  • SDLShow
  • @@ -211,47 +176,35 @@

    Section Contents

  • SDLShowConstantTBTResponse
  • SDLShowResponse
  • SDLSingleTireStatus
  • -
  • SDLSiphonServer
  • SDLSlider
  • SDLSliderResponse
  • SDLSoftButton
  • SDLSoftButtonCapabilities
  • -
  • SDLSoftButtonType
  • SDLSpeak
  • SDLSpeakResponse
  • -
  • SDLSpeechCapabilities
  • SDLStartTime
  • +
  • SDLStreamingMediaConfiguration
  • SDLStreamingMediaManager
  • SDLSubscribeButton
  • SDLSubscribeButtonResponse
  • SDLSubscribeVehicleData
  • SDLSubscribeVehicleDataResponse
  • SDLSubscribeWayPoints
  • -
  • SDLSubscribeWaypoints
  • SDLSubscribeWayPointsResponse
  • -
  • SDLSubscribeWaypointsResponse
  • SDLSyncMsgVersion
  • SDLSyncPData
  • SDLSyncPDataResponse
  • -
  • SDLSystemAction
  • SDLSystemCapability
  • -
  • SDLSystemCapabilityType
  • -
  • SDLSystemContext
  • -
  • SDLTBTState
  • SDLTCPTransport
  • SDLTTSChunk
  • -
  • SDLTTSChunkFactory
  • -
  • SDLTextAlignment
  • +
  • SDLTemperature
  • SDLTextField
  • -
  • SDLTextFieldName
  • -
  • SDLTimerMode
  • SDLTireStatus
  • +
  • SDLTouch
  • SDLTouchCoord
  • SDLTouchEvent
  • SDLTouchEventCapabilities
  • SDLTouchManager
  • -
  • SDLTouchType
  • -
  • SDLTriggerSource
  • SDLTurn
  • SDLUnregisterAppInterface
  • SDLUnregisterAppInterfaceResponse
  • @@ -260,29 +213,14 @@

    Section Contents

  • SDLUnsubscribeVehicleData
  • SDLUnsubscribeVehicleDataResponse
  • SDLUnsubscribeWayPoints
  • -
  • SDLUnsubscribeWaypoints
  • SDLUnsubscribeWayPointsResponse
  • -
  • SDLUnsubscribeWaypointsResponse
  • -
  • SDLUpdateMode
  • SDLUpdateTurnList
  • SDLUpdateTurnListResponse
  • -
  • SDLVehicleDataActiveStatus
  • -
  • SDLVehicleDataEventStatus
  • -
  • SDLVehicleDataNotificationStatus
  • SDLVehicleDataResult
  • -
  • SDLVehicleDataResultCode
  • -
  • SDLVehicleDataStatus
  • -
  • SDLVehicleDataType
  • SDLVehicleType
  • SDLVideoStreamingCapability
  • -
  • SDLVideoStreamingCodec
  • SDLVideoStreamingFormat
  • -
  • SDLVideoStreamingProtocol
  • -
  • SDLVRCapabilities
  • SDLVRHelpItem
  • -
  • SDLWarningLightStatus
  • -
  • SDLWaypointType
  • -
  • SDLWiperStatus
  • Overview

    @@ -349,11 +287,11 @@

    Objective-C

    -
    @interface SDLAddCommand : SDLRPCRequest <SDLRequestHandler>
    +
    @interface SDLAddCommand : SDLRPCRequest

    Swift

    -
    class SDLAddCommand : SDLRPCRequest, SDLRequestHandler
    +
    class SDLAddCommand : SDLRPCRequest
    @@ -366,7 +304,6 @@

    Since SmartDeviceLink 1.0

    - See more

    Objective-C

    @@ -415,7 +352,6 @@

    SDLAddSubMenuResponse is sent, when SDLAddSubMenu has been called Since SmartDeviceLink 1.0

    - See more

    Objective-C

    @@ -513,7 +449,6 @@

  • @since SmartDeviceLink 1.0
  • - See more

    Objective-C

    @@ -546,47 +481,6 @@

    Swift

    -

    - SDLAmbientLightStatus -

    - -

    Reflects the status of the ambient light sensor -@since SDL 3.0

    - - See more - - -

    Objective-C

    -
    @interface SDLAmbientLightStatus : SDLEnum
    - - -

    Swift

    -
    class SDLAmbientLightStatus : SDLEnum
    - - - - -

    - SDLAppHMIType -

    - -

    Enumeration listing possible app hmi types.

    - -

    @since SDL 2.0

    - - See more - - -

    Objective-C

    -
    @interface SDLAppHMIType : SDLEnum
    - - -

    Swift

    -
    class SDLAppHMIType : SDLEnum
    - - - -

    SDLAppInfo

    @@ -599,27 +493,6 @@

    -

    - SDLAppInterfaceUnregisteredReason -

    - -

    Indicates reason why app interface was unregistered. The application is being disconnected by SDL.

    - -

    @since SDL 1.0

    - - See more - - -

    Objective-C

    -
    @interface SDLAppInterfaceUnregisteredReason : SDLEnum
    - - -

    Swift

    -
    class SDLAppInterfaceUnregisteredReason : SDLEnum
    - - - -

    SDLArtwork

    @@ -648,21 +521,21 @@

    samplingRate - SDLSamplingRate * + SDLSamplingRate Describes the sampling rate for AudioPassThru SmartDeviceLink 2.0 bitsPerSample - SDLBitsPerSample * + SDLBitsPerSample Describes the sample depth in bit for AudioPassThru SmartDeviceLink 2.0 audioType - SDLAudioType * + SDLAudioType Describes the audiotype for AudioPassThru SmartDeviceLink 2.0 @@ -684,46 +557,6 @@

    Swift

    -

    - SDLAudioStreamingState -

    - -

    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

    - -

    @since SDL 1.0

    - - See more - - -

    Objective-C

    -
    @interface SDLAudioStreamingState : SDLEnum
    - - -

    Swift

    -
    class SDLAudioStreamingState : SDLEnum
    - - - - -

    - SDLAudioType -

    - -

    Describes different audio type options for PerformAudioPassThru

    - - See more - - -

    Objective-C

    -
    @interface SDLAudioType : SDLEnum
    - - -

    Swift

    -
    class SDLAudioType : SDLEnum
    - - - -

    SDLBeltStatus

    @@ -736,27 +569,6 @@

    -

    - SDLBitsPerSample -

    - -

    Describes different bit depth options for PerformAudioPassThru

    - -

    @since SDL 2.0

    - - See more - - -

    Objective-C

    -
    @interface SDLBitsPerSample : SDLEnum
    - - -

    Swift

    -
    class SDLBitsPerSample : SDLEnum
    - - - -

    SDLBodyInformation

    @@ -797,101 +609,33 @@

    Swift

    -

    - SDLButtonEventMode -

    - -

    Indicates whether the button was depressed or released. A BUTTONUP event will always be preceded by a BUTTONDOWN event.

    - -

    @since SDL 1.0

    - - See more - - -

    Objective-C

    -
    @interface SDLButtonEventMode : SDLEnum
    - - -

    Swift

    -
    class SDLButtonEventMode : SDLEnum
    - - - - -

    - SDLButtonName -

    - -

    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.

    - -

    The preset buttons (0-9) can typically be interpreted by the application as - corresponding to some user-configured choices, though the application is free - to interpret these button presses as it sees fit.

    - -

    The application can discover which buttons a given SDL unit implements by - interrogating the ButtonCapabilities parameter of the - RegisterAppInterface response.

    - -

    @since SDL 1.0

    - - See more - - -

    Objective-C

    -
    @interface SDLButtonName : SDLEnum
    - - -

    Swift

    -
    class SDLButtonName : SDLEnum
    - - - - -

    - SDLButtonPressMode +

    + SDLButtonPress

    -

    Indicates whether this is a LONG or SHORT button press

    - -

    @since SDL 1.0

    +

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

    - See more + See more

    Objective-C

    -
    @interface SDLButtonPressMode : SDLEnum
    +
    @interface SDLButtonPress : SDLRPCRequest

    Swift

    -
    class SDLButtonPressMode : SDLEnum
    +
    class SDLButtonPress : SDLRPCRequest
    -

    - SDLCarModeStatus +

    + SDLButtonPressResponse

    -

    Describes the carmode the vehicle is in.

    - -
      -
    • Since SmartDeviceLink 2.0
    • -
    +

    Undocumented

    - See more -

    Objective-C

    -
    @interface SDLCarModeStatus : SDLEnum
    - - -

    Swift

    -
    class SDLCarModeStatus : SDLEnum
    - @@ -926,7 +670,6 @@

    @since SDL 2.0

    - See more

    Objective-C

    @@ -939,27 +682,6 @@

    Swift

    -

    - SDLCharacterSet -

    - -

    Character sets supported by SDL.

    - -

    @since SDL 1.0

    - - See more - - -

    Objective-C

    -
    @interface SDLCharacterSet : SDLEnum
    - - -

    Swift

    -
    class SDLCharacterSet : SDLEnum
    - - - -

    SDLChoice

    @@ -993,7 +715,7 @@

    vrCommands - NSMutableArray * + NSArray * An array of strings to be used as VR synonyms for this choice. If this array is provided, it must have at least one non-empty element SmartDeviceLink 1.0 @@ -1020,79 +742,56 @@

    Swift

    -

    - SDLClusterModeStatus -

    - -

    Undocumented

    - - See more - - - - - -

    - SDLCompassDirection +

    + SDLClimateControlCapabilities

    -

    The list of potential compass directions.

    +

    Contains information about a climate control module’s capabilities.

    -

    @since SDL 2.0

    - - See more + See more

    Objective-C

    -
    @interface SDLCompassDirection : SDLEnum
    +
    @interface SDLClimateControlCapabilities : SDLRPCStruct

    Swift

    -
    class SDLCompassDirection : SDLEnum
    +
    class SDLClimateControlCapabilities : SDLRPCStruct
    -

    - SDLComponentVolumeStatus +

    + SDLClimateControlData

    -

    The volume status of a vehicle component.

    - -

    @since SDL 2.0

    +

    Undocumented

    - See more - + See more -

    Objective-C

    -
    @interface SDLComponentVolumeStatus : SDLEnum
    - -

    Swift

    -
    class SDLComponentVolumeStatus : SDLEnum
    - -

    - SDLConfiguration +

    + SDLClusterModeStatus

    Undocumented

    - See more + See more -

    - SDLConsoleController +

    + SDLConfiguration

    Undocumented

    - See more + See more @@ -1139,7 +838,6 @@

    Since SmartDeviceLink 1.0

    - See more

    Objective-C

    @@ -1176,18 +874,6 @@

    -

    - SDLDebugTool -

    - -

    Undocumented

    - - See more - - - - -

    SDLDeleteCommand

    @@ -1224,7 +910,6 @@

    Since SmartDeviceLink 1.0

    - See more

    Objective-C

    @@ -1320,7 +1005,6 @@

    Since SmartDeviceLink 1.0

    - See more

    Objective-C

    @@ -1369,7 +1053,6 @@

    Since SmartDeviceLink 1.0

    - See more

    Objective-C

    @@ -1382,25 +1065,6 @@

    Swift

    -

    - SDLDeliveryMode -

    - -

    Specifies the mode in which the sendLocation request is sent.

    - - See more - - -

    Objective-C

    -
    @interface SDLDeliveryMode : SDLEnum
    - - -

    Swift

    -
    class SDLDeliveryMode : SDLEnum
    - - - -

    SDLDeviceInfo

    @@ -1413,27 +1077,6 @@

    -

    - SDLDeviceLevelStatus -

    - -

    Reflects the reported battery status of the connected device, if reported.

    - -

    @since SDL 2.0

    - - See more - - -

    Objective-C

    -
    @interface SDLDeviceLevelStatus : SDLEnum
    - - -

    Swift

    -
    class SDLDeviceLevelStatus : SDLEnum
    - - - -

    SDLDeviceStatus

    @@ -1614,7 +1257,6 @@

    @since SDL 4.0

    - See more

    Objective-C

    @@ -1627,27 +1269,6 @@

    Swift

    -

    - SDLDimension -

    - -

    The supported dimensions of the GPS.

    - -

    @since SDL 2.0

    - - See more - - -

    Objective-C

    -
    @interface SDLDimension : SDLEnum
    - - -

    Swift

    -
    class SDLDimension : SDLEnum
    - - - -

    SDLDisplayCapabilities

    @@ -1669,121 +1290,37 @@

    Swift

    -

    - SDLDisplayType +

    + SDLECallInfo

    -

    Identifies the various display types used by SDL.

    - -

    @since SDL 1.0

    +

    Undocumented

    - See more - + See more -

    Objective-C

    -
    @interface SDLDisplayType : SDLEnum
    - -

    Swift

    -
    class SDLDisplayType : SDLEnum
    - -

    - SDLDriverDistractionState +

    + SDLEmergencyEvent

    -

    Enumeration that describes possible states of driver distraction.

    - -

    @since SDL 1.0

    +

    Undocumented

    - See more - + See more -

    Objective-C

    -
    @interface SDLDriverDistractionState : SDLEnum
    - -

    Swift

    -
    class SDLDriverDistractionState : SDLEnum
    - -

    - SDLECallConfirmationStatus +

    + SDLEncodedSyncPData

    -

    Reflects the status of the eCall Notification. - *Since SmartDeviceLink 2.0 -

    +

    Undocumented

    - See more - - -

    Objective-C

    -
    @interface SDLECallConfirmationStatus : SDLEnum
    - - -

    Swift

    -
    class SDLECallConfirmationStatus : SDLEnum
    - - - - -

    - SDLECallInfo -

    - -

    Undocumented

    - - See more - - - - - -

    - SDLEmergencyEvent -

    - -

    Undocumented

    - - See more - - - - - -

    - SDLEmergencyEventType -

    - -

    Reflects the emergency event status of the vehicle. - * Since: SmartDeviceLink 2.0 - *

    - - See more - - -

    Objective-C

    -
    @interface SDLEmergencyEventType : SDLEnum
    - - -

    Swift

    -
    class SDLEmergencyEventType : SDLEnum
    - - - - -

    - SDLEncodedSyncPData -

    - -

    Undocumented

    - - See more + See more @@ -1795,7 +1332,6 @@

    Undocumented

    - See more @@ -1816,7 +1352,6 @@

    Since SmartDeviceLink 2.0
    see SDLPerformAudioPassThru

    - See more

    Objective-C

    @@ -1837,7 +1372,6 @@

    Since SmartDeviceLink 2.0

    - See more

    Objective-C

    @@ -1850,18 +1384,6 @@

    Swift

    -

    - SDLEnum -

    - -

    Undocumented

    - - See more - - - - -

    SDLFile

    @@ -1893,49 +1415,6 @@

    Swift

    -

    - SDLFileType -

    - -

    Enumeration listing possible file types.

    - -

    @since SDL 2.0

    - - See more - - -

    Objective-C

    -
    @interface SDLFileType : SDLEnum
    - - -

    Swift

    -
    class SDLFileType : SDLEnum
    - - - - -

    - SDLFuelCutoffStatus -

    - -

    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.

    - -

    @since SDL 2.0

    - - See more - - -

    Objective-C

    -
    @interface SDLFuelCutoffStatus : SDLEnum
    - - -

    Swift

    -
    class SDLFuelCutoffStatus : SDLEnum
    - - - -

    SDLGPSData

    @@ -1965,7 +1444,6 @@

    retrieved. Only used in case of an error. Currently, only resultCode INVALID_DATA is used.

    - See more

    Objective-C

    @@ -2024,6 +1502,41 @@

    Swift

    +

    + SDLGetInteriorVehicleData +

    + +

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

    + + See more + + +

    Objective-C

    +
    @interface SDLGetInteriorVehicleData : SDLRPCRequest
    + + +

    Swift

    +
    class SDLGetInteriorVehicleData : SDLRPCRequest
    + + + + +

    + SDLGetInteriorVehicleDataResponse +

    + +

    Undocumented

    + + See more + + + + +

    SDLGetSystemCapability

    @@ -2108,17 +1621,6 @@

    -

    - SDLGetWaypoints -

    - -

    Undocumented

    - - - - - -

    SDLGetWayPointsResponse

    @@ -2131,38 +1633,6 @@

    -

    - SDLGetWaypointsResponse -

    - -

    Undocumented

    - - - - - - -

    - SDLGlobalProperty -

    - -

    Properties of a user-initiated VR interaction (i.e. interactions started by the user pressing the PTT button).

    - -

    @since SDL 1.0

    - - See more - - -

    Objective-C

    -
    @interface SDLGlobalProperty : SDLEnum
    - - -

    Swift

    -
    class SDLGlobalProperty : SDLEnum
    - - - -

    SDLHMICapabilities

    @@ -2175,27 +1645,6 @@

    -

    - SDLHMILevel -

    - -

    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 focus to other applications (e.g. phone, other mobile applications, etc.)

    - -

    @since SDL 1.0

    - - See more - - -

    Objective-C

    -
    @interface SDLHMILevel : SDLEnum
    - - -

    Swift

    -
    class SDLHMILevel : SDLEnum
    - - - -

    SDLHMIPermissions

    @@ -2217,27 +1666,6 @@

    Swift

    -

    - SDLHMIZoneCapabilities -

    - -

    Specifies HMI Zones in the vehicle.

    - -

    @since SDL 1.0

    - - See more - - -

    Objective-C

    -
    @interface SDLHMIZoneCapabilities : SDLEnum
    - - -

    Swift

    -
    class SDLHMIZoneCapabilities : SDLEnum
    - - - -

    SDLHapticRect

    @@ -2288,48 +1716,6 @@

    -

    - SDLIgnitionStableStatus -

    - -

    Reflects the ignition switch stability.

    - -

    @since SDL 2.0

    - - See more - - -

    Objective-C

    -
    @interface SDLIgnitionStableStatus : SDLEnum
    - - -

    Swift

    -
    class SDLIgnitionStableStatus : SDLEnum
    - - - - -

    - SDLIgnitionStatus -

    - -

    Reflects the status of ignition..

    - -

    @since SDL 2.0

    - - See more - - -

    Objective-C

    -
    @interface SDLIgnitionStatus : SDLEnum
    - - -

    Swift

    -
    class SDLIgnitionStatus : SDLEnum
    - - - -

    SDLImage

    @@ -2363,364 +1749,247 @@

    -

    - SDLImageFieldName +

    + SDLImageResolution

    -

    The name that identifies the filed. - * - *

    - -
      -
    • @since SmartDeviceLink 3.0 -*
    • -
    +

    Undocumented

    - See more - + See more -

    Objective-C

    -
    @interface SDLImageFieldName : SDLEnum
    - -

    Swift

    -
    class SDLImageFieldName : SDLEnum
    - -

    - SDLImageResolution +

    + SDLKeyboardProperties

    Undocumented

    - See more + See more -

    - SDLImageType +

    + SDLLifecycleConfiguration

    -

    Contains information about the type of image.

    - -

    @since SDL 2.0

    +

    Configuration options for SDLManager

    - See more + See more

    Objective-C

    -
    @interface SDLImageType : SDLEnum
    +
    @interface SDLLifecycleConfiguration : NSObject <NSCopying>

    Swift

    -
    class SDLImageType : SDLEnum
    +
    class SDLLifecycleConfiguration : NSObject, NSCopying
    -

    - SDLInteractionMode +

    + SDLListFiles

    -

    For application-initiated interactions (SDLPerformInteraction), this specifies the mode by which the user is prompted and by which the user’s selection is indicated

    +

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

    -

    @since SDL 1.0

    +

    Since SmartDeviceLink 2.0

    - See more

    Objective-C

    -
    @interface SDLInteractionMode : SDLEnum
    +
    @interface SDLListFiles : SDLRPCRequest

    Swift

    -
    class SDLInteractionMode : SDLEnum
    +
    class SDLListFiles : SDLRPCRequest
    -

    - SDLJingle +

    + SDLListFilesResponse

    -

    Undocumented

    +

    SDLListFilesResponse is sent, when SDLListFiles has been called

    + +

    Since SmartDeviceLink 2.0

    - See more + See more +

    Objective-C

    +
    @interface SDLListFilesResponse : SDLRPCResponse
    + +

    Swift

    +
    class SDLListFilesResponse : SDLRPCResponse
    + -

    - SDLKeyboardEvent -

    - -

    Enumeration listing possible keyboard events. - *

    - -
      -
    • @since SmartDeviceLink 3.0 -*
    • -
    - - See more +

    + SDLLocationCoordinate +

    -

    Objective-C

    -
    @interface SDLKeyboardEvent : SDLEnum
    +

    Undocumented

    + See more -

    Swift

    -
    class SDLKeyboardEvent : SDLEnum
    - -

    - SDLKeyboardLayout + +

    + SDLLocationDetails

    -

    Enumeration listing possible keyboard layouts - * - *Since SmartDeviceLink 3.0 - *

    +

    Undocumented

    - See more - + See more -

    Objective-C

    -
    @interface SDLKeyboardLayout : SDLEnum
    - -

    Swift

    -
    class SDLKeyboardLayout : SDLEnum
    - -

    - SDLKeyboardProperties +

    + SDLLockScreenConfiguration

    Undocumented

    - See more + See more -

    - SDLKeypressMode +

    + SDLLockScreenViewController

    -

    Enumeration listing possible keyboard events.

    - -
      -
    • -
    • Note: Depending on keypressMode value (from keyboardProperties structure of UI.SetGlobalProperties),
      HMI must send the onKeyboardInput notification with the following data:
      -SINGLE_KEYPRESS,QUEUE_KEYPRESSES,RESEND_CURRENT_ENTRY.
    • -
    • @since SmartDeviceLink 3.0 -*
    • -
    +

    Undocumented

    - See more - + See more -

    Objective-C

    -
    @interface SDLKeypressMode : SDLEnum
    - -

    Swift

    -
    class SDLKeypressMode : SDLEnum
    - -

    - SDLLanguage +

    + SDLLogConfiguration

    -

    Specifies the language to be used for TTS, VR, displayed messages/menus

    - -

    @since SDL 1.0

    +

    Undocumented

    - See more - + See more -

    Objective-C

    -
    @interface SDLLanguage : SDLEnum
    - -

    Swift

    -
    class SDLLanguage : SDLEnum
    - -

    - SDLLayoutMode +

    + SDLLogFileModule

    -

    For touchscreen interactions, the mode of how the choices are presented.

    - -

    @since SDL 3.0

    +

    Undocumented

    - See more - + See more -

    Objective-C

    -
    @interface SDLLayoutMode : SDLEnum
    - -

    Swift

    -
    class SDLLayoutMode : SDLEnum
    - -

    - SDLLifecycleConfiguration +

    + SDLLogFilter

    -

    Configuration options for SDLManager

    +

    Undocumented

    - See more - + See more -

    Objective-C

    -
    @interface SDLLifecycleConfiguration : NSObject <NSCopying>
    - -

    Swift

    -
    class SDLLifecycleConfiguration : NSObject, NSCopying
    - -

    - SDLListFiles +

    + SDLLogManager

    -

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

    - -

    Since SmartDeviceLink 2.0

    +

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

    - See more + See more

    Objective-C

    -
    @interface SDLListFiles : SDLRPCRequest
    +
    @interface SDLLogManager : NSObject

    Swift

    -
    class SDLListFiles : SDLRPCRequest
    +
    class SDLLogManager : NSObject
    -

    - SDLListFilesResponse +

    + SDLLogTargetAppleSystemLog

    -

    SDLListFilesResponse is sent, when SDLListFiles has been called

    +

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

    -

    Since SmartDeviceLink 2.0

    - - See more

    Objective-C

    -
    @interface SDLListFilesResponse : SDLRPCResponse
    +
    @interface SDLLogTargetAppleSystemLog : NSObject <SDLLogTarget>

    Swift

    -
    class SDLListFilesResponse : SDLRPCResponse
    - - - - -

    - SDLLocationCoordinate -

    - -

    Undocumented

    +
    class SDLLogTargetAppleSystemLog : NSObject, SDLLogTarget
    - See more - - -

    - SDLLocationDetails +

    + SDLLogTargetFile

    -

    Undocumented

    +

    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.

    - See more - - - -

    - SDLLockScreenConfiguration -

    - -

    Undocumented

    +

    Objective-C

    +
    @interface SDLLogTargetFile : NSObject <SDLLogTarget>
    - See more - - - - -

    - SDLLockScreenStatus -

    - -

    Undocumented

    +

    Swift

    +
    class SDLLogTargetFile : NSObject, SDLLogTarget
    - See more - - -

    - SDLLockScreenViewController +

    + SDLLogTargetOSLog

    -

    Undocumented

    +

    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).

    - See more - - - - - -

    - SDLMaintenanceModeStatus -

    - -

    The SDLMaintenanceModeStatus class.

    +

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

    - See more

    Objective-C

    -
    @interface SDLMaintenanceModeStatus : SDLEnum
    +
    @interface SDLLogTargetOSLog : NSObject <SDLLogTarget>

    Swift

    -
    class SDLMaintenanceModeStatus : SDLEnum
    +
    class SDLLogTargetOSLog : NSObject, SDLLogTarget
    @@ -2737,32 +2006,6 @@

    -

    - SDLMediaClockFormat -

    - -

    Indicates the format of the time displayed on the connected SDL unit.

    - -

    Format description follows the following nomenclature:
    - Sp = Space
    - | = or
    - c = character

    - -

    @since SDL 1.0

    - - See more - - -

    Objective-C

    -
    @interface SDLMediaClockFormat : SDLEnum
    - - -

    Swift

    -
    class SDLMediaClockFormat : SDLEnum
    - - - -

    SDLMenuParams

    @@ -2796,24 +2039,15 @@

    -

    - SDLMetadataType +

    + SDLModuleData

    -

    The list of possible metadata for text fields

    - -

    @since SDL 4.7.0

    +

    Undocumented

    - See more + See more -

    Objective-C

    -
    @interface SDLMetadataType : SDLEnum
    - - -

    Swift

    -
    class SDLMetadataType : SDLEnum
    - @@ -2884,11 +2118,11 @@

    Objective-C

    -
    @interface SDLOnAppInterfaceUnregistered : SDLRPCNotification
    +
    @interface SDLOnAppInterfaceUnregistered : SDLRPCNotification

    Swift

    -
    class SDLOnAppInterfaceUnregistered : SDLRPCNotification
    +
    class SDLOnAppInterfaceUnregistered : SDLRPCNotification
    @@ -2915,15 +2149,14 @@

    - See more

    Objective-C

    -
    @interface SDLOnAudioPassThru : SDLRPCNotification
    +
    @interface SDLOnAudioPassThru : SDLRPCNotification

    Swift

    -
    class SDLOnAudioPassThru : SDLRPCNotification
    +
    class SDLOnAudioPassThru : SDLRPCNotification
    @@ -2975,11 +2208,11 @@

    Objective-C

    -
    @interface SDLOnButtonEvent : SDLRPCNotification
    +
    @interface SDLOnButtonEvent : SDLRPCNotification

    Swift

    -
    class SDLOnButtonEvent : SDLRPCNotification
    +
    class SDLOnButtonEvent : SDLRPCNotification
    @@ -3040,11 +2273,11 @@

    Objective-C

    -
    @interface SDLOnButtonPress : SDLRPCNotification
    +
    @interface SDLOnButtonPress : SDLRPCNotification

    Swift

    -
    class SDLOnButtonPress : SDLRPCNotification
    +
    class SDLOnButtonPress : SDLRPCNotification
    @@ -3069,11 +2302,11 @@

    Objective-C

    -
    @interface SDLOnCommand : SDLRPCNotification
    +
    @interface SDLOnCommand : SDLRPCNotification

    Swift

    -
    class SDLOnCommand : SDLRPCNotification
    +
    class SDLOnCommand : SDLRPCNotification
    @@ -3102,11 +2335,11 @@

    Objective-C

    -
    @interface SDLOnDriverDistraction : SDLRPCNotification
    +
    @interface SDLOnDriverDistraction : SDLRPCNotification

    Swift

    -
    class SDLOnDriverDistraction : SDLRPCNotification
    +
    class SDLOnDriverDistraction : SDLRPCNotification
    @@ -3145,11 +2378,11 @@

    Objective-C

    -
    @interface SDLOnHMIStatus : SDLRPCNotification
    +
    @interface SDLOnHMIStatus : SDLRPCNotification

    Swift

    -
    class SDLOnHMIStatus : SDLRPCNotification
    +
    class SDLOnHMIStatus : SDLRPCNotification
    @@ -3166,6 +2399,18 @@

    +

    + SDLOnInteriorVehicleData +

    + +

    Undocumented

    + + See more + + + + +

    SDLOnKeyboardInput

    @@ -3190,11 +2435,11 @@

    Objective-C

    -
    @interface SDLOnLanguageChange : SDLRPCNotification
    +
    @interface SDLOnLanguageChange : SDLRPCNotification

    Swift

    -
    class SDLOnLanguageChange : SDLRPCNotification
    +
    class SDLOnLanguageChange : SDLRPCNotification
    @@ -3215,11 +2460,11 @@

    Objective-C

    -
    @interface SDLOnLockScreenStatus : SDLRPCNotification
    +
    @interface SDLOnLockScreenStatus : SDLRPCNotification

    Swift

    -
    class SDLOnLockScreenStatus : SDLRPCNotification
    +
    class SDLOnLockScreenStatus : SDLRPCNotification
    @@ -3236,11 +2481,11 @@

    Objective-C

    -
    @interface SDLOnPermissionsChange : SDLRPCNotification
    +
    @interface SDLOnPermissionsChange : SDLRPCNotification

    Swift

    -
    class SDLOnPermissionsChange : SDLRPCNotification
    +
    class SDLOnPermissionsChange : SDLRPCNotification
    @@ -3305,11 +2550,11 @@

    Objective-C

    -
    @interface SDLOnVehicleData : SDLRPCNotification
    +
    @interface SDLOnVehicleData : SDLRPCNotification

    Swift

    -
    class SDLOnVehicleData : SDLRPCNotification
    +
    class SDLOnVehicleData : SDLRPCNotification
    @@ -3326,38 +2571,6 @@

    -

    - SDLOnWaypointChange -

    - -

    Undocumented

    - - - - - - -

    - SDLPRNDL -

    - -

    The selected gear the car is in.

    - -

    @since SDL 2.0

    - - See more - - -

    Objective-C

    -
    @interface SDLPRNDL : SDLEnum
    - - -

    Swift

    -
    class SDLPRNDL : SDLEnum
    - - - -

    SDLParameterPermissions

    @@ -3415,7 +2628,6 @@

    Since SmartDeviceLink 2.0

    - See more

    Objective-C

    @@ -3504,27 +2716,6 @@

    -

    - SDLPermissionStatus -

    - -

    Enumeration that describes possible permission states of a policy table entry.

    - -

    @since SDL 2.0

    - - See more - - -

    Objective-C

    -
    @interface SDLPermissionStatus : SDLEnum
    - - -

    Swift

    -
    class SDLPermissionStatus : SDLEnum
    - - - -

    SDLPhoneCapability

    @@ -3537,49 +2728,13 @@

    -

    - SDLPowerModeQualificationStatus -

    - -

    Undocumented

    - - See more - - - - - -

    - SDLPowerModeStatus -

    - -

    Undocumented

    - - See more - - - - - -

    - SDLPredefinedLayout -

    - -

    Undocumented

    - - See more - - - - - -

    - SDLPrerecordedSpeech +

    + SDLPinchGesture

    Undocumented

    - See more + See more @@ -3606,27 +2761,6 @@

    Swift

    -

    - SDLPrimaryAudioSource -

    - -

    Reflects the current primary audio source of SDL (if selected).

    - -

    @since SDL 2.0

    - - See more - - -

    Objective-C

    -
    @interface SDLPrimaryAudioSource : SDLEnum
    - - -

    Swift

    -
    class SDLPrimaryAudioSource : SDLEnum
    - - - -

    SDLProtocol

    @@ -3740,61 +2874,69 @@

    Swift

    -

    - SDLRPCMessage +

    + SDLRDSData

    -

    Undocumented

    +

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

    - See more + See more +

    Objective-C

    +
    @interface SDLRDSData : SDLRPCStruct
    + +

    Swift

    +
    class SDLRDSData : SDLRPCStruct
    + -

    - SDLRPCNotification -

    + +

    + SDLRPCMessage +

    Undocumented

    - See more + See more -

    - SDLRPCNotificationNotification +

    + SDLRPCNotification

    Undocumented

    - See more -

    - SDLRPCRequest +

    + SDLRPCNotificationNotification

    Undocumented

    - See more + See more -

    - SDLRPCRequestFactory +

    + SDLRPCRequest

    Undocumented

    - See more + See more @@ -3836,6 +2978,44 @@

    +

    + SDLRadioControlCapabilities +

    + +

    Contains information about a radio control module’s capabilities.

    + + See more + + +

    Objective-C

    +
    @interface SDLRadioControlCapabilities : SDLRPCStruct
    + + +

    Swift

    +
    class SDLRadioControlCapabilities : SDLRPCStruct
    + + + + +

    + SDLRadioControlData +

    + +

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

    + + See more + + +

    Objective-C

    +
    @interface SDLRadioControlData : SDLRPCStruct
    + + +

    Swift

    +
    class SDLRadioControlData : SDLRPCStruct
    + + + +

    SDLReadDID

    @@ -4008,13 +3188,13 @@

    Swift

    -

    - SDLRequestType +

    + SDLRemoteControlCapabilities

    Undocumented

    - See more + See more @@ -4060,7 +3240,6 @@

    Since SmartDeviceLink 1.0

    - See more

    Objective-C

    @@ -4073,48 +3252,6 @@

    Swift

    -

    - SDLResult -

    - -

    Defines the possible result codes returned by SDL to the application in a response to a requested operation

    - -

    @since SDL 1.0

    - - See more - - -

    Objective-C

    -
    @interface SDLResult : SDLEnum
    - - -

    Swift

    -
    class SDLResult : SDLEnum
    - - - - -

    - SDLSamplingRate -

    - -

    Describes different sampling rates for PerformAudioPassThru

    - -

    @since SDL 2.0

    - - See more - - -

    Objective-C

    -
    @interface SDLSamplingRate : SDLEnum
    - - -

    Swift

    -
    class SDLSamplingRate : SDLEnum
    - - - -

    SDLScreenParams

    @@ -4160,7 +3297,6 @@

    Since SmartDeviceLink 2.0

    - See more

    Objective-C

    @@ -4196,11 +3332,17 @@

    SDLSendHapticDataResponse

    -

    Undocumented

    +

    SDLSendHapticDataResponse is sent when SDLSendHapticData has been called

    - See more +

    Objective-C

    +
    @interface SDLSendHapticDataResponse : SDLRPCResponse
    + + +

    Swift

    +
    class SDLSendHapticDataResponse : SDLRPCResponse
    + @@ -4222,7 +3364,6 @@

    Undocumented

    - See more @@ -4261,7 +3402,6 @@

  • SinceSmartDeviceLink 2.0
  • - See more

    Objective-C

    @@ -4351,7 +3491,6 @@

    Since SmartDeviceLink 1.0

    - See more

    Objective-C

    @@ -4364,6 +3503,45 @@

    Swift

    +

    + SDLSetInteriorVehicleData +

    + +

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

    + + See more + + +

    Objective-C

    +
    @interface SDLSetInteriorVehicleData : SDLRPCRequest
    + + +

    Swift

    +
    class SDLSetInteriorVehicleData : SDLRPCRequest
    + + + + +

    + SDLSetInteriorVehicleDataResponse +

    + +

    Used to set the values of one remote control module

    + + See more + + +

    Objective-C

    +
    @interface SDLSetInteriorVehicleDataResponse : SDLRPCResponse
    + + +

    Swift

    +
    class SDLSetInteriorVehicleDataResponse : SDLRPCResponse
    + + + +

    SDLSetMediaClockTimer

    @@ -4398,7 +3576,6 @@

    Since SmartDeviceLink 1.0

    - See more

    Objective-C

    @@ -4485,7 +3662,6 @@

  • SinceSmartDeviceLink 2.0
  • - See more

    Objective-C

    @@ -4506,7 +3682,6 @@

    Since SmartDeviceLink 1.0

    - See more

    Objective-C

    @@ -4540,18 +3715,6 @@

    Swift

    -

    - SDLSiphonServer -

    - -

    Undocumented

    - - See more - - - - -

    SDLSlider

    @@ -4629,25 +3792,6 @@

    Swift

    -

    - SDLSoftButtonType -

    - -

    SoftButtonType (TEXT / IMAGE / BOTH)

    - - See more - - -

    Objective-C

    -
    @interface SDLSoftButtonType : SDLEnum
    - - -

    Swift

    -
    class SDLSoftButtonType : SDLEnum
    - - - -

    SDLSpeak

    @@ -4709,7 +3853,6 @@

    Since SmartDeviceLink 1.0

    - See more

    Objective-C

    @@ -4722,18 +3865,6 @@

    Swift

    -

    - SDLSpeechCapabilities -

    - -

    Undocumented

    - - See more - - - - -

    SDLStartTime

    @@ -4755,6 +3886,18 @@

    Swift

    +

    + SDLStreamingMediaConfiguration +

    + +

    Undocumented

    + + See more + + + + +

    SDLStreamingMediaManager

    @@ -4824,11 +3967,11 @@

    Objective-C

    -
    @interface SDLSubscribeButton : SDLRPCRequest <SDLRequestHandler>
    +
    @interface SDLSubscribeButton : SDLRPCRequest

    Swift

    -
    class SDLSubscribeButton : SDLRPCRequest, SDLRequestHandler
    +
    class SDLSubscribeButton : SDLRPCRequest
    @@ -4841,7 +3984,6 @@

    Since SmartDeviceLink 1.0

    - See more

    Objective-C

    @@ -4930,17 +4072,6 @@

    Swift

    -

    - SDLSubscribeWaypoints -

    - -

    Undocumented

    - - - - - -

    SDLSubscribeWayPointsResponse

    @@ -4952,17 +4083,6 @@

    -

    - SDLSubscribeWaypointsResponse -

    - -

    Undocumented

    - - - - - -

    SDLSyncMsgVersion

    @@ -4990,7 +4110,6 @@

    Undocumented

    - See more @@ -5002,28 +4121,8 @@

    Undocumented

    - See more - - - - - -

    - SDLSystemAction -

    - -

    Enumeration that describes system actions that can be triggered.

    - - See more -

    Objective-C

    -
    @interface SDLSystemAction : SDLEnum
    - - -

    Swift

    -
    class SDLSystemAction : SDLEnum
    - @@ -5050,58 +4149,6 @@

    Swift

    -

    - SDLSystemCapabilityType -

    - -

    The type of system capability to get more information on

    - - See more - - -

    Objective-C

    -
    @interface SDLSystemCapabilityType : SDLEnum
    - - -

    Swift

    -
    class SDLSystemCapabilityType : SDLEnum
    - - - - -

    - SDLSystemContext -

    - -

    Indicates whether or not a user-initiated interaction is in progress, and if so, in what mode (i.e. MENU or VR).

    - -

    @since SDL 1.0

    - - See more - - -

    Objective-C

    -
    @interface SDLSystemContext : SDLEnum
    - - -

    Swift

    -
    class SDLSystemContext : SDLEnum
    - - - - -

    - SDLTBTState -

    - -

    Undocumented

    - - See more - - - - -

    SDLTCPTransport

    @@ -5161,39 +4208,18 @@

    Swift

    -

    - SDLTTSChunkFactory +

    + SDLTemperature

    Undocumented

    - See more + See more -

    - SDLTextAlignment -

    - -

    The list of possible alignments of text in a field. May only work on some display types.

    - -

    @since SDL 1.0

    - - See more - - -

    Objective-C

    -
    @interface SDLTextAlignment : SDLEnum
    - - -

    Swift

    -
    class SDLTextAlignment : SDLEnum
    - - - -

    SDLTextField

    @@ -5259,46 +4285,25 @@

    Swift

    -

    - SDLTextFieldName -

    - -

    Names of the text fields that can appear on a SDL display.

    - -

    @since SDL 1.0

    - - See more - - -

    Objective-C

    -
    @interface SDLTextFieldName : SDLEnum
    - - -

    Swift

    -
    class SDLTextFieldName : SDLEnum
    - - - - -

    - SDLTimerMode +

    + SDLTireStatus

    Undocumented

    - See more + See more -

    - SDLTireStatus +

    + SDLTouch

    Undocumented

    - See more + See more @@ -5352,39 +4357,6 @@

    -

    - SDLTouchType -

    - -

    Undocumented

    - - See more - - - - - -

    - SDLTriggerSource -

    - -

    Indicates whether choice/command was selected via VR or via a menu selection (using SEEKRIGHT/SEEKLEFT, TUNEUP, TUNEDOWN, OK buttons)

    - -

    @since SDL 1.0

    - - See more - - -

    Objective-C

    -
    @interface SDLTriggerSource : SDLEnum
    - - -

    Swift

    -
    class SDLTriggerSource : SDLEnum
    - - - -

    SDLTurn

    @@ -5415,7 +4387,6 @@

    See SDLRegisterAppInterface SDLOnAppInterfaceUnregistered

    - See more

    Objective-C

    @@ -5436,7 +4407,6 @@

    @since SmartDeviceLink 1.0

    - See more

    Objective-C

    @@ -5486,7 +4456,6 @@

    @since SmartDeviceLink 1.0

    - See more

    Objective-C

    @@ -5559,17 +4528,6 @@

    -

    - SDLUnsubscribeWaypoints -

    - -

    Undocumented

    - - - - - -

    SDLUnsubscribeWayPointsResponse

    @@ -5581,38 +4539,6 @@

    -

    - SDLUnsubscribeWaypointsResponse -

    - -

    Undocumented

    - - - - - - -

    - SDLUpdateMode -

    - -

    Specifies what function should be performed on the media clock/counter

    - -

    @since SDL 1.0

    - - See more - - -

    Objective-C

    -
    @interface SDLUpdateMode : SDLEnum
    - - -

    Swift

    -
    class SDLUpdateMode : SDLEnum
    - - - -

    SDLUpdateTurnList

    @@ -5648,7 +4574,6 @@

  • SinceSmartDeviceLink 2.0
  • - See more

    Objective-C

    @@ -5661,67 +4586,6 @@

    Swift

    -

    - SDLVehicleDataActiveStatus -

    - -

    Vehicle Data Activity Status

    - - See more - - -

    Objective-C

    -
    @interface SDLVehicleDataActiveStatus : SDLEnum
    - - -

    Swift

    -
    class SDLVehicleDataActiveStatus : SDLEnum
    - - - - -

    - SDLVehicleDataEventStatus -

    - -

    Reflects the status of a vehicle data event; e.g. a seat belt event status.

    - -

    @since SDL 2.0

    - - See more - - -

    Objective-C

    -
    @interface SDLVehicleDataEventStatus : SDLEnum
    - - -

    Swift

    -
    class SDLVehicleDataEventStatus : SDLEnum
    - - - - -

    - SDLVehicleDataNotificationStatus -

    - -

    Reflects the status of a vehicle data notification.

    - -

    @since SDL 2.0

    - - See more - - -

    Objective-C

    -
    @interface SDLVehicleDataNotificationStatus : SDLEnum
    - - -

    Swift

    -
    class SDLVehicleDataNotificationStatus : SDLEnum
    - - - -

    SDLVehicleDataResult

    @@ -5734,65 +4598,6 @@

    -

    - SDLVehicleDataResultCode -

    - -

    Vehicle Data Result Code

    - - See more - - -

    Objective-C

    -
    @interface SDLVehicleDataResultCode : SDLEnum
    - - -

    Swift

    -
    class SDLVehicleDataResultCode : SDLEnum
    - - - - -

    - SDLVehicleDataStatus -

    - -

    Reflects the status of a binary vehicle data item.

    - -

    @since SDL 2.0

    - - See more - - -

    Objective-C

    -
    @interface SDLVehicleDataStatus : SDLEnum
    - - -

    Swift

    -
    class SDLVehicleDataStatus : SDLEnum
    - - - - -

    - SDLVehicleDataType -

    - -

    Defines the vehicle data types that can be published and/or subscribed to using SDLSubscribeVehicleData

    - - See more - - -

    Objective-C

    -
    @interface SDLVehicleDataType : SDLEnum
    - - -

    Swift

    -
    class SDLVehicleDataType : SDLEnum
    - - - -

    SDLVehicleType

    @@ -5826,27 +4631,6 @@

    -

    - SDLVideoStreamingCodec -

    - -

    Enum for each type of video streaming codec

    - -

    @since SDL 4.7

    - - See more - - -

    Objective-C

    -
    @interface SDLVideoStreamingCodec : SDLEnum
    - - -

    Swift

    -
    class SDLVideoStreamingCodec : SDLEnum
    - - - -

    SDLVideoStreamingFormat

    @@ -5859,48 +4643,6 @@

    -

    - SDLVideoStreamingProtocol -

    - -

    Enum for each type of video streaming protocol

    - -

    @since SDL 4.7

    - - See more - - -

    Objective-C

    -
    @interface SDLVideoStreamingProtocol : SDLEnum
    - - -

    Swift

    -
    class SDLVideoStreamingProtocol : SDLEnum
    - - - - -

    - SDLVRCapabilities -

    - -

    The VR capabilities of the connected SDL platform.

    - -

    @since SDL 1.0

    - - See more - - -

    Objective-C

    -
    @interface SDLVRCapabilities : SDLEnum
    - - -

    Swift

    -
    class SDLVRCapabilities : SDLEnum
    - - - -

    SDLVRHelpItem

    @@ -5913,56 +4655,4 @@

    -

    - SDLWarningLightStatus -

    - -

    Reflects the status of a cluster instrument warning light.

    - -

    @since SDL 2.0

    - - See more - - -

    Objective-C

    -
    @interface SDLWarningLightStatus : SDLEnum
    - - -

    Swift

    -
    class SDLWarningLightStatus : SDLEnum
    - - - - -

    - SDLWaypointType -

    - -

    Undocumented

    - - See more - - - - - -

    - SDLWiperStatus -

    - -

    Wiper Status

    - - See more - - -

    Objective-C

    -
    @interface SDLWiperStatus : SDLEnum
    - - -

    Swift

    -
    class SDLWiperStatus : SDLEnum
    - - - - diff --git a/docs/Classes/SDLAbstractProtocol.html b/docs/Classes/SDLAbstractProtocol.html index bbf903d4d..368e6683b 100644 --- a/docs/Classes/SDLAbstractProtocol.html +++ b/docs/Classes/SDLAbstractProtocol.html @@ -8,22 +8,14 @@

    Section Contents

  • protocolDelegateTable
  • securityManager
  • appId
  • -
  • -sendStartSessionWithType:
  • -
  • -startServiceWithType:
  • -startServiceWithType:payload:
  • -
  • -startSecureServiceWithType:completionHandler:
  • -startSecureServiceWithType:payload:completionHandler:
  • -
  • -sendEndSessionWithType:
  • -endServiceWithType:
  • -
  • -sendRPCRequest:
  • -sendRPC:
  • -sendRPC:encrypted:error:
  • -sendRawData:withServiceType:
  • -sendEncryptedRawData:onService:
  • -
  • -sendRawDataStream:withServiceType:
  • -
  • -sendHeartbeat
  • -handleBytesFromTransport:
  • -
  • -dispose
  • Overview

    @@ -87,28 +79,6 @@

    -

    - -sendStartSessionWithType: -

    - -

    Undocumented

    - - - - - - -

    - -startServiceWithType: -

    - -

    Undocumented

    - - - - - -

    -startServiceWithType:payload:

    @@ -120,17 +90,6 @@

    -

    - -startSecureServiceWithType:completionHandler: -

    - -

    Undocumented

    - - - - - -

    -startSecureServiceWithType:payload:completionHandler:

    @@ -142,17 +101,6 @@

    -

    - -sendEndSessionWithType: -

    - -

    Undocumented

    - - - - - -

    -endServiceWithType:

    @@ -164,17 +112,6 @@

    -

    - -sendRPCRequest: -

    - -

    Undocumented

    - - - - - -

    -sendRPC:

    @@ -219,28 +156,6 @@

    -

    - -sendRawDataStream:withServiceType: -

    - -

    Undocumented

    - - - - - - -

    - -sendHeartbeat -

    - -

    Undocumented

    - - - - - -

    -handleBytesFromTransport:

    @@ -252,15 +167,4 @@

    -

    - -dispose -

    - -

    Undocumented

    - - - - - - diff --git a/docs/Classes/SDLAbstractTransport.html b/docs/Classes/SDLAbstractTransport.html index 6d31fd83f..8f4da4575 100644 --- a/docs/Classes/SDLAbstractTransport.html +++ b/docs/Classes/SDLAbstractTransport.html @@ -8,7 +8,6 @@

    Section Contents

  • -connect
  • -disconnect
  • -sendData:
  • -
  • -dispose
  • -retryDelay
  • @@ -73,17 +72,6 @@

    -

    - -dispose -

    - -

    Undocumented

    - - - - - -

    -retryDelay

    diff --git a/docs/Classes/SDLAddCommand.html b/docs/Classes/SDLAddCommand.html index b55a80898..24ded1c16 100644 --- a/docs/Classes/SDLAddCommand.html +++ b/docs/Classes/SDLAddCommand.html @@ -3,9 +3,7 @@

    SDLAddCommand Class Reference

    Section Contents

      -
    • -init
    • -initWithHandler:
    • -
    • -initWithDictionary:
    • -initWithId:vrCommands:handler:
    • -initWithId:vrCommands:menuName:handler:
    • -initWithId:vrCommands:menuName:parentId:position:iconValue:iconType:handler:
    • @@ -46,24 +44,6 @@

      Overview

      -

      - -init -

      - -

      Constructs a new SDLAddCommand object

      - - - -

      Objective-C

      -
      - (instancetype)init;
      - - -

      Swift

      -
      init!()
      - - - -

      -initWithHandler:

      @@ -73,11 +53,12 @@

      Objective-C

      -
      - (instancetype)initWithHandler:(SDLRPCNotificationHandler)handler;
      +
      - (nonnull instancetype)initWithHandler:
      +    (nullable SDLRPCCommandNotificationHandler)handler;

      Swift

      -
      init!(handler: SDLRPCNotificationHandler!)
      +
      init(handler: SDLRPCCommandNotificationHandler? = nil)
      @@ -91,29 +72,6 @@

      Return Value

      An SDLAddCommand object

      -

      - -initWithDictionary: -

      - -

      Constructs a new SDLAddCommand object indicated by the dictionary parameter

      - - - -

      Objective-C

      -
      - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
      - - -

      Swift

      -
      init!(dictionary dict: NSMutableDictionary!)
      - - - -

      Parameters

      -
      -
      dict
      -

      The dictionary to use

      -
      -

      -initWithId:vrCommands:handler:

      @@ -123,7 +81,7 @@

      Objective-C

      -
      @interface SDLAddCommand : SDLRPCRequest <SDLRequestHandler>
      +
      @interface SDLAddCommand : SDLRPCRequest
      @@ -138,7 +96,7 @@

      Objective-C

      -
      @interface SDLAddCommand : SDLRPCRequest <SDLRequestHandler>
      +
      @interface SDLAddCommand : SDLRPCRequest
      @@ -153,7 +111,7 @@

      @interface SDLAddCommand : SDLRPCRequest <SDLRequestHandler> +
      @interface SDLAddCommand : SDLRPCRequest
      @@ -173,11 +131,12 @@

      Objective-C

      -
      @property (readwrite, copy, nonatomic) SDLRPCNotificationHandler handler;
      +
      @property (readwrite, copy, nonatomic, nullable)
      +    SDLRPCCommandNotificationHandler handler;

      Swift

      -
      var handler: SDLRPCNotificationHandler! { get set }
      +
      var handler: SDLRPCCommandNotificationHandler? { get set }
      @@ -195,11 +154,11 @@

      Objective-C

      -
      @property (readwrite, strong, atomic) NSNumber *cmdID;
      +
      @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull cmdID;

      Swift

      -
      var cmdID: NSNumber! { get set }
      +
      var cmdID: NSNumber 
      @@ -220,11 +179,11 @@

      Objective-C

      -
      @property (readwrite, strong, atomic) SDLMenuParams *menuParams;
      +
      @property (readwrite, strong, nonatomic, nullable) SDLMenuParams *menuParams;

      Swift

      -
      var menuParams: SDLMenuParams! { get set }
      +
      var menuParams: SDLMenuParams? { get set }
      @@ -244,11 +203,12 @@

      Objective-C

      -
      @property (readwrite, strong, atomic) NSMutableArray *vrCommands;
      +
      @property (readwrite, strong, nonatomic, nullable)
      +    NSArray<NSString *> *vrCommands;

      Swift

      -
      var vrCommands: NSMutableArray! { get set }
      +
      var vrCommands: [String]? { get set }
      @@ -268,11 +228,11 @@

      Objective-C

      -
      @property (readwrite, strong, atomic) SDLImage *cmdIcon;
      +
      @property (readwrite, strong, nonatomic, nullable) SDLImage *cmdIcon;

      Swift

      -
      var cmdIcon: SDLImage! { get set }
      +
      var cmdIcon: SDLImage? { get set }
      diff --git a/docs/Classes/SDLAddCommandResponse.html b/docs/Classes/SDLAddCommandResponse.html deleted file mode 100644 index 72ff1f951..000000000 --- a/docs/Classes/SDLAddCommandResponse.html +++ /dev/null @@ -1,48 +0,0 @@ -

      SDLAddCommandResponse Class Reference

      - -

      Section Contents

      - - - -

      Overview

      - -

      SDLAddCommandResponse is sent, when SDLAddCommand has been called

      - -

      Since SmartDeviceLink 1.0

      - - -
      -

      - -init -

      - -

      Undocumented

      - - - -

      Objective-C

      -
      @interface SDLAddCommandResponse : SDLRPCResponse
      - - - - - -

      - -initWithDictionary: -

      - -

      Undocumented

      - - - -

      Objective-C

      -
      @interface SDLAddCommandResponse : SDLRPCResponse
      - - - - - -
      diff --git a/docs/Classes/SDLAddSubMenu.html b/docs/Classes/SDLAddSubMenu.html index 6f471313b..827765439 100644 --- a/docs/Classes/SDLAddSubMenu.html +++ b/docs/Classes/SDLAddSubMenu.html @@ -3,8 +3,6 @@

      SDLAddSubMenu Class Reference

      Section Contents

        -
      • -init
      • -
      • -initWithDictionary:
      • -initWithId:menuName:
      • -initWithId:menuName:position:
      • menuID
      • @@ -28,48 +26,6 @@

        Overview

        -

        - -init -

        - -

        Constructs a new SDLAddSubMenu object

        - - - -

        Objective-C

        -
        - (instancetype)init;
        - - -

        Swift

        -
        init!()
        - - - - -

        - -initWithDictionary: -

        - -

        Constructs a new SDLAddSubMenu object indicated by the dictionary parameter -

        - - - -

        Objective-C

        -
        - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
        - - -

        Swift

        -
        init!(dictionary dict: NSMutableDictionary!)
        - - - -

        Parameters

        -
        -
        dict
        -

        The dictionary to use

        -
        -

        -initWithId:menuName:

        @@ -112,11 +68,11 @@

        Objective-C

        -
        @property (readwrite, strong, atomic) NSNumber *menuID;
        +
        @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull menuID;

        Swift

        -
        var menuID: NSNumber! { get set }
        +
        var menuID: NSNumber 
        @@ -145,11 +101,11 @@

        Objective-C

        -
        @property (readwrite, strong, atomic) NSNumber *position;
        +
        @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *position;

        Swift

        -
        var position: NSNumber! { get set }
        +
        var position: (NSNumber 
        @@ -164,11 +120,11 @@

        Objective-C

        -
        @property (readwrite, strong, atomic) NSString *menuName;
        +
        @property (readwrite, strong, nonatomic) NSString *_Nonnull menuName;

        Swift

        -
        var menuName: String! { get set }
        +
        var menuName: String { get set }
        diff --git a/docs/Classes/SDLAddSubMenuResponse.html b/docs/Classes/SDLAddSubMenuResponse.html deleted file mode 100644 index 3ee1ed84e..000000000 --- a/docs/Classes/SDLAddSubMenuResponse.html +++ /dev/null @@ -1,47 +0,0 @@ -

        SDLAddSubMenuResponse Class Reference

        - -

        Section Contents

        - - - -

        Overview

        - -

        SDLAddSubMenuResponse is sent, when SDLAddSubMenu has been called -Since SmartDeviceLink 1.0

        - - -
        -

        - -init -

        - -

        Undocumented

        - - - -

        Objective-C

        -
        @interface SDLAddSubMenuResponse : SDLRPCResponse
        - - - - - -

        - -initWithDictionary: -

        - -

        Undocumented

        - - - -

        Objective-C

        -
        @interface SDLAddSubMenuResponse : SDLRPCResponse
        - - - - - -
        diff --git a/docs/Classes/SDLAirbagStatus.html b/docs/Classes/SDLAirbagStatus.html index 349114714..e4d2253ca 100644 --- a/docs/Classes/SDLAirbagStatus.html +++ b/docs/Classes/SDLAirbagStatus.html @@ -3,8 +3,6 @@

        SDLAirbagStatus Class Reference

        Section Contents

          -
        • -init
        • -
        • -initWithDictionary:
        • driverAirbagDeployed
        • driverSideAirbagDeployed
        • driverCurtainAirbagDeployed
        • @@ -21,28 +19,6 @@

          Overview

          -

          - -init -

          - -

          Undocumented

          - - - - - - -

          - -initWithDictionary: -

          - -

          Undocumented

          - - - - - -

          driverAirbagDeployed

          diff --git a/docs/Classes/SDLAlert.html b/docs/Classes/SDLAlert.html index d0765221d..c958e5649 100644 --- a/docs/Classes/SDLAlert.html +++ b/docs/Classes/SDLAlert.html @@ -3,8 +3,6 @@

          SDLAlert Class Reference

          Section Contents

            -
          • -init
          • -
          • -initWithDictionary:
          • -initWithAlertText1:alertText2:duration:
          • -initWithAlertText1:alertText2:alertText3:
          • -initWithAlertText1:alertText2:alertText3:duration:
          • @@ -56,47 +54,6 @@

            Overview

            -

            - -init -

            - -

            Constructs a new SDLAlert object

            - - - -

            Objective-C

            -
            - (instancetype)init;
            - - -

            Swift

            -
            init!()
            - - - - -

            - -initWithDictionary: -

            - -

            Constructs a new SDLAlert object indicated by the dictionary parameter

            - - - -

            Objective-C

            -
            - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
            - - -

            Swift

            -
            init!(dictionary dict: NSMutableDictionary!)
            - - - -

            Parameters

            -
            -
            dict
            -

            The dictionary to use

            -
            -

            -initWithAlertText1:alertText2:duration:

            @@ -264,11 +221,11 @@

            Objective-C

            -
            @property (readwrite, strong, atomic) NSString *alertText1;
            +
            @property (readwrite, strong, nonatomic, nullable) NSString *alertText1;

            Swift

            -
            var alertText1: String! { get set }
            +
            var alertText1: String? { get set }
            @@ -292,11 +249,11 @@

            Objective-C

            -
            @property (readwrite, strong, atomic) NSString *alertText2;
            +
            @property (readwrite, strong, nonatomic, nullable) NSString *alertText2;

            Swift

            -
            var alertText2: String! { get set }
            +
            var alertText2: String? { get set }
            @@ -319,11 +276,11 @@

            Objective-C

            -
            @property (readwrite, strong, atomic) NSString *alertText3;
            +
            @property (readwrite, strong, nonatomic, nullable) NSString *alertText3;

            Swift

            -
            var alertText3: String! { get set }
            +
            var alertText3: String? { get set }
            @@ -344,11 +301,12 @@

            Objective-C

            -
            @property (readwrite, strong, atomic) NSMutableArray *ttsChunks;
            +
            @property (readwrite, strong, nonatomic, nullable)
            +    NSArray<SDLTTSChunk *> *ttsChunks;

            Swift

            -
            var ttsChunks: NSMutableArray! { get set }
            +
            var ttsChunks: [SDLTTSChunk]? { get set }
            @@ -370,11 +328,11 @@

            Objective-C

            -
            @property (readwrite, strong, atomic) NSNumber *duration;
            +
            @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *duration;

            Swift

            -
            var duration: NSNumber! { get set }
            +
            var duration: (NSNumber 
            @@ -392,11 +350,11 @@

            Objective-C

            -
            @property (readwrite, strong, atomic) NSNumber *playTone;
            +
            @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *playTone;

            Swift

            -
            var playTone: NSNumber! { get set }
            +
            var playTone: (NSNumber 
            @@ -414,11 +372,12 @@

            Objective-C

            -
            @property (readwrite, strong, atomic) NSNumber *progressIndicator;
            +
            @property (readwrite, strong, nonatomic, nullable)
            +    NSNumber<SDLBool> *progressIndicator;

            Swift

            -
            var progressIndicator: NSNumber! { get set }
            +
            var progressIndicator: (NSNumber 
            @@ -441,11 +400,12 @@

            Objective-C

            -
            @property (readwrite, strong, atomic) NSMutableArray *softButtons;
            +
            @property (readwrite, strong, nonatomic, nullable)
            +    NSArray<SDLSoftButton *> *softButtons;

            Swift

            -
            var softButtons: NSMutableArray! { get set }
            +
            var softButtons: [SDLSoftButton]? { get set }
            diff --git a/docs/Classes/SDLAlertManeuver.html b/docs/Classes/SDLAlertManeuver.html index 0e91bc876..a12497161 100644 --- a/docs/Classes/SDLAlertManeuver.html +++ b/docs/Classes/SDLAlertManeuver.html @@ -3,8 +3,6 @@

            SDLAlertManeuver Class Reference

            Section Contents

              -
            • -init
            • -
            • -initWithDictionary:
            • -initWithTTS:softButtons:
            • -initWithTTSChunks:softButtons:
            • ttsChunks
            • @@ -17,36 +15,6 @@

              Overview

              -

              - -init -

              - -

              Undocumented

              - - - -

              Objective-C

              -
              @interface SDLAlertManeuver : SDLRPCRequest
              - - - - - -

              - -initWithDictionary: -

              - -

              Undocumented

              - - - -

              Objective-C

              -
              @interface SDLAlertManeuver : SDLRPCRequest
              - - - - -

              -initWithTTS:softButtons:

              diff --git a/docs/Classes/SDLAlertManeuverResponse.html b/docs/Classes/SDLAlertManeuverResponse.html deleted file mode 100644 index 1b49821bc..000000000 --- a/docs/Classes/SDLAlertManeuverResponse.html +++ /dev/null @@ -1,50 +0,0 @@ -

              SDLAlertManeuverResponse Class Reference

              - -

              Section Contents

              - - - -

              Overview

              - -

              SDLAlertManeuverResponse is sent, when SDLAlertManeuver has been called.

              - -
                -
              • @since SmartDeviceLink 1.0
              • -
              - - -
              -

              - -init -

              - -

              Undocumented

              - - - -

              Objective-C

              -
              @interface SDLAlertManeuverResponse : SDLRPCResponse
              - - - - - -

              - -initWithDictionary: -

              - -

              Undocumented

              - - - -

              Objective-C

              -
              @interface SDLAlertManeuverResponse : SDLRPCResponse
              - - - - - -
              diff --git a/docs/Classes/SDLAlertResponse.html b/docs/Classes/SDLAlertResponse.html index c2a2beb86..93a080621 100644 --- a/docs/Classes/SDLAlertResponse.html +++ b/docs/Classes/SDLAlertResponse.html @@ -3,8 +3,6 @@

              SDLAlertResponse Class Reference

              Section Contents

              @@ -15,36 +13,6 @@

              Overview

              -

              - -init -

              - -

              Undocumented

              - - - -

              Objective-C

              -
              @interface SDLAlertResponse : SDLRPCResponse
              - - - - - -

              - -initWithDictionary: -

              - -

              Undocumented

              - - - -

              Objective-C

              -
              @interface SDLAlertResponse : SDLRPCResponse
              - - - - -

              tryAgainTime

              diff --git a/docs/Classes/SDLAmbientLightStatus.html b/docs/Classes/SDLAmbientLightStatus.html deleted file mode 100644 index 5811862a7..000000000 --- a/docs/Classes/SDLAmbientLightStatus.html +++ /dev/null @@ -1,175 +0,0 @@ -

              SDLAmbientLightStatus Class Reference

              - -

              Section Contents

              - - - -

              Overview

              - -

              Reflects the status of the ambient light sensor -@since SDL 3.0

              - - -
              -

              - +valueOf: -

              - -

              Undocumented

              - - - -

              Objective-C

              -
              @interface SDLAmbientLightStatus : SDLEnum
              - - - - - -

              - +values -

              - -

              Undocumented

              - - - -

              Objective-C

              -
              @interface SDLAmbientLightStatus : SDLEnum
              - - - - - -

              - +NIGHT -

              - -

              Undocumented

              - - - -

              Objective-C

              -
              @interface SDLAmbientLightStatus : SDLEnum
              - - - - - -

              - +TWILIGHT_1 -

              - -

              Undocumented

              - - - -

              Objective-C

              -
              @interface SDLAmbientLightStatus : SDLEnum
              - - - - - -

              - +TWILIGHT_2 -

              - -

              Undocumented

              - - - -

              Objective-C

              -
              @interface SDLAmbientLightStatus : SDLEnum
              - - - - - -

              - +TWILIGHT_3 -

              - -

              Undocumented

              - - - -

              Objective-C

              -
              @interface SDLAmbientLightStatus : SDLEnum
              - - - - - -

              - +TWILIGHT_4 -

              - -

              Undocumented

              - - - -

              Objective-C

              -
              @interface SDLAmbientLightStatus : SDLEnum
              - - - - - -

              - +DAY -

              - -

              Undocumented

              - - - -

              Objective-C

              -
              @interface SDLAmbientLightStatus : SDLEnum
              - - - - - -

              - +UNKNOWN -

              - -

              Undocumented

              - - - -

              Objective-C

              -
              @interface SDLAmbientLightStatus : SDLEnum
              - - - - - -

              - +INVALID -

              - -

              Undocumented

              - - - -

              Objective-C

              -
              @interface SDLAmbientLightStatus : SDLEnum
              - - - - - -
              diff --git a/docs/Classes/SDLAppHMIType.html b/docs/Classes/SDLAppHMIType.html deleted file mode 100644 index 3cf762189..000000000 --- a/docs/Classes/SDLAppHMIType.html +++ /dev/null @@ -1,313 +0,0 @@ -

              SDLAppHMIType Class Reference

              - -

              Section Contents

              - - - -

              Overview

              - -

              Enumeration listing possible app hmi types.

              - -

              @since SDL 2.0

              - - -
              -

              - +valueOf: -

              - -

              @abstract Convert String to AppHMIType

              - - - -

              Objective-C

              -
              + (SDLAppHMIType *)valueOf:(NSString *)value;
              - - -

              Swift

              -
              class func value(of value: String!) -> SDLAppHMIType!
              - - - -

              Parameters

              -
              -
              value
              -

              The value of the string to get an object for

              -
              -
              -

              Return Value

              -

              SDLAppHMIType

              -
              - -

              - +values -

              - -

              @abstract Store the enumeration of all possible SDLAppHMIType

              - - - -

              Objective-C

              -
              + (NSArray *)values;
              - - -

              Swift

              -
              class func values() -> [Any]!
              - - - -
              -

              Return Value

              -

              an array that store all possible SDLAppHMIType

              -
              - -

              - +DEFAULT -

              - -

              @abstract The App will have default rights.

              - - - -

              Objective-C

              -
              + (SDLAppHMIType *)DEFAULT;
              - - -

              Swift

              -
              class func `default`() -> SDLAppHMIType!
              - - - -
              -

              Return Value

              -

              SDLAppHMIType with value DEFAULT

              -
              - -

              - +COMMUNICATION -

              - -

              @abstract Communication type of App

              - - - -

              Objective-C

              -
              + (SDLAppHMIType *)COMMUNICATION;
              - - -

              Swift

              -
              class func communication() -> SDLAppHMIType!
              - - - -
              -

              Return Value

              -

              SDLAppHMIType with value COMMUNICATION

              -
              - -

              - +MEDIA -

              - -

              @abstract App dealing with Media

              - - - -

              Objective-C

              -
              + (SDLAppHMIType *)MEDIA;
              - - -

              Swift

              -
              class func media() -> SDLAppHMIType!
              - - - -
              -

              Return Value

              -

              SDLAppHMIType with value MEDIA

              -
              - -

              - +MESSAGING -

              - -

              @abstract Messaging App

              - - - -

              Objective-C

              -
              + (SDLAppHMIType *)MESSAGING;
              - - -

              Swift

              -
              class func messaging() -> SDLAppHMIType!
              - - - -
              -

              Return Value

              -

              SDLAppHMIType with value MESSAGING

              -
              - -

              - +NAVIGATION -

              - -

              @abstract Navigation App

              - - - -

              Objective-C

              -
              + (SDLAppHMIType *)NAVIGATION;
              - - -

              Swift

              -
              class func navigation() -> SDLAppHMIType!
              - - - -
              -

              Return Value

              -

              SDLAppHMIType with value NAVIGATION

              -
              - -

              - +INFORMATION -

              - -

              @abstract Information App

              - - - -

              Objective-C

              -
              + (SDLAppHMIType *)INFORMATION;
              - - -

              Swift

              -
              class func information() -> SDLAppHMIType!
              - - - -
              -

              Return Value

              -

              SDLAppHMIType with value INFORMATION

              -
              - -

              - +SOCIAL -

              - -

              @abstract App dealing with social media

              - - - -

              Objective-C

              -
              + (SDLAppHMIType *)SOCIAL;
              - - -

              Swift

              -
              class func social() -> SDLAppHMIType!
              - - - -
              -

              Return Value

              -

              SDLAppHMIType with value SOCIAL

              -
              - -

              - +PROJECTION -

              - -

              @abstract App dealing with Mobile Projection applications

              - - - -

              Objective-C

              -
              + (SDLAppHMIType *)PROJECTION;
              - - -

              Swift

              -
              class func projection() -> SDLAppHMIType!
              - - - -
              -

              Return Value

              -

              SDLAppHMIType with value PROJECTION

              -
              - -

              - +BACKGROUND_PROCESS -

              - -

              Undocumented

              - - - -

              Objective-C

              -
              @interface SDLAppHMIType : SDLEnum
              - - - - - -

              - +TESTING -

              - -

              @abstract App only for Testing purposes

              - - - -

              Objective-C

              -
              + (SDLAppHMIType *)TESTING;
              - - -

              Swift

              -
              class func testing() -> SDLAppHMIType!
              - - - -
              -

              Return Value

              -

              SDLAppHMIType with value TESTING

              -
              - -

              - +SYSTEM -

              - -

              @abstract System App

              - - - -

              Objective-C

              -
              + (SDLAppHMIType *)SYSTEM;
              - - -

              Swift

              -
              class func system() -> SDLAppHMIType!
              - - - -
              -

              Return Value

              -

              SDLAppHMIType with value SYSTEM

              -
              - -
              diff --git a/docs/Classes/SDLAppInterfaceUnregisteredReason.html b/docs/Classes/SDLAppInterfaceUnregisteredReason.html deleted file mode 100644 index e92d08920..000000000 --- a/docs/Classes/SDLAppInterfaceUnregisteredReason.html +++ /dev/null @@ -1,299 +0,0 @@ -

              SDLAppInterfaceUnregisteredReason Class Reference

              - -

              Section Contents

              - - - -

              Overview

              - -

              Indicates reason why app interface was unregistered. The application is being disconnected by SDL.

              - -

              @since SDL 1.0

              - - -
              -

              - +valueOf: -

              - -

              @abstract Convert String to SDLAppInterfaceUnregisteredReason

              - - - -

              Objective-C

              -
              + (SDLAppInterfaceUnregisteredReason *)valueOf:(NSString *)value;
              - - -

              Swift

              -
              class func value(of value: String!) -> SDLAppInterfaceUnregisteredReason!
              - - - -

              Parameters

              -
              -
              value
              -

              String value to retrieve the object for

              -
              -
              -

              Return Value

              -

              SDLAppInterfaceUnregisteredReason

              -
              - -

              - +values -

              - -

              @abstract Store the enumeration of all possible SDLAppInterfaceUnregisteredReason

              - - - -

              Objective-C

              -
              + (NSArray *)values;
              - - -

              Swift

              -
              class func values() -> [Any]!
              - - - -
              -

              Return Value

              -

              an array that stores all possible SDLAppInterfaceUnregisteredReason

              -
              - -

              - +IGNITION_OFF -

              - -

              @abstract Vehicle ignition turned off.

              - - - -

              Objective-C

              -
              + (SDLAppInterfaceUnregisteredReason *)IGNITION_OFF;
              - - -

              Swift

              -
              class func ignition_OFF() -> SDLAppInterfaceUnregisteredReason!
              - - - -
              -

              Return Value

              -

              SDLAppInterfaceUnregisteredReason with value IGNITION_OFF

              -
              - -

              - +BLUETOOTH_OFF -

              - -

              @abstract Bluetooth was turned off, causing termination of a necessary Bluetooth connection.

              - - - -

              Objective-C

              -
              + (SDLAppInterfaceUnregisteredReason *)BLUETOOTH_OFF;
              - - -

              Swift

              -
              class func bluetooth_OFF() -> SDLAppInterfaceUnregisteredReason!
              - - - -
              -

              Return Value

              -

              SDLAppInterfaceUnregisteredReason with value BLUETOOTH_OFF

              -
              - -

              - +USB_DISCONNECTED -

              - -

              @abstract USB was disconnected, causing termination of a necessary iAP connection.

              - - - -

              Objective-C

              -
              + (SDLAppInterfaceUnregisteredReason *)USB_DISCONNECTED;
              - - -

              Swift

              -
              class func usb_DISCONNECTED() -> SDLAppInterfaceUnregisteredReason!
              - - - -
              -

              Return Value

              -

              SDLAppInterfaceUnregisteredReason with value USB_DISCONNECTED

              -
              - -

              - +REQUEST_WHILE_IN_NONE_HMI_LEVEL -

              - -

              @abstract 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.

              - - - -

              Objective-C

              -
              + (SDLAppInterfaceUnregisteredReason *)REQUEST_WHILE_IN_NONE_HMI_LEVEL;
              - - -

              Swift

              -
              class func request_WHILE_IN_NONE_HMI_LEVEL() -> SDLAppInterfaceUnregisteredReason!
              - - - -
              -

              Return Value

              -

              SDLAppInterfaceUnregisteredReason with value REQUEST_WHILE_IN_NONE_HMI_LEVEL

              -
              - -

              - +TOO_MANY_REQUESTS -

              - -

              @abstract Either too many – or too many per unit of time – requests were made by the application.

              - - - -

              Objective-C

              -
              + (SDLAppInterfaceUnregisteredReason *)TOO_MANY_REQUESTS;
              - - -

              Swift

              -
              class func too_MANY_REQUESTS() -> SDLAppInterfaceUnregisteredReason!
              - - - -
              -

              Return Value

              -

              SDLAppInterfaceUnregisteredReason with value TOO_MANY_REQUESTS

              -
              - -

              - +DRIVER_DISTRACTION_VIOLATION -

              - -

              @abstract The application has issued requests which cause driver distraction rules to be violated.

              - - - -

              Objective-C

              -
              + (SDLAppInterfaceUnregisteredReason *)DRIVER_DISTRACTION_VIOLATION;
              - - -

              Swift

              -
              class func driver_DISTRACTION_VIOLATION() -> SDLAppInterfaceUnregisteredReason!
              - - - -
              -

              Return Value

              -

              SDLAppInterfaceUnregisteredReason with value DRIVER_DISTRACTION_VIOLATION

              -
              - -

              - +LANGUAGE_CHANGE -

              - -

              @abstract The user performed a language change on the SDL platform, causing the application to need to be reregistered for the new language.

              - - - -

              Objective-C

              -
              + (SDLAppInterfaceUnregisteredReason *)LANGUAGE_CHANGE;
              - - -

              Swift

              -
              class func language_CHANGE() -> SDLAppInterfaceUnregisteredReason!
              - - - -
              -

              Return Value

              -

              SDLAppInterfaceUnregisteredReason with value LANGUAGE_CHANGE

              -
              - -

              - +MASTER_RESET -

              - -

              @abstract The user performed a MASTER RESET on the SDL platform, causing removal of a necessary Bluetooth pairing.

              - - - -

              Objective-C

              -
              + (SDLAppInterfaceUnregisteredReason *)MASTER_RESET;
              - - -

              Swift

              -
              class func master_RESET() -> SDLAppInterfaceUnregisteredReason!
              - - - -
              -

              Return Value

              -

              SDLAppInterfaceUnregisteredReason with value MASTER_RESET

              -
              - -

              - +FACTORY_DEFAULTS -

              - -

              @abstract The user restored settings to FACTORY DEFAULTS on the SDL platform.

              - - - -

              Objective-C

              -
              + (SDLAppInterfaceUnregisteredReason *)FACTORY_DEFAULTS;
              - - -

              Swift

              -
              class func factory_DEFAULTS() -> SDLAppInterfaceUnregisteredReason!
              - - - -
              -

              Return Value

              -

              SDLAppInterfaceUnregisteredReason with value FACTORY_DEFAULTS

              -
              - -

              - +APP_UNAUTHORIZED -

              - -

              @abstract The app is not being authorized to be connected to SDL.

              - -

              @since SDL 2.0

              - - - -

              Objective-C

              -
              + (SDLAppInterfaceUnregisteredReason *)APP_UNAUTHORIZED;
              - - -

              Swift

              -
              class func app_UNAUTHORIZED() -> SDLAppInterfaceUnregisteredReason!
              - - - -
              -

              Return Value

              -

              SDLAppInterfaceUnregisteredReason with value APP_UNAUTHORIZED

              -
              - -
              diff --git a/docs/Classes/SDLArtwork.html b/docs/Classes/SDLArtwork.html index d7f8684b8..b7e0fbb40 100644 --- a/docs/Classes/SDLArtwork.html +++ b/docs/Classes/SDLArtwork.html @@ -37,9 +37,6 @@

              Objective-C

              asImageFormat:(SDLArtworkImageFormat)imageFormat; -

              Swift

              -
              convenience init(image: UIImage, name: String, as imageFormat: SDLArtworkImageFormat)
              -

              Parameters

              @@ -80,9 +77,6 @@

              Objective-C

              (SDLArtworkImageFormat)imageFormat; -

              Swift

              -
              class func persistentArtwork(with image: UIImage, name: String, as imageFormat: SDLArtworkImageFormat) -> Self
              -

              Parameters

              diff --git a/docs/Classes/SDLAudioPassThruCapabilities.html b/docs/Classes/SDLAudioPassThruCapabilities.html index 32b30ab5a..dd998494c 100644 --- a/docs/Classes/SDLAudioPassThruCapabilities.html +++ b/docs/Classes/SDLAudioPassThruCapabilities.html @@ -3,8 +3,6 @@

              SDLAudioPassThruCapabilities Class Reference

              Section Contents

                -
              • -init
              • -
              • -initWithDictionary:
              • samplingRate
              • bitsPerSample
              • audioType
              • @@ -24,21 +22,21 @@

                Overview

                samplingRate - SDLSamplingRate * + SDLSamplingRate Describes the sampling rate for AudioPassThru SmartDeviceLink 2.0 bitsPerSample - SDLBitsPerSample * + SDLBitsPerSample Describes the sample depth in bit for AudioPassThru SmartDeviceLink 2.0 audioType - SDLAudioType * + SDLAudioType Describes the audiotype for AudioPassThru SmartDeviceLink 2.0 @@ -49,47 +47,6 @@

                Overview

                -

                - -init -

                - -

                Constructs a newly allocated SDLAudioPassThruCapabilities object

                - - - -

                Objective-C

                -
                - (instancetype)init;
                - - -

                Swift

                -
                init!()
                - - - - -

                - -initWithDictionary: -

                - -

                Constructs a newly allocated SDLAudioPassThruCapabilities object indicated by the Hashtable parameter

                - - - -

                Objective-C

                -
                - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                - - -

                Swift

                -
                init!(dictionary dict: NSMutableDictionary!)
                - - - -

                Parameters

                -
                -
                dict
                -

                The dictionary to use

                -
                -

                samplingRate

                @@ -99,11 +56,11 @@

                Objective-C

                -
                @property (readwrite, strong, atomic) SDLSamplingRate *samplingRate;
                +
                @property (readwrite, strong, nonatomic) SDLSamplingRate _Nonnull samplingRate;

                Swift

                -
                var samplingRate: SDLSamplingRate! { get set }
                +
                var samplingRate: SDLSamplingRate { get set }
                @@ -117,11 +74,11 @@

                Objective-C

                -
                @property (readwrite, strong, atomic) SDLBitsPerSample *bitsPerSample;
                +
                @property (readwrite, strong, nonatomic) SDLBitsPerSample _Nonnull bitsPerSample;

                Swift

                -
                var bitsPerSample: SDLBitsPerSample! { get set }
                +
                var bitsPerSample: SDLBitsPerSample { get set }
                @@ -135,11 +92,11 @@

                Objective-C

                -
                @property (readwrite, strong, atomic) SDLAudioType *audioType;
                +
                @property (readwrite, strong, nonatomic) SDLAudioType _Nonnull audioType;

                Swift

                -
                var audioType: SDLAudioType! { get set }
                +
                var audioType: SDLAudioType { get set }
                diff --git a/docs/Classes/SDLAudioStreamingState.html b/docs/Classes/SDLAudioStreamingState.html deleted file mode 100644 index a55a40ec8..000000000 --- a/docs/Classes/SDLAudioStreamingState.html +++ /dev/null @@ -1,138 +0,0 @@ -

                SDLAudioStreamingState Class Reference

                - -

                Section Contents

                - - - -

                Overview

                - -

                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

                - -

                @since SDL 1.0

                - - -
                -

                - +valueOf: -

                - -

                @abstract Convert String to SDLAudioStreamingState

                - - - -

                Objective-C

                -
                + (SDLAudioStreamingState *)valueOf:(NSString *)value;
                - - -

                Swift

                -
                class func value(of value: String!) -> SDLAudioStreamingState!
                - - - -

                Parameters

                -
                -
                value
                -

                The value of the string to get an object for

                -
                -
                -

                Return Value

                -

                SDLAudioStreamingState

                -
                - -

                - +values -

                - -

                @abstract Store the enumeration of all possible SDLAudioStreamingState

                - - - -

                Objective-C

                -
                + (NSArray *)values;
                - - -

                Swift

                -
                class func values() -> [Any]!
                - - - -
                -

                Return Value

                -

                an array that store all possible SDLAudioStreamingState

                -
                - -

                - +AUDIBLE -

                - -

                @abstract Currently streaming audio, if any, is audible to user.

                - - - -

                Objective-C

                -
                + (SDLAudioStreamingState *)AUDIBLE;
                - - -

                Swift

                -
                class func audible() -> SDLAudioStreamingState!
                - - - -
                -

                Return Value

                -

                SDLAudioStreamingState with value of AUDIBLE

                -
                - -

                - +ATTENUATED -

                - -

                @abstract Some kind of audio mixing is taking place. Currently streaming audio, if any, is audible to the user at a lowered volume.

                - -

                @since SDL 2.0

                - - - -

                Objective-C

                -
                + (SDLAudioStreamingState *)ATTENUATED;
                - - -

                Swift

                -
                class func attenuated() -> SDLAudioStreamingState!
                - - - -
                -

                Return Value

                -

                SDLAudioStreamingState with value of ATTENUATED

                -
                - -

                - +NOT_AUDIBLE -

                - -

                @abstract Currently streaming audio, if any, is not audible to user. made via VR session.

                - - - -

                Objective-C

                -
                + (SDLAudioStreamingState *)NOT_AUDIBLE;
                - - -

                Swift

                -
                class func not_AUDIBLE() -> SDLAudioStreamingState!
                - - - -
                -

                Return Value

                -

                SDLAudioStreamingState with value of NOT_AUDIBLE

                -
                - -
                diff --git a/docs/Classes/SDLAudioType.html b/docs/Classes/SDLAudioType.html deleted file mode 100644 index 2d5d1302a..000000000 --- a/docs/Classes/SDLAudioType.html +++ /dev/null @@ -1,90 +0,0 @@ -

                SDLAudioType Class Reference

                - -

                Section Contents

                - - - -

                Overview

                - -

                Describes different audio type options for PerformAudioPassThru

                - - -
                -

                - +valueOf: -

                - -

                @abstract Convert String to SDLAudioType

                - - - -

                Objective-C

                -
                + (SDLAudioType *)valueOf:(NSString *)value;
                - - -

                Swift

                -
                class func value(of value: String!) -> SDLAudioType!
                - - - -

                Parameters

                -
                -
                value
                -

                The value of the string to get an object for

                -
                -
                -

                Return Value

                -

                SDLAudioType

                -
                - -

                - +values -

                - -

                @abstract Store the enumeration of all possible SDLAudioType

                - - - -

                Objective-C

                -
                + (NSArray *)values;
                - - -

                Swift

                -
                class func values() -> [Any]!
                - - - -
                -

                Return Value

                -

                an array that store all possible SDLAudioType

                -
                - -

                - +PCM -

                - -

                @abstract PCM raw audio

                - -

                @since SDL 2.0

                - - - -

                Objective-C

                -
                + (SDLAudioType *)PCM;
                - - -

                Swift

                -
                class func pcm() -> SDLAudioType!
                - - - -
                -

                Return Value

                -

                SDLAudioType with value of PCM

                -
                - -
                diff --git a/docs/Classes/SDLBeltStatus.html b/docs/Classes/SDLBeltStatus.html index 2a936c21c..72996b103 100644 --- a/docs/Classes/SDLBeltStatus.html +++ b/docs/Classes/SDLBeltStatus.html @@ -3,8 +3,6 @@

                SDLBeltStatus Class Reference

                Section Contents

                  -
                • -init
                • -
                • -initWithDictionary:
                • driverBeltDeployed
                • passengerBeltDeployed
                • passengerBuckleBelted
                • @@ -28,28 +26,6 @@

                  Overview

                  -

                  - -init -

                  - -

                  Undocumented

                  - - - - - - -

                  - -initWithDictionary: -

                  - -

                  Undocumented

                  - - - - - -

                  driverBeltDeployed

                  diff --git a/docs/Classes/SDLBitsPerSample.html b/docs/Classes/SDLBitsPerSample.html deleted file mode 100644 index 280b151a4..000000000 --- a/docs/Classes/SDLBitsPerSample.html +++ /dev/null @@ -1,113 +0,0 @@ -

                  SDLBitsPerSample Class Reference

                  - -

                  Section Contents

                  - - - -

                  Overview

                  - -

                  Describes different bit depth options for PerformAudioPassThru

                  - -

                  @since SDL 2.0

                  - - -
                  -

                  - +valueOf: -

                  - -

                  @abstract Convert String to SDLBitsPerSample

                  - - - -

                  Objective-C

                  -
                  + (SDLBitsPerSample *)valueOf:(NSString *)value;
                  - - -

                  Swift

                  -
                  class func value(of value: String!) -> SDLBitsPerSample!
                  - - - -

                  Parameters

                  -
                  -
                  value
                  -

                  The value of the string to get an object for

                  -
                  -
                  -

                  Return Value

                  -

                  SDLBitsPerSample

                  -
                  - -

                  - +values -

                  - -

                  @abstract Store the enumeration of all possible SDLBitsPerSample

                  - - - -

                  Objective-C

                  -
                  + (NSArray *)values;
                  - - -

                  Swift

                  -
                  class func values() -> [Any]!
                  - - - -
                  -

                  Return Value

                  -

                  an array that store all possible SDLBitsPerSample

                  -
                  - -

                  - +_8_BIT -

                  - -

                  @abstract 8 bits per sample

                  - - - -

                  Objective-C

                  -
                  + (SDLBitsPerSample *)_8_BIT;
                  - - -

                  Swift

                  -
                  class func _8_BIT() -> SDLBitsPerSample!
                  - - - -
                  -

                  Return Value

                  -

                  a SDLBitsPerSample with value of 8_BIT

                  -
                  - -

                  - +_16_BIT -

                  - -

                  @abstract 16 bits per sample

                  - - - -

                  Objective-C

                  -
                  + (SDLBitsPerSample *)_16_BIT;
                  - - -

                  Swift

                  -
                  class func _16_BIT() -> SDLBitsPerSample!
                  - - - -
                  -

                  Return Value

                  -

                  a SDLBitsPerSample with value of 16_BIT

                  -
                  - -
                  diff --git a/docs/Classes/SDLBodyInformation.html b/docs/Classes/SDLBodyInformation.html index 893f29211..b22144921 100644 --- a/docs/Classes/SDLBodyInformation.html +++ b/docs/Classes/SDLBodyInformation.html @@ -3,8 +3,6 @@

                  SDLBodyInformation Class Reference

                  Section Contents

                    -
                  • -init
                  • -
                  • -initWithDictionary:
                  • parkBrakeActive
                  • ignitionStableStatus
                  • ignitionStatus
                  • @@ -20,48 +18,6 @@

                    Overview

                    -

                    - -init -

                    - -

                    @abstract Constructs a new SDLBodyInformation object

                    - - - -

                    Objective-C

                    -
                    - (instancetype)init;
                    - - -

                    Swift

                    -
                    init!()
                    - - - - -

                    - -initWithDictionary: -

                    - -

                    @abstract Constructs a new SDLBodyInformation object indicated by the NSMutableDictionary -parameter

                    - - - -

                    Objective-C

                    -
                    - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                    - - -

                    Swift

                    -
                    init!(dictionary dict: NSMutableDictionary!)
                    - - - -

                    Parameters

                    -
                    -
                    dict
                    -

                    The dictionary to use

                    -
                    -

                    parkBrakeActive

                    @@ -71,11 +27,12 @@

                    Objective-C

                    -
                    @property (readwrite, strong, atomic) NSNumber *parkBrakeActive;
                    +
                    @property (readwrite, strong, nonatomic)
                    +    NSNumber<SDLBool> *_Nonnull parkBrakeActive;

                    Swift

                    -
                    var parkBrakeActive: NSNumber! { get set }
                    +
                    var parkBrakeActive: NSNumber 
                    @@ -89,12 +46,12 @@

                    Objective-C

                    -
                    @property (readwrite, strong, atomic)
                    -    SDLIgnitionStableStatus *ignitionStableStatus;
                    +
                    @property (readwrite, strong, nonatomic)
                    +    SDLIgnitionStableStatus _Nonnull ignitionStableStatus;

                    Swift

                    -
                    var ignitionStableStatus: SDLIgnitionStableStatus! { get set }
                    +
                    var ignitionStableStatus: SDLIgnitionStableStatus { get set }
                    @@ -108,11 +65,12 @@

                    Objective-C

                    -
                    @property (readwrite, strong, atomic) SDLIgnitionStatus *ignitionStatus;
                    +
                    @property (readwrite, strong, nonatomic)
                    +    SDLIgnitionStatus _Nonnull ignitionStatus;

                    Swift

                    -
                    var ignitionStatus: SDLIgnitionStatus! { get set }
                    +
                    var ignitionStatus: SDLIgnitionStatus { get set }
                    @@ -126,11 +84,12 @@

                    Objective-C

                    -
                    @property (readwrite, strong, atomic) NSNumber *driverDoorAjar;
                    +
                    @property (readwrite, strong, nonatomic, nullable)
                    +    NSNumber<SDLBool> *driverDoorAjar;

                    Swift

                    -
                    var driverDoorAjar: NSNumber! { get set }
                    +
                    var driverDoorAjar: (NSNumber 
                    @@ -144,11 +103,12 @@

                    Objective-C

                    -
                    @property (readwrite, strong, atomic) NSNumber *passengerDoorAjar;
                    +
                    @property (readwrite, strong, nonatomic, nullable)
                    +    NSNumber<SDLBool> *passengerDoorAjar;

                    Swift

                    -
                    var passengerDoorAjar: NSNumber! { get set }
                    +
                    var passengerDoorAjar: (NSNumber 
                    @@ -162,11 +122,12 @@

                    Objective-C

                    -
                    @property (readwrite, strong, atomic) NSNumber *rearLeftDoorAjar;
                    +
                    @property (readwrite, strong, nonatomic, nullable)
                    +    NSNumber<SDLBool> *rearLeftDoorAjar;

                    Swift

                    -
                    var rearLeftDoorAjar: NSNumber! { get set }
                    +
                    var rearLeftDoorAjar: (NSNumber 
                    @@ -180,11 +141,12 @@

                    Objective-C

                    -
                    @property (readwrite, strong, atomic) NSNumber *rearRightDoorAjar;
                    +
                    @property (readwrite, strong, nonatomic, nullable)
                    +    NSNumber<SDLBool> *rearRightDoorAjar;

                    Swift

                    -
                    var rearRightDoorAjar: NSNumber! { get set }
                    +
                    var rearRightDoorAjar: (NSNumber 
                    diff --git a/docs/Classes/SDLButtonCapabilities.html b/docs/Classes/SDLButtonCapabilities.html index d6853667c..a4c906ca2 100644 --- a/docs/Classes/SDLButtonCapabilities.html +++ b/docs/Classes/SDLButtonCapabilities.html @@ -3,8 +3,6 @@

                    SDLButtonCapabilities Class Reference

                    Section Contents

                      -
                    • -init
                    • -
                    • -initWithDictionary:
                    • name
                    • shortPressAvailable
                    • longPressAvailable
                    • @@ -19,47 +17,6 @@

                      Overview

                      -

                      - -init -

                      - -

                      Constructs a newly allocated SDLButtonCapabilities object

                      - - - -

                      Objective-C

                      -
                      - (instancetype)init;
                      - - -

                      Swift

                      -
                      init!()
                      - - - - -

                      - -initWithDictionary: -

                      - -

                      Constructs a newly allocated SDLButtonCapabilities object indicated by the Hashtable parameter

                      - - - -

                      Objective-C

                      -
                      - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                      - - -

                      Swift

                      -
                      init!(dictionary dict: NSMutableDictionary!)
                      - - - -

                      Parameters

                      -
                      -
                      dict
                      -

                      The dictionary to use

                      -
                      -

                      name

                      @@ -69,11 +26,11 @@

                      Objective-C

                      -
                      @property (readwrite, strong, atomic) SDLButtonName *name;
                      +
                      @property (readwrite, strong, nonatomic) SDLButtonName _Nonnull name;

                      Swift

                      -
                      var name: SDLButtonName! { get set }
                      +
                      var name: SDLButtonName { get set }
                      @@ -89,11 +46,12 @@

                      Objective-C

                      -
                      @property (readwrite, strong, atomic) NSNumber *shortPressAvailable;
                      +
                      @property (readwrite, strong, nonatomic)
                      +    NSNumber<SDLBool> *_Nonnull shortPressAvailable;

                      Swift

                      -
                      var shortPressAvailable: NSNumber! { get set }
                      +
                      var shortPressAvailable: NSNumber 
                      @@ -109,11 +67,12 @@

                      Objective-C

                      -
                      @property (readwrite, strong, atomic) NSNumber *longPressAvailable;
                      +
                      @property (readwrite, strong, nonatomic)
                      +    NSNumber<SDLBool> *_Nonnull longPressAvailable;

                      Swift

                      -
                      var longPressAvailable: NSNumber! { get set }
                      +
                      var longPressAvailable: NSNumber 
                      @@ -129,11 +88,12 @@

                      Objective-C

                      -
                      @property (readwrite, strong, atomic) NSNumber *upDownAvailable;
                      +
                      @property (readwrite, strong, nonatomic)
                      +    NSNumber<SDLBool> *_Nonnull upDownAvailable;

                      Swift

                      -
                      var upDownAvailable: NSNumber! { get set }
                      +
                      var upDownAvailable: NSNumber 
                      diff --git a/docs/Classes/SDLButtonEventMode.html b/docs/Classes/SDLButtonEventMode.html deleted file mode 100644 index e4e4663c0..000000000 --- a/docs/Classes/SDLButtonEventMode.html +++ /dev/null @@ -1,113 +0,0 @@ -

                      SDLButtonEventMode Class Reference

                      - -

                      Section Contents

                      - - - -

                      Overview

                      - -

                      Indicates whether the button was depressed or released. A BUTTONUP event will always be preceded by a BUTTONDOWN event.

                      - -

                      @since SDL 1.0

                      - - -
                      -

                      - +valueOf: -

                      - -

                      @abstract Convert String to SDLButtonEventMode

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonEventMode *)valueOf:(NSString *)value;
                      - - -

                      Swift

                      -
                      class func value(of value: String!) -> SDLButtonEventMode!
                      - - - -

                      Parameters

                      -
                      -
                      value
                      -

                      The value of the string to get an object for

                      -
                      -
                      -

                      Return Value

                      -

                      SDLButtonEventMode (BUTTONUP / BUTTONDOWN)

                      -
                      - -

                      - +values -

                      - -

                      @abstract Store the enumeration of all possible SDLButtonEventMode

                      - - - -

                      Objective-C

                      -
                      + (NSArray *)values;
                      - - -

                      Swift

                      -
                      class func values() -> [Any]!
                      - - - -
                      -

                      Return Value

                      -

                      an array that store all possible SDLButtonEventMode

                      -
                      - -

                      - +BUTTONUP -

                      - -

                      @abstract The button was released

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonEventMode *)BUTTONUP;
                      - - -

                      Swift

                      -
                      class func buttonup() -> SDLButtonEventMode!
                      - - - -
                      -

                      Return Value

                      -

                      a SDLButtonEventMode with value of BUTTONUP

                      -
                      - -

                      - +BUTTONDOWN -

                      - -

                      @abstract The button was depressed

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonEventMode *)BUTTONDOWN;
                      - - -

                      Swift

                      -
                      class func buttondown() -> SDLButtonEventMode!
                      - - - -
                      -

                      Return Value

                      -

                      a SDLButtonEventMode with value of BUTTONDOWN

                      -
                      - -
                      diff --git a/docs/Classes/SDLButtonName.html b/docs/Classes/SDLButtonName.html deleted file mode 100644 index 00d0c74c1..000000000 --- a/docs/Classes/SDLButtonName.html +++ /dev/null @@ -1,456 +0,0 @@ -

                      SDLButtonName Class Reference

                      - -

                      Section Contents

                      - - - -

                      Overview

                      - -

                      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.

                      - -

                      The preset buttons (0-9) can typically be interpreted by the application as - corresponding to some user-configured choices, though the application is free - to interpret these button presses as it sees fit.

                      - -

                      The application can discover which buttons a given SDL unit implements by - interrogating the ButtonCapabilities parameter of the - RegisterAppInterface response.

                      - -

                      @since SDL 1.0

                      - - -
                      -

                      - +valueOf: -

                      - -

                      @abstract Convert String to SDLButtonName

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonName *)valueOf:(NSString *)value;
                      - - -

                      Swift

                      -
                      class func value(of value: String!) -> SDLButtonName!
                      - - - -

                      Parameters

                      -
                      -
                      value
                      -

                      String value to retrieve the object for

                      -
                      -
                      -

                      Return Value

                      -

                      SDLButtonName

                      -
                      - -

                      - +values -

                      - -

                      @abstract Store the enumeration of all possible SDLButtonName

                      - - - -

                      Objective-C

                      -
                      + (NSArray *)values;
                      - - -

                      Swift

                      -
                      class func values() -> [Any]!
                      - - - -
                      -

                      Return Value

                      -

                      an array that store all possible SDLButtonName

                      -
                      - -

                      - +OK -

                      - -

                      @abstract Represents the button usually labeled OK. A typical use of this button is for the user to press it to make a selection.

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonName *)OK;
                      - - -

                      Swift

                      -
                      class func ok() -> SDLButtonName!
                      - - - -
                      -

                      Return Value

                      -

                      a SDLButtonName with the value of OK

                      -
                      - -

                      - +SEEKLEFT -

                      - -

                      @abstract 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.

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonName *)SEEKLEFT;
                      - - -

                      Swift

                      -
                      class func seekleft() -> SDLButtonName!
                      - - - -
                      -

                      Return Value

                      -

                      a SDLButtonName with the value of SEEKLEFT

                      -
                      - -

                      - +SEEKRIGHT -

                      - -

                      @abstract 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.

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonName *)SEEKRIGHT;
                      - - -

                      Swift

                      -
                      class func seekright() -> SDLButtonName!
                      - - - -
                      -

                      Return Value

                      -

                      a SDLButtonName with the value of SEEKRIGHT

                      -
                      - -

                      - +TUNEUP -

                      - -

                      @abstract Represents a turn of the tuner knob in the clockwise direction one tick.

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonName *)TUNEUP;
                      - - -

                      Swift

                      -
                      class func tuneup() -> SDLButtonName!
                      - - - -
                      -

                      Return Value

                      -

                      a SDLButtonName with the value of TUNEUP

                      -
                      - -

                      - +TUNEDOWN -

                      - -

                      @abstract Represents a turn of the tuner knob in the counter-clockwise direction one tick.

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonName *)TUNEDOWN;
                      - - -

                      Swift

                      -
                      class func tunedown() -> SDLButtonName!
                      - - - -
                      -

                      Return Value

                      -

                      a SDLButtonName with the value of TUNEDOWN

                      -
                      - -

                      - +PRESET_0 -

                      - -

                      @abstract Represents the preset 0 button.

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonName *)PRESET_0;
                      - - -

                      Swift

                      -
                      class func preset_0() -> SDLButtonName!
                      - - - -
                      -

                      Return Value

                      -

                      a SDLButtonName with the value of PRESET_0

                      -
                      - -

                      - +PRESET_1 -

                      - -

                      @abstract Represents the preset 1 button.

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonName *)PRESET_1;
                      - - -

                      Swift

                      -
                      class func preset_1() -> SDLButtonName!
                      - - - -
                      -

                      Return Value

                      -

                      a SDLButtonName with the value of PRESET_1

                      -
                      - -

                      - +PRESET_2 -

                      - -

                      @abstract Represents the preset 2 button.

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonName *)PRESET_2;
                      - - -

                      Swift

                      -
                      class func preset_2() -> SDLButtonName!
                      - - - -
                      -

                      Return Value

                      -

                      a SDLButtonName with the value of PRESET_2

                      -
                      - -

                      - +PRESET_3 -

                      - -

                      @abstract Represents the preset 3 button.

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonName *)PRESET_3;
                      - - -

                      Swift

                      -
                      class func preset_3() -> SDLButtonName!
                      - - - -
                      -

                      Return Value

                      -

                      a SDLButtonName with the value of PRESET_3

                      -
                      - -

                      - +PRESET_4 -

                      - -

                      @abstract Represents the preset 4 button.

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonName *)PRESET_4;
                      - - -

                      Swift

                      -
                      class func preset_4() -> SDLButtonName!
                      - - - -
                      -

                      Return Value

                      -

                      a SDLButtonName with the value of PRESET_4

                      -
                      - -

                      - +PRESET_5 -

                      - -

                      @abstract Represents the preset 5 button.

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonName *)PRESET_5;
                      - - -

                      Swift

                      -
                      class func preset_5() -> SDLButtonName!
                      - - - -
                      -

                      Return Value

                      -

                      a SDLButtonName with the value of PRESET_5

                      -
                      - -

                      - +PRESET_6 -

                      - -

                      @abstract Represents the preset 6 button.

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonName *)PRESET_6;
                      - - -

                      Swift

                      -
                      class func preset_6() -> SDLButtonName!
                      - - - -
                      -

                      Return Value

                      -

                      a SDLButtonName with the value of PRESET_6

                      -
                      - -

                      - +PRESET_7 -

                      - -

                      @abstract Represents the preset 7 button.

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonName *)PRESET_7;
                      - - -

                      Swift

                      -
                      class func preset_7() -> SDLButtonName!
                      - - - -
                      -

                      Return Value

                      -

                      a SDLButtonName with the value of PRESET_7

                      -
                      - -

                      - +PRESET_8 -

                      - -

                      @abstract Represents the preset 8 button.

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonName *)PRESET_8;
                      - - -

                      Swift

                      -
                      class func preset_8() -> SDLButtonName!
                      - - - -
                      -

                      Return Value

                      -

                      a SDLButtonName with the value of PRESET_8

                      -
                      - -

                      - +PRESET_9 -

                      - -

                      @abstract Represents the preset 9 button.

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonName *)PRESET_9;
                      - - -

                      Swift

                      -
                      class func preset_9() -> SDLButtonName!
                      - - - -
                      -

                      Return Value

                      -

                      a SDLButtonName with the value of PRESET_9

                      -
                      - -

                      - +CUSTOM_BUTTON -

                      - -

                      Undocumented

                      - - - -

                      Objective-C

                      -
                      @interface SDLButtonName : SDLEnum
                      - - - - - -

                      - +SEARCH -

                      - -

                      Undocumented

                      - - - -

                      Objective-C

                      -
                      @interface SDLButtonName : SDLEnum
                      - - - - - -
                      diff --git a/docs/Classes/SDLButtonPress.html b/docs/Classes/SDLButtonPress.html new file mode 100644 index 000000000..e4f5e0158 --- /dev/null +++ b/docs/Classes/SDLButtonPress.html @@ -0,0 +1,88 @@ +

                      SDLButtonPress Class Reference

                      + +

                      Section Contents

                      + + + +

                      Overview

                      + +

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

                      + + +
                      +

                      + -initWithButtonName:moduleType: +

                      + +

                      Undocumented

                      + + + +

                      Objective-C

                      +
                      @interface SDLButtonPress : SDLRPCRequest
                      + + + + + +

                      + moduleType +

                      + +

                      The module where the button should be pressed.

                      + + + +

                      Objective-C

                      +
                      @property (readwrite, strong, nonatomic) SDLModuleType _Nonnull moduleType;
                      + + +

                      Swift

                      +
                      var moduleType: SDLModuleType { get set }
                      + + + + +

                      + buttonName +

                      + +

                      The name of supported RC climate or radio button.

                      + + + +

                      Objective-C

                      +
                      @property (readwrite, strong, nonatomic) SDLButtonName _Nonnull buttonName;
                      + + +

                      Swift

                      +
                      var buttonName: SDLButtonName { get set }
                      + + + + +

                      + buttonPressMode +

                      + +

                      Indicates whether this is a LONG or SHORT button press event.

                      + + + +

                      Objective-C

                      +
                      @property (readwrite, strong, nonatomic)
                      +    SDLButtonPressMode _Nonnull buttonPressMode;
                      + + +

                      Swift

                      +
                      var buttonPressMode: SDLButtonPressMode { get set }
                      + + + + +
                      diff --git a/docs/Classes/SDLButtonPressMode.html b/docs/Classes/SDLButtonPressMode.html deleted file mode 100644 index 8da70c64e..000000000 --- a/docs/Classes/SDLButtonPressMode.html +++ /dev/null @@ -1,113 +0,0 @@ -

                      SDLButtonPressMode Class Reference

                      - -

                      Section Contents

                      - - - -

                      Overview

                      - -

                      Indicates whether this is a LONG or SHORT button press

                      - -

                      @since SDL 1.0

                      - - -
                      -

                      - +valueOf: -

                      - -

                      @abstract Convert String to SDLButtonPressMode

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonPressMode *)valueOf:(NSString *)value;
                      - - -

                      Swift

                      -
                      class func value(of value: String!) -> SDLButtonPressMode!
                      - - - -

                      Parameters

                      -
                      -
                      value
                      -

                      The value of the string to get an object for

                      -
                      -
                      -

                      Return Value

                      -

                      SDLButtonPressMode

                      -
                      - -

                      - +values -

                      - -

                      @abstract Store the enumeration of all possible SDLButtonPressMode

                      - - - -

                      Objective-C

                      -
                      + (NSArray *)values;
                      - - -

                      Swift

                      -
                      class func values() -> [Any]!
                      - - - -
                      -

                      Return Value

                      -

                      an array that store all possible SDLButtonPressMode

                      -
                      - -

                      - +LONG -

                      - -

                      @abstract A button was released, after it was pressed for a long time. Actual timing is defined by the head unit and may vary.

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonPressMode *)LONG;
                      - - -

                      Swift

                      -
                      class func long() -> SDLButtonPressMode!
                      - - - -
                      -

                      Return Value

                      -

                      a SDLButtonPressMode with the value of LONG

                      -
                      - -

                      - +SHORT -

                      - -

                      @abstract A button was released, after it was pressed for a short time. Actual timing is defined by the head unit and may vary.

                      - - - -

                      Objective-C

                      -
                      + (SDLButtonPressMode *)SHORT;
                      - - -

                      Swift

                      -
                      class func short() -> SDLButtonPressMode!
                      - - - -
                      -

                      Return Value

                      -

                      a SDLButtonPressMode with the value of SHORT

                      -
                      - -
                      diff --git a/docs/Classes/SDLCarModeStatus.html b/docs/Classes/SDLCarModeStatus.html deleted file mode 100644 index d5fda2ae5..000000000 --- a/docs/Classes/SDLCarModeStatus.html +++ /dev/null @@ -1,126 +0,0 @@ -

                      SDLCarModeStatus Class Reference

                      - -

                      Section Contents

                      - - - -

                      Overview

                      - -

                      Describes the carmode the vehicle is in.

                      - -
                        -
                      • Since SmartDeviceLink 2.0
                      • -
                      - - -
                      -

                      - +valueOf: -

                      - -

                      Undocumented

                      - - - -

                      Objective-C

                      -
                      @interface SDLCarModeStatus : SDLEnum
                      - - - - - -

                      - +values -

                      - -

                      Undocumented

                      - - - -

                      Objective-C

                      -
                      @interface SDLCarModeStatus : SDLEnum
                      - - - - - -

                      - +NORMAL -

                      - -

                      Provides carmode NORMAL to each module.

                      - - - -

                      Objective-C

                      -
                      + (SDLCarModeStatus *)NORMAL;
                      - - -

                      Swift

                      -
                      class func normal() -> SDLCarModeStatus!
                      - - - - -

                      - +FACTORY -

                      - -

                      Provides carmode FACTORY to each module.

                      - - - -

                      Objective-C

                      -
                      + (SDLCarModeStatus *)FACTORY;
                      - - -

                      Swift

                      -
                      class func factory() -> SDLCarModeStatus!
                      - - - - -

                      - +TRANSPORT -

                      - -

                      Provides carmode TRANSPORT to each module.

                      - - - -

                      Objective-C

                      -
                      + (SDLCarModeStatus *)TRANSPORT;
                      - - -

                      Swift

                      -
                      class func transport() -> SDLCarModeStatus!
                      - - - - -

                      - +CRASH -

                      - -

                      Provides carmode CRASH to each module.

                      - - - -

                      Objective-C

                      -
                      + (SDLCarModeStatus *)CRASH;
                      - - -

                      Swift

                      -
                      class func crash() -> SDLCarModeStatus!
                      - - - - -
                      diff --git a/docs/Classes/SDLChangeRegistration.html b/docs/Classes/SDLChangeRegistration.html index c015390f8..8f454547b 100644 --- a/docs/Classes/SDLChangeRegistration.html +++ b/docs/Classes/SDLChangeRegistration.html @@ -3,8 +3,6 @@

                      SDLChangeRegistration Class Reference

                      Section Contents

                        -
                      • -init
                      • -
                      • -initWithDictionary:
                      • -initWithLanguage:hmiDisplayLanguage:
                      • -initWithLanguage:hmiDisplayLanguage:appName:ttsName:ngnMediaScreenAppName:vrSynonyms:
                      • language
                      • @@ -25,47 +23,6 @@

                        Overview

                        -

                        - -init -

                        - -

                        Constructs a new SDLChangeRegistration object

                        - - - -

                        Objective-C

                        -
                        - (instancetype)init;
                        - - -

                        Swift

                        -
                        init!()
                        - - - - -

                        - -initWithDictionary: -

                        - -

                        Constructs a new SDLChangeRegistration object indicated by the dictionary parameter

                        - - - -

                        Objective-C

                        -
                        - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                        - - -

                        Swift

                        -
                        init!(dictionary dict: NSMutableDictionary!)
                        - - - -

                        Parameters

                        -
                        -
                        dict
                        -

                        The dictionary to use

                        -
                        -

                        -initWithLanguage:hmiDisplayLanguage:

                        @@ -105,11 +62,11 @@

                        Objective-C

                        -
                        @property (readwrite, strong, nonatomic) SDLLanguage *language;
                        +
                        @property (readwrite, strong, nonatomic) SDLLanguage _Nonnull language;

                        Swift

                        -
                        var language: SDLLanguage! { get set }
                        +
                        var language: SDLLanguage { get set }
                        @@ -123,11 +80,11 @@

                        Objective-C

                        -
                        @property (readwrite, strong, nonatomic) SDLLanguage *hmiDisplayLanguage;
                        +
                        @property (readwrite, strong, nonatomic) SDLLanguage _Nonnull hmiDisplayLanguage;

                        Swift

                        -
                        var hmiDisplayLanguage: SDLLanguage! { get set }
                        +
                        var hmiDisplayLanguage: SDLLanguage { get set }
                        @@ -143,11 +100,11 @@

                        Objective-C

                        -
                        @property (readwrite, copy, nonatomic) NSString *appName;
                        +
                        @property (readwrite, copy, nonatomic, nullable) NSString *appName;

                        Swift

                        -
                        var appName: String! { get set }
                        +
                        var appName: String? { get set }
                        @@ -163,11 +120,11 @@

                        Objective-C

                        -
                        @property (readwrite, copy, nonatomic) NSArray *ttsName;
                        +
                        @property (readwrite, copy, nonatomic, nullable) NSArray<SDLTTSChunk *> *ttsName;

                        Swift

                        -
                        var ttsName: [Any]! { get set }
                        +
                        var ttsName: [SDLTTSChunk]? { get set }
                        @@ -183,11 +140,11 @@

                        Objective-C

                        -
                        @property (readwrite, copy, nonatomic) NSString *ngnMediaScreenAppName;
                        +
                        @property (readwrite, copy, nonatomic, nullable) NSString *ngnMediaScreenAppName;

                        Swift

                        -
                        var ngnMediaScreenAppName: String! { get set }
                        +
                        var ngnMediaScreenAppName: String? { get set }
                        @@ -203,11 +160,11 @@

                        Objective-C

                        -
                        @property (readwrite, copy, nonatomic) NSArray *vrSynonyms;
                        +
                        @property (readwrite, copy, nonatomic, nullable) NSArray<NSString *> *vrSynonyms;

                        Swift

                        -
                        var vrSynonyms: [Any]! { get set }
                        +
                        var vrSynonyms: [String]? { get set }
                        diff --git a/docs/Classes/SDLChangeRegistrationResponse.html b/docs/Classes/SDLChangeRegistrationResponse.html deleted file mode 100644 index bf9fb5b27..000000000 --- a/docs/Classes/SDLChangeRegistrationResponse.html +++ /dev/null @@ -1,48 +0,0 @@ -

                        SDLChangeRegistrationResponse Class Reference

                        - -

                        Section Contents

                        - - - -

                        Overview

                        - -

                        SDLChangeRegistrationResponse is sent, when SDLChangeRegistration has been called

                        - -

                        @since SDL 2.0

                        - - -
                        -

                        - -init -

                        - -

                        Undocumented

                        - - - -

                        Objective-C

                        -
                        @interface SDLChangeRegistrationResponse : SDLRPCResponse
                        - - - - - -

                        - -initWithDictionary: -

                        - -

                        Undocumented

                        - - - -

                        Objective-C

                        -
                        @interface SDLChangeRegistrationResponse : SDLRPCResponse
                        - - - - - -
                        diff --git a/docs/Classes/SDLCharacterSet.html b/docs/Classes/SDLCharacterSet.html deleted file mode 100644 index 69f05d768..000000000 --- a/docs/Classes/SDLCharacterSet.html +++ /dev/null @@ -1,131 +0,0 @@ -

                        SDLCharacterSet Class Reference

                        - -

                        Section Contents

                        - - - -

                        Overview

                        - -

                        Character sets supported by SDL.

                        - -

                        @since SDL 1.0

                        - - -
                        -

                        - +valueOf: -

                        - -

                        @abstract Convert String to SDLCharacterSet

                        - - - -

                        Objective-C

                        -
                        + (SDLCharacterSet *)valueOf:(NSString *)value;
                        - - -

                        Swift

                        -
                        class func value(of value: String!) -> SDLCharacterSet!
                        - - - -

                        Parameters

                        -
                        -
                        value
                        -

                        The value of the string to get an object for

                        -
                        -
                        -

                        Return Value

                        -

                        SDLCharacterSet

                        -
                        - -

                        - +values -

                        - -

                        @abstract Store the enumeration of all possible SDLCharacterSet

                        - - - -

                        Objective-C

                        -
                        + (NSArray *)values;
                        - - -

                        Swift

                        -
                        class func values() -> [Any]!
                        - - - -
                        -

                        Return Value

                        -

                        an array that store all possible SDLCharacterSet

                        -
                        - -

                        - +TYPE2SET -

                        - -

                        Undocumented

                        - - - -

                        Objective-C

                        -
                        @interface SDLCharacterSet : SDLEnum
                        - - - - - -

                        - +TYPE5SET -

                        - -

                        Undocumented

                        - - - -

                        Objective-C

                        -
                        @interface SDLCharacterSet : SDLEnum
                        - - - - - -

                        - +CID1SET -

                        - -

                        Undocumented

                        - - - -

                        Objective-C

                        -
                        @interface SDLCharacterSet : SDLEnum
                        - - - - - -

                        - +CID2SET -

                        - -

                        Undocumented

                        - - - -

                        Objective-C

                        -
                        @interface SDLCharacterSet : SDLEnum
                        - - - - - -
                        diff --git a/docs/Classes/SDLChoice.html b/docs/Classes/SDLChoice.html index 703883c79..2293a9c8a 100644 --- a/docs/Classes/SDLChoice.html +++ b/docs/Classes/SDLChoice.html @@ -3,8 +3,6 @@

                        SDLChoice Class Reference

                        Section Contents

                          -
                        • -init
                        • -
                        • -initWithDictionary:
                        • -initWithId:menuName:vrCommands:
                        • -initWithId:menuName:vrCommands:image:secondaryText:secondaryImage:tertiaryText:
                        • choiceID
                        • @@ -47,7 +45,7 @@

                          Overview

                          vrCommands - NSMutableArray * + NSArray * An array of strings to be used as VR synonyms for this choice. If this array is provided, it must have at least one non-empty element SmartDeviceLink 1.0 @@ -63,47 +61,6 @@

                          Overview

                          -

                          - -init -

                          - -

                          Constructs a newly allocated SDLChoice object

                          - - - -

                          Objective-C

                          -
                          - (instancetype)init;
                          - - -

                          Swift

                          -
                          init!()
                          - - - - -

                          - -initWithDictionary: -

                          - -

                          Constructs a newly allocated SDLChoice object indicated by the dictionary parameter

                          - - - -

                          Objective-C

                          -
                          - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                          - - -

                          Swift

                          -
                          init!(dictionary dict: NSMutableDictionary!)
                          - - - -

                          Parameters

                          -
                          -
                          dict
                          -

                          The dictionary to use

                          -
                          -

                          -initWithId:menuName:vrCommands:

                          @@ -145,11 +102,11 @@

                          Objective-C

                          -
                          @property (readwrite, strong, atomic) NSNumber *choiceID;
                          +
                          @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull choiceID;

                          Swift

                          -
                          var choiceID: NSNumber! { get set }
                          +
                          var choiceID: NSNumber 
                          @@ -165,11 +122,11 @@

                          Objective-C

                          -
                          @property (readwrite, strong, atomic) NSString *menuName;
                          +
                          @property (readwrite, strong, nonatomic) NSString *_Nonnull menuName;

                          Swift

                          -
                          var menuName: String! { get set }
                          +
                          var menuName: String { get set }
                          @@ -185,11 +142,12 @@

                          Objective-C

                          -
                          @property (readwrite, strong, atomic) NSMutableArray *vrCommands;
                          +
                          @property (readwrite, strong, nonatomic)
                          +    NSArray<NSString *> *_Nonnull vrCommands;

                          Swift

                          -
                          var vrCommands: NSMutableArray! { get set }
                          +
                          var vrCommands: [String] { get set }
                          @@ -205,11 +163,11 @@

                          Objective-C

                          -
                          @property (readwrite, strong, atomic) SDLImage *image;
                          +
                          @property (readwrite, strong, nonatomic, nullable) SDLImage *image;

                          Swift

                          -
                          var image: SDLImage! { get set }
                          +
                          var image: SDLImage? { get set }
                          @@ -225,11 +183,11 @@

                          Objective-C

                          -
                          @property (readwrite, strong, atomic) NSString *secondaryText;
                          +
                          @property (readwrite, strong, nonatomic, nullable) NSString *secondaryText;

                          Swift

                          -
                          var secondaryText: String! { get set }
                          +
                          var secondaryText: String? { get set }
                          @@ -245,11 +203,11 @@

                          Objective-C

                          -
                          @property (readwrite, strong, atomic) NSString *tertiaryText;
                          +
                          @property (readwrite, strong, nonatomic, nullable) NSString *tertiaryText;

                          Swift

                          -
                          var tertiaryText: String! { get set }
                          +
                          var tertiaryText: String? { get set }
                          @@ -265,11 +223,11 @@

                          Objective-C

                          -
                          @property (readwrite, strong, atomic) SDLImage *secondaryImage;
                          +
                          @property (readwrite, strong, nonatomic, nullable) SDLImage *secondaryImage;

                          Swift

                          -
                          var secondaryImage: SDLImage! { get set }
                          +
                          var secondaryImage: SDLImage? { get set }
                          diff --git a/docs/Classes/SDLClimateControlCapabilities.html b/docs/Classes/SDLClimateControlCapabilities.html new file mode 100644 index 000000000..d3fc527b6 --- /dev/null +++ b/docs/Classes/SDLClimateControlCapabilities.html @@ -0,0 +1,304 @@ +

                          SDLClimateControlCapabilities Class Reference

                          + +

                          Section Contents

                          + + + +

                          Overview

                          + +

                          Contains information about a climate control module’s capabilities.

                          + + +
                          +

                          + -initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable:dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable: +

                          + +

                          Undocumented

                          + + + +

                          Objective-C

                          +
                          @interface SDLClimateControlCapabilities : SDLRPCStruct
                          + + + + + +

                          + moduleName +

                          + +

                          @abstract The short friendly name of the climate control module. + It should not be used to identify a module by mobile application.

                          + +

                          Max string length 100 chars

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic) NSString *_Nonnull moduleName;
                          + + +

                          Swift

                          +
                          var moduleName: String { get set }
                          + + + + +

                          + fanSpeedAvailable +

                          + +

                          @abstract Availability of the control of fan speed. + True: Available, False: Not Available, Not present: Not Available.

                          + +

                          Optional, Boolean

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable)
                          +    NSNumber<SDLBool> *fanSpeedAvailable;
                          + + +

                          Swift

                          +
                          var fanSpeedAvailable: (NSNumber 
                          + + + + +

                          + desiredTemperatureAvailable +

                          + +

                          @abstract Availability of the control of desired temperature. + True: Available, False: Not Available, Not present: Not Available.

                          + +

                          Optional, Boolean

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable)
                          +    NSNumber<SDLBool> *desiredTemperatureAvailable;
                          + + +

                          Swift

                          +
                          var desiredTemperatureAvailable: (NSNumber 
                          + + + + +

                          + acEnableAvailable +

                          + +

                          @abstract Availability of the control of turn on/off AC. + True: Available, False: Not Available, Not present: Not Available.

                          + +

                          Optional, Boolean

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable)
                          +    NSNumber<SDLBool> *acEnableAvailable;
                          + + +

                          Swift

                          +
                          var acEnableAvailable: (NSNumber 
                          + + + + +

                          + acMaxEnableAvailable +

                          + +

                          @abstract Availability of the control of enable/disable air conditioning is ON on the maximum level. + True: Available, False: Not Available, Not present: Not Available.

                          + +

                          Optional, Boolean

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable)
                          +    NSNumber<SDLBool> *acMaxEnableAvailable;
                          + + +

                          Swift

                          +
                          var acMaxEnableAvailable: (NSNumber 
                          + + + + +

                          + circulateAirEnableAvailable +

                          + +

                          @abstract Availability of the control of enable/disable circulate Air mode. + True: Available, False: Not Available, Not present: Not Available.

                          + +

                          Optional, Boolean

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable)
                          +    NSNumber<SDLBool> *circulateAirEnableAvailable;
                          + + +

                          Swift

                          +
                          var circulateAirEnableAvailable: (NSNumber 
                          + + + + +

                          + autoModeEnableAvailable +

                          + +

                          @abstract Availability of the control of enable/disable auto mode. + True: Available, False: Not Available, Not present: Not Available.

                          + +

                          Optional, Boolean

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable)
                          +    NSNumber<SDLBool> *autoModeEnableAvailable;
                          + + +

                          Swift

                          +
                          var autoModeEnableAvailable: (NSNumber 
                          + + + + +

                          + dualModeEnableAvailable +

                          + +

                          @abstract Availability of the control of enable/disable dual mode. + True: Available, False: Not Available, Not present: Not Available.

                          + +

                          Optional, Boolean

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable)
                          +    NSNumber<SDLBool> *dualModeEnableAvailable;
                          + + +

                          Swift

                          +
                          var dualModeEnableAvailable: (NSNumber 
                          + + + + +

                          + defrostZoneAvailable +

                          + +

                          @abstract Availability of the control of defrost zones. + True: Available, False: Not Available, Not present: Not Available.

                          + +

                          Optional, Boolean

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable)
                          +    NSNumber<SDLBool> *defrostZoneAvailable;
                          + + +

                          Swift

                          +
                          var defrostZoneAvailable: (NSNumber 
                          + + + + +

                          + defrostZone +

                          + +

                          @abstract A set of all defrost zones that are controllable.

                          + +

                          Optional, NSArray of type SDLDefrostZone minsize=1 maxsize=100

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable)
                          +    NSArray<SDLDefrostZone> *defrostZone;
                          + + +

                          Swift

                          +
                          var defrostZone: [SDLDefrostZone]? { get set }
                          + + + + +

                          + ventilationModeAvailable +

                          + +

                          @abstract Availability of the control of air ventilation mode. + True: Available, False: Not Available, Not present: Not Available.

                          + +

                          Optional, Boolean

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable)
                          +    NSNumber<SDLBool> *ventilationModeAvailable;
                          + + +

                          Swift

                          +
                          var ventilationModeAvailable: (NSNumber 
                          + + + + +

                          + ventilationMode +

                          + +

                          @abstract A set of all ventilation modes that are controllable. + True: Available, False: Not Available, Not present: Not Available.

                          + +

                          Optional, NSArray of type SDLVentilationMode minsize=1 maxsize=100

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable)
                          +    NSArray<SDLVentilationMode> *ventilationMode;
                          + + +

                          Swift

                          +
                          var ventilationMode: [SDLVentilationMode]? { get set }
                          + + + + +
                          diff --git a/docs/Classes/SDLClimateControlData.html b/docs/Classes/SDLClimateControlData.html new file mode 100644 index 000000000..855d94857 --- /dev/null +++ b/docs/Classes/SDLClimateControlData.html @@ -0,0 +1,248 @@ +

                          SDLClimateControlData Class Reference

                          + +

                          Section Contents

                          + + + +

                          Overview

                          + +

                          Undocumented

                          + + +
                          +

                          + -initWithFanSpeed:desiredTemperature:acEnable:circulateAirEnable:autoModeEnable:defrostZone:dualModeEnable:acMaxEnable:ventilationMode: +

                          + +

                          Undocumented

                          + + + + + + +

                          + fanSpeed +

                          + +

                          @abstract Speed of Fan in integer

                          + +

                          Optional, MinValue- 0 MaxValue= 100

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *fanSpeed;
                          + + +

                          Swift

                          +
                          var fanSpeed: (NSNumber 
                          + + + + +

                          + currentTemperature +

                          + +

                          @abstract The Current Temperature in SDLTemperature

                          +
                          +

                          Warning

                          + This property is readonly and cannot be set on the module. + +
                          + +

                          Optional

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable)
                          +    SDLTemperature *currentTemperature;
                          + + +

                          Swift

                          +
                          var currentTemperature: SDLTemperature? { get set }
                          + + + + +

                          + desiredTemperature +

                          + +

                          @abstract Desired Temperature in SDLTemperature

                          + +

                          Optional

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable)
                          +    SDLTemperature *desiredTemperature;
                          + + +

                          Swift

                          +
                          var desiredTemperature: SDLTemperature? { get set }
                          + + + + +

                          + acEnable +

                          + +

                          @abstract Represents if AC is enabled.

                          + +

                          Optional, Boolean

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *acEnable;
                          + + +

                          Swift

                          +
                          var acEnable: (NSNumber 
                          + + + + +

                          + circulateAirEnable +

                          + +

                          @abstract Represents if circulation of air is enabled.

                          + +

                          Optional, Boolean

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable)
                          +    NSNumber<SDLBool> *circulateAirEnable;
                          + + +

                          Swift

                          +
                          var circulateAirEnable: (NSNumber 
                          + + + + +

                          + autoModeEnable +

                          + +

                          @abstract Represents if auto mode is enabled.

                          + +

                          Optional, Boolean

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable)
                          +    NSNumber<SDLBool> *autoModeEnable;
                          + + +

                          Swift

                          +
                          var autoModeEnable: (NSNumber 
                          + + + + +

                          + defrostZone +

                          + +

                          @abstract Represents the kind of defrost zone

                          + +

                          Optional, SDLDefrostZone

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable) SDLDefrostZone defrostZone;
                          + + +

                          Swift

                          +
                          var defrostZone: SDLDefrostZone? { get set }
                          + + + + +

                          + dualModeEnable +

                          + +

                          @abstract Represents if dual mode is enabled.

                          + +

                          Optional, Boolean

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable)
                          +    NSNumber<SDLBool> *dualModeEnable;
                          + + +

                          Swift

                          +
                          var dualModeEnable: (NSNumber 
                          + + + + +

                          + acMaxEnable +

                          + +

                          @abstract Represents if ac max is enabled.

                          + +

                          Optional, Boolean

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable)
                          +    NSNumber<SDLBool> *acMaxEnable;
                          + + +

                          Swift

                          +
                          var acMaxEnable: (NSNumber 
                          + + + + +

                          + ventilationMode +

                          + +

                          @abstract Represents the kind of Ventilation zone

                          + +

                          Optional, SDLVentilationMode

                          + + + +

                          Objective-C

                          +
                          @property (readwrite, strong, nonatomic, nullable)
                          +    SDLVentilationMode ventilationMode;
                          + + +

                          Swift

                          +
                          var ventilationMode: SDLVentilationMode? { get set }
                          + + + + +
                          diff --git a/docs/Classes/SDLClusterModeStatus.html b/docs/Classes/SDLClusterModeStatus.html index 74f1b45e0..1ed1b0e28 100644 --- a/docs/Classes/SDLClusterModeStatus.html +++ b/docs/Classes/SDLClusterModeStatus.html @@ -3,8 +3,6 @@

                          SDLClusterModeStatus Class Reference

                          Section Contents

                            -
                          • -init
                          • -
                          • -initWithDictionary:
                          • powerModeActive
                          • powerModeQualificationStatus
                          • carModeStatus
                          • @@ -17,28 +15,6 @@

                            Overview

                            -

                            - -init -

                            - -

                            Undocumented

                            - - - - - - -

                            - -initWithDictionary: -

                            - -

                            Undocumented

                            - - - - - -

                            powerModeActive

                            diff --git a/docs/Classes/SDLCompassDirection.html b/docs/Classes/SDLCompassDirection.html deleted file mode 100644 index c83a2e674..000000000 --- a/docs/Classes/SDLCompassDirection.html +++ /dev/null @@ -1,251 +0,0 @@ -

                            SDLCompassDirection Class Reference

                            - -

                            Section Contents

                            - - - -

                            Overview

                            - -

                            The list of potential compass directions.

                            - -

                            @since SDL 2.0

                            - - -
                            -

                            - +valueOf: -

                            - -

                            @abstract Convert String to SDLCompassDirection

                            - - - -

                            Objective-C

                            -
                            + (SDLCompassDirection *)valueOf:(NSString *)value;
                            - - -

                            Swift

                            -
                            class func value(of value: String!) -> SDLCompassDirection!
                            - - - -

                            Parameters

                            -
                            -
                            value
                            -

                            The value of the string to get an object for

                            -
                            -
                            -

                            Return Value

                            -

                            SDLCompassDirection

                            -
                            - -

                            - +values -

                            - -

                            @abstract Store the enumeration of all possible SDLCompassDirection

                            - - - -

                            Objective-C

                            -
                            + (NSArray *)values;
                            - - -

                            Swift

                            -
                            class func values() -> [Any]!
                            - - - -
                            -

                            Return Value

                            -

                            An array that store all possible SDLCompassDirection

                            -
                            - -

                            - +NORTH -

                            - -

                            @abstract Direction North

                            - - - -

                            Objective-C

                            -
                            + (SDLCompassDirection *)NORTH;
                            - - -

                            Swift

                            -
                            class func north() -> SDLCompassDirection!
                            - - - -
                            -

                            Return Value

                            -

                            A SDLCompassDirection with the value of NORTH

                            -
                            - -

                            - +NORTHWEST -

                            - -

                            @abstract Direction Northwest

                            - - - -

                            Objective-C

                            -
                            + (SDLCompassDirection *)NORTHWEST;
                            - - -

                            Swift

                            -
                            class func northwest() -> SDLCompassDirection!
                            - - - -
                            -

                            Return Value

                            -

                            A SDLCompassDirection with the value of NORTHWEST

                            -
                            - -

                            - +WEST -

                            - -

                            @abstract Direction West

                            - - - -

                            Objective-C

                            -
                            + (SDLCompassDirection *)WEST;
                            - - -

                            Swift

                            -
                            class func west() -> SDLCompassDirection!
                            - - - -
                            -

                            Return Value

                            -

                            A SDLCompassDirection with the value of WEST

                            -
                            - -

                            - +SOUTHWEST -

                            - -

                            @abstract Direction Southwest

                            - - - -

                            Objective-C

                            -
                            + (SDLCompassDirection *)SOUTHWEST;
                            - - -

                            Swift

                            -
                            class func southwest() -> SDLCompassDirection!
                            - - - -
                            -

                            Return Value

                            -

                            A SDLCompassDirection with the value of SOUTHWEST

                            -
                            - -

                            - +SOUTH -

                            - -

                            @abstract Direction South

                            - - - -

                            Objective-C

                            -
                            + (SDLCompassDirection *)SOUTH;
                            - - -

                            Swift

                            -
                            class func south() -> SDLCompassDirection!
                            - - - -
                            -

                            Return Value

                            -

                            A SDLCompassDirection with the value of SOUTH

                            -
                            - -

                            - +SOUTHEAST -

                            - -

                            @abstract Direction Southeast

                            - - - -

                            Objective-C

                            -
                            + (SDLCompassDirection *)SOUTHEAST;
                            - - -

                            Swift

                            -
                            class func southeast() -> SDLCompassDirection!
                            - - - -
                            -

                            Return Value

                            -

                            A SDLCompassDirection with the value of SOUTHEAST

                            -
                            - -

                            - +EAST -

                            - -

                            @abstract Direction East

                            - - - -

                            Objective-C

                            -
                            + (SDLCompassDirection *)EAST;
                            - - -

                            Swift

                            -
                            class func east() -> SDLCompassDirection!
                            - - - -
                            -

                            Return Value

                            -

                            A SDLCompassDirection with the value of EAST

                            -
                            - -

                            - +NORTHEAST -

                            - -

                            @abstract Direction Northeast

                            - - - -

                            Objective-C

                            -
                            + (SDLCompassDirection *)NORTHEAST;
                            - - -

                            Swift

                            -
                            class func northeast() -> SDLCompassDirection!
                            - - - -
                            -

                            Return Value

                            -

                            A SDLCompassDirection with the value of NORTHEAST

                            -
                            - -
                            diff --git a/docs/Classes/SDLComponentVolumeStatus.html b/docs/Classes/SDLComponentVolumeStatus.html deleted file mode 100644 index e4aa85eda..000000000 --- a/docs/Classes/SDLComponentVolumeStatus.html +++ /dev/null @@ -1,205 +0,0 @@ -

                            SDLComponentVolumeStatus Class Reference

                            - -

                            Section Contents

                            - - - -

                            Overview

                            - -

                            The volume status of a vehicle component.

                            - -

                            @since SDL 2.0

                            - - -
                            -

                            - +valueOf: -

                            - -

                            @abstract Convert String to SDLComponentVolumeStatus

                            - - - -

                            Objective-C

                            -
                            + (SDLComponentVolumeStatus *)valueOf:(NSString *)value;
                            - - -

                            Swift

                            -
                            class func value(of value: String!) -> SDLComponentVolumeStatus!
                            - - - -

                            Parameters

                            -
                            -
                            value
                            -

                            The value of the string to get an object for

                            -
                            -
                            -

                            Return Value

                            -

                            SDLComponentVolumeStatus

                            -
                            - -

                            - +values -

                            - -

                            @abstract Store the enumeration of all possible SDLComponentVolumeStatus

                            - - - -

                            Objective-C

                            -
                            + (NSArray *)values;
                            - - -

                            Swift

                            -
                            class func values() -> [Any]!
                            - - - -
                            -

                            Return Value

                            -

                            An array that store all possible SDLComponentVolumeStatus

                            -
                            - -

                            - +UNKNOWN -

                            - -

                            @abstract Unknown SDLComponentVolumeStatus

                            - - - -

                            Objective-C

                            -
                            + (SDLComponentVolumeStatus *)UNKNOWN;
                            - - -

                            Swift

                            -
                            class func unknown() -> SDLComponentVolumeStatus!
                            - - - -
                            -

                            Return Value

                            -

                            a SDLComponentVolumeStatus with the value of UNKNOWN

                            -
                            - -

                            - +NORMAL -

                            - -

                            @abstract Normal SDLComponentVolumeStatus

                            - - - -

                            Objective-C

                            -
                            + (SDLComponentVolumeStatus *)NORMAL;
                            - - -

                            Swift

                            -
                            class func normal() -> SDLComponentVolumeStatus!
                            - - - -
                            -

                            Return Value

                            -

                            a SDLComponentVolumeStatus with the value of NORMAL

                            -
                            - -

                            - +LOW -

                            - -

                            @abstract Low SDLComponentVolumeStatus

                            - - - -

                            Objective-C

                            -
                            + (SDLComponentVolumeStatus *)LOW;
                            - - -

                            Swift

                            -
                            class func low() -> SDLComponentVolumeStatus!
                            - - - -
                            -

                            Return Value

                            -

                            a SDLComponentVolumeStatus with the value of LOW

                            -
                            - -

                            - +FAULT -

                            - -

                            @abstract Fault SDLComponentVolumeStatus

                            - - - -

                            Objective-C

                            -
                            + (SDLComponentVolumeStatus *)FAULT;
                            - - -

                            Swift

                            -
                            class func fault() -> SDLComponentVolumeStatus!
                            - - - -
                            -

                            Return Value

                            -

                            a SDLComponentVolumeStatus with the value of FAULT

                            -
                            - -

                            - +ALERT -

                            - -

                            @abstract Alert SDLComponentVolumeStatus

                            - - - -

                            Objective-C

                            -
                            + (SDLComponentVolumeStatus *)ALERT;
                            - - -

                            Swift

                            -
                            class func alert() -> SDLComponentVolumeStatus!
                            - - - -
                            -

                            Return Value

                            -

                            a SDLComponentVolumeStatus with the value of ALERT

                            -
                            - -

                            - +NOT_SUPPORTED -

                            - -

                            @abstract Not supported SDLComponentVolumeStatus

                            - - - -

                            Objective-C

                            -
                            + (SDLComponentVolumeStatus *)NOT_SUPPORTED;
                            - - -

                            Swift

                            -
                            class func not_SUPPORTED() -> SDLComponentVolumeStatus!
                            - - - -
                            -

                            Return Value

                            -

                            a SDLComponentVolumeStatus with the value of NOT_SUPPORTED

                            -
                            - -
                            diff --git a/docs/Classes/SDLConfiguration.html b/docs/Classes/SDLConfiguration.html index 9322a73ac..bf5a6a254 100644 --- a/docs/Classes/SDLConfiguration.html +++ b/docs/Classes/SDLConfiguration.html @@ -5,8 +5,12 @@

                            Section Contents

                            Overview

                            @@ -53,22 +57,129 @@

                            Swift

                            -

                            - -initWithLifecycle:lockScreen: +

                            + loggingConfig

                            -

                            Create a new configuration to be passed into SDLManager.

                            +

                            The log configuration.

                            + + + +

                            Objective-C

                            +
                            @property (readonly, copy, nonatomic)
                            +    SDLLogConfiguration *_Nonnull loggingConfig;
                            + + +

                            Swift

                            +
                            @NSCopying var loggingConfig: SDLLogConfiguration { get }
                            + + + + +

                            + streamingMediaConfig +

                            + +

                            The configuration

                            + + + +

                            Objective-C

                            +
                            @property (readonly, copy, nonatomic)
                            +    SDLStreamingMediaConfiguration *_Nonnull streamingMediaConfig;
                            + + +

                            Swift

                            +
                            @NSCopying var streamingMediaConfig: SDLStreamingMediaConfiguration { get }
                            + + + + +

                            + -initWithLifecycle:lockScreen:logging: +

                            + +

                            Create a new configuration to be passed into SDLManager with a custom lifecycle, lock screen, and logging configuration.

                            + + + +

                            Objective-C

                            +
                            - (nonnull instancetype)
                            +initWithLifecycle:(nonnull SDLLifecycleConfiguration *)lifecycleConfig
                            +       lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig
                            +          logging:(nullable SDLLogConfiguration *)logConfig;
                            + + +

                            Swift

                            +
                            init(lifecycle lifecycleConfig: SDLLifecycleConfiguration, lockScreen lockScreenConfig: SDLLockScreenConfiguration?, logging logConfig: SDLLogConfiguration?)
                            + + + +

                            Parameters

                            +
                            +
                            lifecycleConfig
                            +

                            The lifecycle configuration to be used.

                            +
                            lockScreenConfig
                            +

                            The lockscreen configuration to be used, or enabledConfiguration if nil.

                            +
                            logConfig
                            +

                            The logging configuration to be used, or defaultConfiguration if nil.

                            +
                            +
                            +

                            Return Value

                            +

                            The configuration

                            +
                            + +

                            + +configurationWithLifecycle:lockScreen:logging: +

                            + +

                            Create a new configuration to be passed into SDLManager with a custom lifecycle, lock screen, and logging configuration.

                            + + + +

                            Objective-C

                            +
                            + (nonnull instancetype)
                            +configurationWithLifecycle:(nonnull SDLLifecycleConfiguration *)lifecycleConfig
                            +                lockScreen:
                            +                    (nullable SDLLockScreenConfiguration *)lockScreenConfig
                            +                   logging:(nullable SDLLogConfiguration *)logConfig;
                            + + + + +

                            Parameters

                            +
                            +
                            lifecycleConfig
                            +

                            The lifecycle configuration to be used.

                            +
                            lockScreenConfig
                            +

                            The lockscreen configuration to be used, or enabledConfiguration if nil.

                            +
                            logConfig
                            +

                            The logging configuration to be used, or defaultConfiguration if nil.

                            +
                            +
                            +

                            Return Value

                            +

                            The configuration

                            +
                            + +

                            + -initWithLifecycle:lockScreen:logging:streamingMedia: +

                            + +

                            Create a new configuration to be passed into SDLManager with a custom lifecycle, lock screen, logging, and streaming media configuration.

                            Objective-C

                            - (nonnull instancetype)
                             initWithLifecycle:(nonnull SDLLifecycleConfiguration *)lifecycleConfig
                            -       lockScreen:(nonnull SDLLockScreenConfiguration *)lockScreenConfig;
                            + lockScreen:(nullable SDLLockScreenConfiguration *)lockScreenConfig + logging:(nullable SDLLogConfiguration *)logConfig + streamingMedia: + (nullable SDLStreamingMediaConfiguration *)streamingMediaConfig;

                            Swift

                            -
                            init(lifecycle lifecycleConfig: SDLLifecycleConfiguration, lockScreen lockScreenConfig: SDLLockScreenConfiguration)
                            +
                            init(lifecycle lifecycleConfig: SDLLifecycleConfiguration, lockScreen lockScreenConfig: SDLLockScreenConfiguration?, logging logConfig: SDLLogConfiguration?, streamingMedia streamingMediaConfig: SDLStreamingMediaConfiguration?)
                            @@ -77,18 +188,22 @@

                            Parameters

                            lifecycleConfig

                            The lifecycle configuration to be used.

                            lockScreenConfig
                            -

                            The lockscreen configuration to be used. If nil, this will be enabledConfiguration.

                            +

                            The lockscreen configuration to be used, or enabledConfiguration if nil.

                            +
                            logConfig
                            +

                            The logging configuration to be used, or defaultConfiguration if nil.

                            +
                            streamingMediaConfig
                            +

                            The streaming media configuration to be used, or nil because it is not needed.

                            Return Value

                            The configuration

                            -

                            - +configurationWithLifecycle:lockScreen: +

                            + +configurationWithLifecycle:lockScreen:logging:streamingMedia:

                            -

                            Create a new configuration to be passed into SDLManager.

                            +

                            Create a new configuration to be passed into SDLManager with a custom lifecycle, lock screen, logging, and streaming media configuration.

                            @@ -96,7 +211,10 @@

                            Objective-C

                            + (nonnull instancetype)
                             configurationWithLifecycle:(nonnull SDLLifecycleConfiguration *)lifecycleConfig
                                             lockScreen:
                            -                    (nonnull SDLLockScreenConfiguration *)lockScreenConfig;
                            + (nullable SDLLockScreenConfiguration *)lockScreenConfig + logging:(nullable SDLLogConfiguration *)logConfig + streamingMedia: + (nullable SDLStreamingMediaConfiguration *)streamingMediaConfig; @@ -106,7 +224,11 @@

                            Parameters

                            lifecycleConfig

                            The lifecycle configuration to be used.

                            lockScreenConfig
                            -

                            The lockscreen configuration to be used. If nil, this will be enabledConfiguration.

                            +

                            The lockscreen configuration to be used, or enabledConfiguration if nil.

                            +
                            logConfig
                            +

                            The logging configuration to be used, or defaultConfiguration if nil.

                            +
                            streamingMediaConfig
                            +

                            The streaming media configuration to be used, or nil because it is not needed.

                            Return Value

                            diff --git a/docs/Classes/SDLConsoleController.html b/docs/Classes/SDLConsoleController.html deleted file mode 100644 index 1ac5bb8be..000000000 --- a/docs/Classes/SDLConsoleController.html +++ /dev/null @@ -1,74 +0,0 @@ -

                            SDLConsoleController Class Reference

                            - -

                            Section Contents

                            - - - -

                            Overview

                            - -

                            Undocumented

                            - - -
                            -

                            - messageList -

                            - -

                            Undocumented

                            - - - - - - -

                            - atBottom -

                            - -

                            Undocumented

                            - - - - - - -

                            - dateFormatter -

                            - -

                            Undocumented

                            - - - - - - -

                            - messageList -

                            - -

                            Undocumented

                            - - - - - - -

                            - -initWithTableView: -

                            - -

                            Undocumented

                            - - - - - - -
                            diff --git a/docs/Classes/SDLCreateInteractionChoiceSet.html b/docs/Classes/SDLCreateInteractionChoiceSet.html index a5e651e9c..1e2552799 100644 --- a/docs/Classes/SDLCreateInteractionChoiceSet.html +++ b/docs/Classes/SDLCreateInteractionChoiceSet.html @@ -3,8 +3,6 @@

                            SDLCreateInteractionChoiceSet Class Reference

                            Section Contents

                              -
                            • -init
                            • -
                            • -initWithDictionary:
                            • -initWithId:choiceSet:
                            • interactionChoiceSetID
                            • choiceSet
                            • @@ -29,47 +27,6 @@

                              Overview

                              -

                              - -init -

                              - -

                              Constructs a new SDLCreateInteractionChoiceSet object

                              - - - -

                              Objective-C

                              -
                              - (instancetype)init;
                              - - -

                              Swift

                              -
                              init!()
                              - - - - -

                              - -initWithDictionary: -

                              - -

                              Constructs a new SDLCreateInteractionChoiceSet object indicated by the dictionary parameter

                              - - - -

                              Objective-C

                              -
                              - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                              - - -

                              Swift

                              -
                              init!(dictionary dict: NSMutableDictionary!)
                              - - - -

                              Parameters

                              -
                              -
                              dict
                              -

                              The dictionary to use

                              -
                              -

                              -initWithId:choiceSet:

                              @@ -96,11 +53,12 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSNumber *interactionChoiceSetID;
                              +
                              @property (readwrite, strong, nonatomic)
                              +    NSNumber<SDLInt> *_Nonnull interactionChoiceSetID;

                              Swift

                              -
                              var interactionChoiceSetID: NSNumber! { get set }
                              +
                              var interactionChoiceSetID: NSNumber 
                              @@ -116,11 +74,12 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSMutableArray *choiceSet;
                              +
                              @property (readwrite, strong, nonatomic)
                              +    NSArray<SDLChoice *> *_Nonnull choiceSet;

                              Swift

                              -
                              var choiceSet: NSMutableArray! { get set }
                              +
                              var choiceSet: [SDLChoice] { get set }
                              diff --git a/docs/Classes/SDLCreateInteractionChoiceSetResponse.html b/docs/Classes/SDLCreateInteractionChoiceSetResponse.html deleted file mode 100644 index 7646c792c..000000000 --- a/docs/Classes/SDLCreateInteractionChoiceSetResponse.html +++ /dev/null @@ -1,49 +0,0 @@ -

                              SDLCreateInteractionChoiceSetResponse Class Reference

                              - -

                              Section Contents

                              - - - -

                              Overview

                              - -

                              SDLCreateInteractionChoiceSetResponse is sent, when SDLCreateInteractionChoiceSet - has been called

                              - -

                              Since SmartDeviceLink 1.0

                              - - -
                              -

                              - -init -

                              - -

                              Undocumented

                              - - - -

                              Objective-C

                              -
                              @interface SDLCreateInteractionChoiceSetResponse : SDLRPCResponse
                              - - - - - -

                              - -initWithDictionary: -

                              - -

                              Undocumented

                              - - - -

                              Objective-C

                              -
                              @interface SDLCreateInteractionChoiceSetResponse : SDLRPCResponse
                              - - - - - -
                              diff --git a/docs/Classes/SDLDIDResult.html b/docs/Classes/SDLDIDResult.html index 91708e081..0b2a67e4a 100644 --- a/docs/Classes/SDLDIDResult.html +++ b/docs/Classes/SDLDIDResult.html @@ -3,8 +3,6 @@

                              SDLDIDResult Class Reference

                              Section Contents

                                -
                              • -init
                              • -
                              • -initWithDictionary:
                              • resultCode
                              • didLocation
                              • data
                              • @@ -16,28 +14,6 @@

                                Overview

                                -

                                - -init -

                                - -

                                Undocumented

                                - - - - - - -

                                - -initWithDictionary: -

                                - -

                                Undocumented

                                - - - - - -

                                resultCode

                                diff --git a/docs/Classes/SDLDateTime.html b/docs/Classes/SDLDateTime.html index a99db5e89..2c06a1405 100644 --- a/docs/Classes/SDLDateTime.html +++ b/docs/Classes/SDLDateTime.html @@ -79,11 +79,11 @@

                                Objective-C

                                -
                                @property (readwrite, copy, nonatomic) NSNumber<SDLInt> *millisecond;
                                +
                                @property (readwrite, copy, nonatomic) NSNumber<SDLInt> *_Nonnull millisecond;

                                Swift

                                -
                                @NSCopying var millisecond: (NSNumber 
                                +
                                @NSCopying var millisecond: NSNumber 
                                @@ -99,11 +99,11 @@

                                Objective-C

                                -
                                @property (readwrite, copy, nonatomic) NSNumber<SDLInt> *second;
                                +
                                @property (readwrite, copy, nonatomic) NSNumber<SDLInt> *_Nonnull second;

                                Swift

                                -
                                @NSCopying var second: (NSNumber 
                                +
                                @NSCopying var second: NSNumber 
                                @@ -119,11 +119,11 @@

                                Objective-C

                                -
                                @property (readwrite, copy, nonatomic) NSNumber<SDLInt> *minute;
                                +
                                @property (readwrite, copy, nonatomic) NSNumber<SDLInt> *_Nonnull minute;

                                Swift

                                -
                                @NSCopying var minute: (NSNumber 
                                +
                                @NSCopying var minute: NSNumber 
                                @@ -139,11 +139,11 @@

                                Objective-C

                                -
                                @property (readwrite, copy, nonatomic) NSNumber<SDLInt> *hour;
                                +
                                @property (readwrite, copy, nonatomic) NSNumber<SDLInt> *_Nonnull hour;

                                Swift

                                -
                                @NSCopying var hour: (NSNumber 
                                +
                                @NSCopying var hour: NSNumber 
                                @@ -159,11 +159,11 @@

                                Objective-C

                                -
                                @property (readwrite, copy, nonatomic) NSNumber<SDLInt> *day;
                                +
                                @property (readwrite, copy, nonatomic) NSNumber<SDLInt> *_Nonnull day;

                                Swift

                                -
                                @NSCopying var day: (NSNumber 
                                +
                                @NSCopying var day: NSNumber 
                                @@ -179,11 +179,11 @@

                                Objective-C

                                -
                                @property (readwrite, copy, nonatomic) NSNumber<SDLInt> *month;
                                +
                                @property (readwrite, copy, nonatomic) NSNumber<SDLInt> *_Nonnull month;

                                Swift

                                -
                                @NSCopying var month: (NSNumber 
                                +
                                @NSCopying var month: NSNumber 
                                @@ -199,11 +199,11 @@

                                Objective-C

                                -
                                @property (readwrite, copy, nonatomic) NSNumber<SDLInt> *year;
                                +
                                @property (readwrite, copy, nonatomic) NSNumber<SDLInt> *_Nonnull year;

                                Swift

                                -
                                @NSCopying var year: (NSNumber 
                                +
                                @NSCopying var year: NSNumber 
                                @@ -219,11 +219,12 @@

                                Objective-C

                                -
                                @property (readwrite, copy, nonatomic) NSNumber<SDLInt> *timezoneMinuteOffset;
                                +
                                @property (readwrite, copy, nonatomic)
                                +    NSNumber<SDLInt> *_Nonnull timezoneMinuteOffset;

                                Swift

                                -
                                @NSCopying var timezoneMinuteOffset: (NSNumber 
                                +
                                @NSCopying var timezoneMinuteOffset: NSNumber 
                                @@ -239,11 +240,12 @@

                                Objective-C

                                -
                                @property (readwrite, copy, nonatomic) NSNumber<SDLInt> *timezoneHourOffset;
                                +
                                @property (readwrite, copy, nonatomic)
                                +    NSNumber<SDLInt> *_Nonnull timezoneHourOffset;

                                Swift

                                -
                                @NSCopying var timezoneHourOffset: (NSNumber 
                                +
                                @NSCopying var timezoneHourOffset: NSNumber 
                                diff --git a/docs/Classes/SDLDebugTool.html b/docs/Classes/SDLDebugTool.html deleted file mode 100644 index 3bbcb8fca..000000000 --- a/docs/Classes/SDLDebugTool.html +++ /dev/null @@ -1,206 +0,0 @@ -

                                SDLDebugTool Class Reference

                                - -

                                Section Contents

                                - - - -

                                Overview

                                - -

                                Undocumented

                                - - -
                                -

                                - +enable -

                                - -

                                Undocumented

                                - - - - - - -

                                - +disable -

                                - -

                                Undocumented

                                - - - - - - -

                                - +addConsole: -

                                - -

                                Undocumented

                                - - - - - - -

                                - +addConsole:toGroup: -

                                - -

                                Undocumented

                                - - - - - - -

                                - +removeConsole: -

                                - -

                                Undocumented

                                - - - - - - -

                                - +removeConsole:fromGroup: -

                                - -

                                Undocumented

                                - - - - - - -

                                - +logInfo: -

                                - -

                                Undocumented

                                - - - - - - -

                                - +logFormat: -

                                - -

                                Undocumented

                                - - - - - - -

                                - +logInfo:withType: -

                                - -

                                Undocumented

                                - - - - - - -

                                - +logInfo:withType:toOutput: -

                                - -

                                Undocumented

                                - - - - - - -

                                - +logInfo:andBinaryData:withType:toOutput: -

                                - -

                                Undocumented

                                - - - - - - -

                                - +logInfo:withType:toOutput:toGroup: -

                                - -

                                Undocumented

                                - - - - - - -

                                - +enableDebugToLogFile -

                                - -

                                Undocumented

                                - - - - - - -

                                - +disableDebugToLogFile -

                                - -

                                Undocumented

                                - - - - - - -

                                - +writeToLogFile: -

                                - -

                                Undocumented

                                - - - - - - -

                                - +stringForDebugType: -

                                - -

                                Undocumented

                                - - - - - - -
                                diff --git a/docs/Classes/SDLDeleteCommand.html b/docs/Classes/SDLDeleteCommand.html index 932658d47..62197d9b9 100644 --- a/docs/Classes/SDLDeleteCommand.html +++ b/docs/Classes/SDLDeleteCommand.html @@ -3,8 +3,6 @@

                                SDLDeleteCommand Class Reference

                                Section Contents

                                @@ -24,49 +22,6 @@

                                Overview

                                -

                                - -init -

                                - -

                                Constructs a new SDLDeleteCommand object

                                - - - -

                                Objective-C

                                -
                                - (instancetype)init;
                                - - -

                                Swift

                                -
                                init!()
                                - - - - -

                                - -initWithDictionary: -

                                - -

                                Constructs a new SDLDeleteCommand object indicated by the NSMutableDictionary - parameter -

                                - - - -

                                Objective-C

                                -
                                - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                - - -

                                Swift

                                -
                                init!(dictionary dict: NSMutableDictionary!)
                                - - - -

                                Parameters

                                -
                                -
                                dict
                                -

                                The dictionary to use

                                -
                                -

                                -initWithId:

                                @@ -94,11 +49,11 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) NSNumber *cmdID;
                                +
                                @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull cmdID;

                                Swift

                                -
                                var cmdID: NSNumber! { get set }
                                +
                                var cmdID: NSNumber 
                                diff --git a/docs/Classes/SDLDeleteCommandResponse.html b/docs/Classes/SDLDeleteCommandResponse.html deleted file mode 100644 index 5de02884b..000000000 --- a/docs/Classes/SDLDeleteCommandResponse.html +++ /dev/null @@ -1,48 +0,0 @@ -

                                SDLDeleteCommandResponse Class Reference

                                - -

                                Section Contents

                                - - - -

                                Overview

                                - -

                                SDLDeleteCommandResponse is sent, when SDLDeleteCommand has been called

                                - -

                                Since SmartDeviceLink 1.0

                                - - -
                                -

                                - -init -

                                - -

                                Undocumented

                                - - - -

                                Objective-C

                                -
                                @interface SDLDeleteCommandResponse : SDLRPCResponse
                                - - - - - -

                                - -initWithDictionary: -

                                - -

                                Undocumented

                                - - - -

                                Objective-C

                                -
                                @interface SDLDeleteCommandResponse : SDLRPCResponse
                                - - - - - -
                                diff --git a/docs/Classes/SDLDeleteFile.html b/docs/Classes/SDLDeleteFile.html index 43cf3eaa3..1c5149a6c 100644 --- a/docs/Classes/SDLDeleteFile.html +++ b/docs/Classes/SDLDeleteFile.html @@ -3,8 +3,6 @@

                                SDLDeleteFile Class Reference

                                Section Contents

                                @@ -20,48 +18,6 @@

                                Overview

                                -

                                - -init -

                                - -

                                Constructs a new SDLDeleteFile object

                                - - - -

                                Objective-C

                                -
                                - (instancetype)init;
                                - - -

                                Swift

                                -
                                init!()
                                - - - - -

                                - -initWithDictionary: -

                                - -

                                Constructs a new SDLDeleteFile object indicated by the dictionary parameter -

                                - - - -

                                Objective-C

                                -
                                - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                - - -

                                Swift

                                -
                                init!(dictionary dict: NSMutableDictionary!)
                                - - - -

                                Parameters

                                -
                                -
                                dict
                                -

                                The dictionary to use

                                -
                                -

                                -initWithFileName:

                                @@ -87,11 +43,11 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) NSString *syncFileName;
                                +
                                @property (readwrite, strong, nonatomic) NSString *_Nonnull syncFileName;

                                Swift

                                -
                                var syncFileName: String! { get set }
                                +
                                var syncFileName: String { get set }
                                diff --git a/docs/Classes/SDLDeleteFileResponse.html b/docs/Classes/SDLDeleteFileResponse.html index 626eca910..bd23313b8 100644 --- a/docs/Classes/SDLDeleteFileResponse.html +++ b/docs/Classes/SDLDeleteFileResponse.html @@ -3,8 +3,6 @@

                                SDLDeleteFileResponse Class Reference

                                Section Contents

                                @@ -16,36 +14,6 @@

                                Overview

                                -

                                - -init -

                                - -

                                Undocumented

                                - - - -

                                Objective-C

                                -
                                @interface SDLDeleteFileResponse : SDLRPCResponse
                                - - - - - -

                                - -initWithDictionary: -

                                - -

                                Undocumented

                                - - - -

                                Objective-C

                                -
                                @interface SDLDeleteFileResponse : SDLRPCResponse
                                - - - - -

                                spaceAvailable

                                diff --git a/docs/Classes/SDLDeleteInteractionChoiceSet.html b/docs/Classes/SDLDeleteInteractionChoiceSet.html index cb2358a6c..8d32fa2fc 100644 --- a/docs/Classes/SDLDeleteInteractionChoiceSet.html +++ b/docs/Classes/SDLDeleteInteractionChoiceSet.html @@ -3,8 +3,6 @@

                                SDLDeleteInteractionChoiceSet Class Reference

                                Section Contents

                                @@ -26,49 +24,6 @@

                                Overview

                                -

                                - -init -

                                - -

                                Constructs a new SDLDeleteInteractionChoiceSet object

                                - - - -

                                Objective-C

                                -
                                - (instancetype)init;
                                - - -

                                Swift

                                -
                                init!()
                                - - - - -

                                - -initWithDictionary: -

                                - -

                                Constructs a new SDLDeleteInteractionChoiceSet object indicated by the - NSMutableDictionary parameter -

                                - - - -

                                Objective-C

                                -
                                - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                - - -

                                Swift

                                -
                                init!(dictionary dict: NSMutableDictionary!)
                                - - - -

                                Parameters

                                -
                                -
                                dict
                                -

                                The dictionary to use

                                -
                                -

                                -initWithId:

                                @@ -96,11 +51,12 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) NSNumber *interactionChoiceSetID;
                                +
                                @property (readwrite, strong, nonatomic)
                                +    NSNumber<SDLInt> *_Nonnull interactionChoiceSetID;

                                Swift

                                -
                                var interactionChoiceSetID: NSNumber! { get set }
                                +
                                var interactionChoiceSetID: NSNumber 
                                diff --git a/docs/Classes/SDLDeleteInteractionChoiceSetResponse.html b/docs/Classes/SDLDeleteInteractionChoiceSetResponse.html deleted file mode 100644 index ccbe62169..000000000 --- a/docs/Classes/SDLDeleteInteractionChoiceSetResponse.html +++ /dev/null @@ -1,48 +0,0 @@ -

                                SDLDeleteInteractionChoiceSetResponse Class Reference

                                - -

                                Section Contents

                                - - - -

                                Overview

                                - -

                                SDLDeleteInteractionChoiceSetResponse is sent, when SDLDeleteInteractionChoiceSet has been called

                                - -

                                Since SmartDeviceLink 1.0

                                - - -
                                -

                                - -init -

                                - -

                                Undocumented

                                - - - -

                                Objective-C

                                -
                                @interface SDLDeleteInteractionChoiceSetResponse : SDLRPCResponse
                                - - - - - -

                                - -initWithDictionary: -

                                - -

                                Undocumented

                                - - - -

                                Objective-C

                                -
                                @interface SDLDeleteInteractionChoiceSetResponse : SDLRPCResponse
                                - - - - - -
                                diff --git a/docs/Classes/SDLDeleteSubMenu.html b/docs/Classes/SDLDeleteSubMenu.html index 6a33bf38d..031445fd6 100644 --- a/docs/Classes/SDLDeleteSubMenu.html +++ b/docs/Classes/SDLDeleteSubMenu.html @@ -3,8 +3,6 @@

                                SDLDeleteSubMenu Class Reference

                                Section Contents

                                @@ -24,47 +22,6 @@

                                Overview

                                -

                                - -init -

                                - -

                                Constructs a new SDLDeleteSubMenu object

                                - - - -

                                Objective-C

                                -
                                - (instancetype)init;
                                - - -

                                Swift

                                -
                                init!()
                                - - - - -

                                - -initWithDictionary: -

                                - -

                                Constructs a new SDLDeleteSubMenu object indicated by the dictionary parameter

                                - - - -

                                Objective-C

                                -
                                - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                - - -

                                Swift

                                -
                                init!(dictionary dict: NSMutableDictionary!)
                                - - - -

                                Parameters

                                -
                                -
                                dict
                                -

                                The dictionary to use

                                -
                                -

                                -initWithId:

                                @@ -90,11 +47,11 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) NSNumber *menuID;
                                +
                                @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull menuID;

                                Swift

                                -
                                var menuID: NSNumber! { get set }
                                +
                                var menuID: NSNumber 
                                diff --git a/docs/Classes/SDLDeleteSubMenuResponse.html b/docs/Classes/SDLDeleteSubMenuResponse.html deleted file mode 100644 index de08d4187..000000000 --- a/docs/Classes/SDLDeleteSubMenuResponse.html +++ /dev/null @@ -1,48 +0,0 @@ -

                                SDLDeleteSubMenuResponse Class Reference

                                - -

                                Section Contents

                                - - - -

                                Overview

                                - -

                                SDLDeleteSubMenuResponse is sent, when SDLDeleteSubMenu has been called

                                - -

                                Since SmartDeviceLink 1.0

                                - - -
                                -

                                - -init -

                                - -

                                Undocumented

                                - - - -

                                Objective-C

                                -
                                @interface SDLDeleteSubMenuResponse : SDLRPCResponse
                                - - - - - -

                                - -initWithDictionary: -

                                - -

                                Undocumented

                                - - - -

                                Objective-C

                                -
                                @interface SDLDeleteSubMenuResponse : SDLRPCResponse
                                - - - - - -
                                diff --git a/docs/Classes/SDLDeliveryMode.html b/docs/Classes/SDLDeliveryMode.html deleted file mode 100644 index 392ae09c3..000000000 --- a/docs/Classes/SDLDeliveryMode.html +++ /dev/null @@ -1,134 +0,0 @@ -

                                SDLDeliveryMode Class Reference

                                - -

                                Section Contents

                                - - - -

                                Overview

                                - -

                                Specifies the mode in which the sendLocation request is sent.

                                - - -
                                -

                                - +valueOf: -

                                - -

                                @abstract Convert String to SDLDeliveryMode

                                - - - -

                                Objective-C

                                -
                                + (SDLDeliveryMode *)valueOf:(NSString *)value;
                                - - -

                                Swift

                                -
                                class func value(of value: String!) -> SDLDeliveryMode!
                                - - - -

                                Parameters

                                -
                                -
                                value
                                -

                                The value of the string to get an object for

                                -
                                -
                                -

                                Return Value

                                -

                                SDLDeliveryMode

                                -
                                - -

                                - +values -

                                - -

                                @abstract Store the enumeration of all possible SDLDeliveryMode

                                - - - -

                                Objective-C

                                -
                                + (NSArray *)values;
                                - - -

                                Swift

                                -
                                class func values() -> [Any]!
                                - - - -
                                -

                                Return Value

                                -

                                an array that store all possible SDLDeliveryMode

                                -
                                - -

                                - +PROMPT -

                                - -

                                @abstract User is prompted on HMI

                                - - - -

                                Objective-C

                                -
                                + (SDLDeliveryMode *)PROMPT;
                                - - -

                                Swift

                                -
                                class func prompt() -> SDLDeliveryMode!
                                - - - -
                                -

                                Return Value

                                -

                                a SDLDeliveryMode with value of PROMPT

                                -
                                - -

                                - +DESTINATION -

                                - -

                                @abstract Set the location as destination without prompting the user

                                - - - -

                                Objective-C

                                -
                                + (SDLDeliveryMode *)DESTINATION;
                                - - -

                                Swift

                                -
                                class func destination() -> SDLDeliveryMode!
                                - - - -
                                -

                                Return Value

                                -

                                a SDLDeliveryMode with value of DESTINATION

                                -
                                - -

                                - +QUEUE -

                                - -

                                @abstract Adds the current location to navigation queue

                                - - - -

                                Objective-C

                                -
                                + (SDLDeliveryMode *)QUEUE;
                                - - -

                                Swift

                                -
                                class func queue() -> SDLDeliveryMode!
                                - - - -
                                -

                                Return Value

                                -

                                a SDLDeliveryMode with value of QUEUE

                                -
                                - -
                                diff --git a/docs/Classes/SDLDeviceInfo.html b/docs/Classes/SDLDeviceInfo.html index 97a9ca6fd..f0d5bc03d 100644 --- a/docs/Classes/SDLDeviceInfo.html +++ b/docs/Classes/SDLDeviceInfo.html @@ -3,8 +3,6 @@

                                SDLDeviceInfo Class Reference

                                Section Contents

                                  -
                                • -init
                                • -
                                • -initWithDictionary:
                                • +currentDevice
                                • hardware
                                • firmwareRev
                                • @@ -20,28 +18,6 @@

                                  Overview

                                  -

                                  - -init -

                                  - -

                                  Undocumented

                                  - - - - - - -

                                  - -initWithDictionary: -

                                  - -

                                  Undocumented

                                  - - - - - -

                                  +currentDevice

                                  diff --git a/docs/Classes/SDLDeviceLevelStatus.html b/docs/Classes/SDLDeviceLevelStatus.html deleted file mode 100644 index ad5b2608e..000000000 --- a/docs/Classes/SDLDeviceLevelStatus.html +++ /dev/null @@ -1,205 +0,0 @@ -

                                  SDLDeviceLevelStatus Class Reference

                                  - -

                                  Section Contents

                                  - - - -

                                  Overview

                                  - -

                                  Reflects the reported battery status of the connected device, if reported.

                                  - -

                                  @since SDL 2.0

                                  - - -
                                  -

                                  - +valueOf: -

                                  - -

                                  Convert String to DeviceLevelStatus

                                  - - - -

                                  Objective-C

                                  -
                                  + (SDLDeviceLevelStatus *)valueOf:(NSString *)value;
                                  - - -

                                  Swift

                                  -
                                  class func value(of value: String!) -> SDLDeviceLevelStatus!
                                  - - - -

                                  Parameters

                                  -
                                  -
                                  value
                                  -

                                  String

                                  -
                                  -
                                  -

                                  Return Value

                                  -

                                  DeviceLevelStatus

                                  -
                                  - -

                                  - +values -

                                  - -

                                  @abstract Store the enumeration of all possible SDLDeviceLevelStatus

                                  - - - -

                                  Objective-C

                                  -
                                  + (NSArray *)values;
                                  - - -

                                  Swift

                                  -
                                  class func values() -> [Any]!
                                  - - - -
                                  -

                                  Return Value

                                  -

                                  an array that store all possible SDLDeviceLevelStatus

                                  -
                                  - -

                                  - +ZERO_LEVEL_BARS -

                                  - -

                                  @abstract Device battery level is zero bars

                                  - - - -

                                  Objective-C

                                  -
                                  + (SDLDeviceLevelStatus *)ZERO_LEVEL_BARS;
                                  - - -

                                  Swift

                                  -
                                  class func zero_LEVEL_BARS() -> SDLDeviceLevelStatus!
                                  - - - -
                                  -

                                  Return Value

                                  -

                                  a SDLDeviceLevelStatus with value of ZERO_LEVEL_BARS

                                  -
                                  - -

                                  - +ONE_LEVEL_BARS -

                                  - -

                                  @abstract Device battery level is one bar

                                  - - - -

                                  Objective-C

                                  -
                                  + (SDLDeviceLevelStatus *)ONE_LEVEL_BARS;
                                  - - -

                                  Swift

                                  -
                                  class func one_LEVEL_BARS() -> SDLDeviceLevelStatus!
                                  - - - -
                                  -

                                  Return Value

                                  -

                                  a SDLDeviceLevelStatus with value of ONE_LEVEL_BARS

                                  -
                                  - -

                                  - +TWO_LEVEL_BARS -

                                  - -

                                  @abstract Device battery level is two bars

                                  - - - -

                                  Objective-C

                                  -
                                  + (SDLDeviceLevelStatus *)TWO_LEVEL_BARS;
                                  - - -

                                  Swift

                                  -
                                  class func two_LEVEL_BARS() -> SDLDeviceLevelStatus!
                                  - - - -
                                  -

                                  Return Value

                                  -

                                  a SDLDeviceLevelStatus with value of TWO_LEVEL_BARS

                                  -
                                  - -

                                  - +THREE_LEVEL_BARS -

                                  - -

                                  @abstract Device battery level is three bars

                                  - - - -

                                  Objective-C

                                  -
                                  + (SDLDeviceLevelStatus *)THREE_LEVEL_BARS;
                                  - - -

                                  Swift

                                  -
                                  class func three_LEVEL_BARS() -> SDLDeviceLevelStatus!
                                  - - - -
                                  -

                                  Return Value

                                  -

                                  a SDLDeviceLevelStatus with value of THREE_LEVEL_BARS

                                  -
                                  - -

                                  - +FOUR_LEVEL_BARS -

                                  - -

                                  @abstract Device battery level is four bars

                                  - - - -

                                  Objective-C

                                  -
                                  + (SDLDeviceLevelStatus *)FOUR_LEVEL_BARS;
                                  - - -

                                  Swift

                                  -
                                  class func four_LEVEL_BARS() -> SDLDeviceLevelStatus!
                                  - - - -
                                  -

                                  Return Value

                                  -

                                  a SDLDeviceLevelStatus with value of FOUR_LEVEL_BARS

                                  -
                                  - -

                                  - +NOT_PROVIDED -

                                  - -

                                  @abstract Device battery level is unknown

                                  - - - -

                                  Objective-C

                                  -
                                  + (SDLDeviceLevelStatus *)NOT_PROVIDED;
                                  - - -

                                  Swift

                                  -
                                  class func not_PROVIDED() -> SDLDeviceLevelStatus!
                                  - - - -
                                  -

                                  Return Value

                                  -

                                  a SDLDeviceLevelStatus with value of NOT_PROVIDED

                                  -
                                  - -
                                  diff --git a/docs/Classes/SDLDeviceStatus.html b/docs/Classes/SDLDeviceStatus.html index 53c22214e..cbf569c27 100644 --- a/docs/Classes/SDLDeviceStatus.html +++ b/docs/Classes/SDLDeviceStatus.html @@ -3,8 +3,6 @@

                                  SDLDeviceStatus Class Reference

                                  Section Contents

                                    -
                                  • -init
                                  • -
                                  • -initWithDictionary:
                                  • voiceRecOn
                                  • btIconOn
                                  • callActive
                                  • @@ -112,47 +110,6 @@

                                    Overview

                                    -

                                    - -init -

                                    - -

                                    Constructs a newly allocated SDLDeviceStatus object

                                    - - - -

                                    Objective-C

                                    -
                                    - (instancetype)init;
                                    - - -

                                    Swift

                                    -
                                    init!()
                                    - - - - -

                                    - -initWithDictionary: -

                                    - -

                                    Constructs a newly allocated SDLDeviceStatus object indicated by the dictionary parameter

                                    - - - -

                                    Objective-C

                                    -
                                    - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                    - - -

                                    Swift

                                    -
                                    init!(dictionary dict: NSMutableDictionary!)
                                    - - - -

                                    Parameters

                                    -
                                    -
                                    dict
                                    -

                                    The dictionary to use to construct the object

                                    -
                                    -

                                    voiceRecOn

                                    @@ -164,11 +121,11 @@

                                    Objective-C

                                    -
                                    @property (readwrite, strong, atomic) NSNumber *voiceRecOn;
                                    +
                                    @property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull voiceRecOn;

                                    Swift

                                    -
                                    var voiceRecOn: NSNumber! { get set }
                                    +
                                    var voiceRecOn: NSNumber 
                                    @@ -184,11 +141,11 @@

                                    Objective-C

                                    -
                                    @property (readwrite, strong, atomic) NSNumber *btIconOn;
                                    +
                                    @property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull btIconOn;

                                    Swift

                                    -
                                    var btIconOn: NSNumber! { get set }
                                    +
                                    var btIconOn: NSNumber 
                                    @@ -204,11 +161,11 @@

                                    Objective-C

                                    -
                                    @property (readwrite, strong, atomic) NSNumber *callActive;
                                    +
                                    @property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull callActive;

                                    Swift

                                    -
                                    var callActive: NSNumber! { get set }
                                    +
                                    var callActive: NSNumber 
                                    @@ -224,11 +181,12 @@

                                    Objective-C

                                    -
                                    @property (readwrite, strong, atomic) NSNumber *phoneRoaming;
                                    +
                                    @property (readwrite, strong, nonatomic)
                                    +    NSNumber<SDLBool> *_Nonnull phoneRoaming;

                                    Swift

                                    -
                                    var phoneRoaming: NSNumber! { get set }
                                    +
                                    var phoneRoaming: NSNumber 
                                    @@ -244,11 +202,12 @@

                                    Objective-C

                                    -
                                    @property (readwrite, strong, atomic) NSNumber *textMsgAvailable;
                                    +
                                    @property (readwrite, strong, nonatomic)
                                    +    NSNumber<SDLBool> *_Nonnull textMsgAvailable;

                                    Swift

                                    -
                                    var textMsgAvailable: NSNumber! { get set }
                                    +
                                    var textMsgAvailable: NSNumber 
                                    @@ -269,11 +228,12 @@

                                    Objective-C

                                    -
                                    @property (readwrite, strong, atomic) SDLDeviceLevelStatus *battLevelStatus;
                                    +
                                    @property (readwrite, strong, nonatomic)
                                    +    SDLDeviceLevelStatus _Nonnull battLevelStatus;

                                    Swift

                                    -
                                    var battLevelStatus: SDLDeviceLevelStatus! { get set }
                                    +
                                    var battLevelStatus: SDLDeviceLevelStatus { get set }
                                    @@ -289,11 +249,12 @@

                                    Objective-C

                                    -
                                    @property (readwrite, strong, atomic) NSNumber *stereoAudioOutputMuted;
                                    +
                                    @property (readwrite, strong, nonatomic)
                                    +    NSNumber<SDLBool> *_Nonnull stereoAudioOutputMuted;

                                    Swift

                                    -
                                    var stereoAudioOutputMuted: NSNumber! { get set }
                                    +
                                    var stereoAudioOutputMuted: NSNumber 
                                    @@ -309,11 +270,12 @@

                                    Objective-C

                                    -
                                    @property (readwrite, strong, atomic) NSNumber *monoAudioOutputMuted;
                                    +
                                    @property (readwrite, strong, nonatomic)
                                    +    NSNumber<SDLBool> *_Nonnull monoAudioOutputMuted;

                                    Swift

                                    -
                                    var monoAudioOutputMuted: NSNumber! { get set }
                                    +
                                    var monoAudioOutputMuted: NSNumber 
                                    @@ -334,11 +296,12 @@

                                    Objective-C

                                    -
                                    @property (readwrite, strong, atomic) SDLDeviceLevelStatus *signalLevelStatus;
                                    +
                                    @property (readwrite, strong, nonatomic)
                                    +    SDLDeviceLevelStatus _Nonnull signalLevelStatus;

                                    Swift

                                    -
                                    var signalLevelStatus: SDLDeviceLevelStatus! { get set }
                                    +
                                    var signalLevelStatus: SDLDeviceLevelStatus { get set }
                                    @@ -359,11 +322,12 @@

                                    Objective-C

                                    -
                                    @property (readwrite, strong, atomic) SDLPrimaryAudioSource *primaryAudioSource;
                                    +
                                    @property (readwrite, strong, nonatomic)
                                    +    SDLPrimaryAudioSource _Nonnull primaryAudioSource;

                                    Swift

                                    -
                                    var primaryAudioSource: SDLPrimaryAudioSource! { get set }
                                    +
                                    var primaryAudioSource: SDLPrimaryAudioSource { get set }
                                    @@ -379,11 +343,12 @@

                                    Objective-C

                                    -
                                    @property (readwrite, strong, atomic) NSNumber *eCallEventActive;
                                    +
                                    @property (readwrite, strong, nonatomic)
                                    +    NSNumber<SDLBool> *_Nonnull eCallEventActive;

                                    Swift

                                    -
                                    var eCallEventActive: NSNumber! { get set }
                                    +
                                    var eCallEventActive: NSNumber 
                                    diff --git a/docs/Classes/SDLDiagnosticMessage.html b/docs/Classes/SDLDiagnosticMessage.html index 7e5d76068..3d7d40554 100644 --- a/docs/Classes/SDLDiagnosticMessage.html +++ b/docs/Classes/SDLDiagnosticMessage.html @@ -3,8 +3,6 @@

                                    SDLDiagnosticMessage Class Reference

                                    Section Contents

                                      -
                                    • -init
                                    • -
                                    • -initWithDictionary:
                                    • -initWithTargetId:length:data:
                                    • targetID
                                    • messageLength
                                    • @@ -19,36 +17,6 @@

                                      Overview

                                      -

                                      - -init -

                                      - -

                                      Undocumented

                                      - - - -

                                      Objective-C

                                      -
                                      @interface SDLDiagnosticMessage : SDLRPCRequest
                                      - - - - - -

                                      - -initWithDictionary: -

                                      - -

                                      Undocumented

                                      - - - -

                                      Objective-C

                                      -
                                      @interface SDLDiagnosticMessage : SDLRPCRequest
                                      - - - - -

                                      -initWithTargetId:length:data:

                                      @@ -75,11 +43,11 @@

                                      Objective-C

                                      -
                                      @property (readwrite, strong, atomic) NSNumber *targetID;
                                      +
                                      @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull targetID;

                                      Swift

                                      -
                                      var targetID: NSNumber! { get set }
                                      +
                                      var targetID: NSNumber 
                                      @@ -95,11 +63,12 @@

                                      Objective-C

                                      -
                                      @property (readwrite, strong, atomic) NSNumber *messageLength;
                                      +
                                      @property (readwrite, strong, nonatomic)
                                      +    NSNumber<SDLInt> *_Nonnull messageLength;

                                      Swift

                                      -
                                      var messageLength: NSNumber! { get set }
                                      +
                                      var messageLength: NSNumber 
                                      @@ -115,11 +84,12 @@

                                      Objective-C

                                      -
                                      @property (readwrite, strong, atomic) NSMutableArray *messageData;
                                      +
                                      @property (readwrite, strong, nonatomic)
                                      +    NSArray<NSNumber<SDLInt> *> *_Nonnull messageData;

                                      Swift

                                      -
                                      var messageData: NSMutableArray! { get set }
                                      +
                                      var messageData: [NSNumber 
                                      diff --git a/docs/Classes/SDLDiagnosticMessageResponse.html b/docs/Classes/SDLDiagnosticMessageResponse.html index 6edd4732e..75346efc2 100644 --- a/docs/Classes/SDLDiagnosticMessageResponse.html +++ b/docs/Classes/SDLDiagnosticMessageResponse.html @@ -3,8 +3,6 @@

                                      SDLDiagnosticMessageResponse Class Reference

                                      Section Contents

                                      @@ -18,36 +16,6 @@

                                      Overview

                                      -

                                      - -init -

                                      - -

                                      Undocumented

                                      - - - -

                                      Objective-C

                                      -
                                      @interface SDLDiagnosticMessageResponse : SDLRPCResponse
                                      - - - - - -

                                      - -initWithDictionary: -

                                      - -

                                      Undocumented

                                      - - - -

                                      Objective-C

                                      -
                                      @interface SDLDiagnosticMessageResponse : SDLRPCResponse
                                      - - - - -

                                      messageDataResult

                                      diff --git a/docs/Classes/SDLDialNumber.html b/docs/Classes/SDLDialNumber.html index c81a3b74d..2ad946847 100644 --- a/docs/Classes/SDLDialNumber.html +++ b/docs/Classes/SDLDialNumber.html @@ -3,8 +3,6 @@

                                      SDLDialNumber Class Reference

                                      Section Contents

                                      @@ -17,36 +15,6 @@

                                      Overview

                                      -

                                      - -init -

                                      - -

                                      Undocumented

                                      - - - -

                                      Objective-C

                                      -
                                      @interface SDLDialNumber : SDLRPCRequest
                                      - - - - - -

                                      - -initWithDictionary: -

                                      - -

                                      Undocumented

                                      - - - -

                                      Objective-C

                                      -
                                      @interface SDLDialNumber : SDLRPCRequest
                                      - - - - -

                                      -initWithNumber:

                                      @@ -71,11 +39,11 @@

                                      Objective-C

                                      -
                                      @property (readwrite, strong, nonatomic) NSString *number;
                                      +
                                      @property (readwrite, strong, nonatomic) NSString *_Nonnull number;

                                      Swift

                                      -
                                      var number: String! { get set }
                                      +
                                      var number: String { get set }
                                      diff --git a/docs/Classes/SDLDialNumberResponse.html b/docs/Classes/SDLDialNumberResponse.html deleted file mode 100644 index 478c3e37d..000000000 --- a/docs/Classes/SDLDialNumberResponse.html +++ /dev/null @@ -1,48 +0,0 @@ -

                                      SDLDialNumberResponse Class Reference

                                      - -

                                      Section Contents

                                      - - - -

                                      Overview

                                      - -

                                      Indicates the result, success, or failure of the SDLDialNumber request.

                                      - -

                                      @since SDL 4.0

                                      - - -
                                      -

                                      - -init -

                                      - -

                                      Undocumented

                                      - - - -

                                      Objective-C

                                      -
                                      @interface SDLDialNumberResponse : SDLRPCResponse
                                      - - - - - -

                                      - -initWithDictionary: -

                                      - -

                                      Undocumented

                                      - - - -

                                      Objective-C

                                      -
                                      @interface SDLDialNumberResponse : SDLRPCResponse
                                      - - - - - -
                                      diff --git a/docs/Classes/SDLDimension.html b/docs/Classes/SDLDimension.html deleted file mode 100644 index 395317141..000000000 --- a/docs/Classes/SDLDimension.html +++ /dev/null @@ -1,136 +0,0 @@ -

                                      SDLDimension Class Reference

                                      - -

                                      Section Contents

                                      - - - -

                                      Overview

                                      - -

                                      The supported dimensions of the GPS.

                                      - -

                                      @since SDL 2.0

                                      - - -
                                      -

                                      - +valueOf: -

                                      - -

                                      Convert String to SDLDimension

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLDimension *)valueOf:(NSString *)value;
                                      - - -

                                      Swift

                                      -
                                      class func value(of value: String!) -> SDLDimension!
                                      - - - -

                                      Parameters

                                      -
                                      -
                                      value
                                      -

                                      The value of the string to get an object for

                                      -
                                      -
                                      -

                                      Return Value

                                      -

                                      SDLDimension

                                      -
                                      - -

                                      - +values -

                                      - -

                                      @abstract Store the enumeration of all possible SDLDimension

                                      - - - -

                                      Objective-C

                                      -
                                      + (NSArray *)values;
                                      - - -

                                      Swift

                                      -
                                      class func values() -> [Any]!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      An array that store all possible SDLDimension

                                      -
                                      - -

                                      - +NO_FIX -

                                      - -

                                      @abstract No GPS at all

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLDimension *)NO_FIX;
                                      - - -

                                      Swift

                                      -
                                      class func no_FIX() -> SDLDimension!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      the dimension with value of NO_FIX

                                      -
                                      - -

                                      - +_2D -

                                      - -

                                      @abstract Longitude and latitude of the GPS

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLDimension *)_2D;
                                      - - -

                                      Swift

                                      -
                                      class func _2D() -> SDLDimension!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      the dimension with value of 2D

                                      -
                                      - -

                                      - +_3D -

                                      - -

                                      @abstract Longitude and latitude and altitude of the GPS

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLDimension *)_3D;
                                      - - -

                                      Swift

                                      -
                                      class func _3D() -> SDLDimension!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      the dimension with value of 3D

                                      -
                                      - -
                                      diff --git a/docs/Classes/SDLDisplayCapabilities.html b/docs/Classes/SDLDisplayCapabilities.html index 631611e82..a79a83fb2 100644 --- a/docs/Classes/SDLDisplayCapabilities.html +++ b/docs/Classes/SDLDisplayCapabilities.html @@ -3,8 +3,6 @@

                                      SDLDisplayCapabilities Class Reference

                                      Section Contents

                                        -
                                      • -init
                                      • -
                                      • -initWithDictionary:
                                      • displayType
                                      • textFields
                                      • imageFields
                                      • @@ -23,47 +21,6 @@

                                        Overview

                                        -

                                        - -init -

                                        - -

                                        Constructs a newly allocated SDLDisplayCapabilities object

                                        - - - -

                                        Objective-C

                                        -
                                        - (instancetype)init;
                                        - - -

                                        Swift

                                        -
                                        init!()
                                        - - - - -

                                        - -initWithDictionary: -

                                        - -

                                        Constructs a newly allocated SDLDisplayCapabilities object indicated by the dictionary parameter

                                        - - - -

                                        Objective-C

                                        -
                                        - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                        - - -

                                        Swift

                                        -
                                        init!(dictionary dict: NSMutableDictionary!)
                                        - - - -

                                        Parameters

                                        -
                                        -
                                        dict
                                        -

                                        The dictionary to use

                                        -
                                        -

                                        displayType

                                        @@ -75,11 +32,11 @@

                                        Objective-C

                                        -
                                        @property (readwrite, strong, atomic) SDLDisplayType *displayType;
                                        +
                                        @property (readwrite, strong, nonatomic) SDLDisplayType _Nonnull displayType;

                                        Swift

                                        -
                                        var displayType: SDLDisplayType! { get set }
                                        +
                                        var displayType: SDLDisplayType { get set }
                                        @@ -102,11 +59,12 @@

                                        Objective-C

                                        -
                                        @property (readwrite, strong, atomic) NSMutableArray *textFields;
                                        +
                                        @property (readwrite, strong, nonatomic)
                                        +    NSArray<SDLTextField *> *_Nonnull textFields;

                                        Swift

                                        -
                                        var textFields: NSMutableArray! { get set }
                                        +
                                        var textFields: [SDLTextField] { get set }
                                        @@ -129,11 +87,12 @@

                                        Objective-C

                                        -
                                        @property (readwrite, strong, atomic) NSMutableArray *imageFields;
                                        +
                                        @property (readwrite, strong, nonatomic, nullable)
                                        +    NSArray<SDLImageField *> *imageFields;

                                        Swift

                                        -
                                        var imageFields: NSMutableArray! { get set }
                                        +
                                        var imageFields: [SDLImageField]? { get set }
                                        @@ -154,11 +113,12 @@

                                        Objective-C

                                        -
                                        @property (readwrite, strong, atomic) NSMutableArray *mediaClockFormats;
                                        +
                                        @property (readwrite, strong, nonatomic)
                                        +    NSArray<SDLMediaClockFormat> *_Nonnull mediaClockFormats;

                                        Swift

                                        -
                                        var mediaClockFormats: NSMutableArray! { get set }
                                        +
                                        var mediaClockFormats: [SDLMediaClockFormat] { get set }
                                        @@ -176,11 +136,12 @@

                                        Objective-C

                                        -
                                        @property (readwrite, strong, atomic) NSNumber *graphicSupported;
                                        +
                                        @property (readwrite, strong, nonatomic)
                                        +    NSNumber<SDLBool> *_Nonnull graphicSupported;

                                        Swift

                                        -
                                        var graphicSupported: NSNumber! { get set }
                                        +
                                        var graphicSupported: NSNumber 
                                        @@ -198,11 +159,12 @@

                                        Objective-C

                                        -
                                        @property (readwrite, strong, atomic) NSMutableArray *templatesAvailable;
                                        +
                                        @property (readwrite, strong, nonatomic, nullable)
                                        +    NSArray<NSString *> *templatesAvailable;

                                        Swift

                                        -
                                        var templatesAvailable: NSMutableArray! { get set }
                                        +
                                        var templatesAvailable: [String]? { get set }
                                        @@ -218,11 +180,11 @@

                                        Objective-C

                                        -
                                        @property (readwrite, strong, atomic) SDLScreenParams *screenParams;
                                        +
                                        @property (readwrite, strong, nonatomic, nullable) SDLScreenParams *screenParams;

                                        Swift

                                        -
                                        var screenParams: SDLScreenParams! { get set }
                                        +
                                        var screenParams: SDLScreenParams? { get set }
                                        @@ -238,11 +200,12 @@

                                        Objective-C

                                        -
                                        @property (readwrite, strong, atomic) NSNumber *numCustomPresetsAvailable;
                                        +
                                        @property (readwrite, strong, nonatomic, nullable)
                                        +    NSNumber<SDLInt> *numCustomPresetsAvailable;

                                        Swift

                                        -
                                        var numCustomPresetsAvailable: NSNumber! { get set }
                                        +
                                        var numCustomPresetsAvailable: (NSNumber 
                                        diff --git a/docs/Classes/SDLDisplayType.html b/docs/Classes/SDLDisplayType.html deleted file mode 100644 index 5e9d30202..000000000 --- a/docs/Classes/SDLDisplayType.html +++ /dev/null @@ -1,257 +0,0 @@ -

                                        SDLDisplayType Class Reference

                                        - -

                                        Section Contents

                                        - - - -

                                        Overview

                                        - -

                                        Identifies the various display types used by SDL.

                                        - -

                                        @since SDL 1.0

                                        - - -
                                        -

                                        - +valueOf: -

                                        - -

                                        Convert String to SDLDisplayType

                                        - - - -

                                        Objective-C

                                        -
                                        + (SDLDisplayType *)valueOf:(NSString *)value;
                                        - - -

                                        Swift

                                        -
                                        class func value(of value: String!) -> SDLDisplayType!
                                        - - - -

                                        Parameters

                                        -
                                        -
                                        value
                                        -

                                        The value of the string to get an object for

                                        -
                                        -
                                        -

                                        Return Value

                                        -

                                        SDLDisplayType

                                        -
                                        - -

                                        - +values -

                                        - -

                                        @abstract Store the enumeration of all possible SDLDisplayType

                                        - - - -

                                        Objective-C

                                        -
                                        + (NSArray *)values;
                                        - - -

                                        Swift

                                        -
                                        class func values() -> [Any]!
                                        - - - -
                                        -

                                        Return Value

                                        -

                                        an array that store all possible SDLDisplayType

                                        -
                                        - -

                                        - +CID -

                                        - -

                                        @abstract This display type provides a 2-line x 20 character dot matrix display.

                                        - - - -

                                        Objective-C

                                        -
                                        + (SDLDisplayType *)CID;
                                        - - -

                                        Swift

                                        -
                                        class func cid() -> SDLDisplayType!
                                        - - - -
                                        -

                                        Return Value

                                        -

                                        SDLDisplayType with value of CID

                                        -
                                        - -

                                        - +TYPE2 -

                                        - -

                                        Undocumented

                                        - - - -

                                        Objective-C

                                        -
                                        @interface SDLDisplayType : SDLEnum
                                        - - - - - -

                                        - +TYPE5 -

                                        - -

                                        Undocumented

                                        - - - -

                                        Objective-C

                                        -
                                        @interface SDLDisplayType : SDLEnum
                                        - - - - - -

                                        - +NGN -

                                        - -

                                        @abstract This display type provides an 8 inch touchscreen display.

                                        - - - -

                                        Objective-C

                                        -
                                        + (SDLDisplayType *)NGN;
                                        - - -

                                        Swift

                                        -
                                        class func ngn() -> SDLDisplayType!
                                        - - - -
                                        -

                                        Return Value

                                        -

                                        SDLDisplayType with value of NGN

                                        -
                                        - -

                                        - +GEN2_8_DMA -

                                        - -

                                        Undocumented

                                        - - - -

                                        Objective-C

                                        -
                                        @interface SDLDisplayType : SDLEnum
                                        - - - - - -

                                        - +GEN2_6_DMA -

                                        - -

                                        Undocumented

                                        - - - -

                                        Objective-C

                                        -
                                        @interface SDLDisplayType : SDLEnum
                                        - - - - - -

                                        - +MFD3 -

                                        - -

                                        Undocumented

                                        - - - -

                                        Objective-C

                                        -
                                        @interface SDLDisplayType : SDLEnum
                                        - - - - - -

                                        - +MFD4 -

                                        - -

                                        Undocumented

                                        - - - -

                                        Objective-C

                                        -
                                        @interface SDLDisplayType : SDLEnum
                                        - - - - - -

                                        - +MFD5 -

                                        - -

                                        Undocumented

                                        - - - -

                                        Objective-C

                                        -
                                        @interface SDLDisplayType : SDLEnum
                                        - - - - - -

                                        - +GEN3_8_INCH -

                                        - -

                                        Undocumented

                                        - - - -

                                        Objective-C

                                        -
                                        @interface SDLDisplayType : SDLEnum
                                        - - - - - -

                                        - +GENERIC -

                                        - -

                                        Undocumented

                                        - - - -

                                        Objective-C

                                        -
                                        @interface SDLDisplayType : SDLEnum
                                        - - - - - -
                                        diff --git a/docs/Classes/SDLDriverDistractionState.html b/docs/Classes/SDLDriverDistractionState.html deleted file mode 100644 index e67231f8a..000000000 --- a/docs/Classes/SDLDriverDistractionState.html +++ /dev/null @@ -1,113 +0,0 @@ -

                                        SDLDriverDistractionState Class Reference

                                        - -

                                        Section Contents

                                        - - - -

                                        Overview

                                        - -

                                        Enumeration that describes possible states of driver distraction.

                                        - -

                                        @since SDL 1.0

                                        - - -
                                        -

                                        - +valueOf: -

                                        - -

                                        Convert String to SDLDisplayType

                                        - - - -

                                        Objective-C

                                        -
                                        + (SDLDriverDistractionState *)valueOf:(NSString *)value;
                                        - - -

                                        Swift

                                        -
                                        class func value(of value: String!) -> SDLDriverDistractionState!
                                        - - - -

                                        Parameters

                                        -
                                        -
                                        value
                                        -

                                        The value of the string to get an object for

                                        -
                                        -
                                        -

                                        Return Value

                                        -

                                        SDLDisplayType

                                        -
                                        - -

                                        - +values -

                                        - -

                                        @abstract Store the enumeration of all possible SDLDriverDistractionState

                                        - - - -

                                        Objective-C

                                        -
                                        + (NSArray *)values;
                                        - - -

                                        Swift

                                        -
                                        class func values() -> [Any]!
                                        - - - -
                                        -

                                        Return Value

                                        -

                                        an array that store all possible SDLDriverDistractionState

                                        -
                                        - -

                                        - +DD_ON -

                                        - -

                                        @abstract Driver distraction rules are in effect.

                                        - - - -

                                        Objective-C

                                        -
                                        + (SDLDriverDistractionState *)DD_ON;
                                        - - -

                                        Swift

                                        -
                                        class func dd_ON() -> SDLDriverDistractionState!
                                        - - - -
                                        -

                                        Return Value

                                        -

                                        a SDLDriverDistractionState with value of DD_ON

                                        -
                                        - -

                                        - +DD_OFF -

                                        - -

                                        @abstract Driver distraction rules are NOT in effect.

                                        - - - -

                                        Objective-C

                                        -
                                        + (SDLDriverDistractionState *)DD_OFF;
                                        - - -

                                        Swift

                                        -
                                        class func dd_OFF() -> SDLDriverDistractionState!
                                        - - - -
                                        -

                                        Return Value

                                        -

                                        a SDLDriverDistractionState with value of DD_OFF

                                        -
                                        - -
                                        diff --git a/docs/Classes/SDLECallConfirmationStatus.html b/docs/Classes/SDLECallConfirmationStatus.html deleted file mode 100644 index 12fe68ec4..000000000 --- a/docs/Classes/SDLECallConfirmationStatus.html +++ /dev/null @@ -1,181 +0,0 @@ -

                                        SDLECallConfirmationStatus Class Reference

                                        - -

                                        Section Contents

                                        - - - -

                                        Overview

                                        - -

                                        Reflects the status of the eCall Notification. - *Since SmartDeviceLink 2.0 -

                                        - - -
                                        -

                                        - +valueOf: -

                                        - -

                                        Undocumented

                                        - - - -

                                        Objective-C

                                        -
                                        @interface SDLECallConfirmationStatus : SDLEnum
                                        - - - - - -

                                        - +values -

                                        - -

                                        Undocumented

                                        - - - -

                                        Objective-C

                                        -
                                        @interface SDLECallConfirmationStatus : SDLEnum
                                        - - - - - -

                                        - +NORMAL -

                                        - -

                                        No E-Call signal triggered.

                                        - - - -

                                        Objective-C

                                        -
                                        + (SDLECallConfirmationStatus *)NORMAL;
                                        - - -

                                        Swift

                                        -
                                        class func normal() -> SDLECallConfirmationStatus!
                                        - - - - -

                                        - +CALL_IN_PROGRESS -

                                        - -

                                        An E-Call is being in progress.

                                        - - - -

                                        Objective-C

                                        -
                                        + (SDLECallConfirmationStatus *)CALL_IN_PROGRESS;
                                        - - -

                                        Swift

                                        -
                                        class func call_IN_PROGRESS() -> SDLECallConfirmationStatus!
                                        - - - - -

                                        - +CALL_CANCELLED -

                                        - -

                                        CALL_CANCELLED An E-Call was cancelled by the user.

                                        - - - -

                                        Objective-C

                                        -
                                        + (SDLECallConfirmationStatus *)CALL_CANCELLED;
                                        - - -

                                        Swift

                                        -
                                        class func call_CANCELLED() -> SDLECallConfirmationStatus!
                                        - - - - -

                                        - +CALL_COMPLETED -

                                        - -

                                        The E-Call sequence is completed.

                                        - - - -

                                        Objective-C

                                        -
                                        + (SDLECallConfirmationStatus *)CALL_COMPLETED;
                                        - - -

                                        Swift

                                        -
                                        class func call_COMPLETED() -> SDLECallConfirmationStatus!
                                        - - - - -

                                        - +CALL_UNSUCCESSFUL -

                                        - -

                                        An E-Call could not be connected.

                                        - - - -

                                        Objective-C

                                        -
                                        + (SDLECallConfirmationStatus *)CALL_UNSUCCESSFUL;
                                        - - -

                                        Swift

                                        -
                                        class func call_UNSUCCESSFUL() -> SDLECallConfirmationStatus!
                                        - - - - -

                                        - +ECALL_CONFIGURED_OFF -

                                        - -

                                        E-Call is not configured on this vehicle.

                                        - - - -

                                        Objective-C

                                        -
                                        + (SDLECallConfirmationStatus *)ECALL_CONFIGURED_OFF;
                                        - - -

                                        Swift

                                        -
                                        class func ecall_CONFIGURED_OFF() -> SDLECallConfirmationStatus!
                                        - - - - -

                                        - +CALL_COMPLETE_DTMF_TIMEOUT -

                                        - -

                                        E-Call is considered to be complete without Emergency Operator contact.

                                        - - - -

                                        Objective-C

                                        -
                                        + (SDLECallConfirmationStatus *)CALL_COMPLETE_DTMF_TIMEOUT;
                                        - - -

                                        Swift

                                        -
                                        class func call_COMPLETE_DTMF_TIMEOUT() -> SDLECallConfirmationStatus!
                                        - - - - -
                                        diff --git a/docs/Classes/SDLECallInfo.html b/docs/Classes/SDLECallInfo.html index 874107e04..f2a1b2405 100644 --- a/docs/Classes/SDLECallInfo.html +++ b/docs/Classes/SDLECallInfo.html @@ -3,8 +3,6 @@

                                        SDLECallInfo Class Reference

                                        Section Contents

                                          -
                                        • -init
                                        • -
                                        • -initWithDictionary:
                                        • eCallNotificationStatus
                                        • auxECallNotificationStatus
                                        • eCallConfirmationStatus
                                        • @@ -16,28 +14,6 @@

                                          Overview

                                          -

                                          - -init -

                                          - -

                                          Undocumented

                                          - - - - - - -

                                          - -initWithDictionary: -

                                          - -

                                          Undocumented

                                          - - - - - -

                                          eCallNotificationStatus

                                          diff --git a/docs/Classes/SDLEmergencyEvent.html b/docs/Classes/SDLEmergencyEvent.html index 685f373a3..4218e7b23 100644 --- a/docs/Classes/SDLEmergencyEvent.html +++ b/docs/Classes/SDLEmergencyEvent.html @@ -3,8 +3,6 @@

                                          SDLEmergencyEvent Class Reference

                                          Section Contents

                                            -
                                          • -init
                                          • -
                                          • -initWithDictionary:
                                          • emergencyEventType
                                          • fuelCutoffStatus
                                          • rolloverEvent
                                          • @@ -18,28 +16,6 @@

                                            Overview

                                            -

                                            - -init -

                                            - -

                                            Undocumented

                                            - - - - - - -

                                            - -initWithDictionary: -

                                            - -

                                            Undocumented

                                            - - - - - -

                                            emergencyEventType

                                            diff --git a/docs/Classes/SDLEmergencyEventType.html b/docs/Classes/SDLEmergencyEventType.html deleted file mode 100644 index cd5805cd8..000000000 --- a/docs/Classes/SDLEmergencyEventType.html +++ /dev/null @@ -1,181 +0,0 @@ -

                                            SDLEmergencyEventType Class Reference

                                            - -

                                            Section Contents

                                            - - - -

                                            Overview

                                            - -

                                            Reflects the emergency event status of the vehicle. - * Since: SmartDeviceLink 2.0 - *

                                            - - -
                                            -

                                            - +valueOf: -

                                            - -

                                            Undocumented

                                            - - - -

                                            Objective-C

                                            -
                                            @interface SDLEmergencyEventType : SDLEnum
                                            - - - - - -

                                            - +values -

                                            - -

                                            Undocumented

                                            - - - -

                                            Objective-C

                                            -
                                            @interface SDLEmergencyEventType : SDLEnum
                                            - - - - - -

                                            - +NO_EVENT -

                                            - -

                                            No emergency event has happened.

                                            - - - -

                                            Objective-C

                                            -
                                            + (SDLEmergencyEventType *)NO_EVENT;
                                            - - -

                                            Swift

                                            -
                                            class func no_() -> SDLEmergencyEventType!
                                            - - - - -

                                            - +FRONTAL -

                                            - -

                                            Frontal collision has happened.

                                            - - - -

                                            Objective-C

                                            -
                                            + (SDLEmergencyEventType *)FRONTAL;
                                            - - -

                                            Swift

                                            -
                                            class func frontal() -> SDLEmergencyEventType!
                                            - - - - -

                                            - +SIDE -

                                            - -

                                            Side collision has happened.

                                            - - - -

                                            Objective-C

                                            -
                                            + (SDLEmergencyEventType *)SIDE;
                                            - - -

                                            Swift

                                            -
                                            class func side() -> SDLEmergencyEventType!
                                            - - - - -

                                            - +REAR -

                                            - -

                                            Rear collision has happened.

                                            - - - -

                                            Objective-C

                                            -
                                            + (SDLEmergencyEventType *)REAR;
                                            - - -

                                            Swift

                                            -
                                            class func rear() -> SDLEmergencyEventType!
                                            - - - - -

                                            - +ROLLOVER -

                                            - -

                                            A rollover event has happened.

                                            - - - -

                                            Objective-C

                                            -
                                            + (SDLEmergencyEventType *)ROLLOVER;
                                            - - -

                                            Swift

                                            -
                                            class func rollover() -> SDLEmergencyEventType!
                                            - - - - -

                                            - +NOT_SUPPORTED -

                                            - -

                                            The signal is not supported

                                            - - - -

                                            Objective-C

                                            -
                                            + (SDLEmergencyEventType *)NOT_SUPPORTED;
                                            - - -

                                            Swift

                                            -
                                            class func not_SUPPORTED() -> SDLEmergencyEventType!
                                            - - - - -

                                            - +FAULT -

                                            - -

                                            Emergency status cannot be determined

                                            - - - -

                                            Objective-C

                                            -
                                            + (SDLEmergencyEventType *)FAULT;
                                            - - -

                                            Swift

                                            -
                                            class func fault() -> SDLEmergencyEventType!
                                            - - - - -
                                            diff --git a/docs/Classes/SDLEncodedSyncPData.html b/docs/Classes/SDLEncodedSyncPData.html index e5162cd3f..d14e99000 100644 --- a/docs/Classes/SDLEncodedSyncPData.html +++ b/docs/Classes/SDLEncodedSyncPData.html @@ -3,8 +3,6 @@

                                            SDLEncodedSyncPData Class Reference

                                            Section Contents

                                            @@ -14,28 +12,6 @@

                                            Overview

                                            -

                                            - -init -

                                            - -

                                            Undocumented

                                            - - - - - - -

                                            - -initWithDictionary: -

                                            - -

                                            Undocumented

                                            - - - - - -

                                            data

                                            diff --git a/docs/Classes/SDLEncodedSyncPDataResponse.html b/docs/Classes/SDLEncodedSyncPDataResponse.html deleted file mode 100644 index 04a19ecb7..000000000 --- a/docs/Classes/SDLEncodedSyncPDataResponse.html +++ /dev/null @@ -1,38 +0,0 @@ -

                                            SDLEncodedSyncPDataResponse Class Reference

                                            - -

                                            Section Contents

                                            - - - -

                                            Overview

                                            - -

                                            Undocumented

                                            - - -
                                            -

                                            - -init -

                                            - -

                                            Undocumented

                                            - - - - - - -

                                            - -initWithDictionary: -

                                            - -

                                            Undocumented

                                            - - - - - - -
                                            diff --git a/docs/Classes/SDLEndAudioPassThru.html b/docs/Classes/SDLEndAudioPassThru.html deleted file mode 100644 index f56ce3736..000000000 --- a/docs/Classes/SDLEndAudioPassThru.html +++ /dev/null @@ -1,68 +0,0 @@ -

                                            SDLEndAudioPassThru Class Reference

                                            - -

                                            Section Contents

                                            - - - -

                                            Overview

                                            - -

                                            When this request is invoked, the audio capture stops

                                            - -

                                            -Function Group: AudioPassThru -

                                            -HMILevel needs to be FULL, LIMITED or BACKGROUND -

                                            - -

                                            Since SmartDeviceLink 2.0
                                            -see SDLPerformAudioPassThru

                                            - - -
                                            -

                                            - -init -

                                            - -

                                            Constructs a new SDLEndAudioPassThru object

                                            - - - -

                                            Objective-C

                                            -
                                            - (instancetype)init;
                                            - - -

                                            Swift

                                            -
                                            init!()
                                            - - - - -

                                            - -initWithDictionary: -

                                            - -

                                            Constructs a new SDLEndAudioPassThru object indicated by the NSMutableDictionary - parameter -

                                            - - - -

                                            Objective-C

                                            -
                                            - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                            - - -

                                            Swift

                                            -
                                            init!(dictionary dict: NSMutableDictionary!)
                                            - - - -

                                            Parameters

                                            -
                                            -
                                            dict
                                            -

                                            The dictionary to use

                                            -
                                            - -
                                            diff --git a/docs/Classes/SDLEndAudioPassThruResponse.html b/docs/Classes/SDLEndAudioPassThruResponse.html deleted file mode 100644 index 687c94bae..000000000 --- a/docs/Classes/SDLEndAudioPassThruResponse.html +++ /dev/null @@ -1,48 +0,0 @@ -

                                            SDLEndAudioPassThruResponse Class Reference

                                            - -

                                            Section Contents

                                            - - - -

                                            Overview

                                            - -

                                            SDLEndAudioPassThruResponse is sent, when SDLEndAudioPassThru has been called

                                            - -

                                            Since SmartDeviceLink 2.0

                                            - - -
                                            -

                                            - -init -

                                            - -

                                            Undocumented

                                            - - - -

                                            Objective-C

                                            -
                                            @interface SDLEndAudioPassThruResponse : SDLRPCResponse
                                            - - - - - -

                                            - -initWithDictionary: -

                                            - -

                                            Undocumented

                                            - - - -

                                            Objective-C

                                            -
                                            @interface SDLEndAudioPassThruResponse : SDLRPCResponse
                                            - - - - - -
                                            diff --git a/docs/Classes/SDLEnum.html b/docs/Classes/SDLEnum.html deleted file mode 100644 index e85501003..000000000 --- a/docs/Classes/SDLEnum.html +++ /dev/null @@ -1,62 +0,0 @@ -

                                            SDLEnum Class Reference

                                            - -

                                            Section Contents

                                            - - - -

                                            Overview

                                            - -

                                            Undocumented

                                            - - -
                                            -

                                            - value -

                                            - -

                                            Undocumented

                                            - - - - - - -

                                            - -initWithValue: -

                                            - -

                                            Undocumented

                                            - - - - - - -

                                            - -isEqualToEnum: -

                                            - -

                                            Undocumented

                                            - - - - - - -

                                            - value -

                                            - -

                                            Undocumented

                                            - - - - - - -
                                            diff --git a/docs/Classes/SDLFile.html b/docs/Classes/SDLFile.html index 3b5f63606..c77a5bd74 100644 --- a/docs/Classes/SDLFile.html +++ b/docs/Classes/SDLFile.html @@ -8,7 +8,9 @@

                                            Section Contents

                                          • name
                                          • fileURL
                                          • data
                                          • +
                                          • fileSize
                                          • fileType
                                          • +
                                          • inputStream
                                          • -init
                                          • -initWithFileURL:name:persistent:
                                          • +persistentFileAtFileURL:name:
                                          • @@ -114,6 +116,24 @@

                                            Swift

                                            +

                                            + fileSize +

                                            + +

                                            The size of the binary data of the SDLFile.

                                            + + + +

                                            Objective-C

                                            +
                                            @property (readonly, nonatomic) unsigned long long fileSize;
                                            + + +

                                            Swift

                                            +
                                            var fileSize: UInt64 { get }
                                            + + + +

                                            fileType

                                            @@ -123,11 +143,29 @@

                                            Objective-C

                                            -
                                            @property (readonly, strong, nonatomic) SDLFileType *_Nonnull fileType;
                                            +
                                            @property (readonly, strong, nonatomic) SDLFileType _Nonnull fileType;
                                            + + +

                                            Swift

                                            +
                                            var fileType: SDLFileType { get }
                                            + + + + +

                                            + inputStream +

                                            + +

                                            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.

                                            + + + +

                                            Objective-C

                                            +
                                            @property (readonly, nonatomic) NSInputStream *_Nonnull inputStream;

                                            Swift

                                            -
                                            var fileType: SDLFileType { get }
                                            +
                                            var inputStream: InputStream { get }
                                            @@ -198,9 +236,6 @@

                                            Objective-C

                                            name:(nonnull NSString *)name; -

                                            Swift

                                            -
                                            class func persistentFile(atFileURL url: URL, name: String) -> Self
                                            -

                                            Parameters

                                            @@ -306,9 +341,6 @@

                                            Objective-C

                                            fileExtension:(nonnull NSString *)extension; -

                                            Swift

                                            -
                                            class func persistentFile(with data: Data, name: String, fileExtension extension: String) -> Self
                                            -

                                            Parameters

                                            diff --git a/docs/Classes/SDLFileManager.html b/docs/Classes/SDLFileManager.html index c32f1ce0d..ef936c5e9 100644 --- a/docs/Classes/SDLFileManager.html +++ b/docs/Classes/SDLFileManager.html @@ -13,7 +13,10 @@

                                            Section Contents

                                          • -startWithCompletionHandler:
                                          • -stop
                                          • -deleteRemoteFileWithName:completionHandler:
                                          • +
                                          • -deleteRemoteFilesWithNames:completionHandler:
                                          • -uploadFile:completionHandler:
                                          • +
                                          • -uploadFiles:progressHandler:completionHandler:
                                          • +
                                          • -uploadFiles:completionHandler:
                                          • +temporaryFileDirectory
                                          @@ -33,7 +36,7 @@

                                          Objective-C

                                          @property (readonly, copy, nonatomic)
                                          -    NSSet<SDLFileName *> *_Nonnull remoteFileNames;
                                          + NSSet<SDLFileName *> *_Nonnull remoteFileNames;

                                          Swift

                                          @@ -210,13 +213,13 @@

                                          Objective-C

                                          -
                                          - (void)deleteRemoteFileWithName:(nonnull SDLFileName *)name
                                          +  
                                          - (void)deleteRemoteFileWithName:(nonnull SDLFileName *)name
                                                          completionHandler:
                                                              (nullable SDLFileManagerDeleteCompletionHandler)completion;

                                          Swift

                                          -
                                          func deleteRemoteFile(withName name: String, completionHandler completion: SDLFileManagerDeleteCompletionHandler? = nil)
                                          +
                                          func delete(fileName name: String, completionHandler completion: SDLFileManagerDeleteCompletionHandler? = nil)
                                          @@ -228,6 +231,34 @@

                                          Parameters

                                          An optional completion handler that sends an error should one occur.

                                          +

                                          + -deleteRemoteFilesWithNames:completionHandler: +

                                          + +

                                          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.

                                          + + + +

                                          Objective-C

                                          +
                                          - (void)deleteRemoteFilesWithNames:(nonnull NSArray<SDLFileName *> *)names
                                          +                 completionHandler:
                                          +                     (nullable SDLFileManagerMultiDeleteCompletionHandler)
                                          +                         completionHandler;
                                          + + +

                                          Swift

                                          +
                                          func delete(fileNames names: [String], completionHandler: SDLFileManagerMultiDeleteCompletionHandler? = nil)
                                          + + + +

                                          Parameters

                                          +
                                          +
                                          names
                                          +

                                          The names of the files to be deleted

                                          +
                                          completionHandler
                                          +

                                          an optional SDLFileManagerMultiDeleteCompletionHandler

                                          +
                                          +

                                          -uploadFile:completionHandler:

                                          @@ -243,7 +274,7 @@

                                          Objective-C

                                          Swift

                                          -
                                          func uploadFile(_ file: SDLFile, completionHandler completion: SDLFileManagerUploadCompletionHandler? = nil)
                                          +
                                          func upload(file: SDLFile, completionHandler completion: SDLFileManagerUploadCompletionHandler? = nil)
                                          @@ -255,6 +286,66 @@

                                          Parameters

                                          An optional completion handler that sends an error should one occur.

                                          +

                                          + -uploadFiles:progressHandler:completionHandler: +

                                          + +

                                          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.

                                          + +

                                          The optional progress handler can be used to keep track of the upload progress. After each file upload, the progress handler returns the upload percentage and an error, if one occured during the upload process. The progress handler also includes an option to cancel the upload of all remaining files in queue.

                                          + + + +

                                          Objective-C

                                          +
                                          - (void)uploadFiles:(nonnull NSArray<SDLFile *> *)files
                                          +      progressHandler:
                                          +          (nullable SDLFileManagerMultiUploadProgressHandler)progressHandler
                                          +    completionHandler:
                                          +        (nullable SDLFileManagerMultiUploadCompletionHandler)completionHandler;
                                          + + +

                                          Swift

                                          +
                                          func upload(files: [SDLFile], progressHandler: SDLFileManagerMultiUploadProgressHandler?, completionHandler: SDLFileManagerMultiUploadCompletionHandler? = nil)
                                          + + + +

                                          Parameters

                                          +
                                          +
                                          files
                                          +

                                          An array of SDLFiles to be sent

                                          +
                                          progressHandler
                                          +

                                          an optional SDLFileManagerMultiUploadProgressHandler

                                          +
                                          completionHandler
                                          +

                                          an optional SDLFileManagerMultiUploadCompletionHandler

                                          +
                                          + +

                                          + -uploadFiles:completionHandler: +

                                          + +

                                          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.

                                          + + + +

                                          Objective-C

                                          +
                                          - (void)uploadFiles:(nonnull NSArray<SDLFile *> *)files
                                          +    completionHandler:
                                          +        (nullable SDLFileManagerMultiUploadCompletionHandler)completionHandler;
                                          + + +

                                          Swift

                                          +
                                          func upload(files: [SDLFile], completionHandler: SDLFileManagerMultiUploadCompletionHandler? = nil)
                                          + + + +

                                          Parameters

                                          +
                                          +
                                          files
                                          +

                                          An array of SDLFiles to be sent

                                          +
                                          completionHandler
                                          +

                                          an optional SDLFileManagerMultiUploadCompletionHandler

                                          +
                                          +

                                          +temporaryFileDirectory

                                          diff --git a/docs/Classes/SDLFileType.html b/docs/Classes/SDLFileType.html deleted file mode 100644 index 3a05ad87d..000000000 --- a/docs/Classes/SDLFileType.html +++ /dev/null @@ -1,251 +0,0 @@ -

                                          SDLFileType Class Reference

                                          - -

                                          Section Contents

                                          - - - -

                                          Overview

                                          - -

                                          Enumeration listing possible file types.

                                          - -

                                          @since SDL 2.0

                                          - - -
                                          -

                                          - +valueOf: -

                                          - -

                                          @abstract Convert String to SDLFileType

                                          - - - -

                                          Objective-C

                                          -
                                          + (SDLFileType *)valueOf:(NSString *)value;
                                          - - -

                                          Swift

                                          -
                                          class func value(of value: String!) -> SDLFileType!
                                          - - - -

                                          Parameters

                                          -
                                          -
                                          value
                                          -

                                          String value to retrieve the object for

                                          -
                                          -
                                          -

                                          Return Value

                                          -

                                          SDLFileType

                                          -
                                          - -

                                          - +values -

                                          - -

                                          @abstract Store the enumeration of all possible SDLFileType

                                          - - - -

                                          Objective-C

                                          -
                                          + (NSArray *)values;
                                          - - -

                                          Swift

                                          -
                                          class func values() -> [Any]!
                                          - - - -
                                          -

                                          Return Value

                                          -

                                          an array that store all possible SDLFileType

                                          -
                                          - -

                                          - +GRAPHIC_BMP -

                                          - -

                                          @abstract file type: Bitmap (BMP)

                                          - - - -

                                          Objective-C

                                          -
                                          + (SDLFileType *)GRAPHIC_BMP;
                                          - - -

                                          Swift

                                          -
                                          class func graphic_BMP() -> SDLFileType!
                                          - - - -
                                          -

                                          Return Value

                                          -

                                          SDLFileType with value of GRAPHIC_BMP

                                          -
                                          - -

                                          - +GRAPHIC_JPEG -

                                          - -

                                          @abstract file type: JPEG

                                          - - - -

                                          Objective-C

                                          -
                                          + (SDLFileType *)GRAPHIC_JPEG;
                                          - - -

                                          Swift

                                          -
                                          class func graphic_JPEG() -> SDLFileType!
                                          - - - -
                                          -

                                          Return Value

                                          -

                                          SDLFileType with value of GRAPHIC_JPEG

                                          -
                                          - -

                                          - +GRAPHIC_PNG -

                                          - -

                                          @abstract file type: PNG

                                          - - - -

                                          Objective-C

                                          -
                                          + (SDLFileType *)GRAPHIC_PNG;
                                          - - -

                                          Swift

                                          -
                                          class func graphic_PNG() -> SDLFileType!
                                          - - - -
                                          -

                                          Return Value

                                          -

                                          SDLFileType with value of GRAPHIC_PNG

                                          -
                                          - -

                                          - +AUDIO_WAVE -

                                          - -

                                          @abstract file type: WAVE (WAV)

                                          - - - -

                                          Objective-C

                                          -
                                          + (SDLFileType *)AUDIO_WAVE;
                                          - - -

                                          Swift

                                          -
                                          class func audio_WAVE() -> SDLFileType!
                                          - - - -
                                          -

                                          Return Value

                                          -

                                          SDLFileType with value of AUDIO_WAVE

                                          -
                                          - -

                                          - +AUDIO_MP3 -

                                          - -

                                          @abstract file type: MP3

                                          - - - -

                                          Objective-C

                                          -
                                          + (SDLFileType *)AUDIO_MP3;
                                          - - -

                                          Swift

                                          -
                                          class func audio_MP3() -> SDLFileType!
                                          - - - -
                                          -

                                          Return Value

                                          -

                                          SDLFileType with value of AUDIO_MP3

                                          -
                                          - -

                                          - +AUDIO_AAC -

                                          - -

                                          @abstract file type: AAC

                                          - - - -

                                          Objective-C

                                          -
                                          + (SDLFileType *)AUDIO_AAC;
                                          - - -

                                          Swift

                                          -
                                          class func audio_AAC() -> SDLFileType!
                                          - - - -
                                          -

                                          Return Value

                                          -

                                          SDLFileType with value of AUDIO_AAC

                                          -
                                          - -

                                          - +BINARY -

                                          - -

                                          @abstract file type: BINARY

                                          - - - -

                                          Objective-C

                                          -
                                          + (SDLFileType *)BINARY;
                                          - - -

                                          Swift

                                          -
                                          class func binary() -> SDLFileType!
                                          - - - -
                                          -

                                          Return Value

                                          -

                                          SDLFileType with value of BINARY

                                          -
                                          - -

                                          - +JSON -

                                          - -

                                          @abstract file type: JSON

                                          - - - -

                                          Objective-C

                                          -
                                          + (SDLFileType *)JSON;
                                          - - -

                                          Swift

                                          -
                                          class func json() -> SDLFileType!
                                          - - - -
                                          -

                                          Return Value

                                          -

                                          SDLFileType with value of JSON

                                          -
                                          - -
                                          diff --git a/docs/Classes/SDLFuelCutoffStatus.html b/docs/Classes/SDLFuelCutoffStatus.html deleted file mode 100644 index e247b3c58..000000000 --- a/docs/Classes/SDLFuelCutoffStatus.html +++ /dev/null @@ -1,137 +0,0 @@ -

                                          SDLFuelCutoffStatus Class Reference

                                          - -

                                          Section Contents

                                          - - - -

                                          Overview

                                          - -

                                          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.

                                          - -

                                          @since SDL 2.0

                                          - - -
                                          -

                                          - +valueOf: -

                                          - -

                                          @abstract Convert String to SDLFuelCutoffStatus

                                          - - - -

                                          Objective-C

                                          -
                                          + (SDLFuelCutoffStatus *)valueOf:(NSString *)value;
                                          - - -

                                          Swift

                                          -
                                          class func value(of value: String!) -> SDLFuelCutoffStatus!
                                          - - - -

                                          Parameters

                                          -
                                          -
                                          value
                                          -

                                          String value to retrieve the object for

                                          -
                                          -
                                          -

                                          Return Value

                                          -

                                          SDLFuelCutoffStatus

                                          -
                                          - -

                                          - +values -

                                          - -

                                          @abstract Store the enumeration of all possible SDLFuelCutoffStatus

                                          - - - -

                                          Objective-C

                                          -
                                          + (NSArray *)values;
                                          - - -

                                          Swift

                                          -
                                          class func values() -> [Any]!
                                          - - - -
                                          -

                                          Return Value

                                          -

                                          an array that stores all possible SDLFuelCutoffStatus

                                          -
                                          - -

                                          - +TERMINATE_FUEL -

                                          - -

                                          @abstract Fuel is cut off

                                          - - - -

                                          Objective-C

                                          -
                                          + (SDLFuelCutoffStatus *)TERMINATE_FUEL;
                                          - - -

                                          Swift

                                          -
                                          class func terminate_FUEL() -> SDLFuelCutoffStatus!
                                          - - - -
                                          -

                                          Return Value

                                          -

                                          the fuel cutoff status: TERMINATE_FUEL

                                          -
                                          - -

                                          - +NORMAL_OPERATION -

                                          - -

                                          @abstract Fuel is not cut off

                                          - - - -

                                          Objective-C

                                          -
                                          + (SDLFuelCutoffStatus *)NORMAL_OPERATION;
                                          - - -

                                          Swift

                                          -
                                          class func normal_OPERATION() -> SDLFuelCutoffStatus!
                                          - - - -
                                          -

                                          Return Value

                                          -

                                          the fuel cutoff status: NORMAL_OPERATION

                                          -
                                          - -

                                          - +FAULT -

                                          - -

                                          @abstract Status of the fuel pump cannot be determined

                                          - - - -

                                          Objective-C

                                          -
                                          + (SDLFuelCutoffStatus *)FAULT;
                                          - - -

                                          Swift

                                          -
                                          class func fault() -> SDLFuelCutoffStatus!
                                          - - - -
                                          -

                                          Return Value

                                          -

                                          the fuel cutoff status: FAULT

                                          -
                                          - -
                                          diff --git a/docs/Classes/SDLGPSData.html b/docs/Classes/SDLGPSData.html index d2f32091c..2afb3c951 100644 --- a/docs/Classes/SDLGPSData.html +++ b/docs/Classes/SDLGPSData.html @@ -3,8 +3,6 @@

                                          SDLGPSData Class Reference

                                          Section Contents

                                            -
                                          • -init
                                          • -
                                          • -initWithDictionary:
                                          • longitudeDegrees
                                          • latitudeDegrees
                                          • utcYear
                                          • @@ -33,47 +31,6 @@

                                            Overview

                                            -

                                            - -init -

                                            - -

                                            Constructs a newly allocated SDLGPSData object

                                            - - - -

                                            Objective-C

                                            -
                                            - (instancetype)init;
                                            - - -

                                            Swift

                                            -
                                            init!()
                                            - - - - -

                                            - -initWithDictionary: -

                                            - -

                                            Constructs a newly allocated SDLGPSData object indicated by the dictionary parameter

                                            - - - -

                                            Objective-C

                                            -
                                            - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                            - - -

                                            Swift

                                            -
                                            init!(dictionary dict: NSMutableDictionary!)
                                            - - - -

                                            Parameters

                                            -
                                            -
                                            dict
                                            -

                                            The dictionary to use

                                            -
                                            -

                                            longitudeDegrees

                                            @@ -85,11 +42,12 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *longitudeDegrees;
                                            +
                                            @property (readwrite, strong, nonatomic)
                                            +    NSNumber<SDLFloat> *_Nonnull longitudeDegrees;

                                            Swift

                                            -
                                            var longitudeDegrees: NSNumber! { get set }
                                            +
                                            var longitudeDegrees: NSNumber 
                                            @@ -105,11 +63,12 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *latitudeDegrees;
                                            +
                                            @property (readwrite, strong, nonatomic)
                                            +    NSNumber<SDLFloat> *_Nonnull latitudeDegrees;

                                            Swift

                                            -
                                            var latitudeDegrees: NSNumber! { get set }
                                            +
                                            var latitudeDegrees: NSNumber 
                                            @@ -125,11 +84,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *utcYear;
                                            +
                                            @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull utcYear;

                                            Swift

                                            -
                                            var utcYear: NSNumber! { get set }
                                            +
                                            var utcYear: NSNumber 
                                            @@ -145,11 +104,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *utcMonth;
                                            +
                                            @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull utcMonth;

                                            Swift

                                            -
                                            var utcMonth: NSNumber! { get set }
                                            +
                                            var utcMonth: NSNumber 
                                            @@ -165,11 +124,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *utcDay;
                                            +
                                            @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull utcDay;

                                            Swift

                                            -
                                            var utcDay: NSNumber! { get set }
                                            +
                                            var utcDay: NSNumber 
                                            @@ -185,11 +144,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *utcHours;
                                            +
                                            @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull utcHours;

                                            Swift

                                            -
                                            var utcHours: NSNumber! { get set }
                                            +
                                            var utcHours: NSNumber 
                                            @@ -205,11 +164,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *utcMinutes;
                                            +
                                            @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull utcMinutes;

                                            Swift

                                            -
                                            var utcMinutes: NSNumber! { get set }
                                            +
                                            var utcMinutes: NSNumber 
                                            @@ -225,11 +184,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *utcSeconds;
                                            +
                                            @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull utcSeconds;

                                            Swift

                                            -
                                            var utcSeconds: NSNumber! { get set }
                                            +
                                            var utcSeconds: NSNumber 
                                            @@ -243,11 +202,12 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) SDLCompassDirection *compassDirection;
                                            +
                                            @property (readwrite, strong, nonatomic)
                                            +    SDLCompassDirection _Nonnull compassDirection;

                                            Swift

                                            -
                                            var compassDirection: SDLCompassDirection! { get set }
                                            +
                                            var compassDirection: SDLCompassDirection { get set }
                                            @@ -265,11 +225,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *pdop;
                                            +
                                            @property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *_Nonnull pdop;

                                            Swift

                                            -
                                            var pdop: NSNumber! { get set }
                                            +
                                            var pdop: NSNumber 
                                            @@ -287,11 +247,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *hdop;
                                            +
                                            @property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *_Nonnull hdop;

                                            Swift

                                            -
                                            var hdop: NSNumber! { get set }
                                            +
                                            var hdop: NSNumber 
                                            @@ -309,11 +269,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *vdop;
                                            +
                                            @property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *_Nonnull vdop;

                                            Swift

                                            -
                                            var vdop: NSNumber! { get set }
                                            +
                                            var vdop: NSNumber 
                                            @@ -331,11 +291,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *actual;
                                            +
                                            @property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull actual;

                                            Swift

                                            -
                                            var actual: NSNumber! { get set }
                                            +
                                            var actual: NSNumber 
                                            @@ -351,11 +311,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *satellites;
                                            +
                                            @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull satellites;

                                            Swift

                                            -
                                            var satellites: NSNumber! { get set }
                                            +
                                            var satellites: NSNumber 
                                            @@ -371,11 +331,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) SDLDimension *dimension;
                                            +
                                            @property (readwrite, strong, nonatomic) SDLDimension _Nonnull dimension;

                                            Swift

                                            -
                                            var dimension: SDLDimension! { get set }
                                            +
                                            var dimension: SDLDimension { get set }
                                            @@ -391,11 +351,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *altitude;
                                            +
                                            @property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *_Nonnull altitude;

                                            Swift

                                            -
                                            var altitude: NSNumber! { get set }
                                            +
                                            var altitude: NSNumber 
                                            @@ -413,11 +373,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *heading;
                                            +
                                            @property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *_Nonnull heading;

                                            Swift

                                            -
                                            var heading: NSNumber! { get set }
                                            +
                                            var heading: NSNumber 
                                            @@ -433,11 +393,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *speed;
                                            +
                                            @property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *_Nonnull speed;

                                            Swift

                                            -
                                            var speed: NSNumber! { get set }
                                            +
                                            var speed: NSNumber 
                                            diff --git a/docs/Classes/SDLGenericResponse.html b/docs/Classes/SDLGenericResponse.html deleted file mode 100644 index 43b57c10d..000000000 --- a/docs/Classes/SDLGenericResponse.html +++ /dev/null @@ -1,48 +0,0 @@ -

                                            SDLGenericResponse Class Reference

                                            - -

                                            Section Contents

                                            - - - -

                                            Overview

                                            - -

                                            Generic Response is sent, when the name of a received msg cannot be -retrieved. Only used in case of an error. Currently, only resultCode -INVALID_DATA is used.

                                            - - -
                                            -

                                            - -init -

                                            - -

                                            Undocumented

                                            - - - -

                                            Objective-C

                                            -
                                            @interface SDLGenericResponse : SDLRPCResponse
                                            - - - - - -

                                            - -initWithDictionary: -

                                            - -

                                            Undocumented

                                            - - - -

                                            Objective-C

                                            -
                                            @interface SDLGenericResponse : SDLRPCResponse
                                            - - - - - -
                                            diff --git a/docs/Classes/SDLGetDTCs.html b/docs/Classes/SDLGetDTCs.html index 94359cf16..dc0f63be7 100644 --- a/docs/Classes/SDLGetDTCs.html +++ b/docs/Classes/SDLGetDTCs.html @@ -3,8 +3,6 @@

                                            SDLGetDTCs Class Reference

                                            Section Contents

                                              -
                                            • -init
                                            • -
                                            • -initWithDictionary:
                                            • -initWithECUName:
                                            • -initWithECUName:mask:
                                            • ecuName
                                            • @@ -23,48 +21,6 @@

                                              Overview

                                              -

                                              - -init -

                                              - -

                                              Constructs a new SDLGetDTCs object

                                              - - - -

                                              Objective-C

                                              -
                                              - (instancetype)init;
                                              - - -

                                              Swift

                                              -
                                              init!()
                                              - - - - -

                                              - -initWithDictionary: -

                                              - -

                                              Constructs a new SDLGetDTCs object indicated by the dictionary parameter -

                                              - - - -

                                              Objective-C

                                              -
                                              - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                              - - -

                                              Swift

                                              -
                                              init!(dictionary dict: NSMutableDictionary!)
                                              - - - -

                                              Parameters

                                              -
                                              -
                                              dict
                                              -

                                              The dictionary to use

                                              -
                                              -

                                              -initWithECUName:

                                              @@ -108,11 +64,11 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) NSNumber *ecuName;
                                              +
                                              @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull ecuName;

                                              Swift

                                              -
                                              var ecuName: NSNumber! { get set }
                                              +
                                              var ecuName: NSNumber 
                                              @@ -126,11 +82,11 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) NSNumber *dtcMask;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *dtcMask;

                                              Swift

                                              -
                                              var dtcMask: NSNumber! { get set }
                                              +
                                              var dtcMask: (NSNumber 
                                              diff --git a/docs/Classes/SDLGetDTCsResponse.html b/docs/Classes/SDLGetDTCsResponse.html index f31b4491d..f21e93bfc 100644 --- a/docs/Classes/SDLGetDTCsResponse.html +++ b/docs/Classes/SDLGetDTCsResponse.html @@ -3,8 +3,6 @@

                                              SDLGetDTCsResponse Class Reference

                                              Section Contents

                                              @@ -17,36 +15,6 @@

                                              Overview

                                              -

                                              - -init -

                                              - -

                                              Undocumented

                                              - - - -

                                              Objective-C

                                              -
                                              @interface SDLGetDTCsResponse : SDLRPCResponse
                                              - - - - - -

                                              - -initWithDictionary: -

                                              - -

                                              Undocumented

                                              - - - -

                                              Objective-C

                                              -
                                              @interface SDLGetDTCsResponse : SDLRPCResponse
                                              - - - - -

                                              ecuHeader

                                              diff --git a/docs/Classes/SDLGetInteriorVehicleData.html b/docs/Classes/SDLGetInteriorVehicleData.html new file mode 100644 index 000000000..45349f356 --- /dev/null +++ b/docs/Classes/SDLGetInteriorVehicleData.html @@ -0,0 +1,107 @@ +

                                              SDLGetInteriorVehicleData Class Reference

                                              + +

                                              Section Contents

                                              + + + +

                                              Overview

                                              + +

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

                                              + + +
                                              +

                                              + -initWithModuleType: +

                                              + +

                                              Undocumented

                                              + + + +

                                              Objective-C

                                              +
                                              @interface SDLGetInteriorVehicleData : SDLRPCRequest
                                              + + + + + +

                                              + -initAndSubscribeToModuleType: +

                                              + +

                                              Undocumented

                                              + + + +

                                              Objective-C

                                              +
                                              @interface SDLGetInteriorVehicleData : SDLRPCRequest
                                              + + + + + +

                                              + -initAndUnsubscribeToModuleType: +

                                              + +

                                              Undocumented

                                              + + + +

                                              Objective-C

                                              +
                                              @interface SDLGetInteriorVehicleData : SDLRPCRequest
                                              + + + + + +

                                              + moduleType +

                                              + +

                                              The type of a RC module to retrieve module data from the vehicle.

                                              + + + +

                                              Objective-C

                                              +
                                              @property (readwrite, strong, nonatomic) SDLModuleType _Nonnull moduleType;
                                              + + +

                                              Swift

                                              +
                                              var moduleType: SDLModuleType { get set }
                                              + + + + +

                                              + subscribe +

                                              + +

                                              If subscribe is true, the head unit will register onInteriorVehicleData notifications for the requested moduelType. + If subscribe is false, the head unit will unregister onInteriorVehicleData notifications for the requested moduelType.

                                              + +

                                              optional, Boolean, default Value = false

                                              + + + +

                                              Objective-C

                                              +
                                              @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *subscribe;
                                              + + +

                                              Swift

                                              +
                                              var subscribe: (NSNumber 
                                              + + + + +
                                              diff --git a/docs/Classes/SDLGetInteriorVehicleDataResponse.html b/docs/Classes/SDLGetInteriorVehicleDataResponse.html new file mode 100644 index 000000000..889ac3437 --- /dev/null +++ b/docs/Classes/SDLGetInteriorVehicleDataResponse.html @@ -0,0 +1,50 @@ +

                                              SDLGetInteriorVehicleDataResponse Class Reference

                                              + +

                                              Section Contents

                                              + + + +

                                              Overview

                                              + +

                                              Undocumented

                                              + + +
                                              +

                                              + moduleData +

                                              + +

                                              Undocumented

                                              + + + + + + +

                                              + isSubscribed +

                                              + +

                                              @abstract It is a conditional-mandatory parameter: must be returned in case subscribe parameter was present in the related request. + if true - the moduleType from request is successfully subscribed and the head unit will send onInteriorVehicleData notifications for the moduleType. + if false - the moduleType from request is either unsubscribed or failed to subscribe.

                                              + +

                                              Optional, Boolean

                                              + + + +

                                              Objective-C

                                              +
                                              @property (readwrite, strong, nonatomic, nullable)
                                              +    NSNumber<SDLBool> *isSubscribed;
                                              + + +

                                              Swift

                                              +
                                              var isSubscribed: (NSNumber 
                                              + + + + +
                                              diff --git a/docs/Classes/SDLGetSystemCapability.html b/docs/Classes/SDLGetSystemCapability.html index 42efb9862..866542a9c 100644 --- a/docs/Classes/SDLGetSystemCapability.html +++ b/docs/Classes/SDLGetSystemCapability.html @@ -3,8 +3,6 @@

                                              SDLGetSystemCapability Class Reference

                                              Section Contents

                                              @@ -15,28 +13,6 @@

                                              Overview

                                              -

                                              - -init -

                                              - -

                                              Undocumented

                                              - - - - - - -

                                              - -initWithDictionary: -

                                              - -

                                              Undocumented

                                              - - - - - -

                                              -initWithType:

                                              @@ -60,11 +36,11 @@

                                              Objective-C

                                              @property (readwrite, strong, nonatomic)
                                              -    SDLSystemCapabilityType *systemCapabilityType;
                                              + SDLSystemCapabilityType _Nonnull systemCapabilityType;

                                          Swift

                                          -
                                          var systemCapabilityType: SDLSystemCapabilityType! { get set }
                                          +
                                          var systemCapabilityType: SDLSystemCapabilityType { get set }
                                          diff --git a/docs/Classes/SDLGetSystemCapabilityResponse.html b/docs/Classes/SDLGetSystemCapabilityResponse.html index da728aa56..51987195f 100644 --- a/docs/Classes/SDLGetSystemCapabilityResponse.html +++ b/docs/Classes/SDLGetSystemCapabilityResponse.html @@ -3,8 +3,6 @@

                                          SDLGetSystemCapabilityResponse Class Reference

                                          Section Contents

                                          @@ -14,28 +12,6 @@

                                          Overview

                                          -

                                          - -init -

                                          - -

                                          Undocumented

                                          - - - - - - -

                                          - -initWithDictionary: -

                                          - -

                                          Undocumented

                                          - - - - - -

                                          systemCapability

                                          diff --git a/docs/Classes/SDLGetVehicleData.html b/docs/Classes/SDLGetVehicleData.html index 7ab58125c..c9e976fae 100644 --- a/docs/Classes/SDLGetVehicleData.html +++ b/docs/Classes/SDLGetVehicleData.html @@ -3,8 +3,6 @@

                                          SDLGetVehicleData Class Reference

                                          Section Contents

                                            -
                                          • -init
                                          • -
                                          • -initWithDictionary:
                                          • -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:
                                          • gps
                                          • speed
                                          • @@ -47,48 +45,6 @@

                                            Overview

                                            -

                                            - -init -

                                            - -

                                            @abstract Constructs a new SDLGetVehicleData object

                                            - - - -

                                            Objective-C

                                            -
                                            - (instancetype)init;
                                            - - -

                                            Swift

                                            -
                                            init!()
                                            - - - - -

                                            - -initWithDictionary: -

                                            - -

                                            @abstract Constructs a new SDLGetVehicleData object indicated by the NSMutableDictionary -parameter

                                            - - - -

                                            Objective-C

                                            -
                                            - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                            - - -

                                            Swift

                                            -
                                            init!(dictionary dict: NSMutableDictionary!)
                                            - - - -

                                            Parameters

                                            -
                                            -
                                            dict
                                            -

                                            The dictionary to use

                                            -
                                            -

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

                                            @@ -113,11 +69,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *gps;
                                            +
                                            @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *gps;

                                            Swift

                                            -
                                            var gps: NSNumber! { get set }
                                            +
                                            var gps: (NSNumber 
                                            @@ -131,11 +87,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *speed;
                                            +
                                            @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *speed;

                                            Swift

                                            -
                                            var speed: NSNumber! { get set }
                                            +
                                            var speed: (NSNumber 
                                            @@ -149,11 +105,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *rpm;
                                            +
                                            @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *rpm;

                                            Swift

                                            -
                                            var rpm: NSNumber! { get set }
                                            +
                                            var rpm: (NSNumber 
                                            @@ -167,11 +123,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *fuelLevel;
                                            +
                                            @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *fuelLevel;

                                            Swift

                                            -
                                            var fuelLevel: NSNumber! { get set }
                                            +
                                            var fuelLevel: (NSNumber 
                                            @@ -185,11 +141,12 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *fuelLevel_State;
                                            +
                                            @property (readwrite, strong, nonatomic, nullable)
                                            +    NSNumber<SDLBool> *fuelLevel_State;

                                            Swift

                                            -
                                            var fuelLevel_State: NSNumber! { get set }
                                            +
                                            var fuelLevel_State: (NSNumber 
                                            @@ -203,11 +160,12 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *instantFuelConsumption;
                                            +
                                            @property (readwrite, strong, nonatomic, nullable)
                                            +    NSNumber<SDLBool> *instantFuelConsumption;

                                            Swift

                                            -
                                            var instantFuelConsumption: NSNumber! { get set }
                                            +
                                            var instantFuelConsumption: (NSNumber 
                                            @@ -221,11 +179,12 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *externalTemperature;
                                            +
                                            @property (readwrite, strong, nonatomic, nullable)
                                            +    NSNumber<SDLBool> *externalTemperature;

                                            Swift

                                            -
                                            var externalTemperature: NSNumber! { get set }
                                            +
                                            var externalTemperature: (NSNumber 
                                            @@ -239,11 +198,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *vin;
                                            +
                                            @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *vin;

                                            Swift

                                            -
                                            var vin: NSNumber! { get set }
                                            +
                                            var vin: (NSNumber 
                                            @@ -257,11 +216,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *prndl;
                                            +
                                            @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *prndl;

                                            Swift

                                            -
                                            var prndl: NSNumber! { get set }
                                            +
                                            var prndl: (NSNumber 
                                            @@ -275,11 +234,12 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *tirePressure;
                                            +
                                            @property (readwrite, strong, nonatomic, nullable)
                                            +    NSNumber<SDLBool> *tirePressure;

                                            Swift

                                            -
                                            var tirePressure: NSNumber! { get set }
                                            +
                                            var tirePressure: (NSNumber 
                                            @@ -293,11 +253,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *odometer;
                                            +
                                            @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *odometer;

                                            Swift

                                            -
                                            var odometer: NSNumber! { get set }
                                            +
                                            var odometer: (NSNumber 
                                            @@ -311,11 +271,11 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *beltStatus;
                                            +
                                            @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *beltStatus;

                                            Swift

                                            -
                                            var beltStatus: NSNumber! { get set }
                                            +
                                            var beltStatus: (NSNumber 
                                            @@ -329,11 +289,12 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *bodyInformation;
                                            +
                                            @property (readwrite, strong, nonatomic, nullable)
                                            +    NSNumber<SDLBool> *bodyInformation;

                                            Swift

                                            -
                                            var bodyInformation: NSNumber! { get set }
                                            +
                                            var bodyInformation: (NSNumber 
                                            @@ -347,11 +308,12 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *deviceStatus;
                                            +
                                            @property (readwrite, strong, nonatomic, nullable)
                                            +    NSNumber<SDLBool> *deviceStatus;

                                            Swift

                                            -
                                            var deviceStatus: NSNumber! { get set }
                                            +
                                            var deviceStatus: (NSNumber 
                                            @@ -365,11 +327,12 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *driverBraking;
                                            +
                                            @property (readwrite, strong, nonatomic, nullable)
                                            +    NSNumber<SDLBool> *driverBraking;

                                            Swift

                                            -
                                            var driverBraking: NSNumber! { get set }
                                            +
                                            var driverBraking: (NSNumber 
                                            @@ -383,11 +346,12 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *wiperStatus;
                                            +
                                            @property (readwrite, strong, nonatomic, nullable)
                                            +    NSNumber<SDLBool> *wiperStatus;

                                            Swift

                                            -
                                            var wiperStatus: NSNumber! { get set }
                                            +
                                            var wiperStatus: (NSNumber 
                                            @@ -401,11 +365,12 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *headLampStatus;
                                            +
                                            @property (readwrite, strong, nonatomic, nullable)
                                            +    NSNumber<SDLBool> *headLampStatus;

                                            Swift

                                            -
                                            var headLampStatus: NSNumber! { get set }
                                            +
                                            var headLampStatus: (NSNumber 
                                            @@ -419,11 +384,12 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *engineTorque;
                                            +
                                            @property (readwrite, strong, nonatomic, nullable)
                                            +    NSNumber<SDLBool> *engineTorque;

                                            Swift

                                            -
                                            var engineTorque: NSNumber! { get set }
                                            +
                                            var engineTorque: (NSNumber 
                                            @@ -438,11 +404,12 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *accPedalPosition;
                                            +
                                            @property (readwrite, strong, nonatomic, nullable)
                                            +    NSNumber<SDLBool> *accPedalPosition;

                                            Swift

                                            -
                                            var accPedalPosition: NSNumber! { get set }
                                            +
                                            var accPedalPosition: (NSNumber 
                                            @@ -457,11 +424,12 @@

                                            Objective-C

                                            -
                                            @property (readwrite, strong, atomic) NSNumber *steeringWheelAngle;
                                            +
                                            @property (readwrite, strong, nonatomic, nullable)
                                            +    NSNumber<SDLBool> *steeringWheelAngle;

                                            Swift

                                            -
                                            var steeringWheelAngle: NSNumber! { get set }
                                            +
                                            var steeringWheelAngle: (NSNumber 
                                            diff --git a/docs/Classes/SDLGetVehicleDataResponse.html b/docs/Classes/SDLGetVehicleDataResponse.html index fae4b1052..af5b59cf3 100644 --- a/docs/Classes/SDLGetVehicleDataResponse.html +++ b/docs/Classes/SDLGetVehicleDataResponse.html @@ -3,8 +3,6 @@

                                            SDLGetVehicleDataResponse Class Reference

                                            Section Contents

                                              -
                                            • -init
                                            • -
                                            • -initWithDictionary:
                                            • gps
                                            • speed
                                            • rpm
                                            • @@ -40,48 +38,6 @@

                                              Overview

                                              -

                                              - -init -

                                              - -

                                              @abstract Constructs a new SDLGetVehicleDataResponse object

                                              - - - -

                                              Objective-C

                                              -
                                              - (instancetype)init;
                                              - - -

                                              Swift

                                              -
                                              init!()
                                              - - - - -

                                              - -initWithDictionary: -

                                              - -

                                              @abstract Constructs a new SDLGetVehicleDataResponse object indicated by the NSMutableDictionary -parameter

                                              - - - -

                                              Objective-C

                                              -
                                              - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                              - - -

                                              Swift

                                              -
                                              init!(dictionary dict: NSMutableDictionary!)
                                              - - - -

                                              Parameters

                                              -
                                              -
                                              dict
                                              -

                                              The dictionary to use

                                              -
                                              -

                                              gps

                                              @@ -91,11 +47,11 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) SDLGPSData *gps;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable) SDLGPSData *gps;

                                              Swift

                                              -
                                              var gps: SDLGPSData! { get set }
                                              +
                                              var gps: SDLGPSData? { get set }
                                              @@ -109,11 +65,11 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) NSNumber *speed;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLFloat> *speed;

                                              Swift

                                              -
                                              var speed: NSNumber! { get set }
                                              +
                                              var speed: (NSNumber 
                                              @@ -127,11 +83,11 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) NSNumber *rpm;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *rpm;

                                              Swift

                                              -
                                              var rpm: NSNumber! { get set }
                                              +
                                              var rpm: (NSNumber 
                                              @@ -145,11 +101,11 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) NSNumber *fuelLevel;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLFloat> *fuelLevel;

                                              Swift

                                              -
                                              var fuelLevel: NSNumber! { get set }
                                              +
                                              var fuelLevel: (NSNumber 
                                              @@ -163,11 +119,12 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) SDLComponentVolumeStatus *fuelLevel_State;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable)
                                              +    SDLComponentVolumeStatus fuelLevel_State;

                                              Swift

                                              -
                                              var fuelLevel_State: SDLComponentVolumeStatus! { get set }
                                              +
                                              var fuelLevel_State: SDLComponentVolumeStatus? { get set }
                                              @@ -181,11 +138,12 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) NSNumber *instantFuelConsumption;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable)
                                              +    NSNumber<SDLFloat> *instantFuelConsumption;

                                              Swift

                                              -
                                              var instantFuelConsumption: NSNumber! { get set }
                                              +
                                              var instantFuelConsumption: (NSNumber 
                                              @@ -199,11 +157,12 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) NSNumber *externalTemperature;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable)
                                              +    NSNumber<SDLFloat> *externalTemperature;

                                              Swift

                                              -
                                              var externalTemperature: NSNumber! { get set }
                                              +
                                              var externalTemperature: (NSNumber 
                                              @@ -217,11 +176,11 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) NSString *vin;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable) NSString *vin;

                                              Swift

                                              -
                                              var vin: String! { get set }
                                              +
                                              var vin: String? { get set }
                                              @@ -235,11 +194,11 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) SDLPRNDL *prndl;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable) SDLPRNDL prndl;

                                              Swift

                                              -
                                              var prndl: SDLPRNDL! { get set }
                                              +
                                              var prndl: SDLPRNDL? { get set }
                                              @@ -253,11 +212,11 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) SDLTireStatus *tirePressure;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable) SDLTireStatus *tirePressure;

                                              Swift

                                              -
                                              var tirePressure: SDLTireStatus! { get set }
                                              +
                                              var tirePressure: SDLTireStatus? { get set }
                                              @@ -271,11 +230,11 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) NSNumber *odometer;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *odometer;

                                              Swift

                                              -
                                              var odometer: NSNumber! { get set }
                                              +
                                              var odometer: (NSNumber 
                                              @@ -289,11 +248,11 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) SDLBeltStatus *beltStatus;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable) SDLBeltStatus *beltStatus;

                                              Swift

                                              -
                                              var beltStatus: SDLBeltStatus! { get set }
                                              +
                                              var beltStatus: SDLBeltStatus? { get set }
                                              @@ -307,11 +266,12 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) SDLBodyInformation *bodyInformation;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable)
                                              +    SDLBodyInformation *bodyInformation;

                                              Swift

                                              -
                                              var bodyInformation: SDLBodyInformation! { get set }
                                              +
                                              var bodyInformation: SDLBodyInformation? { get set }
                                              @@ -325,11 +285,11 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) SDLDeviceStatus *deviceStatus;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable) SDLDeviceStatus *deviceStatus;

                                              Swift

                                              -
                                              var deviceStatus: SDLDeviceStatus! { get set }
                                              +
                                              var deviceStatus: SDLDeviceStatus? { get set }
                                              @@ -343,11 +303,12 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) SDLVehicleDataEventStatus *driverBraking;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable)
                                              +    SDLVehicleDataEventStatus driverBraking;

                                              Swift

                                              -
                                              var driverBraking: SDLVehicleDataEventStatus! { get set }
                                              +
                                              var driverBraking: SDLVehicleDataEventStatus? { get set }
                                              @@ -361,11 +322,11 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) SDLWiperStatus *wiperStatus;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable) SDLWiperStatus wiperStatus;

                                              Swift

                                              -
                                              var wiperStatus: SDLWiperStatus! { get set }
                                              +
                                              var wiperStatus: SDLWiperStatus? { get set }
                                              @@ -379,11 +340,12 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) SDLHeadLampStatus *headLampStatus;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable)
                                              +    SDLHeadLampStatus *headLampStatus;

                                              Swift

                                              -
                                              var headLampStatus: SDLHeadLampStatus! { get set }
                                              +
                                              var headLampStatus: SDLHeadLampStatus? { get set }
                                              @@ -397,11 +359,12 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) NSNumber *engineTorque;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable)
                                              +    NSNumber<SDLFloat> *engineTorque;

                                              Swift

                                              -
                                              var engineTorque: NSNumber! { get set }
                                              +
                                              var engineTorque: (NSNumber 
                                              @@ -415,11 +378,12 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) NSNumber *accPedalPosition;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable)
                                              +    NSNumber<SDLFloat> *accPedalPosition;

                                              Swift

                                              -
                                              var accPedalPosition: NSNumber! { get set }
                                              +
                                              var accPedalPosition: (NSNumber 
                                              @@ -433,11 +397,12 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) NSNumber *steeringWheelAngle;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable)
                                              +    NSNumber<SDLFloat> *steeringWheelAngle;

                                              Swift

                                              -
                                              var steeringWheelAngle: NSNumber! { get set }
                                              +
                                              var steeringWheelAngle: (NSNumber 
                                              diff --git a/docs/Classes/SDLGetWaypoints.html b/docs/Classes/SDLGetWaypoints.html index eccd857b1..d57d57f51 100644 --- a/docs/Classes/SDLGetWaypoints.html +++ b/docs/Classes/SDLGetWaypoints.html @@ -36,11 +36,11 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, nonatomic) SDLWaypointType *waypointType;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable) SDLWayPointType waypointType;

                                              Swift

                                              -
                                              var waypointType: SDLWaypointType! { get set }
                                              +
                                              var waypointType: SDLWayPointType? { get set }
                                              diff --git a/docs/Classes/SDLGetWaypointsResponse.html b/docs/Classes/SDLGetWaypointsResponse.html index 8484c00b4..48616be81 100644 --- a/docs/Classes/SDLGetWaypointsResponse.html +++ b/docs/Classes/SDLGetWaypointsResponse.html @@ -28,11 +28,12 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) NSArray<SDLLocationDetails *> *waypoints;
                                              +
                                              @property (readwrite, strong, nonatomic, nullable)
                                              +    NSArray<SDLLocationDetails *> *waypoints;

                                              Swift

                                              -
                                              var waypoints: [SDLLocationDetails]! { get set }
                                              +
                                              var waypoints: [SDLLocationDetails]? { get set }
                                              diff --git a/docs/Classes/SDLGlobalProperty.html b/docs/Classes/SDLGlobalProperty.html deleted file mode 100644 index 5455d0b8f..000000000 --- a/docs/Classes/SDLGlobalProperty.html +++ /dev/null @@ -1,193 +0,0 @@ -

                                              SDLGlobalProperty Class Reference

                                              - -

                                              Section Contents

                                              - - - -

                                              Overview

                                              - -

                                              Properties of a user-initiated VR interaction (i.e. interactions started by the user pressing the PTT button).

                                              - -

                                              @since SDL 1.0

                                              - - -
                                              -

                                              - +valueOf: -

                                              - -

                                              Convert String to SDLGlobalProperty

                                              - - - -

                                              Objective-C

                                              -
                                              + (SDLGlobalProperty *)valueOf:(NSString *)value;
                                              - - -

                                              Swift

                                              -
                                              class func value(of value: String!) -> SDLGlobalProperty!
                                              - - - -

                                              Parameters

                                              -
                                              -
                                              value
                                              -

                                              The value of the string to get an object for

                                              -
                                              -
                                              -

                                              Return Value

                                              -

                                              SDLGlobalProperty

                                              -
                                              - -

                                              - +values -

                                              - -

                                              @abstract Store the enumeration of all possible SDLGlobalProperty

                                              - - - -

                                              Objective-C

                                              -
                                              + (NSArray *)values;
                                              - - -

                                              Swift

                                              -
                                              class func values() -> [Any]!
                                              - - - -
                                              -

                                              Return Value

                                              -

                                              An array that store all possible SDLGlobalProperty

                                              -
                                              - -

                                              - +HELPPROMPT -

                                              - -

                                              @abstract The help prompt to be spoken if the user needs assistance during a user-initiated interaction.

                                              - - - -

                                              Objective-C

                                              -
                                              + (SDLGlobalProperty *)HELPPROMPT;
                                              - - -

                                              Swift

                                              -
                                              class func helpprompt() -> SDLGlobalProperty!
                                              - - - -
                                              -

                                              Return Value

                                              -

                                              A SDLGlobalProperty with value of HELPPROMPT

                                              -
                                              - -

                                              - +TIMEOUTPROMPT -

                                              - -

                                              @abstract The prompt to be spoken if the user-initiated interaction times out waiting for the user’s verbal input.

                                              - - - -

                                              Objective-C

                                              -
                                              + (SDLGlobalProperty *)TIMEOUTPROMPT;
                                              - - -

                                              Swift

                                              -
                                              class func timeoutprompt() -> SDLGlobalProperty!
                                              - - - -
                                              -

                                              Return Value

                                              -

                                              A SDLGlobalProperty with value of TIMEOUTPROMPT

                                              -
                                              - -

                                              - +VRHELPTITLE -

                                              - -

                                              Undocumented

                                              - - - -

                                              Objective-C

                                              -
                                              @interface SDLGlobalProperty : SDLEnum
                                              - - - - - -

                                              - +VRHELPITEMS -

                                              - -

                                              Undocumented

                                              - - - -

                                              Objective-C

                                              -
                                              @interface SDLGlobalProperty : SDLEnum
                                              - - - - - -

                                              - +MENUNAME -

                                              - -

                                              Undocumented

                                              - - - -

                                              Objective-C

                                              -
                                              @interface SDLGlobalProperty : SDLEnum
                                              - - - - - -

                                              - +MENUICON -

                                              - -

                                              Undocumented

                                              - - - -

                                              Objective-C

                                              -
                                              @interface SDLGlobalProperty : SDLEnum
                                              - - - - - -

                                              - +KEYBOARDPROPERTIES -

                                              - -

                                              Undocumented

                                              - - - -

                                              Objective-C

                                              -
                                              @interface SDLGlobalProperty : SDLEnum
                                              - - - - - -
                                              diff --git a/docs/Classes/SDLHMICapabilities.html b/docs/Classes/SDLHMICapabilities.html index 25a517918..463c683db 100644 --- a/docs/Classes/SDLHMICapabilities.html +++ b/docs/Classes/SDLHMICapabilities.html @@ -3,8 +3,6 @@

                                              SDLHMICapabilities Class Reference

                                              Section Contents

                                                -
                                              • -init
                                              • -
                                              • -initWithDictionary:
                                              • navigation
                                              • phoneCall
                                              • videoStreaming
                                              • @@ -16,64 +14,63 @@

                                                Overview

                                                -

                                                - -init +

                                                + navigation

                                                -

                                                Undocumented

                                                +

                                                Availability of built in Nav. True: Available, False: Not Available

                                                + +

                                                Boolean value. Optional.

                                                - - - -

                                                - -initWithDictionary: -

                                                - -

                                                Undocumented

                                                +

                                                Objective-C

                                                +
                                                @property (readwrite, copy, nonatomic, nullable) NSNumber<SDLBool> *navigation;
                                                +

                                                Swift

                                                +
                                                @NSCopying var navigation: (NSNumber 
                                                + - -

                                                - navigation +

                                                + phoneCall

                                                -

                                                Availability of build in Nav. True: Available, False: Not Available

                                                +

                                                Availability of built in phone. True: Available, False: Not Available

                                                Boolean value. Optional.

                                                Objective-C

                                                -
                                                @property (readwrite, copy, nonatomic) NSNumber *navigation;
                                                +
                                                @property (readwrite, copy, nonatomic, nullable) NSNumber<SDLBool> *phoneCall;

                                                Swift

                                                -
                                                @NSCopying var navigation: NSNumber! { get set }
                                                +
                                                @NSCopying var phoneCall: (NSNumber 
                                                -

                                                - phoneCall +

                                                + videoStreaming

                                                -

                                                Availability of build in phone. True: Available, False: Not Available

                                                +

                                                Availability of built in video streaming. True: Available, False: Not Available

                                                Boolean value. Optional.

                                                Objective-C

                                                -
                                                @property (readwrite, copy, nonatomic) NSNumber *phoneCall;
                                                +
                                                @property (readwrite, copy, nonatomic, nullable)
                                                +    NSNumber<SDLBool> *videoStreaming;

                                                Swift

                                                -
                                                @NSCopying var phoneCall: NSNumber! { get set }
                                                +
                                                @NSCopying var videoStreaming: (NSNumber 
                                                diff --git a/docs/Classes/SDLHMILevel.html b/docs/Classes/SDLHMILevel.html deleted file mode 100644 index 221a3a55c..000000000 --- a/docs/Classes/SDLHMILevel.html +++ /dev/null @@ -1,176 +0,0 @@ -

                                                SDLHMILevel Class Reference

                                                - -

                                                Section Contents

                                                - - - -

                                                Overview

                                                - -

                                                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 focus to other applications (e.g. phone, other mobile applications, etc.)

                                                - -

                                                @since SDL 1.0

                                                - - -
                                                -

                                                - +valueOf: -

                                                - -

                                                Return HMILevel status (FULL, LIMITED, BACKGROUND, NONE)

                                                - - - -

                                                Objective-C

                                                -
                                                + (SDLHMILevel *)valueOf:(NSString *)value;
                                                - - -

                                                Swift

                                                -
                                                class func value(of value: String!) -> SDLHMILevel!
                                                - - - -

                                                Parameters

                                                -
                                                -
                                                value
                                                -

                                                String value to retrieve the object for

                                                -
                                                -
                                                -

                                                Return Value

                                                -

                                                Current HMI level

                                                -
                                                - -

                                                - +values -

                                                - -

                                                Store all possible SDLHMILevel values

                                                - - - -

                                                Objective-C

                                                -
                                                + (NSArray *)values;
                                                - - -

                                                Swift

                                                -
                                                class func values() -> [Any]!
                                                - - - -
                                                -

                                                Return Value

                                                -

                                                an array with all possible HMILevel values inside

                                                -
                                                - -

                                                - +FULL -

                                                - -

                                                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

                                                - - - -

                                                Objective-C

                                                -
                                                + (SDLHMILevel *)FULL;
                                                - - -

                                                Swift

                                                -
                                                class func full() -> SDLHMILevel!
                                                - - - -
                                                -

                                                Return Value

                                                -

                                                the HMILevel with value of FULL

                                                -
                                                - -

                                                - +LIMITED -

                                                - -

                                                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)

                                                - - - -

                                                Objective-C

                                                -
                                                + (SDLHMILevel *)LIMITED;
                                                - - -

                                                Swift

                                                -
                                                class func limited() -> SDLHMILevel!
                                                - - - -
                                                -

                                                Return Value

                                                -

                                                the HMILevel with value of LIMITED

                                                -
                                                - -

                                                - +BACKGROUND -

                                                - -

                                                App cannot interact with user via TTS, VR, Display or Button Presses. App can perform the following operations:

                                                - -

                                                @discussion

                                                  -
                                                • Operation : AddCommand
                                                • -
                                                • Operation : DeleteCommand
                                                • -
                                                • Operation : AddSubMenu
                                                • -
                                                • Operation : DeleteSubMenu
                                                • -
                                                • Operation : CreateInteractionChoiceSet
                                                • -
                                                • Operation : DeleteInteractionChoiceSet
                                                • -
                                                • Operation : SubscribeButton
                                                • -
                                                • Operation : UnsubscribeButton
                                                • -
                                                • Operation : Show
                                                • -
                                                • Operation : UnregisterAppInterface
                                                • -
                                                • Operation : ResetGlobalProperties
                                                • -
                                                • Operation : SetGlobalProperties
                                                • -

                                                - - - -

                                                Objective-C

                                                -
                                                + (SDLHMILevel *)BACKGROUND;
                                                - - -

                                                Swift

                                                -
                                                class func background() -> SDLHMILevel!
                                                - - - -
                                                -

                                                Return Value

                                                -

                                                the HMILevel with value of BACKGROUND

                                                -
                                                - -

                                                - +NONE -

                                                - -

                                                Application has been discovered by SDL, but it cannot send any requests or receive any notifications

                                                - -

                                                @discussion An HMILevel of NONE can also mean that the user has exited the application by saying exit appname or selecting exit from the application’s menu. When this happens, the application still has an active interface registration with SDL and all SDL resources the application has created (e.g. Choice Sets, subscriptions, etc.) still exist. But while the HMILevel is NONE, the application cannot send any messages to SYNC, except UnregisterAppInterface

                                                - - - -

                                                Objective-C

                                                -
                                                + (SDLHMILevel *)NONE;
                                                - - -

                                                Swift

                                                -
                                                class func none() -> SDLHMILevel!
                                                - - - -
                                                -

                                                Return Value

                                                -

                                                the HMILevel with value of NONE

                                                -
                                                - -
                                                diff --git a/docs/Classes/SDLHMIPermissions.html b/docs/Classes/SDLHMIPermissions.html index 027842ead..0a4526c50 100644 --- a/docs/Classes/SDLHMIPermissions.html +++ b/docs/Classes/SDLHMIPermissions.html @@ -3,8 +3,6 @@

                                                SDLHMIPermissions Class Reference

                                                Section Contents

                                                @@ -17,47 +15,6 @@

                                                Overview

                                                -

                                                - -init -

                                                - -

                                                Constructs a newly allocated SDLHMIPermissions object

                                                - - - -

                                                Objective-C

                                                -
                                                - (instancetype)init;
                                                - - -

                                                Swift

                                                -
                                                init!()
                                                - - - - -

                                                - -initWithDictionary: -

                                                - -

                                                Constructs a newly allocated SDLHMIPermissions object indicated by the dictionary parameter

                                                - - - -

                                                Objective-C

                                                -
                                                - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                - - -

                                                Swift

                                                -
                                                init!(dictionary dict: NSMutableDictionary!)
                                                - - - -

                                                Parameters

                                                -
                                                -
                                                dict
                                                -

                                                The dictionary to use

                                                -
                                                -

                                                allowed

                                                @@ -74,11 +31,11 @@

                                                Objective-C

                                                -
                                                @property (readwrite, strong, atomic) NSMutableArray *allowed;
                                                +
                                                @property (readwrite, strong, nonatomic) NSArray<SDLHMILevel> *_Nonnull allowed;

                                                Swift

                                                -
                                                var allowed: NSMutableArray! { get set }
                                                +
                                                var allowed: [SDLHMILevel] { get set }
                                                @@ -99,11 +56,12 @@

                                                Objective-C

                                                -
                                                @property (readwrite, strong, atomic) NSMutableArray *userDisallowed;
                                                +
                                                @property (readwrite, strong, nonatomic)
                                                +    NSArray<SDLHMILevel> *_Nonnull userDisallowed;

                                                Swift

                                                -
                                                var userDisallowed: NSMutableArray! { get set }
                                                +
                                                var userDisallowed: [SDLHMILevel] { get set }
                                                diff --git a/docs/Classes/SDLHMIZoneCapabilities.html b/docs/Classes/SDLHMIZoneCapabilities.html deleted file mode 100644 index b657bb484..000000000 --- a/docs/Classes/SDLHMIZoneCapabilities.html +++ /dev/null @@ -1,113 +0,0 @@ -

                                                SDLHMIZoneCapabilities Class Reference

                                                - -

                                                Section Contents

                                                - - - -

                                                Overview

                                                - -

                                                Specifies HMI Zones in the vehicle.

                                                - -

                                                @since SDL 1.0

                                                - - -
                                                -

                                                - +valueOf: -

                                                - -

                                                @abstract SDLHMIZoneCapabilities

                                                - - - -

                                                Objective-C

                                                -
                                                + (SDLHMIZoneCapabilities *)valueOf:(NSString *)value;
                                                - - -

                                                Swift

                                                -
                                                class func value(of value: String!) -> SDLHMIZoneCapabilities!
                                                - - - -

                                                Parameters

                                                -
                                                -
                                                value
                                                -

                                                The value of the string to get an object for

                                                -
                                                -
                                                -

                                                Return Value

                                                -

                                                SDLHMIZoneCapabilities

                                                -
                                                - -

                                                - +values -

                                                - -

                                                @abstract store all possible SDLHMIZoneCapabilities values

                                                - - - -

                                                Objective-C

                                                -
                                                + (NSArray *)values;
                                                - - -

                                                Swift

                                                -
                                                class func values() -> [Any]!
                                                - - - -
                                                -

                                                Return Value

                                                -

                                                an array with all possible SDLHMIZoneCapabilities values inside

                                                -
                                                - -

                                                - +FRONT -

                                                - -

                                                @abstract Indicates HMI available for front seat passengers.

                                                - - - -

                                                Objective-C

                                                -
                                                + (SDLHMIZoneCapabilities *)FRONT;
                                                - - -

                                                Swift

                                                -
                                                class func front() -> SDLHMIZoneCapabilities!
                                                - - - -
                                                -

                                                Return Value

                                                -

                                                a SDLHMIZoneCapabilities with value of FRONT

                                                -
                                                - -

                                                - +BACK -

                                                - -

                                                @abstract Indicates HMI available for rear seat passengers.

                                                - - - -

                                                Objective-C

                                                -
                                                + (SDLHMIZoneCapabilities *)BACK;
                                                - - -

                                                Swift

                                                -
                                                class func back() -> SDLHMIZoneCapabilities!
                                                - - - -
                                                -

                                                Return Value

                                                -

                                                a SDLHMIZoneCapabilities with value of BACK

                                                -
                                                - -
                                                diff --git a/docs/Classes/SDLHapticRect.html b/docs/Classes/SDLHapticRect.html index 0287c2587..fd4c9bcb4 100644 --- a/docs/Classes/SDLHapticRect.html +++ b/docs/Classes/SDLHapticRect.html @@ -3,8 +3,6 @@

                                                SDLHapticRect Class Reference

                                                Section Contents

                                                  -
                                                • -init
                                                • -
                                                • -initWithDictionary:
                                                • -initWithId:rect:
                                                • id
                                                • rect
                                                • @@ -16,75 +14,20 @@

                                                  Overview

                                                  -

                                                  - -init -

                                                  - -

                                                  @abstract Constructs a newly allocated SDLHapticRect object

                                                  - - - -

                                                  Objective-C

                                                  -
                                                  - (instancetype)init;
                                                  - - -

                                                  Swift

                                                  -
                                                  init!()
                                                  - - - - -

                                                  - -initWithDictionary: -

                                                  - -

                                                  @abstract Constructs a newly allocated SDLHapticRect object indicated by the dictionary parameter

                                                  - - - -

                                                  Objective-C

                                                  -
                                                  - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                  - - -

                                                  Swift

                                                  -
                                                  init!(dictionary dict: NSMutableDictionary!)
                                                  - - - -

                                                  Parameters

                                                  -
                                                  -
                                                  dict
                                                  -

                                                  The dictionary to use

                                                  -
                                                  -

                                                  -initWithId:rect:

                                                  -

                                                  Create a SpatialStruct

                                                  +

                                                  Undocumented

                                                  Objective-C

                                                  -
                                                  - (instancetype)initWithId:(NSNumber *)id rect:(SDLRectangle *)rect;
                                                  +
                                                  @interface SDLHapticRect : SDLRPCStruct
                                                  -

                                                  Swift

                                                  -
                                                  init!(id: NSNumber!, rect: SDLRectangle!)
                                                  - -

                                                  Parameters

                                                  -
                                                  -
                                                  id
                                                  -

                                                  The id of the rectangle

                                                  -
                                                  rect
                                                  -

                                                  The SDLRectangle to use as the bounding rectangle

                                                  -
                                                  -
                                                  -

                                                  Return Value

                                                  -

                                                  An new SDLHapticRect object

                                                  -

                                                  id @@ -96,11 +39,11 @@

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, nonatomic) NSNumber *id;
                                                  +
                                                  @property (readwrite, strong, nonatomic) NSNumber<SDLUInt> *_Nonnull id;

                                                  Swift

                                                  -
                                                  var id: NSNumber! { get set }
                                                  +
                                                  var id: NSNumber 
                                                  @@ -109,19 +52,14 @@

                                                  rect

                                                  -

                                                  The position of the haptic rectangle to be highlighted. The center of this rectangle will be touched when a press occurs.

                                                  - -

                                                  Required

                                                  +

                                                  Undocumented

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, nonatomic) SDLRectangle *rect;
                                                  +
                                                  @interface SDLHapticRect : SDLRPCStruct
                                                  -

                                                  Swift

                                                  -
                                                  var rect: SDLRectangle! { get set }
                                                  - diff --git a/docs/Classes/SDLHeadLampStatus.html b/docs/Classes/SDLHeadLampStatus.html index 9875df892..93169f2e6 100644 --- a/docs/Classes/SDLHeadLampStatus.html +++ b/docs/Classes/SDLHeadLampStatus.html @@ -3,8 +3,6 @@

                                                  SDLHeadLampStatus Class Reference

                                                  Section Contents

                                                    -
                                                  • -init
                                                  • -
                                                  • -initWithDictionary:
                                                  • lowBeamsOn
                                                  • highBeamsOn
                                                  • ambientLightSensorStatus
                                                  • @@ -16,48 +14,6 @@

                                                    Overview

                                                    -

                                                    - -init -

                                                    - -

                                                    @abstract Constructs a new SDLHeadLampStatus object

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    - (instancetype)init;
                                                    - - -

                                                    Swift

                                                    -
                                                    init!()
                                                    - - - - -

                                                    - -initWithDictionary: -

                                                    - -

                                                    @abstract Constructs a new SDLHeadLampStatus object indicated by the NSMutableDictionary -parameter

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                    - - -

                                                    Swift

                                                    -
                                                    init!(dictionary dict: NSMutableDictionary!)
                                                    - - - -

                                                    Parameters

                                                    -
                                                    -
                                                    dict
                                                    -

                                                    The dictionary to use

                                                    -
                                                    -

                                                    lowBeamsOn

                                                    @@ -67,11 +23,11 @@

                                                    Objective-C

                                                    -
                                                    @property (readwrite, strong, atomic) NSNumber *lowBeamsOn;
                                                    +
                                                    @property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull lowBeamsOn;

                                                    Swift

                                                    -
                                                    var lowBeamsOn: NSNumber! { get set }
                                                    +
                                                    var lowBeamsOn: NSNumber 
                                                    @@ -85,11 +41,11 @@

                                                    Objective-C

                                                    -
                                                    @property (readwrite, strong, atomic) NSNumber *highBeamsOn;
                                                    +
                                                    @property (readwrite, strong, nonatomic) NSNumber<SDLBool> *_Nonnull highBeamsOn;

                                                    Swift

                                                    -
                                                    var highBeamsOn: NSNumber! { get set }
                                                    +
                                                    var highBeamsOn: NSNumber 
                                                    diff --git a/docs/Classes/SDLIgnitionStableStatus.html b/docs/Classes/SDLIgnitionStableStatus.html deleted file mode 100644 index f252072ed..000000000 --- a/docs/Classes/SDLIgnitionStableStatus.html +++ /dev/null @@ -1,129 +0,0 @@ -

                                                    SDLIgnitionStableStatus Class Reference

                                                    - -

                                                    Section Contents

                                                    - - - -

                                                    Overview

                                                    - -

                                                    Reflects the ignition switch stability.

                                                    - -

                                                    @since SDL 2.0

                                                    - - -
                                                    -

                                                    - +valueOf: -

                                                    - -

                                                    @abstract return SDLIgnitionStableStatus

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    + (SDLIgnitionStableStatus *)valueOf:(NSString *)value;
                                                    - - -

                                                    Swift

                                                    -
                                                    class func value(of value: String!) -> SDLIgnitionStableStatus!
                                                    - - - -

                                                    Parameters

                                                    -
                                                    -
                                                    value
                                                    -

                                                    The value of the string to get an object for

                                                    -
                                                    -
                                                    -

                                                    Return Value

                                                    -

                                                    SDLIgnitionStableStatus

                                                    -
                                                    - -

                                                    - +values -

                                                    - -

                                                    @abstract store all possible SDLIgnitionStableStatus values

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    + (NSArray *)values;
                                                    - - -

                                                    Swift

                                                    -
                                                    class func values() -> [Any]!
                                                    - - - -
                                                    -

                                                    Return Value

                                                    -

                                                    an array with all possible SDLIgnitionStableStatus values inside

                                                    -
                                                    - -

                                                    - +IGNITION_SWITCH_NOT_STABLE -

                                                    - -

                                                    @abstract The current ignition switch status is considered not to be stable.

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    + (SDLIgnitionStableStatus *)IGNITION_SWITCH_NOT_STABLE;
                                                    - - -

                                                    Swift

                                                    -
                                                    class func ignition_SWITCH_NOT_STABLE() -> SDLIgnitionStableStatus!
                                                    - - - -
                                                    -

                                                    Return Value

                                                    -

                                                    the Ignition Stable Status with value of IGNITION_SWITCH_NOT_STABLE

                                                    -
                                                    - -

                                                    - +IGNITION_SWITCH_STABLE -

                                                    - -

                                                    @abstract The current ignition switch status is considered to be stable.

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    + (SDLIgnitionStableStatus *)IGNITION_SWITCH_STABLE;
                                                    - - -

                                                    Swift

                                                    -
                                                    class func ignition_SWITCH_STABLE() -> SDLIgnitionStableStatus!
                                                    - - - -
                                                    -

                                                    Return Value

                                                    -

                                                    the Ignition Stable Status with value of IGNITION_SWITCH_STABLE

                                                    -
                                                    - -

                                                    - +MISSING_FROM_TRANSMITTER -

                                                    - -

                                                    Undocumented

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    @interface SDLIgnitionStableStatus : SDLEnum
                                                    - - - - - -
                                                    diff --git a/docs/Classes/SDLIgnitionStatus.html b/docs/Classes/SDLIgnitionStatus.html deleted file mode 100644 index 957fca4b2..000000000 --- a/docs/Classes/SDLIgnitionStatus.html +++ /dev/null @@ -1,205 +0,0 @@ -

                                                    SDLIgnitionStatus Class Reference

                                                    - -

                                                    Section Contents

                                                    - - - -

                                                    Overview

                                                    - -

                                                    Reflects the status of ignition..

                                                    - -

                                                    @since SDL 2.0

                                                    - - -
                                                    -

                                                    - +valueOf: -

                                                    - -

                                                    @abstract return SDLIgnitionStatus

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    + (SDLIgnitionStatus *)valueOf:(NSString *)value;
                                                    - - -

                                                    Swift

                                                    -
                                                    class func value(of value: String!) -> SDLIgnitionStatus!
                                                    - - - -

                                                    Parameters

                                                    -
                                                    -
                                                    value
                                                    -

                                                    The value of the string to get an object for

                                                    -
                                                    -
                                                    -

                                                    Return Value

                                                    -

                                                    SDLIgnitionStatus object

                                                    -
                                                    - -

                                                    - +values -

                                                    - -

                                                    @abstract store all possible SDLIgnitionStatus values

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    + (NSArray *)values;
                                                    - - -

                                                    Swift

                                                    -
                                                    class func values() -> [Any]!
                                                    - - - -
                                                    -

                                                    Return Value

                                                    -

                                                    an array with all possible SDLIgnitionStatus values inside

                                                    -
                                                    - -

                                                    - +UNKNOWN -

                                                    - -

                                                    @abstract Ignition status currently unknown

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    + (SDLIgnitionStatus *)UNKNOWN;
                                                    - - -

                                                    Swift

                                                    -
                                                    class func unknown() -> SDLIgnitionStatus!
                                                    - - - -
                                                    -

                                                    Return Value

                                                    -

                                                    Ignition Status with value of UNKNOWN

                                                    -
                                                    - -

                                                    - +OFF -

                                                    - -

                                                    @abstract Ignition is off

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    + (SDLIgnitionStatus *)OFF;
                                                    - - -

                                                    Swift

                                                    -
                                                    class func off() -> SDLIgnitionStatus!
                                                    - - - -
                                                    -

                                                    Return Value

                                                    -

                                                    Ignition Status with value of OFF

                                                    -
                                                    - -

                                                    - +ACCESSORY -

                                                    - -

                                                    @abstract Ignition is in mode accessory

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    + (SDLIgnitionStatus *)ACCESSORY;
                                                    - - -

                                                    Swift

                                                    -
                                                    class func accessory() -> SDLIgnitionStatus!
                                                    - - - -
                                                    -

                                                    Return Value

                                                    -

                                                    Ignition Status with value of ACCESSORY

                                                    -
                                                    - -

                                                    - +RUN -

                                                    - -

                                                    @abstract Ignition is in mode run

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    + (SDLIgnitionStatus *)RUN;
                                                    - - -

                                                    Swift

                                                    -
                                                    class func run() -> SDLIgnitionStatus!
                                                    - - - -
                                                    -

                                                    Return Value

                                                    -

                                                    Ignition Status with value of RUN

                                                    -
                                                    - -

                                                    - +START -

                                                    - -

                                                    @abstract Ignition is in mode start

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    + (SDLIgnitionStatus *)START;
                                                    - - -

                                                    Swift

                                                    -
                                                    class func start() -> SDLIgnitionStatus!
                                                    - - - -
                                                    -

                                                    Return Value

                                                    -

                                                    Ignition Status with value of START

                                                    -
                                                    - -

                                                    - +INVALID -

                                                    - -

                                                    @abstract Signal is invalid

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    + (SDLIgnitionStatus *)INVALID;
                                                    - - -

                                                    Swift

                                                    -
                                                    class func invalid() -> SDLIgnitionStatus!
                                                    - - - -
                                                    -

                                                    Return Value

                                                    -

                                                    Ignition Status with value of INVALID

                                                    -
                                                    - -
                                                    diff --git a/docs/Classes/SDLImage.html b/docs/Classes/SDLImage.html index f0fa034ac..10ef8304f 100644 --- a/docs/Classes/SDLImage.html +++ b/docs/Classes/SDLImage.html @@ -3,8 +3,6 @@

                                                    SDLImage Class Reference

                                                    Section Contents

                                                      -
                                                    • -init
                                                    • -
                                                    • -initWithDictionary:
                                                    • -initWithName:ofType:
                                                    • value
                                                    • imageType
                                                    • @@ -18,47 +16,6 @@

                                                      Overview

                                                      -

                                                      - -init -

                                                      - -

                                                      Constructs a newly allocated SDLImage object

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      - (instancetype)init;
                                                      - - -

                                                      Swift

                                                      -
                                                      init!()
                                                      - - - - -

                                                      - -initWithDictionary: -

                                                      - -

                                                      Constructs a newly allocated SDLImage object indicated by the dictionary parameter

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                      - - -

                                                      Swift

                                                      -
                                                      init!(dictionary dict: NSMutableDictionary!)
                                                      - - - -

                                                      Parameters

                                                      -
                                                      -
                                                      dict
                                                      -

                                                      The dictionary to use

                                                      -
                                                      -

                                                      -initWithName:ofType:

                                                      @@ -85,11 +42,11 @@

                                                      Objective-C

                                                      -
                                                      @property (readwrite, strong, atomic) NSString *value;
                                                      +
                                                      @property (readwrite, strong, nonatomic) NSString *_Nonnull value;

                                                      Swift

                                                      -
                                                      var value: String! { get set }
                                                      +
                                                      var value: String { get set }
                                                      @@ -105,11 +62,11 @@

                                                      Objective-C

                                                      -
                                                      @property (readwrite, strong, atomic) SDLImageType *imageType;
                                                      +
                                                      @property (readwrite, strong, nonatomic) SDLImageType _Nonnull imageType;

                                                      Swift

                                                      -
                                                      var imageType: SDLImageType! { get set }
                                                      +
                                                      var imageType: SDLImageType { get set }
                                                      diff --git a/docs/Classes/SDLImageField.html b/docs/Classes/SDLImageField.html index cd4c8a590..16b195f41 100644 --- a/docs/Classes/SDLImageField.html +++ b/docs/Classes/SDLImageField.html @@ -3,8 +3,6 @@

                                                      SDLImageField Class Reference

                                                      Section Contents

                                                        -
                                                      • -init
                                                      • -
                                                      • -initWithDictionary:
                                                      • name
                                                      • imageTypeSupported
                                                      • imageResolution
                                                      • @@ -16,28 +14,6 @@

                                                        Overview

                                                        -

                                                        - -init -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - -initWithDictionary: -

                                                        - -

                                                        Undocumented

                                                        - - - - - -

                                                        name

                                                        diff --git a/docs/Classes/SDLImageFieldName.html b/docs/Classes/SDLImageFieldName.html deleted file mode 100644 index 37ba5958e..000000000 --- a/docs/Classes/SDLImageFieldName.html +++ /dev/null @@ -1,293 +0,0 @@ -

                                                        SDLImageFieldName Class Reference

                                                        - -

                                                        Section Contents

                                                        - - - -

                                                        Overview

                                                        - -

                                                        The name that identifies the filed. - * - *

                                                        - -
                                                          -
                                                        • @since SmartDeviceLink 3.0 -*
                                                        • -
                                                        - - -
                                                        -

                                                        - +valueOf: -

                                                        - -

                                                        Undocumented

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        @interface SDLImageFieldName : SDLEnum
                                                        - - - - - -

                                                        - +values -

                                                        - -

                                                        Undocumented

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        @interface SDLImageFieldName : SDLEnum
                                                        - - - - - -

                                                        - +softButtonImage -

                                                        - -

                                                        The image field for SoftButton - *

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLImageFieldName *)softButtonImage;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func softButtonImage() -> SDLImageFieldName!
                                                        - - - - -

                                                        - +choiceImage -

                                                        - -

                                                        The first image field for Choice. - *

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLImageFieldName *)choiceImage;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func choiceImage() -> SDLImageFieldName!
                                                        - - - - -

                                                        - +choiceSecondaryImage -

                                                        - -

                                                        The scondary image field for Choice. - *

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLImageFieldName *)choiceSecondaryImage;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func choiceSecondaryImage() -> SDLImageFieldName!
                                                        - - - - -

                                                        - +vrHelpItem -

                                                        - -

                                                        The image field for vrHelpItem. - *

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLImageFieldName *)vrHelpItem;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func vrHelpItem() -> SDLImageFieldName!
                                                        - - - - -

                                                        - +turnIcon -

                                                        - -

                                                        The image field for Turn. - *

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLImageFieldName *)turnIcon;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func turnIcon() -> SDLImageFieldName!
                                                        - - - - -

                                                        - +menuIcon -

                                                        - -

                                                        The image field for the menu icon in SetGlobalProperties. - *

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLImageFieldName *)menuIcon;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func menuIcon() -> SDLImageFieldName!
                                                        - - - - -

                                                        - +cmdIcon -

                                                        - -

                                                        The image filed for AddCommand. - *

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLImageFieldName *)cmdIcon;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func cmdIcon() -> SDLImageFieldName!
                                                        - - - - -

                                                        - +appIcon -

                                                        - -

                                                        The iamage field for the app icon ( set by setAppIcon). - *

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLImageFieldName *)appIcon;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func appIcon() -> SDLImageFieldName!
                                                        - - - - -

                                                        - +graphic -

                                                        - -

                                                        The image filed for Show. - *

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLImageFieldName *)graphic;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func graphic() -> SDLImageFieldName!
                                                        - - - - -

                                                        - +showConstantTBTIcon -

                                                        - -

                                                        The primary image field for ShowConstant TBT. - *

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLImageFieldName *)showConstantTBTIcon;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func showConstantTBTIcon() -> SDLImageFieldName!
                                                        - - - - -

                                                        - +showConstantTBTNextTurnIcon -

                                                        - -

                                                        The secondary image field for ShowConstant TBT. - *

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLImageFieldName *)showConstantTBTNextTurnIcon;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func showConstantTBTNextTurnIcon() -> SDLImageFieldName!
                                                        - - - - -

                                                        - +locationImage -

                                                        - -

                                                        The optional image of a destination / location -@since SDL 4.0

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLImageFieldName *)locationImage;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func locationImage() -> SDLImageFieldName!
                                                        - - - - -
                                                        diff --git a/docs/Classes/SDLImageResolution.html b/docs/Classes/SDLImageResolution.html index 562d3118c..014351d2c 100644 --- a/docs/Classes/SDLImageResolution.html +++ b/docs/Classes/SDLImageResolution.html @@ -3,10 +3,9 @@

                                                        SDLImageResolution Class Reference

                                                        Section Contents

                                                        Overview

                                                        @@ -15,19 +14,8 @@

                                                        Overview

                                                        -

                                                        - -init -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - -initWithDictionary: +

                                                        + resolutionWidth

                                                        Undocumented

                                                        @@ -37,8 +25,8 @@

                                                        -

                                                        - resolutionWidth +

                                                        + resolutionHeight

                                                        Undocumented

                                                        @@ -48,8 +36,8 @@

                                                        -

                                                        - resolutionHeight +

                                                        + -initWithWidth:height:

                                                        Undocumented

                                                        diff --git a/docs/Classes/SDLImageType.html b/docs/Classes/SDLImageType.html deleted file mode 100644 index 6790ca19b..000000000 --- a/docs/Classes/SDLImageType.html +++ /dev/null @@ -1,118 +0,0 @@ -

                                                        SDLImageType Class Reference

                                                        - -

                                                        Section Contents

                                                        - - - -

                                                        Overview

                                                        - -

                                                        Contains information about the type of image.

                                                        - -

                                                        @since SDL 2.0

                                                        - - -
                                                        -

                                                        - +valueOf: -

                                                        - -

                                                        @abstract return SDLImageType (STATIC / DYNAMIC)

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLImageType *)valueOf:(NSString *)value;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func value(of value: String!) -> SDLImageType!
                                                        - - - -

                                                        Parameters

                                                        -
                                                        -
                                                        value
                                                        -

                                                        The value of the string to get an object for

                                                        -
                                                        -
                                                        -

                                                        Return Value

                                                        -

                                                        An SDLImageType

                                                        -
                                                        - -

                                                        - +values -

                                                        - -

                                                        @abstract store all possible SDLImageType values

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (NSArray *)values;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func values() -> [Any]!
                                                        - - - -
                                                        -

                                                        Return Value

                                                        -

                                                        An array with all possible SDLImageType values inside

                                                        -
                                                        - -

                                                        - +STATIC -

                                                        - -

                                                        @abstract Just the static hex icon value to be used

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLImageType *)STATIC;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func `static`() -> SDLImageType!
                                                        - - - -
                                                        -

                                                        Return Value

                                                        -

                                                        The Image Type with value STATIC

                                                        -
                                                        - -

                                                        - +DYNAMIC -

                                                        - -

                                                        @abstract Binary image file to be used (identifier to be sent by SDLPutFile)

                                                        -
                                                        -

                                                        See

                                                        -

                                                        SDLPutFile

                                                        - -
                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLImageType *)DYNAMIC;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func dynamic() -> SDLImageType!
                                                        - - - -
                                                        -

                                                        Return Value

                                                        -

                                                        The Image Type with value DYNAMIC

                                                        -
                                                        - -
                                                        diff --git a/docs/Classes/SDLInteractionMode.html b/docs/Classes/SDLInteractionMode.html deleted file mode 100644 index 750b2ef8e..000000000 --- a/docs/Classes/SDLInteractionMode.html +++ /dev/null @@ -1,143 +0,0 @@ -

                                                        SDLInteractionMode Class Reference

                                                        - -

                                                        Section Contents

                                                        - - - -

                                                        Overview

                                                        - -

                                                        For application-initiated interactions (SDLPerformInteraction), this specifies the mode by which the user is prompted and by which the user’s selection is indicated

                                                        - -

                                                        @since SDL 1.0

                                                        - - -
                                                        -

                                                        - +valueOf: -

                                                        - -

                                                        @abstract SDLInteractionMode

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLInteractionMode *)valueOf:(NSString *)value;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func value(of value: String!) -> SDLInteractionMode!
                                                        - - - -

                                                        Parameters

                                                        -
                                                        -
                                                        value
                                                        -

                                                        The value of the string to get an object for

                                                        -
                                                        -
                                                        -

                                                        Return Value

                                                        -

                                                        SDLInteractionMode

                                                        -
                                                        - -

                                                        - +values -

                                                        - -

                                                        @abstract store all possible SDLInteractionMode values

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (NSArray *)values;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func values() -> [Any]!
                                                        - - - -
                                                        -

                                                        Return Value

                                                        -

                                                        an array with all possible SDLInteractionMode values inside

                                                        -
                                                        - -

                                                        - +MANUAL_ONLY -

                                                        - -

                                                        @abstract Interaction Mode : Manual Only - @discussion This mode causes the interaction to occur only on the display, meaning the choices are presented and selected only via the display. Selections are viewed with the SEEKRIGHT, SEEKLEFT, TUNEUP, TUNEDOWN buttons. User’s selection is indicated with the OK button

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLInteractionMode *)MANUAL_ONLY;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func manual_ONLY() -> SDLInteractionMode!
                                                        - - - -
                                                        -

                                                        Return Value

                                                        -

                                                        Current Interaction Mode with value of MANUAL_ONLY

                                                        -
                                                        - -

                                                        - +VR_ONLY -

                                                        - -

                                                        @abstract Interaction Mode : VR Only - @discussion This mode causes the interaction to occur only through TTS and VR. The user is prompted via TTS to select a choice by saying one of the choice’s synonyms

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLInteractionMode *)VR_ONLY;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func vr_ONLY() -> SDLInteractionMode!
                                                        - - - -
                                                        -

                                                        Return Value

                                                        -

                                                        Current Interaction Mode with value of VR_ONLY

                                                        -
                                                        - -

                                                        - +BOTH -

                                                        - -

                                                        @abstract Interaction Mode : Manual & VR - @discussion This mode is a combination of MANUAL_ONLY and VR_ONLY, meaning the user is prompted both visually and audibly. The user can make a selection either using the mode described in MANUAL_ONLY or using the mode described in VR_ONLY.

                                                        - -

                                                        If the user views selections as described in MANUAL_ONLY mode, the interaction becomes strictly, and irreversibly, a MANUAL_ONLY interaction (i.e. the VR session is cancelled, although the interaction itself is still in progress). If the user interacts with the VR session in any way (e.g. speaks a phrase, even if it is not a recognized choice), the interaction becomes strictly, and irreversibly, a VR_ONLY interaction (i.e. the MANUAL_ONLY mode forms of interaction will no longer be honored)

                                                        - -

                                                        The TriggerSource parameter of the PerformInteraction response will indicate which interaction mode the user finally chose to attempt the selection (even if the interaction did not end with a selection being made)

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLInteractionMode *)BOTH;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func both() -> SDLInteractionMode!
                                                        - - - -
                                                        -

                                                        Return Value

                                                        -

                                                        Current Interaction Mode with value of BOTH

                                                        -
                                                        - -
                                                        diff --git a/docs/Classes/SDLJingle.html b/docs/Classes/SDLJingle.html deleted file mode 100644 index ea0167002..000000000 --- a/docs/Classes/SDLJingle.html +++ /dev/null @@ -1,74 +0,0 @@ -

                                                        SDLJingle Class Reference

                                                        - -

                                                        Section Contents

                                                        - - - -

                                                        Overview

                                                        - -

                                                        Undocumented

                                                        - - -
                                                        -

                                                        - +NEGATIVE_JINGLE -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - +POSITIVE_JINGLE -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - +LISTEN_JINGLE -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - +INITIAL_JINGLE -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - +HELP_JINGLE -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -
                                                        diff --git a/docs/Classes/SDLKeyboardEvent.html b/docs/Classes/SDLKeyboardEvent.html deleted file mode 100644 index 6045bff77..000000000 --- a/docs/Classes/SDLKeyboardEvent.html +++ /dev/null @@ -1,151 +0,0 @@ -

                                                        SDLKeyboardEvent Class Reference

                                                        - -

                                                        Section Contents

                                                        - - - -

                                                        Overview

                                                        - -

                                                        Enumeration listing possible keyboard events. - *

                                                        - -
                                                          -
                                                        • @since SmartDeviceLink 3.0 -*
                                                        • -
                                                        - - -
                                                        -

                                                        - +valueOf: -

                                                        - -

                                                        Undocumented

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        @interface SDLKeyboardEvent : SDLEnum
                                                        - - - - - -

                                                        - +values -

                                                        - -

                                                        Undocumented

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        @interface SDLKeyboardEvent : SDLEnum
                                                        - - - - - -

                                                        - +KEYPRESS -

                                                        - -

                                                        The use has pressed the keyboard key (applies to both SINGLE_KEYPRESS and RESEND_CURRENT_ENTRY modes). - *

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLKeyboardEvent *)KEYPRESS;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func keypress() -> SDLKeyboardEvent!
                                                        - - - - -

                                                        - +ENTRY_SUBMITTED -

                                                        - -

                                                        The User has finished entering text from the keyboard and submitted the entry. - *

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLKeyboardEvent *)ENTRY_SUBMITTED;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func entry_SUBMITTED() -> SDLKeyboardEvent!
                                                        - - - - -

                                                        - +ENTRY_CANCELLED -

                                                        - -

                                                        The User has pressed the HMI-defined Cancel button. - *

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLKeyboardEvent *)ENTRY_CANCELLED;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func entry_CANCELLED() -> SDLKeyboardEvent!
                                                        - - - - -

                                                        - +ENTRY_ABORTED -

                                                        - -

                                                        The User has not finished entering text and the keyboard is aborted with the event of higher priority. - *

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLKeyboardEvent *)ENTRY_ABORTED;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func entry_ABORTED() -> SDLKeyboardEvent!
                                                        - - - - -

                                                        - +ENTRY_VOICE -

                                                        - -

                                                        @since SDL 4.0

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLKeyboardEvent *)ENTRY_VOICE;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func entry_VOICE() -> SDLKeyboardEvent!
                                                        - - - - -
                                                        diff --git a/docs/Classes/SDLKeyboardLayout.html b/docs/Classes/SDLKeyboardLayout.html deleted file mode 100644 index cde06447f..000000000 --- a/docs/Classes/SDLKeyboardLayout.html +++ /dev/null @@ -1,109 +0,0 @@ -

                                                        SDLKeyboardLayout Class Reference

                                                        - -

                                                        Section Contents

                                                        - - - -

                                                        Overview

                                                        - -

                                                        Enumeration listing possible keyboard layouts - * - *Since SmartDeviceLink 3.0 - *

                                                        - - -
                                                        -

                                                        - +valueOf: -

                                                        - -

                                                        Undocumented

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        @interface SDLKeyboardLayout : SDLEnum
                                                        - - - - - -

                                                        - +values -

                                                        - -

                                                        Undocumented

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        @interface SDLKeyboardLayout : SDLEnum
                                                        - - - - - -

                                                        - +QWERTY -

                                                        - -

                                                        QWERTY layout (the name comes from the first six keys
                                                        appearing on the top left letter row of the keyboard and read from left to right) - *

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLKeyboardLayout *)QWERTY;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func qwerty() -> SDLKeyboardLayout!
                                                        - - - - -

                                                        - +QWERTZ -

                                                        - -

                                                        QWERTZ layout (the name comes from the first six keys
                                                        appearing on the top left letter row of the keyboard and read from left to right) - *

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLKeyboardLayout *)QWERTZ;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func qwertz() -> SDLKeyboardLayout!
                                                        - - - - -

                                                        - +AZERTY -

                                                        - -

                                                        AZERTY layout (the name comes from the first six keys
                                                        appearing on the top left letter row of the keyboard and read from left to right) - *

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLKeyboardLayout *)AZERTY;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func azerty() -> SDLKeyboardLayout!
                                                        - - - - -
                                                        diff --git a/docs/Classes/SDLKeyboardProperties.html b/docs/Classes/SDLKeyboardProperties.html index 57c4f7cd0..20b5aa55d 100644 --- a/docs/Classes/SDLKeyboardProperties.html +++ b/docs/Classes/SDLKeyboardProperties.html @@ -3,8 +3,6 @@

                                                        SDLKeyboardProperties Class Reference

                                                        Section Contents

                                                          -
                                                        • -init
                                                        • -
                                                        • -initWithDictionary:
                                                        • -initWithLanguage:layout:keypressMode:limitedCharacterList:autoCompleteText:
                                                        • language
                                                        • keyboardLayout
                                                        • @@ -19,28 +17,6 @@

                                                          Overview

                                                          -

                                                          - -init -

                                                          - -

                                                          Undocumented

                                                          - - - - - - -

                                                          - -initWithDictionary: -

                                                          - -

                                                          Undocumented

                                                          - - - - - -

                                                          -initWithLanguage:layout:keypressMode:limitedCharacterList:autoCompleteText:

                                                          diff --git a/docs/Classes/SDLKeypressMode.html b/docs/Classes/SDLKeypressMode.html deleted file mode 100644 index 186512fb5..000000000 --- a/docs/Classes/SDLKeypressMode.html +++ /dev/null @@ -1,114 +0,0 @@ -

                                                          SDLKeypressMode Class Reference

                                                          - -

                                                          Section Contents

                                                          - - - -

                                                          Overview

                                                          - -

                                                          Enumeration listing possible keyboard events.

                                                          - -
                                                            -
                                                          • -
                                                          • Note: Depending on keypressMode value (from keyboardProperties structure of UI.SetGlobalProperties),
                                                            HMI must send the onKeyboardInput notification with the following data:
                                                            -SINGLE_KEYPRESS,QUEUE_KEYPRESSES,RESEND_CURRENT_ENTRY.
                                                          • -
                                                          • @since SmartDeviceLink 3.0 -*
                                                          • -
                                                          - - -
                                                          -

                                                          - +valueOf: -

                                                          - -

                                                          Undocumented

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          @interface SDLKeypressMode : SDLEnum
                                                          - - - - - -

                                                          - +values -

                                                          - -

                                                          Undocumented

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          @interface SDLKeypressMode : SDLEnum
                                                          - - - - - -

                                                          - +SINGLE_KEYPRESS -

                                                          - -

                                                          SINGLE_KEYPRESS:
                                                          Each and every User`s keypress must be reported (new notification for every newly entered single symbol). - *

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLKeypressMode *)SINGLE_KEYPRESS;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func single_KEYPRESS() -> SDLKeypressMode!
                                                          - - - - -

                                                          - +QUEUE_KEYPRESSES -

                                                          - -

                                                          QUEUE_KEYPRESSES:
                                                          The whole entry is reported only after the User submits it (by ‘Search’ button click displayed on touchscreen keyboard) - *

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLKeypressMode *)QUEUE_KEYPRESSES;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func queue_KEYPRESSES() -> SDLKeypressMode!
                                                          - - - - -

                                                          - +RESEND_CURRENT_ENTRY -

                                                          - -

                                                          RESEND_CURRENT_ENTRY:
                                                          The whole entry must be reported each and every time the User makes a new keypress
                                                          (new notification with all previously entered symbols and a newly entered one appended). - *

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLKeypressMode *)RESEND_CURRENT_ENTRY;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func resend_CURRENT_ENTRY() -> SDLKeypressMode!
                                                          - - - - -
                                                          diff --git a/docs/Classes/SDLLanguage.html b/docs/Classes/SDLLanguage.html deleted file mode 100644 index 04ccbe36f..000000000 --- a/docs/Classes/SDLLanguage.html +++ /dev/null @@ -1,760 +0,0 @@ -

                                                          SDLLanguage Class Reference

                                                          - -

                                                          Section Contents

                                                          - - - -

                                                          Overview

                                                          - -

                                                          Specifies the language to be used for TTS, VR, displayed messages/menus

                                                          - -

                                                          @since SDL 1.0

                                                          - - -
                                                          -

                                                          - +valueOf: -

                                                          - -

                                                          @abstract Get a Langusge according to a String

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)valueOf:(NSString *)value;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func value(of value: String!) -> SDLLanguage!
                                                          - - - -

                                                          Parameters

                                                          -
                                                          -
                                                          value
                                                          -

                                                          The value of the string to get an object for

                                                          -
                                                          -
                                                          -

                                                          Return Value

                                                          -

                                                          The Language

                                                          -
                                                          - -

                                                          - +values -

                                                          - -

                                                          @abstract store all possible Language values

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (NSArray *)values;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func values() -> [Any]!
                                                          - - - -
                                                          -

                                                          Return Value

                                                          -

                                                          an array with all possible Language values inside

                                                          -
                                                          - -

                                                          - +EN_SA -

                                                          - -

                                                          Undocumented

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          @interface SDLLanguage : SDLEnum
                                                          - - - - - -

                                                          - +HE_IL -

                                                          - -

                                                          Undocumented

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          @interface SDLLanguage : SDLEnum
                                                          - - - - - -

                                                          - +RO_RO -

                                                          - -

                                                          Undocumented

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          @interface SDLLanguage : SDLEnum
                                                          - - - - - -

                                                          - +UK_UA -

                                                          - -

                                                          Undocumented

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          @interface SDLLanguage : SDLEnum
                                                          - - - - - -

                                                          - +ID_ID -

                                                          - -

                                                          Undocumented

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          @interface SDLLanguage : SDLEnum
                                                          - - - - - -

                                                          - +VI_VN -

                                                          - -

                                                          Undocumented

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          @interface SDLLanguage : SDLEnum
                                                          - - - - - -

                                                          - +MS_MY -

                                                          - -

                                                          Undocumented

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          @interface SDLLanguage : SDLEnum
                                                          - - - - - -

                                                          - +HI_IN -

                                                          - -

                                                          Undocumented

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          @interface SDLLanguage : SDLEnum
                                                          - - - - - -

                                                          - +NL_BE -

                                                          - -

                                                          Undocumented

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          @interface SDLLanguage : SDLEnum
                                                          - - - - - -

                                                          - +EL_GR -

                                                          - -

                                                          Undocumented

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          @interface SDLLanguage : SDLEnum
                                                          - - - - - -

                                                          - +HU_HU -

                                                          - -

                                                          Undocumented

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          @interface SDLLanguage : SDLEnum
                                                          - - - - - -

                                                          - +FI_FI -

                                                          - -

                                                          Undocumented

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          @interface SDLLanguage : SDLEnum
                                                          - - - - - -

                                                          - +SK_SK -

                                                          - -

                                                          Undocumented

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          @interface SDLLanguage : SDLEnum
                                                          - - - - - -

                                                          - +EN_US -

                                                          - -

                                                          Undocumented

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          @interface SDLLanguage : SDLEnum
                                                          - - - - - -

                                                          - +EN_IN -

                                                          - -

                                                          Undocumented

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          @interface SDLLanguage : SDLEnum
                                                          - - - - - -

                                                          - +TH_TH -

                                                          - -

                                                          Undocumented

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          @interface SDLLanguage : SDLEnum
                                                          - - - - - -

                                                          - +ES_MX -

                                                          - -

                                                          @abstract Spanish - Mexico

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)ES_MX;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func es_MX() -> SDLLanguage!
                                                          - - - - -

                                                          - +FR_CA -

                                                          - -

                                                          @abstract French - Canada

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)FR_CA;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func fr_CA() -> SDLLanguage!
                                                          - - - - -

                                                          - +DE_DE -

                                                          - -

                                                          @abstract German - Germany

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)DE_DE;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func de_DE() -> SDLLanguage!
                                                          - - - - -

                                                          - +ES_ES -

                                                          - -

                                                          @abstract Spanish - Spain

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)ES_ES;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func es_ES() -> SDLLanguage!
                                                          - - - - -

                                                          - +EN_GB -

                                                          - -

                                                          @abstract English - Great Britain

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)EN_GB;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func en_GB() -> SDLLanguage!
                                                          - - - - -

                                                          - +RU_RU -

                                                          - -

                                                          @abstract Russian - Russia

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)RU_RU;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func ru_RU() -> SDLLanguage!
                                                          - - - - -

                                                          - +TR_TR -

                                                          - -

                                                          @abstract Turkish - Turkey

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)TR_TR;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func tr_TR() -> SDLLanguage!
                                                          - - - - -

                                                          - +PL_PL -

                                                          - -

                                                          @abstract Polish - Poland

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)PL_PL;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func pl_PL() -> SDLLanguage!
                                                          - - - - -

                                                          - +FR_FR -

                                                          - -

                                                          @abstract French - France

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)FR_FR;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func fr_FR() -> SDLLanguage!
                                                          - - - - -

                                                          - +IT_IT -

                                                          - -

                                                          @abstract Italian - Italy

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)IT_IT;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func it_IT() -> SDLLanguage!
                                                          - - - - -

                                                          - +SV_SE -

                                                          - -

                                                          @abstract Swedish - Sweden

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)SV_SE;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func sv_SE() -> SDLLanguage!
                                                          - - - - -

                                                          - +PT_PT -

                                                          - -

                                                          @abstract Portuguese - Portugal

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)PT_PT;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func pt_PT() -> SDLLanguage!
                                                          - - - - -

                                                          - +NL_NL -

                                                          - -

                                                          @abstract Dutch (Standard) - Netherlands

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)NL_NL;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func nl_NL() -> SDLLanguage!
                                                          - - - - -

                                                          - +EN_AU -

                                                          - -

                                                          @abstract English - Australia

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)EN_AU;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func en_AU() -> SDLLanguage!
                                                          - - - - -

                                                          - +ZH_CN -

                                                          - -

                                                          @abstract Mandarin - China

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)ZH_CN;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func zh_CN() -> SDLLanguage!
                                                          - - - - -

                                                          - +ZH_TW -

                                                          - -

                                                          @abstract Mandarin - Taiwan

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)ZH_TW;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func zh_TW() -> SDLLanguage!
                                                          - - - - -

                                                          - +JA_JP -

                                                          - -

                                                          @abstract Japanese - Japan

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)JA_JP;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func ja_JP() -> SDLLanguage!
                                                          - - - - -

                                                          - +AR_SA -

                                                          - -

                                                          @abstract Arabic - Saudi Arabia

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)AR_SA;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func ar_SA() -> SDLLanguage!
                                                          - - - - -

                                                          - +KO_KR -

                                                          - -

                                                          @abstract Korean - South Korea

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)KO_KR;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func ko_KR() -> SDLLanguage!
                                                          - - - - -

                                                          - +PT_BR -

                                                          - -

                                                          @abstract Portuguese - Brazil

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)PT_BR;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func pt_BR() -> SDLLanguage!
                                                          - - - - -

                                                          - +CS_CZ -

                                                          - -

                                                          @abstract Czech - Czech Republic

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)CS_CZ;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func cs_CZ() -> SDLLanguage!
                                                          - - - - -

                                                          - +DA_DK -

                                                          - -

                                                          @abstract Danish - Denmark

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)DA_DK;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func da_DK() -> SDLLanguage!
                                                          - - - - -

                                                          - +NO_NO -

                                                          - -

                                                          @abstract Norwegian - Norway

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLanguage *)NO_NO;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func no_NO() -> SDLLanguage!
                                                          - - - - -
                                                          diff --git a/docs/Classes/SDLLayoutMode.html b/docs/Classes/SDLLayoutMode.html deleted file mode 100644 index 6fa61cc8e..000000000 --- a/docs/Classes/SDLLayoutMode.html +++ /dev/null @@ -1,143 +0,0 @@ -

                                                          SDLLayoutMode Class Reference

                                                          - -

                                                          Section Contents

                                                          - - - -

                                                          Overview

                                                          - -

                                                          For touchscreen interactions, the mode of how the choices are presented.

                                                          - -

                                                          @since SDL 3.0

                                                          - - -
                                                          -

                                                          - +valueOf: -

                                                          - -

                                                          Undocumented

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          @interface SDLLayoutMode : SDLEnum
                                                          - - - - - -

                                                          - +values -

                                                          - -

                                                          Undocumented

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          @interface SDLLayoutMode : SDLEnum
                                                          - - - - - -

                                                          - +ICON_ONLY -

                                                          - -

                                                          This mode causes the interaction to display the previous set of choices as icons.

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLayoutMode *)ICON_ONLY;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func icon_ONLY() -> SDLLayoutMode!
                                                          - - - - - - -

                                                          This mode causes the interaction to display the previous set of choices as icons along with a search field in the HMI.

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLayoutMode *)ICON_WITH_SEARCH;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func icon_WITH_SEARCH() -> SDLLayoutMode!
                                                          - - - - -

                                                          - +LIST_ONLY -

                                                          - -

                                                          This mode causes the interaction to display the previous set of choices as a list.

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLayoutMode *)LIST_ONLY;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func list_ONLY() -> SDLLayoutMode!
                                                          - - - - - - -

                                                          This mode causes the interaction to display the previous set of choices as a list along with a search field in the HMI.

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLayoutMode *)LIST_WITH_SEARCH;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func list_WITH_SEARCH() -> SDLLayoutMode!
                                                          - - - - -

                                                          - +KEYBOARD -

                                                          - -

                                                          This mode causes the interaction to immediately display a keyboard entry through the HMI.

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLLayoutMode *)KEYBOARD;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func keyboard() -> SDLLayoutMode!
                                                          - - - - -
                                                          diff --git a/docs/Classes/SDLLifecycleConfiguration.html b/docs/Classes/SDLLifecycleConfiguration.html index a2f02a81b..85fe3b465 100644 --- a/docs/Classes/SDLLifecycleConfiguration.html +++ b/docs/Classes/SDLLifecycleConfiguration.html @@ -20,8 +20,6 @@

                                                          Section Contents

                                                        • shortAppName
                                                        • ttsName
                                                        • voiceRecognitionCommandNames
                                                        • -
                                                        • securityManagers
                                                        • -
                                                        • logFlags

                                                        Overview

                                                        @@ -60,7 +58,7 @@

                                                        Objective-C

                                                        Swift

                                                        -
                                                        class func defaultConfiguration(withAppName appName: String, appId: String) -> SDLLifecycleConfiguration
                                                        +
                                                        /*not inherited*/ init(appName: String, appId: String)
                                                        @@ -93,7 +91,7 @@

                                                        Objective-C

                                                        Swift

                                                        -
                                                        class func debugConfiguration(withAppName appName: String, appId: String, ipAddress: String, port: UInt16) -> SDLLifecycleConfiguration
                                                        +
                                                        /*not inherited*/ init(appName: String, appId: String, ipAddress: String, port: UInt16)
                                                        @@ -249,11 +247,11 @@

                                                        Objective-C

                                                        -
                                                        @property (readwrite, strong, nonatomic, null_resettable) SDLAppHMIType *appType;
                                                        +
                                                        @property (readwrite, strong, nonatomic, null_resettable) SDLAppHMIType appType;

                                                        Swift

                                                        -
                                                        var appType: SDLAppHMIType! { get set }
                                                        +
                                                        var appType: SDLAppHMIType! { get set }
                                                        @@ -267,11 +265,11 @@

                                                        Objective-C

                                                        -
                                                        @property (readwrite, strong, nonatomic) SDLLanguage *_Nonnull language;
                                                        +
                                                        @property (readwrite, strong, nonatomic) SDLLanguage _Nonnull language;

                                                        Swift

                                                        -
                                                        var language: SDLLanguage { get set }
                                                        +
                                                        var language: SDLLanguage { get set }
                                                        @@ -286,11 +284,11 @@

                                                        Objective-C

                                                        @property (readwrite, strong, nonatomic)
                                                        -    NSArray<SDLLanguage *> *_Nonnull languagesSupported;
                                                        + NSArray<SDLLanguage> *_Nonnull languagesSupported;

                                                        Swift

                                                        -
                                                        var languagesSupported: [SDLLanguage] { get set }
                                                        +
                                                        var languagesSupported: [SDLLanguage] { get set }
                                                        @@ -368,38 +366,4 @@

                                                        Swift

                                                        -

                                                        - securityManagers -

                                                        - -

                                                        Set security managers which could be used. This is primarily used with video streaming applications to authenticate and perhaps encrypt traffic data.

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        @property (readwrite, copy, nonatomic, nullable)
                                                        -    NSArray<Class<SDLSecurityType>> *securityManagers;
                                                        - - - - - -

                                                        - logFlags -

                                                        - -

                                                        Which logging capabilities are currently enabled. The default is Console logging only.

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        @property (assign, readwrite, nonatomic) SDLLogOutput logFlags;
                                                        - - -

                                                        Swift

                                                        -
                                                        var logFlags: SDLLogOutput { get set }
                                                        - - - -
                                                        diff --git a/docs/Classes/SDLListFiles.html b/docs/Classes/SDLListFiles.html deleted file mode 100644 index 555405db2..000000000 --- a/docs/Classes/SDLListFiles.html +++ /dev/null @@ -1,62 +0,0 @@ -

                                                        SDLListFiles Class Reference

                                                        - -

                                                        Section Contents

                                                        - - - -

                                                        Overview

                                                        - -

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

                                                        - -

                                                        Since SmartDeviceLink 2.0

                                                        - - -
                                                        -

                                                        - -init -

                                                        - -

                                                        Constructs a new SDLListFiles object

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        - (instancetype)init;
                                                        - - -

                                                        Swift

                                                        -
                                                        init!()
                                                        - - - - -

                                                        - -initWithDictionary: -

                                                        - -

                                                        Constructs a new SDLListFiles object indicated by the dictionary parameter -

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                        - - -

                                                        Swift

                                                        -
                                                        init!(dictionary dict: NSMutableDictionary!)
                                                        - - - -

                                                        Parameters

                                                        -
                                                        -
                                                        dict
                                                        -

                                                        The dictionary to use

                                                        -
                                                        - -
                                                        diff --git a/docs/Classes/SDLListFilesResponse.html b/docs/Classes/SDLListFilesResponse.html index 9b2157794..44fdfd143 100644 --- a/docs/Classes/SDLListFilesResponse.html +++ b/docs/Classes/SDLListFilesResponse.html @@ -3,8 +3,6 @@

                                                        SDLListFilesResponse Class Reference

                                                        Section Contents

                                                        @@ -17,36 +15,6 @@

                                                        Overview

                                                        -

                                                        - -init -

                                                        - -

                                                        Undocumented

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        @interface SDLListFilesResponse : SDLRPCResponse
                                                        - - - - - -

                                                        - -initWithDictionary: -

                                                        - -

                                                        Undocumented

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        @interface SDLListFilesResponse : SDLRPCResponse
                                                        - - - - -

                                                        filenames

                                                        diff --git a/docs/Classes/SDLLocationCoordinate.html b/docs/Classes/SDLLocationCoordinate.html index 91d28e65f..f55bbc59a 100644 --- a/docs/Classes/SDLLocationCoordinate.html +++ b/docs/Classes/SDLLocationCoordinate.html @@ -24,11 +24,12 @@

                                                        Objective-C

                                                        -
                                                        @property (readwrite, copy, nonatomic) NSNumber<SDLFloat> *latitudeDegrees;
                                                        +
                                                        @property (readwrite, copy, nonatomic)
                                                        +    NSNumber<SDLFloat> *_Nonnull latitudeDegrees;

                                                        Swift

                                                        -
                                                        @NSCopying var latitudeDegrees: (NSNumber 
                                                        +
                                                        @NSCopying var latitudeDegrees: NSNumber 
                                                        @@ -44,11 +45,12 @@

                                                        Objective-C

                                                        -
                                                        @property (readwrite, copy, nonatomic) NSNumber<SDLFloat> *longitudeDegrees;
                                                        +
                                                        @property (readwrite, copy, nonatomic)
                                                        +    NSNumber<SDLFloat> *_Nonnull longitudeDegrees;

                                                        Swift

                                                        -
                                                        @NSCopying var longitudeDegrees: (NSNumber 
                                                        +
                                                        @NSCopying var longitudeDegrees: NSNumber 
                                                        diff --git a/docs/Classes/SDLLocationDetails.html b/docs/Classes/SDLLocationDetails.html index 45b5c0a9d..3cc7369b1 100644 --- a/docs/Classes/SDLLocationDetails.html +++ b/docs/Classes/SDLLocationDetails.html @@ -34,11 +34,12 @@

                                                        Objective-C

                                                        -
                                                        @property (readwrite, strong, nonatomic) SDLLocationCoordinate *coordinate;
                                                        +
                                                        @property (readwrite, strong, nonatomic, nullable)
                                                        +    SDLLocationCoordinate *coordinate;

                                                        Swift

                                                        -
                                                        var coordinate: SDLLocationCoordinate! { get set }
                                                        +
                                                        var coordinate: SDLLocationCoordinate? { get set }
                                                        @@ -54,11 +55,11 @@

                                                        Objective-C

                                                        -
                                                        @property (readwrite, copy, nonatomic) NSString *locationName;
                                                        +
                                                        @property (readwrite, copy, nonatomic, nullable) NSString *locationName;

                                                        Swift

                                                        -
                                                        var locationName: String! { get set }
                                                        +
                                                        var locationName: String? { get set }
                                                        @@ -74,11 +75,12 @@

                                                        Objective-C

                                                        -
                                                        @property (readwrite, copy, nonatomic) NSArray<NSString *> *addressLines;
                                                        +
                                                        @property (readwrite, copy, nonatomic, nullable)
                                                        +    NSArray<NSString *> *addressLines;

                                                        Swift

                                                        -
                                                        var addressLines: [String]! { get set }
                                                        +
                                                        var addressLines: [String]? { get set }
                                                        @@ -94,11 +96,11 @@

                                                        Objective-C

                                                        -
                                                        @property (readwrite, copy, nonatomic) NSString *locationDescription;
                                                        +
                                                        @property (readwrite, copy, nonatomic, nullable) NSString *locationDescription;

                                                        Swift

                                                        -
                                                        var locationDescription: String! { get set }
                                                        +
                                                        var locationDescription: String? { get set }
                                                        @@ -114,11 +116,11 @@

                                                        Objective-C

                                                        -
                                                        @property (readwrite, copy, nonatomic) NSString *phoneNumber;
                                                        +
                                                        @property (readwrite, copy, nonatomic, nullable) NSString *phoneNumber;

                                                        Swift

                                                        -
                                                        var phoneNumber: String! { get set }
                                                        +
                                                        var phoneNumber: String? { get set }
                                                        @@ -139,11 +141,11 @@

                                                        Objective-C

                                                        -
                                                        @property (readwrite, strong, nonatomic) SDLImage *locationImage;
                                                        +
                                                        @property (readwrite, strong, nonatomic, nullable) SDLImage *locationImage;

                                                        Swift

                                                        -
                                                        var locationImage: SDLImage! { get set }
                                                        +
                                                        var locationImage: SDLImage? { get set }
                                                        @@ -164,11 +166,12 @@

                                                        Objective-C

                                                        -
                                                        @property (readwrite, strong, atomic) SDLOasisAddress *searchAddress;
                                                        +
                                                        @property (readwrite, strong, nonatomic, nullable)
                                                        +    SDLOasisAddress *searchAddress;

                                                        Swift

                                                        -
                                                        var searchAddress: SDLOasisAddress! { get set }
                                                        +
                                                        var searchAddress: SDLOasisAddress? { get set }
                                                        diff --git a/docs/Classes/SDLLockScreenStatus.html b/docs/Classes/SDLLockScreenStatus.html deleted file mode 100644 index 13353a8d6..000000000 --- a/docs/Classes/SDLLockScreenStatus.html +++ /dev/null @@ -1,95 +0,0 @@ -

                                                        SDLLockScreenStatus Class Reference

                                                        - -

                                                        Section Contents

                                                        - - - -

                                                        Overview

                                                        - -

                                                        Undocumented

                                                        - - -
                                                        -

                                                        - +valueOf: -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - +values -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - +OFF -

                                                        - -

                                                        LockScreen is Not Required

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLLockScreenStatus *)OFF;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func off() -> SDLLockScreenStatus!
                                                        - - - - -

                                                        - +OPTIONAL -

                                                        - -

                                                        LockScreen is Optional

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLLockScreenStatus *)OPTIONAL;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func optional() -> SDLLockScreenStatus!
                                                        - - - - -

                                                        - +REQUIRED -

                                                        - -

                                                        LockScreen is Not Required

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLLockScreenStatus *)REQUIRED;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func required() -> SDLLockScreenStatus!
                                                        - - - - -
                                                        diff --git a/docs/Classes/SDLLogConfiguration.html b/docs/Classes/SDLLogConfiguration.html new file mode 100644 index 000000000..ba89b0ee2 --- /dev/null +++ b/docs/Classes/SDLLogConfiguration.html @@ -0,0 +1,197 @@ +

                                                        SDLLogConfiguration Class Reference

                                                        + +

                                                        Section Contents

                                                        + + + +

                                                        Overview

                                                        + +

                                                        Undocumented

                                                        + + +
                                                        +

                                                        + modules +

                                                        + +

                                                        Any custom logging modules used by the developer’s code. Defaults to none.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        @property (readwrite, copy, nonatomic)
                                                        +    NSSet<SDLLogFileModule *> *_Nonnull modules;
                                                        + + +

                                                        Swift

                                                        +
                                                        var modules: Set
                                                        + + + + +

                                                        + targets +

                                                        + +

                                                        Where the logs will attempt to output. Defaults to Console.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        @property (readwrite, copy, nonatomic) NSSet<id<SDLLogTarget>> *_Nonnull targets;
                                                        + + +

                                                        Swift

                                                        +
                                                        var targets: Set
                                                        + + + + +

                                                        + filters +

                                                        + +

                                                        What log filters will run over this session. Defaults to none.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        @property (readwrite, copy, nonatomic) NSSet<SDLLogFilter *> *_Nonnull filters;
                                                        + + +

                                                        Swift

                                                        +
                                                        var filters: Set
                                                        + + + + +

                                                        + formatType +

                                                        + +

                                                        How detailed of logs will be output. Defaults to Default.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        @property (assign, readwrite, nonatomic) SDLLogFormatType formatType;
                                                        + + +

                                                        Swift

                                                        +
                                                        var formatType: SDLLogFormatType { get set }
                                                        + + + + +

                                                        + asynchronous +

                                                        + +

                                                        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.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        @property (getter=isAsynchronous, assign, readwrite, nonatomic)
                                                        +    BOOL asynchronous;
                                                        + + +

                                                        Swift

                                                        +
                                                        var isAsynchronous: Bool { get set }
                                                        + + + + +

                                                        + errorsAsynchronous +

                                                        + +

                                                        Whether or not error logs will be dispatched to loggers asynchronously. Defaults to NO.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        @property (getter=areErrorsAsynchronous, assign, readwrite, nonatomic)
                                                        +    BOOL errorsAsynchronous;
                                                        + + +

                                                        Swift

                                                        +
                                                        var areErrorsAsynchronous: Bool { get set }
                                                        + + + + +

                                                        + globalLogLevel +

                                                        + +

                                                        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.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        @property (assign, readwrite, nonatomic) SDLLogLevel globalLogLevel;
                                                        + + +

                                                        Swift

                                                        +
                                                        var globalLogLevel: SDLLogLevel { get set }
                                                        + + + + +

                                                        + +defaultConfiguration +

                                                        + +

                                                        A default logger for production. This sets the format type to Default, the log level to Error, and only enables the ASL logger.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        + (nonnull instancetype)defaultConfiguration;
                                                        + + +

                                                        Swift

                                                        +
                                                        class func `default`() -> Self
                                                        + + + +
                                                        +

                                                        Return Value

                                                        +

                                                        A default configuration that may be customized.

                                                        +
                                                        + +

                                                        + +debugConfiguration +

                                                        + +

                                                        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.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        + (nonnull instancetype)debugConfiguration;
                                                        + + +

                                                        Swift

                                                        +
                                                        class func debug() -> Self
                                                        + + + +
                                                        +

                                                        Return Value

                                                        +

                                                        A debug configuration that may be customized.

                                                        +
                                                        + +
                                                        diff --git a/docs/Classes/SDLLogFileModule.html b/docs/Classes/SDLLogFileModule.html new file mode 100644 index 000000000..cfb960466 --- /dev/null +++ b/docs/Classes/SDLLogFileModule.html @@ -0,0 +1,212 @@ +

                                                        SDLLogFileModule Class Reference

                                                        + +

                                                        Section Contents

                                                        + + + +

                                                        Overview

                                                        + +

                                                        Undocumented

                                                        + + +
                                                        +

                                                        + name +

                                                        + +

                                                        The name of the this module, e.g. Transport

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        @property (readonly, copy, nonatomic) NSString *_Nonnull name;
                                                        + + +

                                                        Swift

                                                        +
                                                        var name: String { get }
                                                        + + + + +

                                                        + files +

                                                        + +

                                                        All of the files contained within this module. When a log is logged, the __FILE__ (in Obj-C) or #file (in Swift) is automatically captured and checked to see if any module has a file in this set that matches. If it does, it will be logged using the module’s log level and the module’s name will be printed in the formatted log.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        @property (readonly, copy, nonatomic) NSSet<NSString *> *_Nonnull files;
                                                        + + +

                                                        Swift

                                                        +
                                                        var files: Set
                                                        + + + + +

                                                        + logLevel +

                                                        + +

                                                        The custom level of the log. This is SDLLogLevelDefault (whatever the current global log level is) by default.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        @property (assign, readwrite, nonatomic) SDLLogLevel logLevel;
                                                        + + +

                                                        Swift

                                                        +
                                                        var logLevel: SDLLogLevel { get set }
                                                        + + + + +

                                                        + -init +

                                                        + +

                                                        This method is unavailable and may not be used.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        - (nonnull instancetype)init;
                                                        + + + + +
                                                        +

                                                        Return Value

                                                        +

                                                        Always returns nil

                                                        +
                                                        + +

                                                        + -initWithName:files:level: +

                                                        + +

                                                        Returns an initialized SDLLogFileModule that contains a custom name, set of files, and associated log level.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        - (nonnull instancetype)initWithName:(nonnull NSString *)name
                                                        +                               files:(nonnull NSSet<NSString *> *)files
                                                        +                               level:(SDLLogLevel)level;
                                                        + + +

                                                        Swift

                                                        +
                                                        init(name: String, files: Set
                                                        + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        name
                                                        +

                                                        The name of this module. This will be used when printing a formatted log for a file within this module e.g. Transport.

                                                        +
                                                        files
                                                        +

                                                        The files this module covers. This should correspond to a __FILE__ or #file call for use when comparing a log to this module. Any log originating in a file contained in this set will then use this module’s log level and print the module name.

                                                        +
                                                        level
                                                        +

                                                        The custom logging level logs originating in files contained in this log module will use. For example, if the global level is SDLLogLevelError and this module is configured to SDLLogLevelVerbose, all logs originating from files within this module will be logged, not merely error logs.

                                                        +
                                                        +
                                                        +

                                                        Return Value

                                                        +

                                                        An initialized SDLLogFileModule

                                                        +
                                                        + +

                                                        + -initWithName:files: +

                                                        + +

                                                        Returns an initialized SDLLogFileModule that contains a custom name and set of files. The logging level is the same as the current global logging file by using SDLLogLevelDefault.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        - (nonnull instancetype)initWithName:(nonnull NSString *)name
                                                        +                               files:(nonnull NSSet<NSString *> *)files;
                                                        + + +

                                                        Swift

                                                        +
                                                        convenience init(name: String, files: Set
                                                        + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        name
                                                        +

                                                        The name of this module. This will be used when printing a formatted log for a file within this module e.g. Transport.

                                                        +
                                                        files
                                                        +

                                                        The files this module covers. This should correspond to a __FILE__ or #file call for use when comparing a log to this module. Any log originating in a file contained in this set will then use this module’s log level and print the module name.

                                                        +
                                                        +
                                                        +

                                                        Return Value

                                                        +

                                                        An initialized SDLLogFileModule

                                                        +
                                                        + +

                                                        + +moduleWithName:files: +

                                                        + +

                                                        Returns an initialized SDLLogFileModule that contains a custom name and set of files. The logging level is the same as the current global logging file by using SDLLogLevelDefault.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        + (nonnull instancetype)moduleWithName:(nonnull NSString *)name
                                                        +                                 files:(nonnull NSSet<NSString *> *)files;
                                                        + + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        name
                                                        +

                                                        The name of this module. This will be used when printing a formatted log for a file within this module e.g. Transport.

                                                        +
                                                        files
                                                        +

                                                        The files this module covers. This should correspond to a __FILE__ or #file call for use when comparing a log to this module. Any log originating in a file contained in this set will then use this module’s log level and print the module name.

                                                        +
                                                        +
                                                        +

                                                        Return Value

                                                        +

                                                        An initialized SDLLogFileModule

                                                        +
                                                        + +

                                                        + -containsFile: +

                                                        + +

                                                        Returns whether or not this module contains a given file.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        - (BOOL)containsFile:(nonnull NSString *)fileName;
                                                        + + +

                                                        Swift

                                                        +
                                                        func containsFile(_ fileName: String) -> Bool
                                                        + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        fileName
                                                        +

                                                        The file name to check

                                                        +
                                                        +
                                                        +

                                                        Return Value

                                                        +

                                                        A BOOL, YES if this module contains the given file.

                                                        +
                                                        + +
                                                        diff --git a/docs/Classes/SDLLogFilter.html b/docs/Classes/SDLLogFilter.html new file mode 100644 index 000000000..ed1301fc7 --- /dev/null +++ b/docs/Classes/SDLLogFilter.html @@ -0,0 +1,302 @@ +

                                                        SDLLogFilter Class Reference

                                                        + +

                                                        Section Contents

                                                        + + + +

                                                        Overview

                                                        + +

                                                        Undocumented

                                                        + + +
                                                        +

                                                        + filter +

                                                        + +

                                                        Undocumented

                                                        + + + + + + +

                                                        + -init +

                                                        + +

                                                        Undocumented

                                                        + + + + + + +

                                                        + -initWithCustomFilter: +

                                                        + +

                                                        Create a new filter with a custom filter block. The filter block will take a log model and return a BOOL of pass / fail.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        - (nonnull instancetype)initWithCustomFilter:(nonnull SDLLogFilterBlock)filter;
                                                        + + +

                                                        Swift

                                                        +
                                                        init(customFilter filter: @escaping SDLLogFilterBlock)
                                                        + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        filter
                                                        +

                                                        The custom filter to be used

                                                        +
                                                        +
                                                        +

                                                        Return Value

                                                        +

                                                        An instance of SDLLogFilter

                                                        +
                                                        + +

                                                        + +filterByDisallowingString:caseSensitive: +

                                                        + +

                                                        Returns a filter that only allows logs not containing the passed string within their message.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        + (nonnull SDLLogFilter *)filterByDisallowingString:(nonnull NSString *)string
                                                        +                                      caseSensitive:(BOOL)caseSensitive;
                                                        + + +

                                                        Swift

                                                        +
                                                        /*not inherited*/ init(byDisallowingString string: String, caseSensitive: Bool)
                                                        + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        string
                                                        +

                                                        The string, which, if present in the message of the log, will prevent the log from being logged.

                                                        +
                                                        caseSensitive
                                                        +

                                                        Whether or not string should be checked as case sensitive against the log’s message.

                                                        +
                                                        +
                                                        +

                                                        Return Value

                                                        +

                                                        A filter that may be passed into the logConfiguration.

                                                        +
                                                        + +

                                                        + +filterByAllowingString:caseSensitive: +

                                                        + +

                                                        Returns a filter that only allows logs containing the passed string within their message.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        + (nonnull SDLLogFilter *)filterByAllowingString:(nonnull NSString *)string
                                                        +                                   caseSensitive:(BOOL)caseSensitive;
                                                        + + +

                                                        Swift

                                                        +
                                                        /*not inherited*/ init(byAllowing string: String, caseSensitive: Bool)
                                                        + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        string
                                                        +

                                                        The string, which, if present in the message of the log, will allow the log to be logged.

                                                        +
                                                        caseSensitive
                                                        +

                                                        Whether or not string should be checked as case sensitive against the log’s message.

                                                        +
                                                        +
                                                        +

                                                        Return Value

                                                        +

                                                        A filter that may be passed into the logConfiguration.

                                                        +
                                                        + +

                                                        + +filterByDisallowingRegex: +

                                                        + +

                                                        Returns a filter that only allows logs not passing the passed regex against their message.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        + (nonnull SDLLogFilter *)filterByDisallowingRegex:
                                                        +    (nonnull NSRegularExpression *)regex;
                                                        + + +

                                                        Swift

                                                        +
                                                        /*not inherited*/ init(byDisallowingRegex regex: NSRegularExpression)
                                                        + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        regex
                                                        +

                                                        The regex, which, if it matches the message of the log, will prevent the log from being logged.

                                                        +
                                                        +
                                                        +

                                                        Return Value

                                                        +

                                                        A filter that may be passed into the logConfiguration.

                                                        +
                                                        + +

                                                        + +filterByAllowingRegex: +

                                                        + +

                                                        Returns a filter that only allows logs passing the passed regex against their message.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        + (nonnull SDLLogFilter *)filterByAllowingRegex:
                                                        +    (nonnull NSRegularExpression *)regex;
                                                        + + +

                                                        Swift

                                                        +
                                                        /*not inherited*/ init(byAllowingRegex regex: NSRegularExpression)
                                                        + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        regex
                                                        +

                                                        The regex, which, if it matches the message of the log, will allow the log to be logged.

                                                        +
                                                        +
                                                        +

                                                        Return Value

                                                        +

                                                        A filter that may be passed into the logConfiguration.

                                                        +
                                                        + +

                                                        + +filterByDisallowingModules: +

                                                        + +

                                                        Returns a filter that only allows logs not within the specified file modules to be logged.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        + (nonnull SDLLogFilter *)filterByDisallowingModules:
                                                        +    (nonnull NSSet<NSString *> *)modules;
                                                        + + +

                                                        Swift

                                                        +
                                                        /*not inherited*/ init(byDisallowingModules modules: Set
                                                        + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        modules
                                                        +

                                                        A set of module names. If any match, they will not be logged.

                                                        +
                                                        +
                                                        +

                                                        Return Value

                                                        +

                                                        A filter that may be passed into the logConfiguration.

                                                        +
                                                        + +

                                                        + +filterByAllowingModules: +

                                                        + +

                                                        Returns a filter that only allows logs of the specified file modules to be logged.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        + (nonnull SDLLogFilter *)filterByAllowingModules:
                                                        +    (nonnull NSSet<NSString *> *)modules;
                                                        + + +

                                                        Swift

                                                        +
                                                        /*not inherited*/ init(byAllowingModules modules: Set
                                                        + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        modules
                                                        +

                                                        A set of module names. If any match, they will not be logged.

                                                        +
                                                        +
                                                        +

                                                        Return Value

                                                        +

                                                        A filter that may be passed into the logConfiguration.

                                                        +
                                                        + +

                                                        + +filterByDisallowingFileNames: +

                                                        + +

                                                        Returns a filter that only allows logs not within the specified files to be logged.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        + (nonnull SDLLogFilter *)filterByDisallowingFileNames:
                                                        +    (nonnull NSSet<NSString *> *)fileNames;
                                                        + + +

                                                        Swift

                                                        +
                                                        /*not inherited*/ init(byDisallowingFileNames fileNames: Set
                                                        + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        fileNames
                                                        +

                                                        If a log matches any of the passed files, the log will not be logged.

                                                        +
                                                        +
                                                        +

                                                        Return Value

                                                        +

                                                        A filter that may be passed into the logConfiguration.

                                                        +
                                                        + +

                                                        + +filterByAllowingFileNames: +

                                                        + +

                                                        Returns a filter that only allows logs within the specified files to be logged.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        + (nonnull SDLLogFilter *)filterByAllowingFileNames:
                                                        +    (nonnull NSSet<NSString *> *)fileNames;
                                                        + + +

                                                        Swift

                                                        +
                                                        /*not inherited*/ init(byAllowingFileNames fileNames: Set
                                                        + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        fileNames
                                                        +

                                                        If a log matches any of the passed files, the log will be logged.

                                                        +
                                                        +
                                                        +

                                                        Return Value

                                                        +

                                                        A filter that may be passed into the logConfiguration.

                                                        +
                                                        + +
                                                        diff --git a/docs/Classes/SDLLogManager.html b/docs/Classes/SDLLogManager.html new file mode 100644 index 000000000..afdc013e3 --- /dev/null +++ b/docs/Classes/SDLLogManager.html @@ -0,0 +1,471 @@ +

                                                        SDLLogManager Class Reference

                                                        + +

                                                        Section Contents

                                                        + + + +

                                                        Overview

                                                        + +

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

                                                        + + +
                                                        +

                                                        + modules +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        @interface SDLLogManager : NSObject
                                                        + + + + + +

                                                        + targets +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        @interface SDLLogManager : NSObject
                                                        + + + + + +

                                                        + filters +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        @interface SDLLogManager : NSObject
                                                        + + + + + +

                                                        + globalLogLevel +

                                                        + +

                                                        Any modules that do not have an explicitly specified level will by default use this log level

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        @property (readonly, assign, nonatomic) SDLLogLevel globalLogLevel;
                                                        + + +

                                                        Swift

                                                        +
                                                        var globalLogLevel: SDLLogLevel { get }
                                                        + + + + +

                                                        + formatType +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        @interface SDLLogManager : NSObject
                                                        + + + + + +

                                                        + asynchronous +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        @interface SDLLogManager : NSObject
                                                        + + + + + +

                                                        + errorsAsynchronous +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        @interface SDLLogManager : NSObject
                                                        + + + + + +

                                                        + dateFormatter +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        @interface SDLLogManager : NSObject
                                                        + + + + + +

                                                        + logQueue +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        @interface SDLLogManager : NSObject
                                                        + + + + + +

                                                        + +sharedManager +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        @interface SDLLogManager : NSObject
                                                        + + + + + +

                                                        + +setConfiguration: +

                                                        + +

                                                        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.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        + (void)setConfiguration:(nonnull SDLLogConfiguration *)configuration;
                                                        + + +

                                                        Swift

                                                        +
                                                        class func setConfiguration(_ configuration: SDLLogConfiguration)
                                                        + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        configuration
                                                        +

                                                        The configuration to be used.

                                                        +
                                                        + +

                                                        + -setConfiguration: +

                                                        + +

                                                        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.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        - (void)setConfiguration:(nonnull SDLLogConfiguration *)configuration;
                                                        + + +

                                                        Swift

                                                        +
                                                        func setConfiguration(_ configuration: SDLLogConfiguration)
                                                        + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        configuration
                                                        +

                                                        The configuration to be used.

                                                        +
                                                        + +

                                                        + +logWithLevel:timestamp:file:functionName:line:queue:formatMessage: +

                                                        + +

                                                        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 SDLLogD.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        + (void)logWithLevel:(SDLLogLevel)level
                                                        +           timestamp:(nonnull NSDate *)timestamp
                                                        +                file:(nonnull NSString *)file
                                                        +        functionName:(nonnull NSString *)functionName
                                                        +                line:(NSInteger)line
                                                        +               queue:(nonnull NSString *)queueLabel
                                                        +       formatMessage:(nonnull NSString *)message, ...;
                                                        + + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        level
                                                        +

                                                        The level of the log

                                                        +
                                                        timestamp
                                                        +

                                                        The time the log was sent

                                                        +
                                                        file
                                                        +

                                                        The file the log originated from

                                                        +
                                                        functionName
                                                        +

                                                        The function the log originated from

                                                        +
                                                        line
                                                        +

                                                        The line the log originated from

                                                        +
                                                        queueLabel
                                                        +

                                                        The queue the log was sent from

                                                        +
                                                        message
                                                        +

                                                        The message of the log with a format

                                                        +
                                                        + +

                                                        + -logWithLevel:timestamp:file:functionName:line:queue:formatMessage: +

                                                        + +

                                                        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 SDLLogD.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        - (void)logWithLevel:(SDLLogLevel)level
                                                        +           timestamp:(nonnull NSDate *)timestamp
                                                        +                file:(nonnull NSString *)file
                                                        +        functionName:(nonnull NSString *)functionName
                                                        +                line:(NSInteger)line
                                                        +               queue:(nonnull NSString *)queueLabel
                                                        +       formatMessage:(nonnull NSString *)message, ...;
                                                        + + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        level
                                                        +

                                                        The level of the log

                                                        +
                                                        timestamp
                                                        +

                                                        The time the log was sent

                                                        +
                                                        file
                                                        +

                                                        The file the log originated from

                                                        +
                                                        functionName
                                                        +

                                                        The function the log originated from

                                                        +
                                                        line
                                                        +

                                                        The line the log originated from

                                                        +
                                                        queueLabel
                                                        +

                                                        The queue the log was sent from

                                                        +
                                                        message
                                                        +

                                                        The message of the log with a format

                                                        +
                                                        + +

                                                        + +logWithLevel:timestamp:file:functionName:line:queue:message: +

                                                        + +

                                                        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 SDLLogD.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        + (void)logWithLevel:(SDLLogLevel)level
                                                        +           timestamp:(nonnull NSDate *)timestamp
                                                        +                file:(nonnull NSString *)file
                                                        +        functionName:(nonnull NSString *)functionName
                                                        +                line:(NSInteger)line
                                                        +               queue:(nonnull NSString *)queueLabel
                                                        +             message:(nonnull NSString *)message;
                                                        + + +

                                                        Swift

                                                        +
                                                        class func log(with level: SDLLogLevel, timestamp: Date, file: String, functionName: String, line: Int, queue queueLabel: String, message: String)
                                                        + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        level
                                                        +

                                                        The level of the log

                                                        +
                                                        timestamp
                                                        +

                                                        The time the log was sent

                                                        +
                                                        file
                                                        +

                                                        The file the log originated from

                                                        +
                                                        functionName
                                                        +

                                                        The function the log originated from

                                                        +
                                                        line
                                                        +

                                                        The line the log originated from

                                                        +
                                                        queueLabel
                                                        +

                                                        The queue the log was sent from

                                                        +
                                                        message
                                                        +

                                                        The message of the log

                                                        +
                                                        + +

                                                        + -logWithLevel:timestamp:file:functionName:line:queue:message: +

                                                        + +

                                                        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 SDLLogD.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        - (void)logWithLevel:(SDLLogLevel)level
                                                        +           timestamp:(nonnull NSDate *)timestamp
                                                        +                file:(nonnull NSString *)file
                                                        +        functionName:(nonnull NSString *)functionName
                                                        +                line:(NSInteger)line
                                                        +               queue:(nonnull NSString *)queueLabel
                                                        +             message:(nonnull NSString *)message;
                                                        + + +

                                                        Swift

                                                        +
                                                        func log(with level: SDLLogLevel, timestamp: Date, file: String, functionName: String, line: Int, queue queueLabel: String, message: String)
                                                        + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        level
                                                        +

                                                        The level of the log

                                                        +
                                                        timestamp
                                                        +

                                                        The time the log was sent

                                                        +
                                                        file
                                                        +

                                                        The file the log originated from

                                                        +
                                                        functionName
                                                        +

                                                        The function the log originated from

                                                        +
                                                        line
                                                        +

                                                        The line the log originated from

                                                        +
                                                        queueLabel
                                                        +

                                                        The queue the log was sent from

                                                        +
                                                        message
                                                        +

                                                        The message of the log

                                                        +
                                                        + +

                                                        + +logBytes:direction:timestamp:file:functionName:line:queue: +

                                                        + +

                                                        Log to this sharedManager’s active log targets. This is used internally to log.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        + (void)logBytes:(nonnull NSData *)data
                                                        +       direction:(SDLLogBytesDirection)direction
                                                        +       timestamp:(nonnull NSDate *)timestamp
                                                        +            file:(nonnull NSString *)file
                                                        +    functionName:(nonnull NSString *)functionName
                                                        +            line:(NSInteger)line
                                                        +           queue:(nonnull NSString *)queueLabel;
                                                        + + +

                                                        Swift

                                                        +
                                                        class func logBytes(_ data: Data, direction: SDLLogBytesDirection, timestamp: Date, file: String, functionName: String, line: Int, queue queueLabel: String)
                                                        + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        data
                                                        +

                                                        The data to be logged

                                                        +
                                                        direction
                                                        +

                                                        Whether its transmit or receive data

                                                        +
                                                        timestamp
                                                        +

                                                        The time the log was sent

                                                        +
                                                        file
                                                        +

                                                        The file the log originated from

                                                        +
                                                        functionName
                                                        +

                                                        The function the log originated from

                                                        +
                                                        line
                                                        +

                                                        The line the log originated from

                                                        +
                                                        queueLabel
                                                        +

                                                        The queue the log was sent from

                                                        +
                                                        + +

                                                        + -logBytes:direction:timestamp:file:functionName:line:queue: +

                                                        + +

                                                        Log to this manager’s active log targets. This is used internally to log.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        - (void)logBytes:(nonnull NSData *)data
                                                        +       direction:(SDLLogBytesDirection)direction
                                                        +       timestamp:(nonnull NSDate *)timestamp
                                                        +            file:(nonnull NSString *)file
                                                        +    functionName:(nonnull NSString *)functionName
                                                        +            line:(NSInteger)line
                                                        +           queue:(nonnull NSString *)queueLabel;
                                                        + + +

                                                        Swift

                                                        +
                                                        func logBytes(_ data: Data, direction: SDLLogBytesDirection, timestamp: Date, file: String, functionName: String, line: Int, queue queueLabel: String)
                                                        + + + +

                                                        Parameters

                                                        +
                                                        +
                                                        data
                                                        +

                                                        The data to be logged

                                                        +
                                                        direction
                                                        +

                                                        Whether its transmit or receive data

                                                        +
                                                        timestamp
                                                        +

                                                        The time the log was sent

                                                        +
                                                        file
                                                        +

                                                        The file the log originated from

                                                        +
                                                        functionName
                                                        +

                                                        The function the log originated from

                                                        +
                                                        line
                                                        +

                                                        The line the log originated from

                                                        +
                                                        queueLabel
                                                        +

                                                        The queue the log was sent from

                                                        +
                                                        + +
                                                        diff --git a/docs/Classes/SDLMaintenanceModeStatus.html b/docs/Classes/SDLMaintenanceModeStatus.html deleted file mode 100644 index d5773a333..000000000 --- a/docs/Classes/SDLMaintenanceModeStatus.html +++ /dev/null @@ -1,157 +0,0 @@ -

                                                        SDLMaintenanceModeStatus Class Reference

                                                        - -

                                                        Section Contents

                                                        - - - -

                                                        Overview

                                                        - -

                                                        The SDLMaintenanceModeStatus class.

                                                        - - -
                                                        -

                                                        - +valueOf: -

                                                        - -

                                                        @abstract Maintenance Mode Status

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLMaintenanceModeStatus *)valueOf:(NSString *)value;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func value(of value: String!) -> SDLMaintenanceModeStatus!
                                                        - - - -

                                                        Parameters

                                                        -
                                                        -
                                                        value
                                                        -

                                                        The value of the string to get an object for

                                                        -
                                                        -
                                                        -

                                                        Return Value

                                                        -

                                                        SDLMaintenanceModeStatus

                                                        -
                                                        - -

                                                        - +values -

                                                        - -

                                                        @abstract declare an array that store all possible Maintenance Mode Status inside

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (NSArray *)values;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func values() -> [Any]!
                                                        - - - -
                                                        -

                                                        Return Value

                                                        -

                                                        the array

                                                        -
                                                        - -

                                                        - +NORMAL -

                                                        - -

                                                        @abstract Maintenance Mode Status : Normal

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLMaintenanceModeStatus *)NORMAL;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func normal() -> SDLMaintenanceModeStatus!
                                                        - - - -
                                                        -

                                                        Return Value

                                                        -

                                                        the object with value of NORMAL

                                                        -
                                                        - -

                                                        - +NEAR -

                                                        - -

                                                        @abstract Maintenance Mode Status : Near

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLMaintenanceModeStatus *)NEAR;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func near() -> SDLMaintenanceModeStatus!
                                                        - - - -
                                                        -

                                                        Return Value

                                                        -

                                                        the object with value of NEAR

                                                        -
                                                        - -

                                                        - +ACTIVE -

                                                        - -

                                                        @abstract Maintenance Mode Status : Active

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLMaintenanceModeStatus *)ACTIVE;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func active() -> SDLMaintenanceModeStatus!
                                                        - - - -
                                                        -

                                                        Return Value

                                                        -

                                                        the object with value of ACTIVE

                                                        -
                                                        - -

                                                        - +FEATURE_NOT_PRESENT -

                                                        - -

                                                        @abstract Maintenance Mode Status : Feature not present

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        + (SDLMaintenanceModeStatus *)FEATURE_NOT_PRESENT;
                                                        - - -

                                                        Swift

                                                        -
                                                        class func feature_NOT_PRESENT() -> SDLMaintenanceModeStatus!
                                                        - - - -
                                                        -

                                                        Return Value

                                                        -

                                                        the object with value of FEATURE_NOT_PRESENT

                                                        -
                                                        - -
                                                        diff --git a/docs/Classes/SDLManager.html b/docs/Classes/SDLManager.html index 9c78435f5..2679b734a 100644 --- a/docs/Classes/SDLManager.html +++ b/docs/Classes/SDLManager.html @@ -5,6 +5,8 @@

                                                        Section Contents

                                                        • configuration
                                                        • hmiLevel
                                                        • +
                                                        • audioStreamingState
                                                        • +
                                                        • systemContext
                                                        • fileManager
                                                        • permissionManager
                                                        • streamManager
                                                        • @@ -51,11 +53,48 @@

                                                          Objective-C

                                                          -
                                                          @property (readonly, copy, nonatomic) SDLHMILevel *_Nonnull hmiLevel;
                                                          +
                                                          @property (readonly, copy, nonatomic) SDLHMILevel _Nonnull hmiLevel;

                                                          Swift

                                                          -
                                                          @NSCopying var hmiLevel: SDLHMILevel { get }
                                                          +
                                                          var hmiLevel: SDLHMILevel { get }
                                                          + + + + +

                                                          + audioStreamingState +

                                                          + +

                                                          The current audio streaming state of the running app.

                                                          + + + +

                                                          Objective-C

                                                          +
                                                          @property (readonly, copy, nonatomic)
                                                          +    SDLAudioStreamingState _Nonnull audioStreamingState;
                                                          + + +

                                                          Swift

                                                          +
                                                          var audioStreamingState: SDLAudioStreamingState { get }
                                                          + + + + +

                                                          + systemContext +

                                                          + +

                                                          The current system context of the running app.

                                                          + + + +

                                                          Objective-C

                                                          +
                                                          @property (readonly, copy, nonatomic) SDLSystemContext _Nonnull systemContext;
                                                          + + +

                                                          Swift

                                                          +
                                                          var systemContext: SDLSystemContext { get }
                                                          @@ -269,7 +308,7 @@

                                                          Objective-C

                                                          Swift

                                                          -
                                                          func send(_ request: SDLRPCRequest, withResponseHandler handler: SDLResponseHandler? = nil)
                                                          +
                                                          func send(request: SDLRPCRequest, responseHandler handler: SDLResponseHandler? = nil)
                                                          diff --git a/docs/Classes/SDLMediaClockFormat.html b/docs/Classes/SDLMediaClockFormat.html deleted file mode 100644 index fa4447faa..000000000 --- a/docs/Classes/SDLMediaClockFormat.html +++ /dev/null @@ -1,304 +0,0 @@ -

                                                          SDLMediaClockFormat Class Reference

                                                          - -

                                                          Section Contents

                                                          - - - -

                                                          Overview

                                                          - -

                                                          Indicates the format of the time displayed on the connected SDL unit.

                                                          - -

                                                          Format description follows the following nomenclature:
                                                          - Sp = Space
                                                          - | = or
                                                          - c = character

                                                          - -

                                                          @since SDL 1.0

                                                          - - -
                                                          -

                                                          - +valueOf: -

                                                          - -

                                                          @abstract Media Clock Format

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLMediaClockFormat *)valueOf:(NSString *)value;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func value(of value: String!) -> SDLMediaClockFormat!
                                                          - - - -

                                                          Parameters

                                                          -
                                                          -
                                                          value
                                                          -

                                                          The value of the string to get an object for

                                                          -
                                                          -
                                                          -

                                                          Return Value

                                                          -

                                                          SDLMediaClockFormat

                                                          -
                                                          - -

                                                          - +values -

                                                          - -

                                                          @abstract declare an array that store all possible Media clock formats inside

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (NSArray *)values;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func values() -> [Any]!
                                                          - - - -
                                                          -

                                                          Return Value

                                                          -

                                                          the array

                                                          -
                                                          - -

                                                          - +CLOCK1 -

                                                          - -

                                                          @abstract Media clock format: Clock1

                                                          - -

                                                          @discussion -

                                                            -
                                                          • maxHours = 19
                                                          • -
                                                          • maxMinutes = 59
                                                          • -
                                                          • maxSeconds = 59
                                                          • -

                                                          - -
                                                            -
                                                          • - returns: The SDLMediaClockFormat object with value CLOCK1
                                                          • -
                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLMediaClockFormat *)CLOCK1;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func clock1() -> SDLMediaClockFormat!
                                                          - - - - -

                                                          - +CLOCK2 -

                                                          - -

                                                          @abstract Media clock format: Clock2

                                                          - -

                                                          @discussion -

                                                            -
                                                          • maxHours = 59
                                                          • -
                                                          • maxMinutes = 59
                                                          • -
                                                          • maxSeconds = 59
                                                          • -

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLMediaClockFormat *)CLOCK2;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func clock2() -> SDLMediaClockFormat!
                                                          - - - -
                                                          -

                                                          Return Value

                                                          -

                                                          The SDLMediaClockFormat object with value CLOCK2

                                                          -
                                                          - -

                                                          - +CLOCK3 -

                                                          - -

                                                          @abstract Media clock format: Clock3

                                                          - -

                                                          @discussion -

                                                            -
                                                          • maxHours = 9
                                                          • -
                                                          • maxMinutes = 59
                                                          • -
                                                          • maxSeconds = 59
                                                          • -

                                                          - -

                                                          @since SDL 2.0

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLMediaClockFormat *)CLOCK3;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func clock3() -> SDLMediaClockFormat!
                                                          - - - -
                                                          -

                                                          Return Value

                                                          -

                                                          The SDLMediaClockFormat object with value CLOCK3

                                                          -
                                                          - -

                                                          - +CLOCKTEXT1 -

                                                          - -

                                                          @abstract Media clock format: ClockText1

                                                          - -

                                                          @discussion -

                                                            -
                                                          • 5 characters possible
                                                          • -
                                                          • Format: 1|sp c :|sp c c
                                                          • -
                                                          • 1|sp : digit 1 or space
                                                          • -
                                                          • c : character out of following character set: sp|0-9|[letters, see - TypeII column in XLS.
                                                          • -
                                                          • :|sp : colon or space
                                                          • -
                                                          • used for Type II headunit
                                                          • -

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLMediaClockFormat *)CLOCKTEXT1;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func clocktext1() -> SDLMediaClockFormat!
                                                          - - - -
                                                          -

                                                          Return Value

                                                          -

                                                          The SDLMediaClockFormat object with value CLOCKTEXT1

                                                          -
                                                          - -

                                                          - +CLOCKTEXT2 -

                                                          - -

                                                          @abstract Media clock format: ClockText2

                                                          - -

                                                          @discussion -

                                                            -
                                                          • 5 characters possible
                                                          • -
                                                          • Format: 1|sp c :|sp c c
                                                          • -
                                                          • 1|sp : digit 1 or space
                                                          • -
                                                          • c : character out of following character set: sp|0-9|[letters, see - CID column in XLS.
                                                          • -
                                                          • :|sp : colon or space
                                                          • -
                                                          • used for CID headunit
                                                          • -
                                                          - difference between CLOCKTEXT1 and CLOCKTEXT2 is the supported character - set

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLMediaClockFormat *)CLOCKTEXT2;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func clocktext2() -> SDLMediaClockFormat!
                                                          - - - -
                                                          -

                                                          Return Value

                                                          -

                                                          The SDLMediaClockFormat object with value CLOCKTEXT2

                                                          -
                                                          - -

                                                          - +CLOCKTEXT3 -

                                                          - -

                                                          @abstract Media clock format: ClockText3

                                                          - -

                                                          @discussion -

                                                            -
                                                          • 6 chars possible
                                                          • -
                                                          • Format: 1|sp c c :|sp c c
                                                          • -
                                                          • 1|sp : digit 1 or space
                                                          • -
                                                          • c : character out of following character set: sp|0-9|[letters, see - Type 5 column in XLS].
                                                          • -
                                                          • :|sp : colon or space
                                                          • -
                                                          • used for Type V headunit
                                                          • -
                                                          - difference between CLOCKTEXT1 and CLOCKTEXT2 is the supported character - set

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLMediaClockFormat *)CLOCKTEXT3;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func clocktext3() -> SDLMediaClockFormat!
                                                          - - - -
                                                          -

                                                          Return Value

                                                          -

                                                          The SDLMediaClockFormat object with value CLOCKTEXT3

                                                          -
                                                          - -

                                                          - +CLOCKTEXT4 -

                                                          - -

                                                          @abstract Media clock format: ClockText4

                                                          - -

                                                          @discussion -

                                                            -
                                                          • 6 chars possible
                                                          • -
                                                          • Format: c :|sp c c : c c
                                                          • -
                                                          • :|sp : colon or space
                                                          • -
                                                          • c : character out of following character set: sp|0-9|[letters]
                                                          • -
                                                          • used for MFD3/4/5 headunits
                                                          • -

                                                          - -

                                                          @since SDL 2.0

                                                          - - - -

                                                          Objective-C

                                                          -
                                                          + (SDLMediaClockFormat *)CLOCKTEXT4;
                                                          - - -

                                                          Swift

                                                          -
                                                          class func clocktext4() -> SDLMediaClockFormat!
                                                          - - - -
                                                          -

                                                          Return Value

                                                          -

                                                          The SDLMediaClockFormat object with value CLOCKTEXT4

                                                          -
                                                          - -
                                                          diff --git a/docs/Classes/SDLMenuParams.html b/docs/Classes/SDLMenuParams.html index f4d86003e..cbb93a5d4 100644 --- a/docs/Classes/SDLMenuParams.html +++ b/docs/Classes/SDLMenuParams.html @@ -3,8 +3,6 @@

                                                          SDLMenuParams Class Reference

                                                          Section Contents

                                                            -
                                                          • -init
                                                          • -
                                                          • -initWithDictionary:
                                                          • -initWithMenuName:
                                                          • -initWithMenuName:parentId:position:
                                                          • parentID
                                                          • @@ -20,47 +18,6 @@

                                                            Overview

                                                            -

                                                            - -init -

                                                            - -

                                                            Constructs a newly allocated SDLMenuParams object

                                                            - - - -

                                                            Objective-C

                                                            -
                                                            - (instancetype)init;
                                                            - - -

                                                            Swift

                                                            -
                                                            init!()
                                                            - - - - -

                                                            - -initWithDictionary: -

                                                            - -

                                                            Constructs a newly allocated SDLMenuParams object indicated by the dictionary parameter

                                                            - - - -

                                                            Objective-C

                                                            -
                                                            - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                            - - -

                                                            Swift

                                                            -
                                                            init!(dictionary dict: NSMutableDictionary!)
                                                            - - - -

                                                            Parameters

                                                            -
                                                            -
                                                            dict
                                                            -

                                                            The dictionary to use

                                                            -
                                                            -

                                                            -initWithMenuName:

                                                            @@ -103,11 +60,11 @@

                                                            Objective-C

                                                            -
                                                            @property (readwrite, strong, atomic) NSNumber *parentID;
                                                            +
                                                            @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *parentID;

                                                            Swift

                                                            -
                                                            var parentID: NSNumber! { get set }
                                                            +
                                                            var parentID: (NSNumber 
                                                            @@ -131,11 +88,11 @@

                                                            Objective-C

                                                            -
                                                            @property (readwrite, strong, atomic) NSNumber *position;
                                                            +
                                                            @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *position;

                                                            Swift

                                                            -
                                                            var position: NSNumber! { get set }
                                                            +
                                                            var position: (NSNumber 
                                                            @@ -151,11 +108,11 @@

                                                            Objective-C

                                                            -
                                                            @property (readwrite, strong, atomic) NSString *menuName;
                                                            +
                                                            @property (readwrite, strong, nonatomic) NSString *_Nonnull menuName;

                                                            Swift

                                                            -
                                                            var menuName: String! { get set }
                                                            +
                                                            var menuName: String { get set }
                                                            diff --git a/docs/Classes/SDLMetadataTags.html b/docs/Classes/SDLMetadataTags.html index 932a086dc..da1bd1932 100644 --- a/docs/Classes/SDLMetadataTags.html +++ b/docs/Classes/SDLMetadataTags.html @@ -3,8 +3,6 @@

                                                            SDLMetadataTags Class Reference

                                                            Section Contents

                                                              -
                                                            • -init
                                                            • -
                                                            • -initWithDictionary:
                                                            • -initWithTextFieldTypes:mainField2:
                                                            • -initWithTextFieldTypes:mainField2:mainField3:mainField4:
                                                            • mainField1
                                                            • @@ -19,62 +17,22 @@

                                                              Overview

                                                              -

                                                              - -init -

                                                              - -

                                                              @abstract Constructs a newly allocated SDLMetadataTags object

                                                              - - - -

                                                              Objective-C

                                                              -
                                                              - (instancetype)init;
                                                              - - -

                                                              Swift

                                                              -
                                                              init!()
                                                              - - - - -

                                                              - -initWithDictionary: -

                                                              - -

                                                              @abstract Constructs a newly allocated SDLMetadataTags object indicated by the dictionary parameter

                                                              - - - -

                                                              Objective-C

                                                              -
                                                              - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                              - - -

                                                              Swift

                                                              -
                                                              init!(dictionary dict: NSMutableDictionary!)
                                                              - - - -

                                                              Parameters

                                                              -
                                                              -
                                                              dict
                                                              -

                                                              The dictionary to use to construct the object

                                                              -
                                                              -

                                                              -initWithTextFieldTypes:mainField2:

                                                              -

                                                              @abstract Constructs a newly allocated SDLMetadataTags object with NSArrays

                                                              +

                                                              @abstract Constructs a newly allocated SDLMetadataType object with NSArrays

                                                              Objective-C

                                                              -
                                                              - (instancetype)initWithTextFieldTypes:(NSArray<SDLMetadataType *> *)mainField1
                                                              -                            mainField2:(NSArray<SDLMetadataType *> *)mainField2;
                                                              +
                                                              - (nonnull instancetype)
                                                              +initWithTextFieldTypes:(nullable NSArray<SDLMetadataType> *)mainField1
                                                              +            mainField2:(nullable NSArray<SDLMetadataType> *)mainField2;

                                                              Swift

                                                              -
                                                              init!(textFieldTypes mainField1: [SDLMetadataType]!, mainField2: [SDLMetadataType]!)
                                                              +
                                                              init(textFieldTypes mainField1: [SDLMetadataType]?, mainField2: [SDLMetadataType]?)
                                                              @@ -103,12 +61,12 @@

                                                              Objective-C

                                                              -
                                                              @property (readwrite, strong, nonatomic)
                                                              -    NSMutableArray<SDLMetadataType *> *mainField1;
                                                              +
                                                              @property (readwrite, strong, nonatomic, nullable)
                                                              +    NSArray<SDLMetadataType> *mainField1;

                                                              Swift

                                                              -
                                                              var mainField1: NSMutableArray! { get set }
                                                              +
                                                              var mainField1: [SDLMetadataType]? { get set }
                                                              @@ -126,12 +84,12 @@

                                                              Objective-C

                                                              -
                                                              @property (readwrite, strong, nonatomic)
                                                              -    NSMutableArray<SDLMetadataType *> *mainField2;
                                                              +
                                                              @property (readwrite, strong, nonatomic, nullable)
                                                              +    NSArray<SDLMetadataType> *mainField2;

                                                              Swift

                                                              -
                                                              var mainField2: NSMutableArray! { get set }
                                                              +
                                                              var mainField2: [SDLMetadataType]? { get set }
                                                              @@ -149,12 +107,12 @@

                                                              Objective-C

                                                              -
                                                              @property (readwrite, strong, nonatomic)
                                                              -    NSMutableArray<SDLMetadataType *> *mainField3;
                                                              +
                                                              @property (readwrite, strong, nonatomic, nullable)
                                                              +    NSArray<SDLMetadataType> *mainField3;

                                                              Swift

                                                              -
                                                              var mainField3: NSMutableArray! { get set }
                                                              +
                                                              var mainField3: [SDLMetadataType]? { get set }
                                                              @@ -172,12 +130,12 @@

                                                              Objective-C

                                                              -
                                                              @property (readwrite, strong, nonatomic)
                                                              -    NSMutableArray<SDLMetadataType *> *mainField4;
                                                              +
                                                              @property (readwrite, strong, nonatomic, nullable)
                                                              +    NSArray<SDLMetadataType> *mainField4;

                                                              Swift

                                                              -
                                                              var mainField4: NSMutableArray! { get set }
                                                              +
                                                              var mainField4: [SDLMetadataType]? { get set }
                                                              diff --git a/docs/Classes/SDLModuleData.html b/docs/Classes/SDLModuleData.html new file mode 100644 index 000000000..ea68ebeff --- /dev/null +++ b/docs/Classes/SDLModuleData.html @@ -0,0 +1,83 @@ +

                                                              SDLModuleData Class Reference

                                                              + +

                                                              Section Contents

                                                              + + + +

                                                              Overview

                                                              + +

                                                              Undocumented

                                                              + + +
                                                              +

                                                              + -initWithRadioControlData: +

                                                              + +

                                                              Undocumented

                                                              + + + + + + +

                                                              + -initWithClimateControlData: +

                                                              + +

                                                              Undocumented

                                                              + + + + + + +

                                                              + moduleType +

                                                              + +

                                                              The moduleType indicates which type of data should be changed +and identifies which data object exists in this struct. +For example, if the moduleType is CLIMATE then a climateControlData should exist

                                                              + + + +

                                                              Objective-C

                                                              +
                                                              @property (readwrite, strong, nonatomic) SDLModuleType _Nonnull moduleType;
                                                              + + +

                                                              Swift

                                                              +
                                                              var moduleType: SDLModuleType { get set }
                                                              + + + + +

                                                              + radioControlData +

                                                              + +

                                                              Undocumented

                                                              + + + + + + +

                                                              + climateControlData +

                                                              + +

                                                              Undocumented

                                                              + + + + + + +
                                                              diff --git a/docs/Classes/SDLMyKey.html b/docs/Classes/SDLMyKey.html index d0a8a33f1..cc42cd527 100644 --- a/docs/Classes/SDLMyKey.html +++ b/docs/Classes/SDLMyKey.html @@ -3,8 +3,6 @@

                                                              SDLMyKey Class Reference

                                                              Section Contents

                                                              @@ -14,28 +12,6 @@

                                                              Overview

                                                              -

                                                              - -init -

                                                              - -

                                                              Undocumented

                                                              - - - - - - -

                                                              - -initWithDictionary: -

                                                              - -

                                                              Undocumented

                                                              - - - - - -

                                                              e911Override

                                                              diff --git a/docs/Classes/SDLNavigationCapability.html b/docs/Classes/SDLNavigationCapability.html index 86573be7a..f699da081 100644 --- a/docs/Classes/SDLNavigationCapability.html +++ b/docs/Classes/SDLNavigationCapability.html @@ -3,8 +3,6 @@

                                                              SDLNavigationCapability Class Reference

                                                              Section Contents

                                                                -
                                                              • -init
                                                              • -
                                                              • -initWithDictionary:
                                                              • -initWithSendLocation:waypoints:
                                                              • sendLocationEnabled
                                                              • getWayPointsEnabled
                                                              • @@ -16,47 +14,6 @@

                                                                Overview

                                                                -

                                                                - -init -

                                                                - -

                                                                @abstract Constructs a newly allocated SDLNavigationCapability struct

                                                                - - - -

                                                                Objective-C

                                                                -
                                                                - (instancetype)init;
                                                                - - -

                                                                Swift

                                                                -
                                                                init!()
                                                                - - - - -

                                                                - -initWithDictionary: -

                                                                - -

                                                                @abstract Constructs a newly allocated SDLNavigationCapability struct indicated by the dictionary parameter

                                                                - - - -

                                                                Objective-C

                                                                -
                                                                - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                - - -

                                                                Swift

                                                                -
                                                                init!(dictionary dict: NSMutableDictionary!)
                                                                - - - -

                                                                Parameters

                                                                -
                                                                -
                                                                dict
                                                                -

                                                                The dictionary to use

                                                                -
                                                                -

                                                                -initWithSendLocation:waypoints:

                                                                @@ -78,11 +35,11 @@

                                                                Objective-C

                                                                -
                                                                @property (readwrite, copy, nonatomic) NSNumber *sendLocationEnabled;
                                                                +
                                                                @property (readwrite, copy, nonatomic, nullable) NSNumber *sendLocationEnabled;

                                                                Swift

                                                                -
                                                                @NSCopying var sendLocationEnabled: NSNumber! { get set }
                                                                +
                                                                @NSCopying var sendLocationEnabled: NSNumber? { get set }
                                                                @@ -97,11 +54,11 @@

                                                                Objective-C

                                                                -
                                                                @property (readwrite, copy, nonatomic) NSNumber *getWayPointsEnabled;
                                                                +
                                                                @property (readwrite, copy, nonatomic, nullable) NSNumber *getWayPointsEnabled;

                                                                Swift

                                                                -
                                                                @NSCopying var getWayPointsEnabled: NSNumber! { get set }
                                                                +
                                                                @NSCopying var getWayPointsEnabled: NSNumber? { get set }
                                                                diff --git a/docs/Classes/SDLOasisAddress.html b/docs/Classes/SDLOasisAddress.html index 51304f548..fd75e532d 100644 --- a/docs/Classes/SDLOasisAddress.html +++ b/docs/Classes/SDLOasisAddress.html @@ -55,11 +55,11 @@

                                                                Objective-C

                                                                -
                                                                @property (readwrite, copy, nonatomic) NSString *countryName;
                                                                +
                                                                @property (readwrite, copy, nonatomic, nullable) NSString *countryName;

                                                                Swift

                                                                -
                                                                var countryName: String! { get set }
                                                                +
                                                                var countryName: String? { get set }
                                                                @@ -75,11 +75,11 @@

                                                                Objective-C

                                                                -
                                                                @property (readwrite, copy, nonatomic) NSString *countryCode;
                                                                +
                                                                @property (readwrite, copy, nonatomic, nullable) NSString *countryCode;

                                                                Swift

                                                                -
                                                                var countryCode: String! { get set }
                                                                +
                                                                var countryCode: String? { get set }
                                                                @@ -95,11 +95,11 @@

                                                                Objective-C

                                                                -
                                                                @property (readwrite, copy, nonatomic) NSString *postalCode;
                                                                +
                                                                @property (readwrite, copy, nonatomic, nullable) NSString *postalCode;

                                                                Swift

                                                                -
                                                                var postalCode: String! { get set }
                                                                +
                                                                var postalCode: String? { get set }
                                                                @@ -115,11 +115,11 @@

                                                                Objective-C

                                                                -
                                                                @property (readwrite, copy, nonatomic) NSString *administrativeArea;
                                                                +
                                                                @property (readwrite, copy, nonatomic, nullable) NSString *administrativeArea;

                                                                Swift

                                                                -
                                                                var administrativeArea: String! { get set }
                                                                +
                                                                var administrativeArea: String? { get set }
                                                                @@ -135,11 +135,11 @@

                                                                Objective-C

                                                                -
                                                                @property (readwrite, copy, nonatomic) NSString *subAdministrativeArea;
                                                                +
                                                                @property (readwrite, copy, nonatomic, nullable) NSString *subAdministrativeArea;

                                                                Swift

                                                                -
                                                                var subAdministrativeArea: String! { get set }
                                                                +
                                                                var subAdministrativeArea: String? { get set }
                                                                @@ -155,11 +155,11 @@

                                                                Objective-C

                                                                -
                                                                @property (readwrite, copy, nonatomic) NSString *locality;
                                                                +
                                                                @property (readwrite, copy, nonatomic, nullable) NSString *locality;

                                                                Swift

                                                                -
                                                                var locality: String! { get set }
                                                                +
                                                                var locality: String? { get set }
                                                                @@ -175,11 +175,11 @@

                                                                Objective-C

                                                                -
                                                                @property (readwrite, copy, nonatomic) NSString *subLocality;
                                                                +
                                                                @property (readwrite, copy, nonatomic, nullable) NSString *subLocality;

                                                                Swift

                                                                -
                                                                var subLocality: String! { get set }
                                                                +
                                                                var subLocality: String? { get set }
                                                                @@ -195,11 +195,11 @@

                                                                Objective-C

                                                                -
                                                                @property (readwrite, copy, nonatomic) NSString *thoroughfare;
                                                                +
                                                                @property (readwrite, copy, nonatomic, nullable) NSString *thoroughfare;

                                                                Swift

                                                                -
                                                                var thoroughfare: String! { get set }
                                                                +
                                                                var thoroughfare: String? { get set }
                                                                @@ -215,11 +215,11 @@

                                                                Objective-C

                                                                -
                                                                @property (readwrite, copy, nonatomic) NSString *subThoroughfare;
                                                                +
                                                                @property (readwrite, copy, nonatomic, nullable) NSString *subThoroughfare;

                                                                Swift

                                                                -
                                                                var subThoroughfare: String! { get set }
                                                                +
                                                                var subThoroughfare: String? { get set }
                                                                diff --git a/docs/Classes/SDLOnAppInterfaceUnregistered.html b/docs/Classes/SDLOnAppInterfaceUnregistered.html index 787d52812..b341530cc 100644 --- a/docs/Classes/SDLOnAppInterfaceUnregistered.html +++ b/docs/Classes/SDLOnAppInterfaceUnregistered.html @@ -3,8 +3,6 @@

                                                                SDLOnAppInterfaceUnregistered Class Reference

                                                                Section Contents

                                                                @@ -23,47 +21,6 @@

                                                                Overview

                                                                -

                                                                - -init -

                                                                - -

                                                                Constructs a newly allocated SDLOnAppInterfaceUnregistered object

                                                                - - - -

                                                                Objective-C

                                                                -
                                                                - (instancetype)init;
                                                                - - -

                                                                Swift

                                                                -
                                                                init!()
                                                                - - - - -

                                                                - -initWithDictionary: -

                                                                - -

                                                                Constructs a newly allocated SDLOnAppInterfaceUnregistered object indicated by the dictionary parameter

                                                                - - - -

                                                                Objective-C

                                                                -
                                                                - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                - - -

                                                                Swift

                                                                -
                                                                init!(dictionary dict: NSMutableDictionary!)
                                                                - - - -

                                                                Parameters

                                                                -
                                                                -
                                                                dict
                                                                -

                                                                The dictionary to use

                                                                -
                                                                -

                                                                reason

                                                                @@ -73,11 +30,12 @@

                                                                Objective-C

                                                                -
                                                                @property (readwrite, strong, atomic) SDLAppInterfaceUnregisteredReason *reason;
                                                                +
                                                                @property (readwrite, strong, nonatomic)
                                                                +    SDLAppInterfaceUnregisteredReason _Nonnull reason;

                                                                Swift

                                                                -
                                                                var reason: SDLAppInterfaceUnregisteredReason! { get set }
                                                                +
                                                                var reason: SDLAppInterfaceUnregisteredReason { get set }
                                                                diff --git a/docs/Classes/SDLOnAudioPassThru.html b/docs/Classes/SDLOnAudioPassThru.html deleted file mode 100644 index db59ea22e..000000000 --- a/docs/Classes/SDLOnAudioPassThru.html +++ /dev/null @@ -1,73 +0,0 @@ -

                                                                SDLOnAudioPassThru Class Reference

                                                                - -

                                                                Section Contents

                                                                - - - -

                                                                Overview

                                                                - -

                                                                Binary data is in binary part of hybrid msg.

                                                                - -

                                                                HMI Status Requirements: -

                                                                  - HMILevel: -
                                                                    -
                                                                  • BACKGROUND, FULL, LIMITED
                                                                  • -
                                                                  - AudioStreamingState: -
                                                                    -
                                                                  • TBD
                                                                  • -
                                                                  - SystemContext: -
                                                                    -
                                                                  • TBD
                                                                  • -
                                                                  -

                                                                - - -
                                                                -

                                                                - -init -

                                                                - -

                                                                Constructs a newly allocated SDLOnAudioPassThru object

                                                                - - - -

                                                                Objective-C

                                                                -
                                                                - (instancetype)init;
                                                                - - -

                                                                Swift

                                                                -
                                                                init!()
                                                                - - - - -

                                                                - -initWithDictionary: -

                                                                - -

                                                                Constructs a newly allocated SDLOnAudioPassThru object indicated by the dictionary parameter

                                                                - - - -

                                                                Objective-C

                                                                -
                                                                - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                - - -

                                                                Swift

                                                                -
                                                                init!(dictionary dict: NSMutableDictionary!)
                                                                - - - -

                                                                Parameters

                                                                -
                                                                -
                                                                dict
                                                                -

                                                                The dictionary to use

                                                                -
                                                                - -
                                                                diff --git a/docs/Classes/SDLOnButtonEvent.html b/docs/Classes/SDLOnButtonEvent.html index ac44b9145..58f9d9b18 100644 --- a/docs/Classes/SDLOnButtonEvent.html +++ b/docs/Classes/SDLOnButtonEvent.html @@ -3,8 +3,6 @@

                                                                SDLOnButtonEvent Class Reference

                                                                Section Contents

                                                                  -
                                                                • -init
                                                                • -
                                                                • -initWithDictionary:
                                                                • buttonName
                                                                • buttonEventMode
                                                                • customButtonID
                                                                • @@ -53,47 +51,6 @@

                                                                  Overview

                                                                  -

                                                                  - -init -

                                                                  - -

                                                                  Constructs a newly allocated SDLOnButtonEvent object

                                                                  - - - -

                                                                  Objective-C

                                                                  -
                                                                  - (instancetype)init;
                                                                  - - -

                                                                  Swift

                                                                  -
                                                                  init!()
                                                                  - - - - -

                                                                  - -initWithDictionary: -

                                                                  - -

                                                                  @abstract Constructs a newly allocated SDLOnButtonEvent object indicated by the dictionary parameter

                                                                  - - - -

                                                                  Objective-C

                                                                  -
                                                                  - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                  - - -

                                                                  Swift

                                                                  -
                                                                  init!(dictionary dict: NSMutableDictionary!)
                                                                  - - - -

                                                                  Parameters

                                                                  -
                                                                  -
                                                                  dict
                                                                  -

                                                                  The dictionary to use

                                                                  -
                                                                  -

                                                                  buttonName

                                                                  @@ -103,11 +60,11 @@

                                                                  Objective-C

                                                                  -
                                                                  @property (readwrite, strong, atomic) SDLButtonName *buttonName;
                                                                  +
                                                                  @property (readwrite, strong, nonatomic) SDLButtonName _Nonnull buttonName;

                                                                  Swift

                                                                  -
                                                                  var buttonName: SDLButtonName! { get set }
                                                                  +
                                                                  var buttonName: SDLButtonName { get set }
                                                                  @@ -121,11 +78,12 @@

                                                                  Objective-C

                                                                  -
                                                                  @property (readwrite, strong, atomic) SDLButtonEventMode *buttonEventMode;
                                                                  +
                                                                  @property (readwrite, strong, nonatomic)
                                                                  +    SDLButtonEventMode _Nonnull buttonEventMode;

                                                                  Swift

                                                                  -
                                                                  var buttonEventMode: SDLButtonEventMode! { get set }
                                                                  +
                                                                  var buttonEventMode: SDLButtonEventMode { get set }
                                                                  @@ -143,11 +101,12 @@

                                                                  Objective-C

                                                                  -
                                                                  @property (readwrite, strong, atomic) NSNumber *customButtonID;
                                                                  +
                                                                  @property (readwrite, strong, nonatomic, nullable)
                                                                  +    NSNumber<SDLInt> *customButtonID;

                                                                  Swift

                                                                  -
                                                                  var customButtonID: NSNumber! { get set }
                                                                  +
                                                                  var customButtonID: (NSNumber 
                                                                  diff --git a/docs/Classes/SDLOnButtonPress.html b/docs/Classes/SDLOnButtonPress.html index d9748f0ea..f96493d4a 100644 --- a/docs/Classes/SDLOnButtonPress.html +++ b/docs/Classes/SDLOnButtonPress.html @@ -3,8 +3,6 @@

                                                                  SDLOnButtonPress Class Reference

                                                                  Section Contents

                                                                    -
                                                                  • -init
                                                                  • -
                                                                  • -initWithDictionary:
                                                                  • buttonName
                                                                  • buttonPressMode
                                                                  • customButtonID
                                                                  • @@ -62,47 +60,6 @@

                                                                    Overview

                                                                    -

                                                                    - -init -

                                                                    - -

                                                                    Constructs a newly allocated SDLOnButtonPress object

                                                                    - - - -

                                                                    Objective-C

                                                                    -
                                                                    - (instancetype)init;
                                                                    - - -

                                                                    Swift

                                                                    -
                                                                    init!()
                                                                    - - - - -

                                                                    - -initWithDictionary: -

                                                                    - -

                                                                    Constructs a newly allocated SDLOnButtonPress object indicated by the dictionary parameter

                                                                    - - - -

                                                                    Objective-C

                                                                    -
                                                                    - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                    - - -

                                                                    Swift

                                                                    -
                                                                    init!(dictionary dict: NSMutableDictionary!)
                                                                    - - - -

                                                                    Parameters

                                                                    -
                                                                    -
                                                                    dict
                                                                    -

                                                                    The dictionary to use

                                                                    -
                                                                    -

                                                                    buttonName

                                                                    @@ -119,11 +76,11 @@

                                                                    Objective-C

                                                                    -
                                                                    @property (readwrite, strong, atomic) SDLButtonName *buttonName;
                                                                    +
                                                                    @property (readwrite, strong, nonatomic) SDLButtonName _Nonnull buttonName;

                                                                    Swift

                                                                    -
                                                                    var buttonName: SDLButtonName! { get set }
                                                                    +
                                                                    var buttonName: SDLButtonName { get set }
                                                                    @@ -144,11 +101,12 @@

                                                                    Objective-C

                                                                    -
                                                                    @property (readwrite, strong, atomic) SDLButtonPressMode *buttonPressMode;
                                                                    +
                                                                    @property (readwrite, strong, nonatomic)
                                                                    +    SDLButtonPressMode _Nonnull buttonPressMode;

                                                                    Swift

                                                                    -
                                                                    var buttonPressMode: SDLButtonPressMode! { get set }
                                                                    +
                                                                    var buttonPressMode: SDLButtonPressMode { get set }
                                                                    @@ -166,11 +124,12 @@

                                                                    Objective-C

                                                                    -
                                                                    @property (readwrite, strong, atomic) NSNumber *customButtonID;
                                                                    +
                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                    +    NSNumber<SDLInt> *customButtonID;

                                                                    Swift

                                                                    -
                                                                    var customButtonID: NSNumber! { get set }
                                                                    +
                                                                    var customButtonID: (NSNumber 
                                                                    diff --git a/docs/Classes/SDLOnCommand.html b/docs/Classes/SDLOnCommand.html index aaeaa18ed..44789f0ec 100644 --- a/docs/Classes/SDLOnCommand.html +++ b/docs/Classes/SDLOnCommand.html @@ -3,8 +3,6 @@

                                                                    SDLOnCommand Class Reference

                                                                    Section Contents

                                                                    @@ -25,47 +23,6 @@

                                                                    Overview

                                                                    -

                                                                    - -init -

                                                                    - -

                                                                    Constructs a newly allocated SDLRPCNotification object

                                                                    - - - -

                                                                    Objective-C

                                                                    -
                                                                    - (instancetype)init;
                                                                    - - -

                                                                    Swift

                                                                    -
                                                                    init!()
                                                                    - - - - -

                                                                    - -initWithDictionary: -

                                                                    - -

                                                                    Constructs a newly allocated SDLRPCNotification object indicated by the dictionary parameter

                                                                    - - - -

                                                                    Objective-C

                                                                    -
                                                                    - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                    - - -

                                                                    Swift

                                                                    -
                                                                    init!(dictionary dict: NSMutableDictionary!)
                                                                    - - - -

                                                                    Parameters

                                                                    -
                                                                    -
                                                                    dict
                                                                    -

                                                                    The dictionary to use

                                                                    -
                                                                    -

                                                                    cmdID

                                                                    @@ -75,11 +32,11 @@

                                                                    Objective-C

                                                                    -
                                                                    @property (readwrite, strong, atomic) NSNumber *cmdID;
                                                                    +
                                                                    @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull cmdID;

                                                                    Swift

                                                                    -
                                                                    var cmdID: NSNumber! { get set }
                                                                    +
                                                                    var cmdID: NSNumber 
                                                                    @@ -93,11 +50,11 @@

                                                                    Objective-C

                                                                    -
                                                                    @property (readwrite, strong, atomic) SDLTriggerSource *triggerSource;
                                                                    +
                                                                    @property (readwrite, strong, nonatomic) SDLTriggerSource _Nonnull triggerSource;

                                                                    Swift

                                                                    -
                                                                    var triggerSource: SDLTriggerSource! { get set }
                                                                    +
                                                                    var triggerSource: SDLTriggerSource { get set }
                                                                    diff --git a/docs/Classes/SDLOnDriverDistraction.html b/docs/Classes/SDLOnDriverDistraction.html index 95756c227..d04e5d615 100644 --- a/docs/Classes/SDLOnDriverDistraction.html +++ b/docs/Classes/SDLOnDriverDistraction.html @@ -3,8 +3,6 @@

                                                                    SDLOnDriverDistraction Class Reference

                                                                    Section Contents

                                                                    @@ -28,47 +26,6 @@

                                                                    Overview

                                                                    -

                                                                    - -init -

                                                                    - -

                                                                    Constructs a newly allocated SDLOnDriverDistraction object

                                                                    - - - -

                                                                    Objective-C

                                                                    -
                                                                    - (instancetype)init;
                                                                    - - -

                                                                    Swift

                                                                    -
                                                                    init!()
                                                                    - - - - -

                                                                    - -initWithDictionary: -

                                                                    - -

                                                                    Constructs a newly allocated SDLOnDriverDistraction object indicated by the dictionary parameter

                                                                    - - - -

                                                                    Objective-C

                                                                    -
                                                                    - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                    - - -

                                                                    Swift

                                                                    -
                                                                    init!(dictionary dict: NSMutableDictionary!)
                                                                    - - - -

                                                                    Parameters

                                                                    -
                                                                    -
                                                                    dict
                                                                    -

                                                                    The dictionary to use

                                                                    -
                                                                    -

                                                                    state

                                                                    @@ -78,11 +35,12 @@

                                                                    Objective-C

                                                                    -
                                                                    @property (readwrite, strong, atomic) SDLDriverDistractionState *state;
                                                                    +
                                                                    @property (readwrite, strong, nonatomic)
                                                                    +    SDLDriverDistractionState _Nonnull state;

                                                                    Swift

                                                                    -
                                                                    var state: SDLDriverDistractionState! { get set }
                                                                    +
                                                                    var state: SDLDriverDistractionState { get set }
                                                                    diff --git a/docs/Classes/SDLOnEncodedSyncPData.html b/docs/Classes/SDLOnEncodedSyncPData.html index d7648f8ec..a27578ff8 100644 --- a/docs/Classes/SDLOnEncodedSyncPData.html +++ b/docs/Classes/SDLOnEncodedSyncPData.html @@ -3,8 +3,6 @@

                                                                    SDLOnEncodedSyncPData Class Reference

                                                                    Section Contents

                                                                      -
                                                                    • -init
                                                                    • -
                                                                    • -initWithDictionary:
                                                                    • data
                                                                    • URL
                                                                    • Timeout
                                                                    • @@ -16,28 +14,6 @@

                                                                      Overview

                                                                      -

                                                                      - -init -

                                                                      - -

                                                                      Undocumented

                                                                      - - - - - - -

                                                                      - -initWithDictionary: -

                                                                      - -

                                                                      Undocumented

                                                                      - - - - - -

                                                                      data

                                                                      diff --git a/docs/Classes/SDLOnHMIStatus.html b/docs/Classes/SDLOnHMIStatus.html index 4e4048e31..b1bb60a0c 100644 --- a/docs/Classes/SDLOnHMIStatus.html +++ b/docs/Classes/SDLOnHMIStatus.html @@ -3,8 +3,6 @@

                                                                      SDLOnHMIStatus Class Reference

                                                                      Section Contents

                                                                        -
                                                                      • -init
                                                                      • -
                                                                      • -initWithDictionary:
                                                                      • hmiLevel
                                                                      • audioStreamingState
                                                                      • systemContext
                                                                      • @@ -28,47 +26,6 @@

                                                                        Overview

                                                                        -

                                                                        - -init -

                                                                        - -

                                                                        Constructs a newly allocated SDLOnHMIStatus object

                                                                        - - - -

                                                                        Objective-C

                                                                        -
                                                                        - (instancetype)init;
                                                                        - - -

                                                                        Swift

                                                                        -
                                                                        init!()
                                                                        - - - - -

                                                                        - -initWithDictionary: -

                                                                        - -

                                                                        Constructs a newly allocated SDLOnHMIStatus object indicated by the dictionary parameter

                                                                        - - - -

                                                                        Objective-C

                                                                        -
                                                                        - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                        - - -

                                                                        Swift

                                                                        -
                                                                        init!(dictionary dict: NSMutableDictionary!)
                                                                        - - - -

                                                                        Parameters

                                                                        -
                                                                        -
                                                                        dict
                                                                        -

                                                                        The dictionary to use

                                                                        -
                                                                        -

                                                                        hmiLevel

                                                                        @@ -78,11 +35,11 @@

                                                                        Objective-C

                                                                        -
                                                                        @property (readwrite, strong, atomic) SDLHMILevel *hmiLevel;
                                                                        +
                                                                        @property (readwrite, strong, nonatomic) SDLHMILevel _Nonnull hmiLevel;

                                                                        Swift

                                                                        -
                                                                        var hmiLevel: SDLHMILevel! { get set }
                                                                        +
                                                                        var hmiLevel: SDLHMILevel { get set }
                                                                        @@ -98,12 +55,12 @@

                                                                        Objective-C

                                                                        -
                                                                        @property (readwrite, strong, atomic)
                                                                        -    SDLAudioStreamingState *audioStreamingState;
                                                                        +
                                                                        @property (readwrite, strong, nonatomic)
                                                                        +    SDLAudioStreamingState _Nonnull audioStreamingState;

                                                                        Swift

                                                                        -
                                                                        var audioStreamingState: SDLAudioStreamingState! { get set }
                                                                        +
                                                                        var audioStreamingState: SDLAudioStreamingState { get set }
                                                                        @@ -118,11 +75,11 @@

                                                                        Objective-C

                                                                        -
                                                                        @property (readwrite, strong, atomic) SDLSystemContext *systemContext;
                                                                        +
                                                                        @property (readwrite, strong, nonatomic) SDLSystemContext _Nonnull systemContext;

                                                                        Swift

                                                                        -
                                                                        var systemContext: SDLSystemContext! { get set }
                                                                        +
                                                                        var systemContext: SDLSystemContext { get set }
                                                                        diff --git a/docs/Classes/SDLOnHashChange.html b/docs/Classes/SDLOnHashChange.html index 0b3cef8a9..a5682d414 100644 --- a/docs/Classes/SDLOnHashChange.html +++ b/docs/Classes/SDLOnHashChange.html @@ -3,8 +3,6 @@

                                                                        SDLOnHashChange Class Reference

                                                                        Section Contents

                                                                        @@ -14,28 +12,6 @@

                                                                        Overview

                                                                        -

                                                                        - -init -

                                                                        - -

                                                                        Undocumented

                                                                        - - - - - - -

                                                                        - -initWithDictionary: -

                                                                        - -

                                                                        Undocumented

                                                                        - - - - - -

                                                                        hashID

                                                                        diff --git a/docs/Protocols/SDLDebugToolConsole.html b/docs/Classes/SDLOnInteriorVehicleData.html similarity index 54% rename from docs/Protocols/SDLDebugToolConsole.html rename to docs/Classes/SDLOnInteriorVehicleData.html index 42aced8f1..1a66a4e5e 100644 --- a/docs/Protocols/SDLDebugToolConsole.html +++ b/docs/Classes/SDLOnInteriorVehicleData.html @@ -1,9 +1,9 @@ -

                                                                        SDLDebugToolConsole Protocol Reference

                                                                        +

                                                                        SDLOnInteriorVehicleData Class Reference

                                                                        Section Contents

                                                                        Overview

                                                                        @@ -12,8 +12,8 @@

                                                                        Overview

                                                                        -

                                                                        - -logInfo: +

                                                                        + moduleData

                                                                        Undocumented

                                                                        diff --git a/docs/Classes/SDLOnKeyboardInput.html b/docs/Classes/SDLOnKeyboardInput.html index baf4d621f..8a64d5c9d 100644 --- a/docs/Classes/SDLOnKeyboardInput.html +++ b/docs/Classes/SDLOnKeyboardInput.html @@ -3,8 +3,6 @@

                                                                        SDLOnKeyboardInput Class Reference

                                                                        Section Contents

                                                                        @@ -15,28 +13,6 @@

                                                                        Overview

                                                                        -

                                                                        - -init -

                                                                        - -

                                                                        Undocumented

                                                                        - - - - - - -

                                                                        - -initWithDictionary: -

                                                                        - -

                                                                        Undocumented

                                                                        - - - - - -

                                                                        event

                                                                        diff --git a/docs/Classes/SDLOnLanguageChange.html b/docs/Classes/SDLOnLanguageChange.html index 290dec8c8..c975e34b1 100644 --- a/docs/Classes/SDLOnLanguageChange.html +++ b/docs/Classes/SDLOnLanguageChange.html @@ -3,8 +3,6 @@

                                                                        SDLOnLanguageChange Class Reference

                                                                        Section Contents

                                                                        @@ -17,47 +15,6 @@

                                                                        Overview

                                                                        -

                                                                        - -init -

                                                                        - -

                                                                        Constructs a newly allocated SDLOnLanguageChange object

                                                                        - - - -

                                                                        Objective-C

                                                                        -
                                                                        - (instancetype)init;
                                                                        - - -

                                                                        Swift

                                                                        -
                                                                        init!()
                                                                        - - - - -

                                                                        - -initWithDictionary: -

                                                                        - -

                                                                        Constructs a newly allocated SDLOnLanguageChange object indicated by the dictionary parameter

                                                                        - - - -

                                                                        Objective-C

                                                                        -
                                                                        - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                        - - -

                                                                        Swift

                                                                        -
                                                                        init!(dictionary dict: NSMutableDictionary!)
                                                                        - - - -

                                                                        Parameters

                                                                        -
                                                                        -
                                                                        dict
                                                                        -

                                                                        The dictionary to use

                                                                        -
                                                                        -

                                                                        language

                                                                        @@ -67,11 +24,11 @@

                                                                        Objective-C

                                                                        -
                                                                        @property (readwrite, strong, atomic) SDLLanguage *language;
                                                                        +
                                                                        @property (readwrite, strong, nonatomic) SDLLanguage _Nonnull language;

                                                                        Swift

                                                                        -
                                                                        var language: SDLLanguage! { get set }
                                                                        +
                                                                        var language: SDLLanguage { get set }
                                                                        @@ -85,11 +42,11 @@

                                                                        Objective-C

                                                                        -
                                                                        @property (readwrite, strong, atomic) SDLLanguage *hmiDisplayLanguage;
                                                                        +
                                                                        @property (readwrite, strong, nonatomic) SDLLanguage _Nonnull hmiDisplayLanguage;

                                                                        Swift

                                                                        -
                                                                        var hmiDisplayLanguage: SDLLanguage! { get set }
                                                                        +
                                                                        var hmiDisplayLanguage: SDLLanguage { get set }
                                                                        diff --git a/docs/Classes/SDLOnLockScreenStatus.html b/docs/Classes/SDLOnLockScreenStatus.html index 3a31b66b5..96fcfe9a9 100644 --- a/docs/Classes/SDLOnLockScreenStatus.html +++ b/docs/Classes/SDLOnLockScreenStatus.html @@ -3,8 +3,6 @@

                                                                        SDLOnLockScreenStatus Class Reference

                                                                        Section Contents

                                                                          -
                                                                        • -init
                                                                        • -
                                                                        • -initWithDictionary:
                                                                        • driverDistractionStatus
                                                                        • userSelected
                                                                        • lockScreenStatus
                                                                        • @@ -23,36 +21,6 @@

                                                                          Overview

                                                                          -

                                                                          - -init -

                                                                          - -

                                                                          Undocumented

                                                                          - - - -

                                                                          Objective-C

                                                                          -
                                                                          @interface SDLOnLockScreenStatus : SDLRPCNotification
                                                                          - - - - - -

                                                                          - -initWithDictionary: -

                                                                          - -

                                                                          Undocumented

                                                                          - - - -

                                                                          Objective-C

                                                                          -
                                                                          @interface SDLOnLockScreenStatus : SDLRPCNotification
                                                                          - - - - -

                                                                          driverDistractionStatus

                                                                          @@ -62,11 +30,12 @@

                                                                          Objective-C

                                                                          -
                                                                          @property (readwrite, strong, atomic) NSNumber *driverDistractionStatus;
                                                                          +
                                                                          @property (readwrite, strong, nonatomic)
                                                                          +    NSNumber<SDLBool> *_Nonnull driverDistractionStatus;

                                                                          Swift

                                                                          -
                                                                          var driverDistractionStatus: NSNumber! { get set }
                                                                          +
                                                                          var driverDistractionStatus: NSNumber 
                                                                          @@ -84,11 +53,12 @@

                                                                          Objective-C

                                                                          -
                                                                          @property (readwrite, strong, atomic) NSNumber *userSelected;
                                                                          +
                                                                          @property (readwrite, strong, nonatomic)
                                                                          +    NSNumber<SDLBool> *_Nonnull userSelected;

                                                                          Swift

                                                                          -
                                                                          var userSelected: NSNumber! { get set }
                                                                          +
                                                                          var userSelected: NSNumber 
                                                                          @@ -106,11 +76,12 @@

                                                                          Objective-C

                                                                          -
                                                                          @property (readwrite, strong, atomic) SDLLockScreenStatus *lockScreenStatus;
                                                                          +
                                                                          @property (readwrite, strong, nonatomic)
                                                                          +    SDLLockScreenStatus _Nonnull lockScreenStatus;

                                                                          Swift

                                                                          -
                                                                          var lockScreenStatus: SDLLockScreenStatus! { get set }
                                                                          +
                                                                          var lockScreenStatus: SDLLockScreenStatus { get set }
                                                                          @@ -128,11 +99,11 @@

                                                                          Objective-C

                                                                          -
                                                                          @property (readwrite, strong, atomic) SDLHMILevel *hmiLevel;
                                                                          +
                                                                          @property (readwrite, strong, nonatomic) SDLHMILevel _Nonnull hmiLevel;

                                                                          Swift

                                                                          -
                                                                          var hmiLevel: SDLHMILevel! { get set }
                                                                          +
                                                                          var hmiLevel: SDLHMILevel { get set }
                                                                          diff --git a/docs/Classes/SDLOnPermissionsChange.html b/docs/Classes/SDLOnPermissionsChange.html index a5a62b6b5..1332b3db6 100644 --- a/docs/Classes/SDLOnPermissionsChange.html +++ b/docs/Classes/SDLOnPermissionsChange.html @@ -3,8 +3,6 @@

                                                                          SDLOnPermissionsChange Class Reference

                                                                          Section Contents

                                                                          @@ -16,47 +14,6 @@

                                                                          Overview

                                                                          -

                                                                          - -init -

                                                                          - -

                                                                          Constructs a newly allocated SDLOnPermissionsChange object

                                                                          - - - -

                                                                          Objective-C

                                                                          -
                                                                          - (instancetype)init;
                                                                          - - -

                                                                          Swift

                                                                          -
                                                                          init!()
                                                                          - - - - -

                                                                          - -initWithDictionary: -

                                                                          - -

                                                                          Constructs a newly allocated SDLOnPermissionsChange object indicated by the dictionary parameter

                                                                          - - - -

                                                                          Objective-C

                                                                          -
                                                                          - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                          - - -

                                                                          Swift

                                                                          -
                                                                          init!(dictionary dict: NSMutableDictionary!)
                                                                          - - - -

                                                                          Parameters

                                                                          -
                                                                          -
                                                                          dict
                                                                          -

                                                                          The dictionary to use

                                                                          -
                                                                          -

                                                                          permissionItem

                                                                          @@ -73,11 +30,12 @@

                                                                          Objective-C

                                                                          -
                                                                          @property (readwrite, strong, atomic) NSMutableArray *permissionItem;
                                                                          +
                                                                          @property (readwrite, strong, nonatomic)
                                                                          +    NSArray<SDLPermissionItem *> *_Nonnull permissionItem;

                                                                          Swift

                                                                          -
                                                                          var permissionItem: NSMutableArray! { get set }
                                                                          +
                                                                          var permissionItem: [SDLPermissionItem] { get set }
                                                                          diff --git a/docs/Classes/SDLOnSyncPData.html b/docs/Classes/SDLOnSyncPData.html index 1623d1332..b7a59075e 100644 --- a/docs/Classes/SDLOnSyncPData.html +++ b/docs/Classes/SDLOnSyncPData.html @@ -3,8 +3,6 @@

                                                                          SDLOnSyncPData Class Reference

                                                                          Section Contents

                                                                          @@ -15,28 +13,6 @@

                                                                          Overview

                                                                          -

                                                                          - -init -

                                                                          - -

                                                                          Undocumented

                                                                          - - - - - - -

                                                                          - -initWithDictionary: -

                                                                          - -

                                                                          Undocumented

                                                                          - - - - - -

                                                                          URL

                                                                          diff --git a/docs/Classes/SDLOnSystemRequest.html b/docs/Classes/SDLOnSystemRequest.html index 9bd7189e1..6f4287efd 100644 --- a/docs/Classes/SDLOnSystemRequest.html +++ b/docs/Classes/SDLOnSystemRequest.html @@ -3,8 +3,6 @@

                                                                          SDLOnSystemRequest Class Reference

                                                                          Section Contents

                                                                            -
                                                                          • -init
                                                                          • -
                                                                          • -initWithDictionary:
                                                                          • requestType
                                                                          • url
                                                                          • timeout
                                                                          • @@ -19,28 +17,6 @@

                                                                            Overview

                                                                            -

                                                                            - -init -

                                                                            - -

                                                                            Undocumented

                                                                            - - - - - - -

                                                                            - -initWithDictionary: -

                                                                            - -

                                                                            Undocumented

                                                                            - - - - - -

                                                                            requestType

                                                                            diff --git a/docs/Classes/SDLOnTBTClientState.html b/docs/Classes/SDLOnTBTClientState.html index 502c8cf30..303cc4c8f 100644 --- a/docs/Classes/SDLOnTBTClientState.html +++ b/docs/Classes/SDLOnTBTClientState.html @@ -3,8 +3,6 @@

                                                                            SDLOnTBTClientState Class Reference

                                                                            Section Contents

                                                                            @@ -14,28 +12,6 @@

                                                                            Overview

                                                                            -

                                                                            - -init -

                                                                            - -

                                                                            Undocumented

                                                                            - - - - - - -

                                                                            - -initWithDictionary: -

                                                                            - -

                                                                            Undocumented

                                                                            - - - - - -

                                                                            state

                                                                            diff --git a/docs/Classes/SDLOnTouchEvent.html b/docs/Classes/SDLOnTouchEvent.html index e4239fa4e..629a1a67e 100644 --- a/docs/Classes/SDLOnTouchEvent.html +++ b/docs/Classes/SDLOnTouchEvent.html @@ -3,8 +3,6 @@

                                                                            SDLOnTouchEvent Class Reference

                                                                            Section Contents

                                                                            @@ -15,28 +13,6 @@

                                                                            Overview

                                                                            -

                                                                            - -init -

                                                                            - -

                                                                            Undocumented

                                                                            - - - - - - -

                                                                            - -initWithDictionary: -

                                                                            - -

                                                                            Undocumented

                                                                            - - - - - -

                                                                            type

                                                                            diff --git a/docs/Classes/SDLOnVehicleData.html b/docs/Classes/SDLOnVehicleData.html index 8ee256d1b..778d44e58 100644 --- a/docs/Classes/SDLOnVehicleData.html +++ b/docs/Classes/SDLOnVehicleData.html @@ -3,8 +3,6 @@

                                                                            SDLOnVehicleData Class Reference

                                                                            Section Contents

                                                                              -
                                                                            • -init
                                                                            • -
                                                                            • -initWithDictionary:
                                                                            • gps
                                                                            • speed
                                                                            • rpm
                                                                            • @@ -40,48 +38,6 @@

                                                                              Overview

                                                                              -

                                                                              - -init -

                                                                              - -

                                                                              @abstract Constructs a new SDLOnVehicleData object

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              - (instancetype)init;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              init!()
                                                                              - - - - -

                                                                              - -initWithDictionary: -

                                                                              - -

                                                                              @abstract Constructs a new SDLOnVehicleData object indicated by the NSMutableDictionary -parameter

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              init!(dictionary dict: NSMutableDictionary!)
                                                                              - - - -

                                                                              Parameters

                                                                              -
                                                                              -
                                                                              dict
                                                                              -

                                                                              The dictionary to use

                                                                              -
                                                                              -

                                                                              gps

                                                                              @@ -91,11 +47,11 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) SDLGPSData *gps;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable) SDLGPSData *gps;

                                                                              Swift

                                                                              -
                                                                              var gps: SDLGPSData! { get set }
                                                                              +
                                                                              var gps: SDLGPSData? { get set }
                                                                              @@ -109,11 +65,11 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) NSNumber *speed;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLFloat> *speed;

                                                                              Swift

                                                                              -
                                                                              var speed: NSNumber! { get set }
                                                                              +
                                                                              var speed: (NSNumber 
                                                                              @@ -127,11 +83,11 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) NSNumber *rpm;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *rpm;

                                                                              Swift

                                                                              -
                                                                              var rpm: NSNumber! { get set }
                                                                              +
                                                                              var rpm: (NSNumber 
                                                                              @@ -145,11 +101,11 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) NSNumber *fuelLevel;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLFloat> *fuelLevel;

                                                                              Swift

                                                                              -
                                                                              var fuelLevel: NSNumber! { get set }
                                                                              +
                                                                              var fuelLevel: (NSNumber 
                                                                              @@ -163,11 +119,12 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) SDLComponentVolumeStatus *fuelLevel_State;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable)
                                                                              +    SDLComponentVolumeStatus fuelLevel_State;

                                                                              Swift

                                                                              -
                                                                              var fuelLevel_State: SDLComponentVolumeStatus! { get set }
                                                                              +
                                                                              var fuelLevel_State: SDLComponentVolumeStatus? { get set }
                                                                              @@ -181,11 +138,12 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) NSNumber *instantFuelConsumption;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable)
                                                                              +    NSNumber<SDLFloat> *instantFuelConsumption;

                                                                              Swift

                                                                              -
                                                                              var instantFuelConsumption: NSNumber! { get set }
                                                                              +
                                                                              var instantFuelConsumption: (NSNumber 
                                                                              @@ -199,11 +157,12 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) NSNumber *externalTemperature;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable)
                                                                              +    NSNumber<SDLFloat> *externalTemperature;

                                                                              Swift

                                                                              -
                                                                              var externalTemperature: NSNumber! { get set }
                                                                              +
                                                                              var externalTemperature: (NSNumber 
                                                                              @@ -217,11 +176,11 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) NSString *vin;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable) NSString *vin;

                                                                              Swift

                                                                              -
                                                                              var vin: String! { get set }
                                                                              +
                                                                              var vin: String? { get set }
                                                                              @@ -235,11 +194,11 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) SDLPRNDL *prndl;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable) SDLPRNDL prndl;

                                                                              Swift

                                                                              -
                                                                              var prndl: SDLPRNDL! { get set }
                                                                              +
                                                                              var prndl: SDLPRNDL? { get set }
                                                                              @@ -253,11 +212,11 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) SDLTireStatus *tirePressure;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable) SDLTireStatus *tirePressure;

                                                                              Swift

                                                                              -
                                                                              var tirePressure: SDLTireStatus! { get set }
                                                                              +
                                                                              var tirePressure: SDLTireStatus? { get set }
                                                                              @@ -271,11 +230,11 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) NSNumber *odometer;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *odometer;

                                                                              Swift

                                                                              -
                                                                              var odometer: NSNumber! { get set }
                                                                              +
                                                                              var odometer: (NSNumber 
                                                                              @@ -289,11 +248,11 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) SDLBeltStatus *beltStatus;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable) SDLBeltStatus *beltStatus;

                                                                              Swift

                                                                              -
                                                                              var beltStatus: SDLBeltStatus! { get set }
                                                                              +
                                                                              var beltStatus: SDLBeltStatus? { get set }
                                                                              @@ -307,11 +266,12 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) SDLBodyInformation *bodyInformation;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable)
                                                                              +    SDLBodyInformation *bodyInformation;

                                                                              Swift

                                                                              -
                                                                              var bodyInformation: SDLBodyInformation! { get set }
                                                                              +
                                                                              var bodyInformation: SDLBodyInformation? { get set }
                                                                              @@ -325,11 +285,11 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) SDLDeviceStatus *deviceStatus;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable) SDLDeviceStatus *deviceStatus;

                                                                              Swift

                                                                              -
                                                                              var deviceStatus: SDLDeviceStatus! { get set }
                                                                              +
                                                                              var deviceStatus: SDLDeviceStatus? { get set }
                                                                              @@ -343,11 +303,12 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) SDLVehicleDataEventStatus *driverBraking;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable)
                                                                              +    SDLVehicleDataEventStatus driverBraking;

                                                                              Swift

                                                                              -
                                                                              var driverBraking: SDLVehicleDataEventStatus! { get set }
                                                                              +
                                                                              var driverBraking: SDLVehicleDataEventStatus? { get set }
                                                                              @@ -361,11 +322,11 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) SDLWiperStatus *wiperStatus;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable) SDLWiperStatus wiperStatus;

                                                                              Swift

                                                                              -
                                                                              var wiperStatus: SDLWiperStatus! { get set }
                                                                              +
                                                                              var wiperStatus: SDLWiperStatus? { get set }
                                                                              @@ -379,11 +340,12 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) SDLHeadLampStatus *headLampStatus;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable)
                                                                              +    SDLHeadLampStatus *headLampStatus;

                                                                              Swift

                                                                              -
                                                                              var headLampStatus: SDLHeadLampStatus! { get set }
                                                                              +
                                                                              var headLampStatus: SDLHeadLampStatus? { get set }
                                                                              @@ -397,11 +359,12 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) NSNumber *engineTorque;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable)
                                                                              +    NSNumber<SDLFloat> *engineTorque;

                                                                              Swift

                                                                              -
                                                                              var engineTorque: NSNumber! { get set }
                                                                              +
                                                                              var engineTorque: (NSNumber 
                                                                              @@ -415,11 +378,12 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) NSNumber *accPedalPosition;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable)
                                                                              +    NSNumber<SDLFloat> *accPedalPosition;

                                                                              Swift

                                                                              -
                                                                              var accPedalPosition: NSNumber! { get set }
                                                                              +
                                                                              var accPedalPosition: (NSNumber 
                                                                              @@ -433,11 +397,12 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) NSNumber *steeringWheelAngle;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable)
                                                                              +    NSNumber<SDLFloat> *steeringWheelAngle;

                                                                              Swift

                                                                              -
                                                                              var steeringWheelAngle: NSNumber! { get set }
                                                                              +
                                                                              var steeringWheelAngle: (NSNumber 
                                                                              @@ -451,7 +416,7 @@

                                                                              Objective-C

                                                                              -
                                                                              @interface SDLOnVehicleData : SDLRPCNotification
                                                                              +
                                                                              @interface SDLOnVehicleData : SDLRPCNotification
                                                                              @@ -466,7 +431,7 @@

                                                                              Objective-C

                                                                              -
                                                                              @interface SDLOnVehicleData : SDLRPCNotification
                                                                              +
                                                                              @interface SDLOnVehicleData : SDLRPCNotification
                                                                              @@ -481,7 +446,7 @@

                                                                              Objective-C

                                                                              -
                                                                              @interface SDLOnVehicleData : SDLRPCNotification
                                                                              +
                                                                              @interface SDLOnVehicleData : SDLRPCNotification
                                                                              @@ -496,7 +461,7 @@

                                                                              Objective-C

                                                                              -
                                                                              @interface SDLOnVehicleData : SDLRPCNotification
                                                                              +
                                                                              @interface SDLOnVehicleData : SDLRPCNotification
                                                                              @@ -511,7 +476,7 @@

                                                                              Objective-C

                                                                              -
                                                                              @interface SDLOnVehicleData : SDLRPCNotification
                                                                              +
                                                                              @interface SDLOnVehicleData : SDLRPCNotification
                                                                              diff --git a/docs/Classes/SDLOnWaypointChange.html b/docs/Classes/SDLOnWaypointChange.html index be37a886f..894196177 100644 --- a/docs/Classes/SDLOnWaypointChange.html +++ b/docs/Classes/SDLOnWaypointChange.html @@ -23,11 +23,12 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, copy, nonatomic) NSArray<SDLLocationDetails *> *waypoints;
                                                                              +
                                                                              @property (readwrite, copy, nonatomic)
                                                                              +    NSArray<SDLLocationDetails *> *_Nonnull waypoints;

                                                                              Swift

                                                                              -
                                                                              var waypoints: [SDLLocationDetails]! { get set }
                                                                              +
                                                                              var waypoints: [SDLLocationDetails] { get set }
                                                                              diff --git a/docs/Classes/SDLPRNDL.html b/docs/Classes/SDLPRNDL.html deleted file mode 100644 index 07810ec3e..000000000 --- a/docs/Classes/SDLPRNDL.html +++ /dev/null @@ -1,435 +0,0 @@ -

                                                                              SDLPRNDL Class Reference

                                                                              - -

                                                                              Section Contents

                                                                              - - - -

                                                                              Overview

                                                                              - -

                                                                              The selected gear the car is in.

                                                                              - -

                                                                              @since SDL 2.0

                                                                              - - -
                                                                              -

                                                                              - +valueOf: -

                                                                              - -

                                                                              @abstract get SDLPRNDL according value string

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              + (SDLPRNDL *)valueOf:(NSString *)value;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              class func value(of value: String!) -> SDLPRNDL!
                                                                              - - - -

                                                                              Parameters

                                                                              -
                                                                              -
                                                                              value
                                                                              -

                                                                              The value of the string to get an object for

                                                                              -
                                                                              -
                                                                              -

                                                                              Return Value

                                                                              -

                                                                              SDLPRNDL object

                                                                              -
                                                                              - -

                                                                              - +values -

                                                                              - -

                                                                              @abstract declare an array to store all possible SDLPRNDL values

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              + (NSArray *)values;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              class func values() -> [Any]!
                                                                              - - - -
                                                                              -

                                                                              Return Value

                                                                              -

                                                                              the array

                                                                              -
                                                                              - -

                                                                              - +PARK -

                                                                              - -

                                                                              @abstract Park

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              + (SDLPRNDL *)PARK;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              class func park() -> SDLPRNDL!
                                                                              - - - -
                                                                              -

                                                                              Return Value

                                                                              -

                                                                              SDLPRNDL: PARK

                                                                              -
                                                                              - -

                                                                              - +REVERSE -

                                                                              - -

                                                                              @abstract Reverse gear

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              + (SDLPRNDL *)REVERSE;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              class func reverse() -> SDLPRNDL!
                                                                              - - - -
                                                                              -

                                                                              Return Value

                                                                              -

                                                                              SDLPRNDL: REVERSE

                                                                              -
                                                                              - -

                                                                              - +NEUTRAL -

                                                                              - -

                                                                              @abstract No gear

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              + (SDLPRNDL *)NEUTRAL;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              class func neutral() -> SDLPRNDL!
                                                                              - - - -
                                                                              -

                                                                              Return Value

                                                                              -

                                                                              SDLPRNDL: NEUTRAL

                                                                              -
                                                                              - -

                                                                              - +DRIVE -

                                                                              - -

                                                                              @abstract: Drive gear

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              + (SDLPRNDL *)DRIVE;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              class func drive() -> SDLPRNDL!
                                                                              - - - -
                                                                              -

                                                                              Return Value

                                                                              -

                                                                              SDLPRNDL: DRIVE

                                                                              -
                                                                              - -

                                                                              - +SPORT -

                                                                              - -

                                                                              @abstract Drive Sport mode

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              + (SDLPRNDL *)SPORT;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              class func sport() -> SDLPRNDL!
                                                                              - - - -
                                                                              -

                                                                              Return Value

                                                                              -

                                                                              SDLPRNDL: SPORT

                                                                              -
                                                                              - -

                                                                              - +LOWGEAR -

                                                                              - -

                                                                              @abstract 1st gear hold

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              + (SDLPRNDL *)LOWGEAR;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              class func lowgear() -> SDLPRNDL!
                                                                              - - - -
                                                                              -

                                                                              Return Value

                                                                              -

                                                                              SDLPRNDL: LOWGEAR

                                                                              -
                                                                              - -

                                                                              - +FIRST -

                                                                              - -

                                                                              @abstract First gear

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              + (SDLPRNDL *)FIRST;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              class func first() -> SDLPRNDL!
                                                                              - - - -
                                                                              -

                                                                              Return Value

                                                                              -

                                                                              SDLPRNDL: FIRST

                                                                              -
                                                                              - -

                                                                              - +SECOND -

                                                                              - -

                                                                              @abstract Second gear

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              + (SDLPRNDL *)SECOND;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              class func second() -> SDLPRNDL!
                                                                              - - - -
                                                                              -

                                                                              Return Value

                                                                              -

                                                                              SDLPRNDL: SECOND

                                                                              -
                                                                              - -

                                                                              - +THIRD -

                                                                              - -

                                                                              @abstract Third gear

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              + (SDLPRNDL *)THIRD;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              class func third() -> SDLPRNDL!
                                                                              - - - -
                                                                              -

                                                                              Return Value

                                                                              -

                                                                              SDLPRNDL: THIRD

                                                                              -
                                                                              - -

                                                                              - +FOURTH -

                                                                              - -

                                                                              @abstract Fourth gear

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              + (SDLPRNDL *)FOURTH;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              class func fourth() -> SDLPRNDL!
                                                                              - - - -
                                                                              -

                                                                              Return Value

                                                                              -

                                                                              SDLPRNDL: FOURTH

                                                                              -
                                                                              - -

                                                                              - +FIFTH -

                                                                              - -

                                                                              @abstract Fifth gear

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              + (SDLPRNDL *)FIFTH;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              class func fifth() -> SDLPRNDL!
                                                                              - - - -
                                                                              -

                                                                              Return Value

                                                                              -

                                                                              SDLPRNDL: FIFTH

                                                                              -
                                                                              - -

                                                                              - +SIXTH -

                                                                              - -

                                                                              @abstract Sixth gear

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              + (SDLPRNDL *)SIXTH;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              class func sixth() -> SDLPRNDL!
                                                                              - - - -
                                                                              -

                                                                              Return Value

                                                                              -

                                                                              SDLPRNDL: SIXTH

                                                                              -
                                                                              - -

                                                                              - +SEVENTH -

                                                                              - -

                                                                              @abstract Seventh gear

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              + (SDLPRNDL *)SEVENTH;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              class func seventh() -> SDLPRNDL!
                                                                              - - - -
                                                                              -

                                                                              Return Value

                                                                              -

                                                                              SDLPRNDL: SEVENTH

                                                                              -
                                                                              - -

                                                                              - +EIGHTH -

                                                                              - -

                                                                              @abstract Eighth gear

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              + (SDLPRNDL *)EIGHTH;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              class func eighth() -> SDLPRNDL!
                                                                              - - - -
                                                                              -

                                                                              Return Value

                                                                              -

                                                                              SDLPRNDL: EIGHTH

                                                                              -
                                                                              - -

                                                                              - +UNKNOWN -

                                                                              - -

                                                                              @abstract Unknown

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              + (SDLPRNDL *)UNKNOWN;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              class func unknown() -> SDLPRNDL!
                                                                              - - - -
                                                                              -

                                                                              Return Value

                                                                              -

                                                                              SDLPRNDL: UNKNOWN

                                                                              -
                                                                              - -

                                                                              - +FAULT -

                                                                              - -

                                                                              @abstract Fault

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              + (SDLPRNDL *)FAULT;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              class func fault() -> SDLPRNDL!
                                                                              - - - -
                                                                              -

                                                                              Return Value

                                                                              -

                                                                              SDLPRNDL: FAULT

                                                                              -
                                                                              - -
                                                                              diff --git a/docs/Classes/SDLParameterPermissions.html b/docs/Classes/SDLParameterPermissions.html index 1d25b87b5..ef5a0dc6c 100644 --- a/docs/Classes/SDLParameterPermissions.html +++ b/docs/Classes/SDLParameterPermissions.html @@ -3,8 +3,6 @@

                                                                              SDLParameterPermissions Class Reference

                                                                              Section Contents

                                                                              @@ -17,47 +15,6 @@

                                                                              Overview

                                                                              -

                                                                              - -init -

                                                                              - -

                                                                              @abstract Constructs a newly allocated SDLParameterPermissions object

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              - (instancetype)init;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              init!()
                                                                              - - - - -

                                                                              - -initWithDictionary: -

                                                                              - -

                                                                              @abstract Constructs a newly allocated SDLParameterPermissions object indicated by the dictionary parameter

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              init!(dictionary dict: NSMutableDictionary!)
                                                                              - - - -

                                                                              Parameters

                                                                              -
                                                                              -
                                                                              dict
                                                                              -

                                                                              The dictionary to use

                                                                              -
                                                                              -

                                                                              allowed

                                                                              @@ -69,11 +26,11 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) NSMutableArray *allowed;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic) NSArray<NSString *> *_Nonnull allowed;

                                                                              Swift

                                                                              -
                                                                              var allowed: NSMutableArray! { get set }
                                                                              +
                                                                              var allowed: [String] { get set }
                                                                              @@ -89,11 +46,12 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) NSMutableArray *userDisallowed;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic)
                                                                              +    NSArray<NSString *> *_Nonnull userDisallowed;

                                                                              Swift

                                                                              -
                                                                              var userDisallowed: NSMutableArray! { get set }
                                                                              +
                                                                              var userDisallowed: [String] { get set }
                                                                              diff --git a/docs/Classes/SDLPerformAudioPassThru.html b/docs/Classes/SDLPerformAudioPassThru.html index 8d3e82958..54dfd3bc7 100644 --- a/docs/Classes/SDLPerformAudioPassThru.html +++ b/docs/Classes/SDLPerformAudioPassThru.html @@ -3,10 +3,10 @@

                                                                              SDLPerformAudioPassThru Class Reference

                                                                              Section Contents

                                                                              Overview

                                                                              @@ -32,49 +33,38 @@

                                                                              Overview

                                                                              -

                                                                              - -init +

                                                                              + -initWithSamplingRate:bitsPerSample:audioType:maxDuration:

                                                                              -

                                                                              @abstract Constructs a new SDLPerformAudioPassThru object

                                                                              +

                                                                              Undocumented

                                                                              Objective-C

                                                                              -
                                                                              - (instancetype)init;
                                                                              +
                                                                              @interface SDLPerformAudioPassThru : SDLRPCRequest
                                                                              -

                                                                              Swift

                                                                              -
                                                                              init!()
                                                                              - -

                                                                              - -initWithDictionary: +

                                                                              + -initWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:bitsPerSample:audioType:maxDuration:muteAudio:

                                                                              -

                                                                              @abstract Constructs a new SDLPerformAudioPassThru object indicated by the NSMutableDictionary

                                                                              +

                                                                              Undocumented

                                                                              Objective-C

                                                                              -
                                                                              - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                              +
                                                                              @interface SDLPerformAudioPassThru : SDLRPCRequest
                                                                              -

                                                                              Swift

                                                                              -
                                                                              init!(dictionary dict: NSMutableDictionary!)
                                                                              - -

                                                                              Parameters

                                                                              -
                                                                              -
                                                                              dict
                                                                              -

                                                                              The dictionary to use

                                                                              -
                                                                              -

                                                                              - -initWithSamplingRate:bitsPerSample:audioType:maxDuration: +

                                                                              + -initWithSamplingRate:bitsPerSample:audioType:maxDuration:audioDataHandler:

                                                                              Undocumented

                                                                              @@ -88,8 +78,8 @@

                                                                              Objective-C

                                                                              -

                                                                              - -initWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:bitsPerSample:audioType:maxDuration:muteAudio: +

                                                                              + -initWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:bitsPerSample:audioType:maxDuration:muteAudio:audioDataHandler:

                                                                              Undocumented

                                                                              @@ -126,11 +116,12 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) NSMutableArray *initialPrompt;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable)
                                                                              +    NSArray<SDLTTSChunk *> *initialPrompt;

                                                                              Swift

                                                                              -
                                                                              var initialPrompt: NSMutableArray! { get set }
                                                                              +
                                                                              var initialPrompt: [SDLTTSChunk]? { get set }
                                                                              @@ -149,11 +140,12 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) NSString *audioPassThruDisplayText1;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable)
                                                                              +    NSString *audioPassThruDisplayText1;

                                                                              Swift

                                                                              -
                                                                              var audioPassThruDisplayText1: String! { get set }
                                                                              +
                                                                              var audioPassThruDisplayText1: String? { get set }
                                                                              @@ -172,11 +164,12 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) NSString *audioPassThruDisplayText2;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable)
                                                                              +    NSString *audioPassThruDisplayText2;

                                                                              Swift

                                                                              -
                                                                              var audioPassThruDisplayText2: String! { get set }
                                                                              +
                                                                              var audioPassThruDisplayText2: String? { get set }
                                                                              @@ -192,11 +185,11 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) SDLSamplingRate *samplingRate;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic) SDLSamplingRate _Nonnull samplingRate;

                                                                              Swift

                                                                              -
                                                                              var samplingRate: SDLSamplingRate! { get set }
                                                                              +
                                                                              var samplingRate: SDLSamplingRate { get set }
                                                                              @@ -216,11 +209,11 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) NSNumber *maxDuration;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull maxDuration;

                                                                              Swift

                                                                              -
                                                                              var maxDuration: NSNumber! { get set }
                                                                              +
                                                                              var maxDuration: NSNumber 
                                                                              @@ -236,11 +229,11 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) SDLBitsPerSample *bitsPerSample;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic) SDLBitsPerSample _Nonnull bitsPerSample;

                                                                              Swift

                                                                              -
                                                                              var bitsPerSample: SDLBitsPerSample! { get set }
                                                                              +
                                                                              var bitsPerSample: SDLBitsPerSample { get set }
                                                                              @@ -254,11 +247,11 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) SDLAudioType *audioType;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic) SDLAudioType _Nonnull audioType;

                                                                              Swift

                                                                              -
                                                                              var audioType: SDLAudioType! { get set }
                                                                              +
                                                                              var audioType: SDLAudioType { get set }
                                                                              @@ -273,11 +266,30 @@

                                                                              Objective-C

                                                                              -
                                                                              @property (readwrite, strong, atomic) NSNumber *muteAudio;
                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *muteAudio;
                                                                              + + +

                                                                              Swift

                                                                              +
                                                                              var muteAudio: (NSNumber 
                                                                              + + + + +

                                                                              + audioDataHandler +

                                                                              + +

                                                                              A handler that will be called whenever an onAudioPassThru notification is received.

                                                                              + + + +

                                                                              Objective-C

                                                                              +
                                                                              @property (readwrite, strong, nonatomic, nullable)
                                                                              +    SDLAudioPassThruHandler audioDataHandler;

                                                                              Swift

                                                                              -
                                                                              var muteAudio: NSNumber! { get set }
                                                                              +
                                                                              var audioDataHandler: SDLAudioPassThruHandler? { get set }
                                                                              diff --git a/docs/Classes/SDLPerformAudioPassThruResponse.html b/docs/Classes/SDLPerformAudioPassThruResponse.html deleted file mode 100644 index d93154f17..000000000 --- a/docs/Classes/SDLPerformAudioPassThruResponse.html +++ /dev/null @@ -1,59 +0,0 @@ -

                                                                              SDLPerformAudioPassThruResponse Class Reference

                                                                              - -

                                                                              Section Contents

                                                                              - - - -

                                                                              Overview

                                                                              - -

                                                                              Perform Audio Pass Thru Response is sent, when PerformAudioPassThru has been called

                                                                              - -

                                                                              Since SmartDeviceLink 2.0

                                                                              - - -
                                                                              -

                                                                              - -init -

                                                                              - -

                                                                              @abstract Constructs a new SDLPerformAudioPassThruResponse object

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              - (instancetype)init;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              init!()
                                                                              - - - - -

                                                                              - -initWithDictionary: -

                                                                              - -

                                                                              @abstract Constructs a new SDLPerformAudioPassThruResponse object indicated by the dictionary parameter

                                                                              - - - -

                                                                              Objective-C

                                                                              -
                                                                              - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                              - - -

                                                                              Swift

                                                                              -
                                                                              init!(dictionary dict: NSMutableDictionary!)
                                                                              - - - -

                                                                              Parameters

                                                                              -
                                                                              -
                                                                              dict
                                                                              -

                                                                              The dictionary to use

                                                                              -
                                                                              - -
                                                                              diff --git a/docs/Classes/SDLPerformInteraction.html b/docs/Classes/SDLPerformInteraction.html index 3c1cf1f3f..7abfcc7c8 100644 --- a/docs/Classes/SDLPerformInteraction.html +++ b/docs/Classes/SDLPerformInteraction.html @@ -3,8 +3,6 @@

                                                                              SDLPerformInteraction Class Reference

                                                                              Section Contents

                                                                                -
                                                                              • -init
                                                                              • -
                                                                              • -initWithDictionary:
                                                                              • -initWithInteractionChoiceSetId:
                                                                              • -initWithInteractionChoiceSetIdList:
                                                                              • -initWithInitialPrompt:initialText:interactionChoiceSetID:
                                                                              • @@ -42,47 +40,6 @@

                                                                                Overview

                                                                                -

                                                                                - -init -

                                                                                - -

                                                                                @abstract Constructs a new SDLPerformInteraction object

                                                                                - - - -

                                                                                Objective-C

                                                                                -
                                                                                - (instancetype)init;
                                                                                - - -

                                                                                Swift

                                                                                -
                                                                                init!()
                                                                                - - - - -

                                                                                - -initWithDictionary: -

                                                                                - -

                                                                                @abstract Constructs a new SDLPerformInteraction object indicated by the NSMutableDictionary

                                                                                - - - -

                                                                                Objective-C

                                                                                -
                                                                                - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                - - -

                                                                                Swift

                                                                                -
                                                                                init!(dictionary dict: NSMutableDictionary!)
                                                                                - - - -

                                                                                Parameters

                                                                                -
                                                                                -
                                                                                dict
                                                                                -

                                                                                The dictionary to use

                                                                                -
                                                                                -

                                                                                -initWithInteractionChoiceSetId:

                                                                                @@ -215,11 +172,11 @@

                                                                                Objective-C

                                                                                -
                                                                                @property (readwrite, strong, atomic) NSString *initialText;
                                                                                +
                                                                                @property (readwrite, strong, nonatomic) NSString *_Nonnull initialText;

                                                                                Swift

                                                                                -
                                                                                var initialText: String! { get set }
                                                                                +
                                                                                var initialText: String { get set }
                                                                                @@ -234,11 +191,12 @@

                                                                                Objective-C

                                                                                -
                                                                                @property (readwrite, strong, atomic) NSMutableArray *initialPrompt;
                                                                                +
                                                                                @property (readwrite, strong, nonatomic, nullable)
                                                                                +    NSArray<SDLTTSChunk *> *initialPrompt;

                                                                                Swift

                                                                                -
                                                                                var initialPrompt: NSMutableArray! { get set }
                                                                                +
                                                                                var initialPrompt: [SDLTTSChunk]? { get set }
                                                                                @@ -254,11 +212,12 @@

                                                                                Objective-C

                                                                                -
                                                                                @property (readwrite, strong, atomic) SDLInteractionMode *interactionMode;
                                                                                +
                                                                                @property (readwrite, strong, nonatomic)
                                                                                +    SDLInteractionMode _Nonnull interactionMode;

                                                                                Swift

                                                                                -
                                                                                var interactionMode: SDLInteractionMode! { get set }
                                                                                +
                                                                                var interactionMode: SDLInteractionMode { get set }
                                                                                @@ -273,11 +232,12 @@

                                                                                Objective-C

                                                                                -
                                                                                @property (readwrite, strong, atomic) NSMutableArray *interactionChoiceSetIDList;
                                                                                +
                                                                                @property (readwrite, strong, nonatomic)
                                                                                +    NSArray<NSNumber<SDLInt> *> *_Nonnull interactionChoiceSetIDList;

                                                                                Swift

                                                                                -
                                                                                var interactionChoiceSetIDList: NSMutableArray! { get set }
                                                                                +
                                                                                var interactionChoiceSetIDList: [NSNumber 
                                                                                @@ -292,11 +252,12 @@

                                                                                Objective-C

                                                                                -
                                                                                @property (readwrite, strong, atomic) NSMutableArray *helpPrompt;
                                                                                +
                                                                                @property (readwrite, strong, nonatomic, nullable)
                                                                                +    NSArray<SDLTTSChunk *> *helpPrompt;

                                                                                Swift

                                                                                -
                                                                                var helpPrompt: NSMutableArray! { get set }
                                                                                +
                                                                                var helpPrompt: [SDLTTSChunk]? { get set }
                                                                                @@ -311,11 +272,12 @@

                                                                                Objective-C

                                                                                -
                                                                                @property (readwrite, strong, atomic) NSMutableArray *timeoutPrompt;
                                                                                +
                                                                                @property (readwrite, strong, nonatomic, nullable)
                                                                                +    NSArray<SDLTTSChunk *> *timeoutPrompt;

                                                                                Swift

                                                                                -
                                                                                var timeoutPrompt: NSMutableArray! { get set }
                                                                                +
                                                                                var timeoutPrompt: [SDLTTSChunk]? { get set }
                                                                                @@ -330,11 +292,11 @@

                                                                                Objective-C

                                                                                -
                                                                                @property (readwrite, strong, atomic) NSNumber *timeout;
                                                                                +
                                                                                @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *timeout;

                                                                                Swift

                                                                                -
                                                                                var timeout: NSNumber! { get set }
                                                                                +
                                                                                var timeout: (NSNumber 
                                                                                @@ -350,11 +312,12 @@

                                                                                Objective-C

                                                                                -
                                                                                @property (readwrite, strong, atomic) NSMutableArray *vrHelp;
                                                                                +
                                                                                @property (readwrite, strong, nonatomic, nullable)
                                                                                +    NSArray<SDLVRHelpItem *> *vrHelp;

                                                                                Swift

                                                                                -
                                                                                var vrHelp: NSMutableArray! { get set }
                                                                                +
                                                                                var vrHelp: [SDLVRHelpItem]? { get set }
                                                                                diff --git a/docs/Classes/SDLPerformInteractionResponse.html b/docs/Classes/SDLPerformInteractionResponse.html index 6a49fcd99..bdc164c9e 100644 --- a/docs/Classes/SDLPerformInteractionResponse.html +++ b/docs/Classes/SDLPerformInteractionResponse.html @@ -3,8 +3,6 @@

                                                                                SDLPerformInteractionResponse Class Reference

                                                                                Section Contents

                                                                                  -
                                                                                • -init
                                                                                • -
                                                                                • -initWithDictionary:
                                                                                • choiceID
                                                                                • manualTextEntry
                                                                                • triggerSource
                                                                                • @@ -18,47 +16,6 @@

                                                                                  Overview

                                                                                  -

                                                                                  - -init -

                                                                                  - -

                                                                                  @abstract Constructs a new SDLPerformInteractionResponse object

                                                                                  - - - -

                                                                                  Objective-C

                                                                                  -
                                                                                  - (instancetype)init;
                                                                                  - - -

                                                                                  Swift

                                                                                  -
                                                                                  init!()
                                                                                  - - - - -

                                                                                  - -initWithDictionary: -

                                                                                  - -

                                                                                  @abstract Constructs a new SDLPerformInteractionResponse object indicated by the dictionary parameter

                                                                                  - - - -

                                                                                  Objective-C

                                                                                  -
                                                                                  - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                  - - -

                                                                                  Swift

                                                                                  -
                                                                                  init!(dictionary dict: NSMutableDictionary!)
                                                                                  - - - -

                                                                                  Parameters

                                                                                  -
                                                                                  -
                                                                                  dict
                                                                                  -

                                                                                  The dictionary to use

                                                                                  -
                                                                                  -

                                                                                  choiceID

                                                                                  @@ -72,11 +29,11 @@

                                                                                  Objective-C

                                                                                  -
                                                                                  @property (readwrite, strong, atomic) NSNumber *choiceID;
                                                                                  +
                                                                                  @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *choiceID;

                                                                                  Swift

                                                                                  -
                                                                                  var choiceID: NSNumber! { get set }
                                                                                  +
                                                                                  var choiceID: (NSNumber 
                                                                                  @@ -94,11 +51,11 @@

                                                                                  Objective-C

                                                                                  -
                                                                                  @property (readwrite, strong, atomic) NSString *manualTextEntry;
                                                                                  +
                                                                                  @property (readwrite, strong, nonatomic, nullable) NSString *manualTextEntry;

                                                                                  Swift

                                                                                  -
                                                                                  var manualTextEntry: String! { get set }
                                                                                  +
                                                                                  var manualTextEntry: String? { get set }
                                                                                  @@ -114,11 +71,12 @@

                                                                                  Objective-C

                                                                                  -
                                                                                  @property (readwrite, strong, atomic) SDLTriggerSource *triggerSource;
                                                                                  +
                                                                                  @property (readwrite, strong, nonatomic, nullable)
                                                                                  +    SDLTriggerSource triggerSource;

                                                                                  Swift

                                                                                  -
                                                                                  var triggerSource: SDLTriggerSource! { get set }
                                                                                  +
                                                                                  var triggerSource: SDLTriggerSource? { get set }
                                                                                  diff --git a/docs/Classes/SDLPermissionItem.html b/docs/Classes/SDLPermissionItem.html index b4f0bd603..fa14d05b0 100644 --- a/docs/Classes/SDLPermissionItem.html +++ b/docs/Classes/SDLPermissionItem.html @@ -3,8 +3,6 @@

                                                                                  SDLPermissionItem Class Reference

                                                                                  Section Contents

                                                                                    -
                                                                                  • -init
                                                                                  • -
                                                                                  • -initWithDictionary:
                                                                                  • rpcName
                                                                                  • hmiPermissions
                                                                                  • parameterPermissions
                                                                                  • @@ -16,28 +14,6 @@

                                                                                    Overview

                                                                                    -

                                                                                    - -init -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - -initWithDictionary: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - -

                                                                                    rpcName

                                                                                    diff --git a/docs/Classes/SDLPermissionStatus.html b/docs/Classes/SDLPermissionStatus.html deleted file mode 100644 index 9e886d288..000000000 --- a/docs/Classes/SDLPermissionStatus.html +++ /dev/null @@ -1,159 +0,0 @@ -

                                                                                    SDLPermissionStatus Class Reference

                                                                                    - -

                                                                                    Section Contents

                                                                                    - - - -

                                                                                    Overview

                                                                                    - -

                                                                                    Enumeration that describes possible permission states of a policy table entry.

                                                                                    - -

                                                                                    @since SDL 2.0

                                                                                    - - -
                                                                                    -

                                                                                    - +valueOf: -

                                                                                    - -

                                                                                    @abstract SDLPermissionStatus

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    + (SDLPermissionStatus *)valueOf:(NSString *)value;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    class func value(of value: String!) -> SDLPermissionStatus!
                                                                                    - - - -

                                                                                    Parameters

                                                                                    -
                                                                                    -
                                                                                    value
                                                                                    -

                                                                                    The value of the string to get an object for

                                                                                    -
                                                                                    -
                                                                                    -

                                                                                    Return Value

                                                                                    -

                                                                                    a SDLPermissionStatus object

                                                                                    -
                                                                                    - -

                                                                                    - +values -

                                                                                    - -

                                                                                    @abstract declare an array to store all possible SDLPermissionStatus values

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    + (NSArray *)values;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    class func values() -> [Any]!
                                                                                    - - - -
                                                                                    -

                                                                                    Return Value

                                                                                    -

                                                                                    the array

                                                                                    -
                                                                                    - -

                                                                                    - +ALLOWED -

                                                                                    - -

                                                                                    @abstract permission: allowed

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    + (SDLPermissionStatus *)ALLOWED;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    class func allowed() -> SDLPermissionStatus!
                                                                                    - - - -
                                                                                    -

                                                                                    Return Value

                                                                                    -

                                                                                    permission status: ALLOWED

                                                                                    -
                                                                                    - -

                                                                                    - +DISALLOWED -

                                                                                    - -

                                                                                    @abstract permission: disallowed

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    + (SDLPermissionStatus *)DISALLOWED;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    class func disallowed() -> SDLPermissionStatus!
                                                                                    - - - -
                                                                                    -

                                                                                    Return Value

                                                                                    -

                                                                                    permission status: DISALLOWED

                                                                                    -
                                                                                    - -

                                                                                    - +USER_DISALLOWED -

                                                                                    - -

                                                                                    @abstract permission: user disallowed

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    + (SDLPermissionStatus *)USER_DISALLOWED;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    class func user_DISALLOWED() -> SDLPermissionStatus!
                                                                                    - - - -
                                                                                    -

                                                                                    Return Value

                                                                                    -

                                                                                    permission status: USER_DISALLOWED

                                                                                    -
                                                                                    - - - -

                                                                                    @abstract permission: user consent pending

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    + (SDLPermissionStatus *)USER_CONSENT_PENDING;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    class func user_CONSENT_PENDING() -> SDLPermissionStatus!
                                                                                    - - - -
                                                                                    -

                                                                                    Return Value

                                                                                    -

                                                                                    permission status: USER_CONSENT_PENDING

                                                                                    -
                                                                                    - -
                                                                                    diff --git a/docs/Classes/SDLPhoneCapability.html b/docs/Classes/SDLPhoneCapability.html index 367bfd994..cccaaaf6c 100644 --- a/docs/Classes/SDLPhoneCapability.html +++ b/docs/Classes/SDLPhoneCapability.html @@ -3,8 +3,6 @@

                                                                                    SDLPhoneCapability Class Reference

                                                                                    Section Contents

                                                                                    @@ -15,47 +13,6 @@

                                                                                    Overview

                                                                                    -

                                                                                    - -init -

                                                                                    - -

                                                                                    @abstract Constructs a newly allocated SDLPhoneCapability struct

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    - (instancetype)init;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    init!()
                                                                                    - - - - -

                                                                                    - -initWithDictionary: -

                                                                                    - -

                                                                                    @abstract Constructs a newly allocated SDLPhoneCapability struct indicated by the dictionary parameter

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    init!(dictionary dict: NSMutableDictionary!)
                                                                                    - - - -

                                                                                    Parameters

                                                                                    -
                                                                                    -
                                                                                    dict
                                                                                    -

                                                                                    The dictionary to use

                                                                                    -
                                                                                    -

                                                                                    -initWithDialNumber:

                                                                                    @@ -77,11 +34,11 @@

                                                                                    Objective-C

                                                                                    -
                                                                                    @property (readwrite, strong, nonatomic) NSNumber *dialNumberEnabled;
                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable) NSNumber *dialNumberEnabled;

                                                                                    Swift

                                                                                    -
                                                                                    var dialNumberEnabled: NSNumber! { get set }
                                                                                    +
                                                                                    var dialNumberEnabled: NSNumber? { get set }
                                                                                    diff --git a/docs/Classes/SDLPinchGesture.html b/docs/Classes/SDLPinchGesture.html new file mode 100644 index 000000000..4d8e88cb6 --- /dev/null +++ b/docs/Classes/SDLPinchGesture.html @@ -0,0 +1,148 @@ +

                                                                                    SDLPinchGesture Class Reference

                                                                                    + +

                                                                                    Section Contents

                                                                                    + + + +

                                                                                    Overview

                                                                                    + +

                                                                                    Undocumented

                                                                                    + + +
                                                                                    +

                                                                                    + -initWithFirstTouch:secondTouch: +

                                                                                    + +

                                                                                    @abstract + Initializes a pinch gesture.

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    - (nonnull instancetype)initWithFirstTouch:(nonnull SDLTouch *)firstTouch
                                                                                    +                               secondTouch:(nonnull SDLTouch *)secondTouch;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    init(firstTouch: SDLTouch, secondTouch: SDLTouch)
                                                                                    + + + +

                                                                                    Parameters

                                                                                    +
                                                                                    +
                                                                                    firstTouch
                                                                                    +

                                                                                    First touch of the gesture

                                                                                    +
                                                                                    secondTouch
                                                                                    +

                                                                                    Second touch of the gesture

                                                                                    +
                                                                                    +
                                                                                    +

                                                                                    Return Value

                                                                                    +

                                                                                    SDLPinchGesture +Instance of SDLPinchGesture.

                                                                                    +
                                                                                    + +

                                                                                    + firstTouch +

                                                                                    + +

                                                                                    @abstract + First touch of a pinch gesture.

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic) SDLTouch *_Nonnull firstTouch;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var firstTouch: SDLTouch { get set }
                                                                                    + + + + +

                                                                                    + secondTouch +

                                                                                    + +

                                                                                    @abstract + Second touch of a pinch gesture.

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic) SDLTouch *_Nonnull secondTouch;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var secondTouch: SDLTouch { get set }
                                                                                    + + + + +

                                                                                    + distance +

                                                                                    + +

                                                                                    @abstract + Distance between first and second touches.

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readonly, assign, nonatomic) CGFloat distance;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var distance: CGFloat { get }
                                                                                    + + + + +

                                                                                    + center +

                                                                                    + +

                                                                                    @abstract + Center point between first and second touches.

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readonly, assign, nonatomic) CGPoint center;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var center: CGPoint { get }
                                                                                    + + + + +

                                                                                    + isValid +

                                                                                    + +

                                                                                    @abstract + Returns whether or not the pinch gesture is valid. This is true if both touches + are non null.

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readonly, assign, nonatomic) BOOL isValid;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var isValid: Bool { get }
                                                                                    + + + + +
                                                                                    diff --git a/docs/Classes/SDLPowerModeQualificationStatus.html b/docs/Classes/SDLPowerModeQualificationStatus.html deleted file mode 100644 index 13ef575c9..000000000 --- a/docs/Classes/SDLPowerModeQualificationStatus.html +++ /dev/null @@ -1,86 +0,0 @@ -

                                                                                    SDLPowerModeQualificationStatus Class Reference

                                                                                    - -

                                                                                    Section Contents

                                                                                    - - - -

                                                                                    Overview

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - -
                                                                                    -

                                                                                    - +valueOf: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +values -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +POWER_MODE_UNDEFINED -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +POWER_MODE_EVALUATION_IN_PROGRESS -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +NOT_DEFINED -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +POWER_MODE_OK -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -
                                                                                    diff --git a/docs/Classes/SDLPowerModeStatus.html b/docs/Classes/SDLPowerModeStatus.html deleted file mode 100644 index 629f0e899..000000000 --- a/docs/Classes/SDLPowerModeStatus.html +++ /dev/null @@ -1,146 +0,0 @@ -

                                                                                    SDLPowerModeStatus Class Reference

                                                                                    - -

                                                                                    Section Contents

                                                                                    - - - -

                                                                                    Overview

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - -
                                                                                    -

                                                                                    - +valueOf: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +values -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +KEY_OUT -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +KEY_RECENTLY_OUT -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +KEY_APPROVED_0 -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +POST_ACCESORY_0 -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +ACCESORY_1 -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +POST_IGNITION_1 -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +IGNITION_ON_2 -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +RUNNING_2 -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +CRANK_3 -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -
                                                                                    diff --git a/docs/Classes/SDLPredefinedLayout.html b/docs/Classes/SDLPredefinedLayout.html deleted file mode 100644 index 8754a85c6..000000000 --- a/docs/Classes/SDLPredefinedLayout.html +++ /dev/null @@ -1,278 +0,0 @@ -

                                                                                    SDLPredefinedLayout Class Reference

                                                                                    - -

                                                                                    Section Contents

                                                                                    - - - -

                                                                                    Overview

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - -
                                                                                    -

                                                                                    - +valueOf: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +values -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +DEFAULT -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +MEDIA -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +NON_MEDIA -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +ONSCREEN_PRESETS -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +NAV_FULLSCREEN_MAP -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +NAV_LIST -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +NAV_KEYBOARD -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +GRAPHIC_WITH_TEXT -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +TEXT_WITH_GRAPHIC -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +TILES_ONLY -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +TEXTBUTTONS_ONLY -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +GRAPHIC_WITH_TILES -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +TILES_WITH_GRAPHIC -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +GRAPHIC_WITH_TEXTBUTTONS -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +TEXTBUTTONS_WITH_GRAPHIC -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +LARGE_GRAPHIC_WITH_SOFTBUTTONS -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +DOUBLE_GRAPHIC_WITH_SOFTBUTTONS -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +LARGE_GRAPHIC_ONLY -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -
                                                                                    diff --git a/docs/Classes/SDLPrerecordedSpeech.html b/docs/Classes/SDLPrerecordedSpeech.html deleted file mode 100644 index 9601abc29..000000000 --- a/docs/Classes/SDLPrerecordedSpeech.html +++ /dev/null @@ -1,98 +0,0 @@ -

                                                                                    SDLPrerecordedSpeech Class Reference

                                                                                    - -

                                                                                    Section Contents

                                                                                    - - - -

                                                                                    Overview

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - -
                                                                                    -

                                                                                    - +valueOf: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +values -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +HELP_JINGLE -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +INITIAL_JINGLE -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +LISTEN_JINGLE -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +POSITIVE_JINGLE -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +NEGATIVE_JINGLE -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -
                                                                                    diff --git a/docs/Classes/SDLPresetBankCapabilities.html b/docs/Classes/SDLPresetBankCapabilities.html index 2cb903327..bff9b7a51 100644 --- a/docs/Classes/SDLPresetBankCapabilities.html +++ b/docs/Classes/SDLPresetBankCapabilities.html @@ -3,8 +3,6 @@

                                                                                    SDLPresetBankCapabilities Class Reference

                                                                                    Section Contents

                                                                                    @@ -16,47 +14,6 @@

                                                                                    Overview

                                                                                    -

                                                                                    - -init -

                                                                                    - -

                                                                                    @abstract Constructs a newly allocated SDLPresetBankCapabilities object

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    - (instancetype)init;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    init!()
                                                                                    - - - - -

                                                                                    - -initWithDictionary: -

                                                                                    - -

                                                                                    @abstract Constructs a newly allocated SDLPresetBankCapabilities object indicated by the dictionary parameter

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    init!(dictionary dict: NSMutableDictionary!)
                                                                                    - - - -

                                                                                    Parameters

                                                                                    -
                                                                                    -
                                                                                    dict
                                                                                    -

                                                                                    The dictionary to use

                                                                                    -
                                                                                    -

                                                                                    onScreenPresetsAvailable

                                                                                    @@ -68,11 +25,12 @@

                                                                                    Objective-C

                                                                                    -
                                                                                    @property (readwrite, strong, atomic) NSNumber *onScreenPresetsAvailable;
                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic)
                                                                                    +    NSNumber<SDLBool> *_Nonnull onScreenPresetsAvailable;

                                                                                    Swift

                                                                                    -
                                                                                    var onScreenPresetsAvailable: NSNumber! { get set }
                                                                                    +
                                                                                    var onScreenPresetsAvailable: NSNumber 
                                                                                    diff --git a/docs/Classes/SDLPrimaryAudioSource.html b/docs/Classes/SDLPrimaryAudioSource.html deleted file mode 100644 index fd61c8ff9..000000000 --- a/docs/Classes/SDLPrimaryAudioSource.html +++ /dev/null @@ -1,228 +0,0 @@ -

                                                                                    SDLPrimaryAudioSource Class Reference

                                                                                    - -

                                                                                    Section Contents

                                                                                    - - - -

                                                                                    Overview

                                                                                    - -

                                                                                    Reflects the current primary audio source of SDL (if selected).

                                                                                    - -

                                                                                    @since SDL 2.0

                                                                                    - - -
                                                                                    -

                                                                                    - +valueOf: -

                                                                                    - -

                                                                                    @abstract get SDLPrimaryAudioSource according value string

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    + (SDLPrimaryAudioSource *)valueOf:(NSString *)value;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    class func value(of value: String!) -> SDLPrimaryAudioSource!
                                                                                    - - - -

                                                                                    Parameters

                                                                                    -
                                                                                    -
                                                                                    value
                                                                                    -

                                                                                    String value to retrieve the object enum for

                                                                                    -
                                                                                    -
                                                                                    -

                                                                                    Return Value

                                                                                    -

                                                                                    SDLPrimaryAudioSource object

                                                                                    -
                                                                                    - -

                                                                                    - +values -

                                                                                    - -

                                                                                    @abstract declare an array to store all possible SDLPrimaryAudioSource values

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    + (NSArray *)values;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    class func values() -> [Any]!
                                                                                    - - - -
                                                                                    -

                                                                                    Return Value

                                                                                    -

                                                                                    the array

                                                                                    -
                                                                                    - -

                                                                                    - +NO_SOURCE_SELECTED -

                                                                                    - -

                                                                                    @abstract Currently no source selected

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    + (SDLPrimaryAudioSource *)NO_SOURCE_SELECTED;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    class func no_SOURCE_SELECTED() -> SDLPrimaryAudioSource!
                                                                                    - - - -
                                                                                    -

                                                                                    Return Value

                                                                                    -

                                                                                    the current primary audio source: NO_SOURCE_SELECTED

                                                                                    -
                                                                                    - -

                                                                                    - +USB -

                                                                                    - -

                                                                                    @abstract USB is current source

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    + (SDLPrimaryAudioSource *)USB;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    class func usb() -> SDLPrimaryAudioSource!
                                                                                    - - - -
                                                                                    -

                                                                                    Return Value

                                                                                    -

                                                                                    the current primary audio source: USB

                                                                                    -
                                                                                    - -

                                                                                    - +USB2 -

                                                                                    - -

                                                                                    @abstract USB2 is current source

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    + (SDLPrimaryAudioSource *)USB2;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    class func usb2() -> SDLPrimaryAudioSource!
                                                                                    - - - -
                                                                                    -

                                                                                    Return Value

                                                                                    -

                                                                                    the current primary audio source: USB2

                                                                                    -
                                                                                    - -

                                                                                    - +BLUETOOTH_STEREO_BTST -

                                                                                    - -

                                                                                    @abstract Bluetooth Stereo is current source

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    + (SDLPrimaryAudioSource *)BLUETOOTH_STEREO_BTST;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    class func bluetooth_STEREO_BTST() -> SDLPrimaryAudioSource!
                                                                                    - - - -
                                                                                    -

                                                                                    Return Value

                                                                                    -

                                                                                    the current primary audio source: BLUETOOTH_STEREO_BTST

                                                                                    -
                                                                                    - -

                                                                                    - +LINE_IN -

                                                                                    - -

                                                                                    @abstract Line in is current source

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    + (SDLPrimaryAudioSource *)LINE_IN;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    class func line_IN() -> SDLPrimaryAudioSource!
                                                                                    - - - -
                                                                                    -

                                                                                    Return Value

                                                                                    -

                                                                                    the current primary audio source: LINE_IN

                                                                                    -
                                                                                    - -

                                                                                    - +IPOD -

                                                                                    - -

                                                                                    @abstract iPod is current source

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    + (SDLPrimaryAudioSource *)IPOD;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    class func ipod() -> SDLPrimaryAudioSource!
                                                                                    - - - -
                                                                                    -

                                                                                    Return Value

                                                                                    -

                                                                                    the current primary audio source: IPOD

                                                                                    -
                                                                                    - -

                                                                                    - +MOBILE_APP -

                                                                                    - -

                                                                                    @abstract Mobile app is current source

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    + (SDLPrimaryAudioSource *)MOBILE_APP;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    class func mobile_APP() -> SDLPrimaryAudioSource!
                                                                                    - - - -
                                                                                    -

                                                                                    Return Value

                                                                                    -

                                                                                    the current primary audio source: MOBILE_APP

                                                                                    -
                                                                                    - -
                                                                                    diff --git a/docs/Classes/SDLProtocol.html b/docs/Classes/SDLProtocol.html index a71f0ea2f..73d65c866 100644 --- a/docs/Classes/SDLProtocol.html +++ b/docs/Classes/SDLProtocol.html @@ -3,16 +3,11 @@

                                                                                    SDLProtocol Class Reference

                                                                                    Section Contents

                                                                                    Overview

                                                                                    @@ -96,15 +95,4 @@

                                                                                    -

                                                                                    - +determineVersion: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - -
                                                                                    diff --git a/docs/Classes/SDLProxy.html b/docs/Classes/SDLProxy.html index 254430d34..182f7681b 100644 --- a/docs/Classes/SDLProxy.html +++ b/docs/Classes/SDLProxy.html @@ -6,26 +6,19 @@

                                                                                    Section Contents

                                                                                  • _version
                                                                                  • _bulkSessionID
                                                                                  • _isConnected
                                                                                  • -
                                                                                  • _alreadyDestructed
                                                                                  • protocol
                                                                                  • transport
                                                                                  • proxyListeners
                                                                                  • startSessionTimer
                                                                                  • debugConsoleGroupName
                                                                                  • proxyVersion
                                                                                  • -
                                                                                  • streamingMediaManager
                                                                                  • -initWithTransport:protocol:delegate:
                                                                                  • -
                                                                                  • -dispose
                                                                                  • -addDelegate:
                                                                                  • -removeDelegate:
                                                                                  • -sendRPC:
                                                                                  • -
                                                                                  • -sendRPCRequest:
                                                                                  • -handleRPCDictionary:
                                                                                  • -
                                                                                  • -handleRpcMessage:
                                                                                  • -handleProtocolMessage:
                                                                                  • -addSecurityManagers:forAppId:
                                                                                  • -
                                                                                  • +enableSiphonDebug
                                                                                  • -
                                                                                  • +disableSiphonDebug
                                                                                  • -putFileStream:withRequest:
                                                                                  @@ -68,17 +61,6 @@

                                                                                  -

                                                                                  - _alreadyDestructed -

                                                                                  - -

                                                                                  Undocumented

                                                                                  - - - - - -

                                                                                  protocol

                                                                                  @@ -145,17 +127,6 @@

                                                                                  -

                                                                                  - streamingMediaManager -

                                                                                  - -

                                                                                  Undocumented

                                                                                  - - - - - -

                                                                                  -initWithTransport:protocol:delegate:

                                                                                  @@ -167,17 +138,6 @@

                                                                                  -

                                                                                  - -dispose -

                                                                                  - -

                                                                                  Undocumented

                                                                                  - - - - - -

                                                                                  -addDelegate:

                                                                                  @@ -211,17 +171,6 @@

                                                                                  -

                                                                                  - -sendRPCRequest: -

                                                                                  - -

                                                                                  Undocumented

                                                                                  - - - - - -

                                                                                  -handleRPCDictionary:

                                                                                  @@ -233,17 +182,6 @@

                                                                                  -

                                                                                  - -handleRpcMessage: -

                                                                                  - -

                                                                                  Undocumented

                                                                                  - - - - - -

                                                                                  -handleProtocolMessage:

                                                                                  @@ -266,28 +204,6 @@

                                                                                  -

                                                                                  - +enableSiphonDebug -

                                                                                  - -

                                                                                  Undocumented

                                                                                  - - - - - - -

                                                                                  - +disableSiphonDebug -

                                                                                  - -

                                                                                  Undocumented

                                                                                  - - - - - -

                                                                                  -putFileStream:withRequest:

                                                                                  @@ -298,12 +214,12 @@

                                                                                  Objective-C

                                                                                  -
                                                                                  - (void)putFileStream:(NSInputStream *)inputStream
                                                                                  -          withRequest:(SDLPutFile *)putFileRPCRequest;
                                                                                  +
                                                                                  - (void)putFileStream:(nonnull NSInputStream *)inputStream
                                                                                  +          withRequest:(nonnull SDLPutFile *)putFileRPCRequest;

                                                                                  Swift

                                                                                  -
                                                                                  func putFileStream(_ inputStream: InputStream!, withRequest putFileRPCRequest: SDLPutFile!)
                                                                                  +
                                                                                  func putFileStream(_ inputStream: InputStream, withRequest putFileRPCRequest: SDLPutFile)
                                                                                  diff --git a/docs/Classes/SDLPutFile.html b/docs/Classes/SDLPutFile.html index 36e9b05ac..192165952 100644 --- a/docs/Classes/SDLPutFile.html +++ b/docs/Classes/SDLPutFile.html @@ -3,8 +3,6 @@

                                                                                  SDLPutFile Class Reference

                                                                                  Section Contents

                                                                                    -
                                                                                  • -init
                                                                                  • -
                                                                                  • -initWithDictionary:
                                                                                  • -initWithFileName:fileType:
                                                                                  • -initWithFileName:fileType:persistentFile:
                                                                                  • -initWithFileName:fileType:persistentFile:systemFile:offset:length:
                                                                                  • @@ -35,47 +33,6 @@

                                                                                    Overview

                                                                                    -

                                                                                    - -init -

                                                                                    - -

                                                                                    Constructs a new SDLPutFile object

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    - (instancetype)init;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    init!()
                                                                                    - - - - -

                                                                                    - -initWithDictionary: -

                                                                                    - -

                                                                                    Constructs a new SDLPutFile object indicated by the dictionary parameter

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    init!(dictionary dict: NSMutableDictionary!)
                                                                                    - - - -

                                                                                    Parameters

                                                                                    -
                                                                                    -
                                                                                    dict
                                                                                    -

                                                                                    The dictionary to use

                                                                                    -
                                                                                    -

                                                                                    -initWithFileName:fileType:

                                                                                    @@ -132,11 +89,11 @@

                                                                                    Objective-C

                                                                                    -
                                                                                    @property (readwrite, strong, atomic) NSString *syncFileName;
                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic) NSString *_Nonnull syncFileName;

                                                                                    Swift

                                                                                    -
                                                                                    var syncFileName: String! { get set }
                                                                                    +
                                                                                    var syncFileName: String { get set }
                                                                                    @@ -152,11 +109,11 @@

                                                                                    Objective-C

                                                                                    -
                                                                                    @property (readwrite, strong, atomic) SDLFileType *fileType;
                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic) SDLFileType _Nonnull fileType;

                                                                                    Swift

                                                                                    -
                                                                                    var fileType: SDLFileType! { get set }
                                                                                    +
                                                                                    var fileType: SDLFileType { get set }
                                                                                    @@ -178,11 +135,12 @@

                                                                                    Objective-C

                                                                                    -
                                                                                    @property (readwrite, strong, atomic) NSNumber *persistentFile;
                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                    +    NSNumber<SDLBool> *persistentFile;

                                                                                    Swift

                                                                                    -
                                                                                    var persistentFile: NSNumber! { get set }
                                                                                    +
                                                                                    var persistentFile: (NSNumber 
                                                                                    @@ -198,11 +156,11 @@

                                                                                    Objective-C

                                                                                    -
                                                                                    @property (readwrite, strong, atomic) NSNumber *systemFile;
                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *systemFile;

                                                                                    Swift

                                                                                    -
                                                                                    var systemFile: NSNumber! { get set }
                                                                                    +
                                                                                    var systemFile: (NSNumber 
                                                                                    @@ -218,11 +176,11 @@

                                                                                    Objective-C

                                                                                    -
                                                                                    @property (readwrite, strong, atomic) NSNumber *offset;
                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLUInt> *offset;

                                                                                    Swift

                                                                                    -
                                                                                    var offset: NSNumber! { get set }
                                                                                    +
                                                                                    var offset: (NSNumber 
                                                                                    @@ -238,11 +196,11 @@

                                                                                    Objective-C

                                                                                    -
                                                                                    @property (readwrite, strong, atomic) NSNumber *length;
                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLUInt> *length;

                                                                                    Swift

                                                                                    -
                                                                                    var length: NSNumber! { get set }
                                                                                    +
                                                                                    var length: (NSNumber 
                                                                                    diff --git a/docs/Classes/SDLPutFileResponse.html b/docs/Classes/SDLPutFileResponse.html index 1f53a1591..56ce2675c 100644 --- a/docs/Classes/SDLPutFileResponse.html +++ b/docs/Classes/SDLPutFileResponse.html @@ -3,8 +3,6 @@

                                                                                    SDLPutFileResponse Class Reference

                                                                                    Section Contents

                                                                                    @@ -16,47 +14,6 @@

                                                                                    Overview

                                                                                    -

                                                                                    - -init -

                                                                                    - -

                                                                                    @abstract Constructs a new SDLPutFileResponse object

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    - (instancetype)init;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    init!()
                                                                                    - - - - -

                                                                                    - -initWithDictionary: -

                                                                                    - -

                                                                                    @abstract Constructs a new SDLPutFileResponse object indicated by the dictionary parameter

                                                                                    - - - -

                                                                                    Objective-C

                                                                                    -
                                                                                    - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                    - - -

                                                                                    Swift

                                                                                    -
                                                                                    init!(dictionary dict: NSMutableDictionary!)
                                                                                    - - - -

                                                                                    Parameters

                                                                                    -
                                                                                    -
                                                                                    dict
                                                                                    -

                                                                                    The dictionary to use

                                                                                    -
                                                                                    -

                                                                                    spaceAvailable

                                                                                    diff --git a/docs/Classes/SDLRDSData.html b/docs/Classes/SDLRDSData.html new file mode 100644 index 000000000..4d9d3470f --- /dev/null +++ b/docs/Classes/SDLRDSData.html @@ -0,0 +1,204 @@ +

                                                                                    SDLRDSData Class Reference

                                                                                    + +

                                                                                    Section Contents

                                                                                    + + + +

                                                                                    Overview

                                                                                    + +

                                                                                    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.

                                                                                    + + +
                                                                                    +

                                                                                    + -initWithProgramService:radioText:clockText:programIdentification:programType:trafficProgramIdentification:trafficAnnouncementIdentification:region: +

                                                                                    + +

                                                                                    Undocumented

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @interface SDLRDSData : SDLRPCStruct
                                                                                    + + + + + +

                                                                                    + programService +

                                                                                    + +

                                                                                    @abstract Program Service Name

                                                                                    + +

                                                                                    optional, 0-8

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable) NSString *programService;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var programService: String? { get set }
                                                                                    + + + + +

                                                                                    + radioText +

                                                                                    + +

                                                                                    @abstract Radio Text

                                                                                    + +

                                                                                    optional, 0-64

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable) NSString *radioText;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var radioText: String? { get set }
                                                                                    + + + + +

                                                                                    + clockText +

                                                                                    + +

                                                                                    @abstract The clock text in UTC format as YYYY-MM-DDThh:mm:ss.sTZD

                                                                                    + +

                                                                                    optional, 0-24

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable) NSString *clockText;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var clockText: String? { get set }
                                                                                    + + + + +

                                                                                    + programIdentification +

                                                                                    + +

                                                                                    @abstract Program Identification - the call sign for the radio station

                                                                                    + +

                                                                                    optional, 0-6

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                    +    NSString *programIdentification;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var programIdentification: String? { get set }
                                                                                    + + + + +

                                                                                    + programType +

                                                                                    + +

                                                                                    @abstract The program type - The region should be used to differentiate between EU + and North America program types

                                                                                    + +

                                                                                    optional, 0-31

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *programType;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var programType: (NSNumber 
                                                                                    + + + + +

                                                                                    + trafficProgramIdentification +

                                                                                    + +

                                                                                    @abstract Traffic Program Identification - Identifies a station that offers traffic

                                                                                    + +

                                                                                    optional, Boolean

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                    +    NSNumber<SDLBool> *trafficProgramIdentification;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var trafficProgramIdentification: (NSNumber 
                                                                                    + + + + +

                                                                                    + trafficAnnouncementIdentification +

                                                                                    + +

                                                                                    @abstract Traffic Announcement Identification - Indicates an ongoing traffic announcement

                                                                                    + +

                                                                                    optional, Boolean

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                    +    NSNumber<SDLBool> *trafficAnnouncementIdentification;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var trafficAnnouncementIdentification: (NSNumber 
                                                                                    + + + + +

                                                                                    + region +

                                                                                    + +

                                                                                    @abstract Region

                                                                                    + +

                                                                                    optional, 0-8

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable) NSString *region;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var region: String? { get set }
                                                                                    + + + + +
                                                                                    diff --git a/docs/Classes/SDLRPCNotification.html b/docs/Classes/SDLRPCNotification.html deleted file mode 100644 index 3b8920c18..000000000 --- a/docs/Classes/SDLRPCNotification.html +++ /dev/null @@ -1,38 +0,0 @@ -

                                                                                    SDLRPCNotification Class Reference

                                                                                    - -

                                                                                    Section Contents

                                                                                    - - - -

                                                                                    Overview

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - -
                                                                                    -

                                                                                    - -initWithName: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - -initWithDictionary: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -
                                                                                    diff --git a/docs/Classes/SDLRPCNotificationNotification.html b/docs/Classes/SDLRPCNotificationNotification.html index 5d2589ae7..43b3ae5e3 100644 --- a/docs/Classes/SDLRPCNotificationNotification.html +++ b/docs/Classes/SDLRPCNotificationNotification.html @@ -5,6 +5,8 @@

                                                                                    Section Contents

                                                                                    Overview

                                                                                    @@ -35,4 +37,50 @@

                                                                                    +

                                                                                    + -isNotificationMemberOfClass: +

                                                                                    + +

                                                                                    Returns whether or not the containing notification is equal to a class, not including subclasses.

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    - (BOOL)isNotificationMemberOfClass:(nonnull Class)aClass;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    func isNotificationMember(of aClass: AnyClass) -> Bool
                                                                                    + + + +

                                                                                    Parameters

                                                                                    +
                                                                                    +
                                                                                    aClass
                                                                                    +

                                                                                    the class you are questioning

                                                                                    +
                                                                                    + +

                                                                                    + -isNotificationKindOfClass: +

                                                                                    + +

                                                                                    Returns whether or not the containing notification is a kind of class, including subclasses.

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    - (BOOL)isNotificationKindOfClass:(nonnull Class)aClass;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    func isNotificationKind(of aClass: AnyClass) -> Bool
                                                                                    + + + +

                                                                                    Parameters

                                                                                    +
                                                                                    +
                                                                                    aClass
                                                                                    +

                                                                                    the class you are questioning

                                                                                    +
                                                                                    +
                                                                                    diff --git a/docs/Classes/SDLRPCRequestFactory.html b/docs/Classes/SDLRPCRequestFactory.html deleted file mode 100644 index b5282e7d0..000000000 --- a/docs/Classes/SDLRPCRequestFactory.html +++ /dev/null @@ -1,794 +0,0 @@ -

                                                                                    SDLRPCRequestFactory Class Reference

                                                                                    - -

                                                                                    Section Contents

                                                                                    - - - -

                                                                                    Overview

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - -
                                                                                    -

                                                                                    - +buildAddCommandWithID:menuName:parentID:position:vrCommands:iconValue:iconType:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildAddCommandWithID:menuName:vrCommands:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildAddCommandWithID:vrCommands:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildAddCommandWithID:menuName:parentID:position:vrCommands:iconValue:iconType:handler: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildAddCommandWithID:menuName:vrCommands:handler: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildAddCommandWithID:vrCommands:handler: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildAddSubMenuWithID:menuName:position:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildAddSubMenuWithID:menuName:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildAlertWithTTS:alertText1:alertText2:alertText3:playTone:duration:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildAlertWithTTS:alertText1:alertText2:playTone:duration:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildAlertWithTTS:playTone:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildAlertWithTTSChunks:alertText1:alertText2:alertText3:playTone:duration:softButtons:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildAlertWithTTSChunks:playTone:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildAlertWithAlertText1:alertText2:alertText3:duration:softButtons:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildAlertWithAlertText1:alertText2:alertText3:duration:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildAlertWithAlertText1:alertText2:duration:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildAlertManeuverwithTTSchunks:softButtons:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildChangeRegistrationWithLanguage:hmiDisplayLanguage:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildCreateInteractionChoiceSetWithID:choiceSet:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildDeleteCommandWithID:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildDeleteFileWithName:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildDialNumberWithNumber: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildListFilesWithCorrelationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildDeleteInteractionChoiceSetWithID:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildDeleteSubMenuWithID:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildEndAudioPassThruWithCorrelationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildGetDTCsWithECUName:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildGetVehicleDataWithGPS:speed:rpm:fuelLevel:fuelLevelState:instantFuelConsumption:externalTemperature:vin:prndl:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildPerformAudioPassThruWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:maxDuration:bitsPerSample:audioType:muteAudio:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildPerformInteractionWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeoutChunks:interactionMode:timeout:vrHelp:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildPerformInteractionWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:vrHelp:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildPerformInteractionWithInitialPrompt:initialText:interactionChoiceSetID:vrHelp:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildPerformInteractionWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildPerformInteractionWithInitialPrompt:initialText:interactionChoiceSetID:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildPutFileWithFileName:fileType:persistentFile:correlationId: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildPutFileWithFileName:fileType:persisistentFile:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildReadDIDWithECUName:didLocation:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildRegisterAppInterfaceWithAppName:ttsName:vrSynonyms:isMediaApp:languageDesired:hmiDisplayLanguageDesired:appID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildRegisterAppInterfaceWithAppName:isMediaApp:languageDesired:appID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildRegisterAppInterfaceWithAppName:languageDesired:appID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildResetGlobalPropertiesWithProperties:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildSendLocationWithLongitude:latitude:locationName:locationDescription:address:phoneNumber:image: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildScrollableMessage:timeout:softButtons:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildSetAppIconWithFileName:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildSetDisplayLayout:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildSetGlobalPropertiesWithHelpText:timeoutText:vrHelpTitle:vrHelp:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildSetGlobalPropertiesWithHelpText:timeoutText:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildSetMediaClockTimerWithHours:minutes:seconds:updateMode:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildSetMediaClockTimerWithUpdateMode:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildShowWithMainField1:mainField2:mainField3:mainField4:statusBar:mediaClock:mediaTrack:alignment:graphic:softButtons:customPresets:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildShowWithMainField1:mainField2:statusBar:mediaClock:mediaTrack:alignment:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildShowWithMainField1:mainField2:alignment:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildSliderDynamicFooterWithNumTicks:position:sliderHeader:sliderFooter:timeout:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildSliderStaticFooterWithNumTicks:position:sliderHeader:sliderFooter:timeout:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildSoftButtonWithType:text:image:highlighted:buttonID:systemAction:handler: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildSpeakWithTTSChunks:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildSpeakWithTTS:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildSubscribeButtonWithName:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildSubscribeButtonWithName:handler: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildSubscribeVehicleDataWithGPS:speed:rpm:fuelLevel:fuelLevelState:instantFuelConsumption:externalTemperature:prndl:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildShowConstantTBTWithString:navigationText2:eta:timeToDestination:totalDistance:turnIcon:nextTurnIcon:distanceToManeuver:distanceToManeuverScale:maneuverComplete:softButtons:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildUnregisterAppInterfaceWithCorrelationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildUnsubscribeButtonWithName:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildUnsubscribeVehicleDataWithGPS:speed:rpm:fuelLevel:fuelLevelState:instantFuelConsumption:externalTemperature:prndl:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -

                                                                                    - +buildUpdateTurnListWithTurnList:softButtons:correlationID: -

                                                                                    - -

                                                                                    Undocumented

                                                                                    - - - - - - -
                                                                                    diff --git a/docs/Classes/SDLRPCResponseNotification.html b/docs/Classes/SDLRPCResponseNotification.html index c8125934f..7f3b61e2a 100644 --- a/docs/Classes/SDLRPCResponseNotification.html +++ b/docs/Classes/SDLRPCResponseNotification.html @@ -5,6 +5,8 @@

                                                                                    Section Contents

                                                                                    Overview

                                                                                    @@ -35,4 +37,50 @@

                                                                                    +

                                                                                    + -isResponseMemberOfClass: +

                                                                                    + +

                                                                                    Returns whether or not the containing response is equal to a class, not including subclasses.

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    - (BOOL)isResponseMemberOfClass:(nonnull Class)aClass;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    func isResponseMember(of aClass: AnyClass) -> Bool
                                                                                    + + + +

                                                                                    Parameters

                                                                                    +
                                                                                    +
                                                                                    aClass
                                                                                    +

                                                                                    the class you are questioning

                                                                                    +
                                                                                    + +

                                                                                    + -isResponseKindOfClass: +

                                                                                    + +

                                                                                    Returns whether or not the containing response is a kind of class, including subclasses.

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    - (BOOL)isResponseKindOfClass:(nonnull Class)aClass;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    func isResponseKind(of aClass: AnyClass) -> Bool
                                                                                    + + + +

                                                                                    Parameters

                                                                                    +
                                                                                    +
                                                                                    aClass
                                                                                    +

                                                                                    the class you are questioning

                                                                                    +
                                                                                    +
                                                                                    diff --git a/docs/Classes/SDLRadioControlCapabilities.html b/docs/Classes/SDLRadioControlCapabilities.html new file mode 100644 index 000000000..e4cb66a38 --- /dev/null +++ b/docs/Classes/SDLRadioControlCapabilities.html @@ -0,0 +1,259 @@ +

                                                                                    SDLRadioControlCapabilities Class Reference

                                                                                    + +

                                                                                    Section Contents

                                                                                    + + + +

                                                                                    Overview

                                                                                    + +

                                                                                    Contains information about a radio control module’s capabilities.

                                                                                    + + +
                                                                                    +

                                                                                    + -initWithModuleName:radioEnableAvailable:radioBandAvailable:radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable: +

                                                                                    + +

                                                                                    Undocumented

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @interface SDLRadioControlCapabilities : SDLRPCStruct
                                                                                    + + + + + +

                                                                                    + moduleName +

                                                                                    + +

                                                                                    @abstract The short friendly name of the climate control module. + It should not be used to identify a module by mobile application.

                                                                                    + +

                                                                                    Max string length 100 chars

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic) NSString *_Nonnull moduleName;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var moduleName: String { get set }
                                                                                    + + + + +

                                                                                    + radioEnableAvailable +

                                                                                    + +

                                                                                    @abstract Availability of the control of enable/disable radio. + True: Available, False: Not Available, Not present: Not Available.

                                                                                    + +

                                                                                    Optional, Boolean

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                    +    NSNumber<SDLBool> *radioEnableAvailable;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var radioEnableAvailable: (NSNumber 
                                                                                    + + + + +

                                                                                    + radioBandAvailable +

                                                                                    + +

                                                                                    @abstract Availability of the control of radio band. + True: Available, False: Not Available, Not present: Not Available.

                                                                                    + +

                                                                                    Optional, Boolean

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                    +    NSNumber<SDLBool> *radioBandAvailable;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var radioBandAvailable: (NSNumber 
                                                                                    + + + + +

                                                                                    + radioFrequencyAvailable +

                                                                                    + +

                                                                                    @abstract Availability of the control of radio frequency. + True: Available, False: Not Available, Not present: Not Available.

                                                                                    + +

                                                                                    Optional, Boolean

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                    +    NSNumber<SDLBool> *radioFrequencyAvailable;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var radioFrequencyAvailable: (NSNumber 
                                                                                    + + + + +

                                                                                    + hdChannelAvailable +

                                                                                    + +

                                                                                    @abstract Availability of the control of HD radio channel. + True: Available, False: Not Available, Not present: Not Available.

                                                                                    + +

                                                                                    Optional, Boolean

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                    +    NSNumber<SDLBool> *hdChannelAvailable;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var hdChannelAvailable: (NSNumber 
                                                                                    + + + + +

                                                                                    + rdsDataAvailable +

                                                                                    + +

                                                                                    @abstract Availability of the getting Radio Data System (RDS) data. + True: Available, False: Not Available, Not present: Not Available.

                                                                                    + +

                                                                                    Optional, Boolean

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                    +    NSNumber<SDLBool> *rdsDataAvailable;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var rdsDataAvailable: (NSNumber 
                                                                                    + + + + +

                                                                                    + availableHDsAvailable +

                                                                                    + +

                                                                                    @abstract Availability of the getting the number of available HD channels. + True: Available, False: Not Available, Not present: Not Available.

                                                                                    + +

                                                                                    Optional, Boolean

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                    +    NSNumber<SDLBool> *availableHDsAvailable;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var availableHDsAvailable: (NSNumber 
                                                                                    + + + + +

                                                                                    + stateAvailable +

                                                                                    + +

                                                                                    @abstract Availability of the getting the Radio state. + True: Available, False: Not Available, Not present: Not Available.

                                                                                    + +

                                                                                    Optional, Boolean

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                    +    NSNumber<SDLBool> *stateAvailable;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var stateAvailable: (NSNumber 
                                                                                    + + + + +

                                                                                    + signalStrengthAvailable +

                                                                                    + +

                                                                                    @abstract Availability of the getting the signal strength. + True: Available, False: Not Available, Not present: Not Available.

                                                                                    + +

                                                                                    Optional, Boolean

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                    +    NSNumber<SDLBool> *signalStrengthAvailable;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var signalStrengthAvailable: (NSNumber 
                                                                                    + + + + +

                                                                                    + signalChangeThresholdAvailable +

                                                                                    + +

                                                                                    @abstract Availability of the getting the signal Change Threshold + True: Available, False: Not Available, Not present: Not Available.

                                                                                    + +

                                                                                    Optional, Boolean

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                    +    NSNumber<SDLBool> *signalChangeThresholdAvailable;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var signalChangeThresholdAvailable: (NSNumber 
                                                                                    + + + + +
                                                                                    diff --git a/docs/Classes/SDLRadioControlData.html b/docs/Classes/SDLRadioControlData.html new file mode 100644 index 000000000..6643ba759 --- /dev/null +++ b/docs/Classes/SDLRadioControlData.html @@ -0,0 +1,271 @@ +

                                                                                    SDLRadioControlData Class Reference

                                                                                    + +

                                                                                    Section Contents

                                                                                    + + + +

                                                                                    Overview

                                                                                    + +

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

                                                                                    + + +
                                                                                    +

                                                                                    + -initWithFrequencyInteger:frequencyFraction:band:hdChannel:radioEnable: +

                                                                                    + +

                                                                                    Undocumented

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @interface SDLRadioControlData : SDLRPCStruct
                                                                                    + + + + + +

                                                                                    + frequencyInteger +

                                                                                    + +

                                                                                    @abstract The integer part of the frequency ie for 101.7 this value should be 101

                                                                                    + +

                                                                                    Integer

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                    +    NSNumber<SDLInt> *frequencyInteger;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var frequencyInteger: (NSNumber 
                                                                                    + + + + +

                                                                                    + frequencyFraction +

                                                                                    + +

                                                                                    @abstract The fractional part of the frequency for 101.7 is 7

                                                                                    + +

                                                                                    Integer

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                    +    NSNumber<SDLInt> *frequencyFraction;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var frequencyFraction: (NSNumber 
                                                                                    + + + + +

                                                                                    + band +

                                                                                    + +

                                                                                    @abstract Radio band value

                                                                                    + +

                                                                                    SDLRadioBand

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable) SDLRadioBand band;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var band: SDLRadioBand? { get set }
                                                                                    + + + + +

                                                                                    + rdsData +

                                                                                    + +

                                                                                    @abstract Read only parameter. See RDSData data type for details.

                                                                                    +
                                                                                    +

                                                                                    Warning

                                                                                    + This property is readonly and cannot be set on the module. + +
                                                                                    + +

                                                                                    SDLRDSData

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable) SDLRDSData *rdsData;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var rdsData: SDLRDSData? { get set }
                                                                                    + + + + +

                                                                                    + availableHDs +

                                                                                    + +

                                                                                    @abstract number of HD sub-channels if available

                                                                                    +
                                                                                    +

                                                                                    Warning

                                                                                    + This property is readonly and cannot be set on the module. + +
                                                                                    + +

                                                                                    Integer value Min Value - 1 Max Value -3

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                    +    NSNumber<SDLInt> *availableHDs;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var availableHDs: (NSNumber 
                                                                                    + + + + +

                                                                                    + hdChannel +

                                                                                    + +

                                                                                    @abstract Current HD sub-channel if available

                                                                                    + +

                                                                                    Integer value Min Value - 1 Max Value -3

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *hdChannel;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var hdChannel: (NSNumber 
                                                                                    + + + + +

                                                                                    + signalStrength +

                                                                                    + +

                                                                                    @abstract Signal Strength Value

                                                                                    +
                                                                                    +

                                                                                    Warning

                                                                                    + This property is readonly and cannot be set on the module. + +
                                                                                    + +

                                                                                    Integer value Min Value - 0 Max Value - 100

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                    +    NSNumber<SDLInt> *signalStrength;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var signalStrength: (NSNumber 
                                                                                    + + + + +

                                                                                    + signalChangeThreshold +

                                                                                    + +

                                                                                    @abstract If the signal strength falls below the set value for this parameter, the radio will tune to an alternative frequency

                                                                                    +
                                                                                    +

                                                                                    Warning

                                                                                    + This property is readonly and cannot be set on the module. + +
                                                                                    + +

                                                                                    Integer value Min Value - 0 Max Value - 100

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                    +    NSNumber<SDLInt> *signalChangeThreshold;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var signalChangeThreshold: (NSNumber 
                                                                                    + + + + +

                                                                                    + radioEnable +

                                                                                    + +

                                                                                    @abstract 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

                                                                                    + +

                                                                                    Boolean value

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                    +    NSNumber<SDLBool> *radioEnable;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var radioEnable: (NSNumber 
                                                                                    + + + + +

                                                                                    + state +

                                                                                    + +

                                                                                    Read only parameter. See RadioState data type for details.

                                                                                    +
                                                                                    +

                                                                                    Warning

                                                                                    + This property is readonly and cannot be set on the module. + +
                                                                                    + +

                                                                                    SDLRadioState

                                                                                    + + + +

                                                                                    Objective-C

                                                                                    +
                                                                                    @property (readwrite, strong, nonatomic, nullable) SDLRadioState state;
                                                                                    + + +

                                                                                    Swift

                                                                                    +
                                                                                    var state: SDLRadioState? { get set }
                                                                                    + + + + +
                                                                                    diff --git a/docs/Classes/SDLReadDID.html b/docs/Classes/SDLReadDID.html index ab4e25b69..5a59fb149 100644 --- a/docs/Classes/SDLReadDID.html +++ b/docs/Classes/SDLReadDID.html @@ -3,8 +3,6 @@

                                                                                    SDLReadDID Class Reference

                                                                                    Section Contents

                                                                                      -
                                                                                    • -init
                                                                                    • -
                                                                                    • -initWithDictionary:
                                                                                    • -initWithECUName:didLocation:
                                                                                    • ecuName
                                                                                    • didLocation
                                                                                    • @@ -25,47 +23,6 @@

                                                                                      Overview

                                                                                      -

                                                                                      - -init -

                                                                                      - -

                                                                                      @abstract Constructs a new SDLReadDID object

                                                                                      - - - -

                                                                                      Objective-C

                                                                                      -
                                                                                      - (instancetype)init;
                                                                                      - - -

                                                                                      Swift

                                                                                      -
                                                                                      init!()
                                                                                      - - - - -

                                                                                      - -initWithDictionary: -

                                                                                      - -

                                                                                      @abstract Constructs a new SDLReadDID object indicated by the dictionary parameter

                                                                                      - - - -

                                                                                      Objective-C

                                                                                      -
                                                                                      - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                      - - -

                                                                                      Swift

                                                                                      -
                                                                                      init!(dictionary dict: NSMutableDictionary!)
                                                                                      - - - -

                                                                                      Parameters

                                                                                      -
                                                                                      -
                                                                                      dict
                                                                                      -

                                                                                      The dictionary to use

                                                                                      -
                                                                                      -

                                                                                      -initWithECUName:didLocation:

                                                                                      @@ -91,11 +48,11 @@

                                                                                      Objective-C

                                                                                      -
                                                                                      @property (readwrite, strong, atomic) NSNumber *ecuName;
                                                                                      +
                                                                                      @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull ecuName;

                                                                                      Swift

                                                                                      -
                                                                                      var ecuName: NSNumber! { get set }
                                                                                      +
                                                                                      var ecuName: NSNumber 
                                                                                      @@ -117,11 +74,12 @@

                                                                                      Objective-C

                                                                                      -
                                                                                      @property (readwrite, strong, atomic) NSMutableArray *didLocation;
                                                                                      +
                                                                                      @property (readwrite, strong, nonatomic)
                                                                                      +    NSArray<NSNumber<SDLInt> *> *_Nonnull didLocation;

                                                                                      Swift

                                                                                      -
                                                                                      var didLocation: NSMutableArray! { get set }
                                                                                      +
                                                                                      var didLocation: [NSNumber 
                                                                                      diff --git a/docs/Classes/SDLReadDIDResponse.html b/docs/Classes/SDLReadDIDResponse.html index 10e0a86e8..1222e3ccf 100644 --- a/docs/Classes/SDLReadDIDResponse.html +++ b/docs/Classes/SDLReadDIDResponse.html @@ -3,8 +3,6 @@

                                                                                      SDLReadDIDResponse Class Reference

                                                                                      Section Contents

                                                                                      @@ -16,36 +14,6 @@

                                                                                      Overview

                                                                                      -

                                                                                      - -init -

                                                                                      - -

                                                                                      Undocumented

                                                                                      - - - -

                                                                                      Objective-C

                                                                                      -
                                                                                      @interface SDLReadDIDResponse : SDLRPCResponse
                                                                                      - - - - - -

                                                                                      - -initWithDictionary: -

                                                                                      - -

                                                                                      Undocumented

                                                                                      - - - -

                                                                                      Objective-C

                                                                                      -
                                                                                      @interface SDLReadDIDResponse : SDLRPCResponse
                                                                                      - - - - -

                                                                                      didResult

                                                                                      diff --git a/docs/Classes/SDLRectangle.html b/docs/Classes/SDLRectangle.html index d3e20c790..40eba6b0d 100644 --- a/docs/Classes/SDLRectangle.html +++ b/docs/Classes/SDLRectangle.html @@ -3,8 +3,6 @@

                                                                                      SDLRectangle Class Reference

                                                                                      Section Contents

                                                                                        -
                                                                                      • -init
                                                                                      • -
                                                                                      • -initWithDictionary:
                                                                                      • -initWithX:y:width:height:
                                                                                      • -initWithCGRect:
                                                                                      • x
                                                                                      • @@ -19,47 +17,6 @@

                                                                                        Overview

                                                                                        -

                                                                                        - -init -

                                                                                        - -

                                                                                        @abstract Constructs a newly allocated SDLRectangle object

                                                                                        - - - -

                                                                                        Objective-C

                                                                                        -
                                                                                        - (instancetype)init;
                                                                                        - - -

                                                                                        Swift

                                                                                        -
                                                                                        init!()
                                                                                        - - - - -

                                                                                        - -initWithDictionary: -

                                                                                        - -

                                                                                        @abstract Constructs a newly allocated SDLRectangle object indicated by the dictionary parameter

                                                                                        - - - -

                                                                                        Objective-C

                                                                                        -
                                                                                        - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                        - - -

                                                                                        Swift

                                                                                        -
                                                                                        init!(dictionary dict: NSMutableDictionary!)
                                                                                        - - - -

                                                                                        Parameters

                                                                                        -
                                                                                        -
                                                                                        dict
                                                                                        -

                                                                                        The dictionary to use

                                                                                        -
                                                                                        -

                                                                                        -initWithX:y:width:height:

                                                                                        @@ -69,14 +26,14 @@

                                                                                        Objective-C

                                                                                        -
                                                                                        - (instancetype)initWithX:(NSNumber *)x
                                                                                        -                        y:(NSNumber *)y
                                                                                        -                    width:(NSNumber *)width
                                                                                        -                   height:(NSNumber *)height;
                                                                                        +
                                                                                        - (instancetype)initWithX:(float)x
                                                                                        +                        y:(float)y
                                                                                        +                    width:(float)width
                                                                                        +                   height:(float)height;

                                                                                        Swift

                                                                                        -
                                                                                        init!(x: NSNumber!, y: NSNumber!, width: NSNumber!, height: NSNumber!)
                                                                                        +
                                                                                        init!(x: Float, y: Float, width: Float, height: Float)
                                                                                        @@ -109,7 +66,7 @@

                                                                                        Objective-C

                                                                                        Swift

                                                                                        -
                                                                                        init!(cgRect rect: CGRect)
                                                                                        +
                                                                                        init!(cgRect rect: Any!)
                                                                                        @@ -127,18 +84,15 @@

                                                                                        x

                                                                                        -

                                                                                        The upper left X-coordinate of the rectangle +

                                                                                        The X-coordinate of the user control Required, Float

                                                                                        Objective-C

                                                                                        -
                                                                                        @property (readwrite, strong, nonatomic) NSNumber *x;
                                                                                        +
                                                                                        @property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *x;
                                                                                        -

                                                                                        Swift

                                                                                        -
                                                                                        var x: NSNumber! { get set }
                                                                                        - @@ -146,18 +100,15 @@

                                                                                        y

                                                                                        -

                                                                                        The upper left Y-coordinate of the rectangle +

                                                                                        The Y-coordinate of the user control Required, Float

                                                                                        Objective-C

                                                                                        -
                                                                                        @property (readwrite, strong, nonatomic) NSNumber *y;
                                                                                        +
                                                                                        @property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *y;
                                                                                        -

                                                                                        Swift

                                                                                        -
                                                                                        var y: NSNumber! { get set }
                                                                                        - @@ -165,18 +116,15 @@

                                                                                        width

                                                                                        -

                                                                                        The width of the rectangle +

                                                                                        The width of the user control’s bounding rectangle Required, Float

                                                                                        Objective-C

                                                                                        -
                                                                                        @property (readwrite, strong, nonatomic) NSNumber *width;
                                                                                        +
                                                                                        @property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *width;
                                                                                        -

                                                                                        Swift

                                                                                        -
                                                                                        var width: NSNumber! { get set }
                                                                                        - @@ -184,18 +132,15 @@

                                                                                        height

                                                                                        -

                                                                                        The height of the rectangle +

                                                                                        The height of the user control’s bounding rectangle Required, Float

                                                                                        Objective-C

                                                                                        -
                                                                                        @property (readwrite, strong, nonatomic) NSNumber *height;
                                                                                        +
                                                                                        @property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *height;
                                                                                        -

                                                                                        Swift

                                                                                        -
                                                                                        var height: NSNumber! { get set }
                                                                                        - diff --git a/docs/Classes/SDLRegisterAppInterface.html b/docs/Classes/SDLRegisterAppInterface.html index 58f170469..0abe2e9d2 100644 --- a/docs/Classes/SDLRegisterAppInterface.html +++ b/docs/Classes/SDLRegisterAppInterface.html @@ -3,8 +3,6 @@

                                                                                        SDLRegisterAppInterface Class Reference

                                                                                        Section Contents

                                                                                          -
                                                                                        • -init
                                                                                        • -
                                                                                        • -initWithDictionary:
                                                                                        • -initWithLifecycleConfiguration:
                                                                                        • -initWithAppName:appId:languageDesired:
                                                                                        • -initWithAppName:appId:languageDesired:isMediaApp:appType:shortAppName:
                                                                                        • @@ -101,47 +99,6 @@

                                                                                          Overview

                                                                                          -

                                                                                          - -init -

                                                                                          - -

                                                                                          @abstract Constructs a new SDLRegisterAppInterface object

                                                                                          - - - -

                                                                                          Objective-C

                                                                                          -
                                                                                          - (instancetype)init;
                                                                                          - - -

                                                                                          Swift

                                                                                          -
                                                                                          init!()
                                                                                          - - - - -

                                                                                          - -initWithDictionary: -

                                                                                          - -

                                                                                          @abstract Constructs a new SDLRegisterAppInterface object indicated by the dictionary parameter

                                                                                          - - - -

                                                                                          Objective-C

                                                                                          -
                                                                                          - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                          - - -

                                                                                          Swift

                                                                                          -
                                                                                          init!(dictionary dict: NSMutableDictionary!)
                                                                                          - - - -

                                                                                          Parameters

                                                                                          -
                                                                                          -
                                                                                          dict
                                                                                          -

                                                                                          The dictionary to use

                                                                                          -
                                                                                          -

                                                                                          -initWithLifecycleConfiguration:

                                                                                          @@ -213,11 +170,12 @@

                                                                                          Objective-C

                                                                                          -
                                                                                          @property (readwrite, strong, atomic) SDLSyncMsgVersion *syncMsgVersion;
                                                                                          +
                                                                                          @property (readwrite, strong, nonatomic)
                                                                                          +    SDLSyncMsgVersion *_Nonnull syncMsgVersion;

                                                                                          Swift

                                                                                          -
                                                                                          var syncMsgVersion: SDLSyncMsgVersion! { get set }
                                                                                          +
                                                                                          var syncMsgVersion: SDLSyncMsgVersion { get set }
                                                                                          @@ -240,11 +198,11 @@

                                                                                          Objective-C

                                                                                          -
                                                                                          @property (readwrite, strong, atomic) NSString *appName;
                                                                                          +
                                                                                          @property (readwrite, strong, nonatomic) NSString *_Nonnull appName;

                                                                                          Swift

                                                                                          -
                                                                                          var appName: String! { get set }
                                                                                          +
                                                                                          var appName: String { get set }
                                                                                          @@ -272,11 +230,12 @@

                                                                                          Objective-C

                                                                                          -
                                                                                          @property (readwrite, strong, atomic) NSMutableArray *ttsName;
                                                                                          +
                                                                                          @property (readwrite, strong, nonatomic, nullable)
                                                                                          +    NSArray<SDLTTSChunk *> *ttsName;

                                                                                          Swift

                                                                                          -
                                                                                          var ttsName: NSMutableArray! { get set }
                                                                                          +
                                                                                          var ttsName: [SDLTTSChunk]? { get set }
                                                                                          @@ -294,11 +253,12 @@

                                                                                          Objective-C

                                                                                          -
                                                                                          @property (readwrite, strong, atomic) NSString *ngnMediaScreenAppName;
                                                                                          +
                                                                                          @property (readwrite, strong, nonatomic, nullable)
                                                                                          +    NSString *ngnMediaScreenAppName;

                                                                                          Swift

                                                                                          -
                                                                                          var ngnMediaScreenAppName: String! { get set }
                                                                                          +
                                                                                          var ngnMediaScreenAppName: String? { get set }
                                                                                          @@ -316,11 +276,12 @@

                                                                                          Objective-C

                                                                                          -
                                                                                          @property (readwrite, strong, atomic) NSMutableArray *vrSynonyms;
                                                                                          +
                                                                                          @property (readwrite, strong, nonatomic, nullable)
                                                                                          +    NSArray<NSString *> *vrSynonyms;

                                                                                          Swift

                                                                                          -
                                                                                          var vrSynonyms: NSMutableArray! { get set }
                                                                                          +
                                                                                          var vrSynonyms: [String]? { get set }
                                                                                          @@ -338,11 +299,12 @@

                                                                                          Objective-C

                                                                                          -
                                                                                          @property (readwrite, strong, atomic) NSNumber *isMediaApplication;
                                                                                          +
                                                                                          @property (readwrite, strong, nonatomic)
                                                                                          +    NSNumber<SDLBool> *_Nonnull isMediaApplication;

                                                                                          Swift

                                                                                          -
                                                                                          var isMediaApplication: NSNumber! { get set }
                                                                                          +
                                                                                          var isMediaApplication: NSNumber 
                                                                                          @@ -360,11 +322,11 @@

                                                                                          Objective-C

                                                                                          -
                                                                                          @property (readwrite, strong, atomic) SDLLanguage *languageDesired;
                                                                                          +
                                                                                          @property (readwrite, strong, nonatomic) SDLLanguage _Nonnull languageDesired;

                                                                                          Swift

                                                                                          -
                                                                                          var languageDesired: SDLLanguage! { get set }
                                                                                          +
                                                                                          var languageDesired: SDLLanguage { get set }
                                                                                          @@ -384,11 +346,12 @@

                                                                                          Objective-C

                                                                                          -
                                                                                          @property (readwrite, strong, atomic) SDLLanguage *hmiDisplayLanguageDesired;
                                                                                          +
                                                                                          @property (readwrite, strong, nonatomic)
                                                                                          +    SDLLanguage _Nonnull hmiDisplayLanguageDesired;

                                                                                          Swift

                                                                                          -
                                                                                          var hmiDisplayLanguageDesired: SDLLanguage! { get set }
                                                                                          +
                                                                                          var hmiDisplayLanguageDesired: SDLLanguage { get set }
                                                                                          @@ -411,11 +374,12 @@

                                                                                          Objective-C

                                                                                          -
                                                                                          @property (readwrite, strong, atomic) NSMutableArray *appHMIType;
                                                                                          +
                                                                                          @property (readwrite, strong, nonatomic, nullable)
                                                                                          +    NSArray<SDLAppHMIType> *appHMIType;

                                                                                          Swift

                                                                                          -
                                                                                          var appHMIType: NSMutableArray! { get set }
                                                                                          +
                                                                                          var appHMIType: [SDLAppHMIType]? { get set }
                                                                                          @@ -435,11 +399,11 @@

                                                                                          Objective-C

                                                                                          -
                                                                                          @property (readwrite, strong, atomic) NSString *hashID;
                                                                                          +
                                                                                          @property (readwrite, strong, nonatomic, nullable) NSString *hashID;

                                                                                          Swift

                                                                                          -
                                                                                          var hashID: String! { get set }
                                                                                          +
                                                                                          var hashID: String? { get set }
                                                                                          @@ -455,11 +419,11 @@

                                                                                          Objective-C

                                                                                          -
                                                                                          @property (readwrite, strong, atomic) SDLDeviceInfo *deviceInfo;
                                                                                          +
                                                                                          @property (readwrite, strong, nonatomic, nullable) SDLDeviceInfo *deviceInfo;

                                                                                          Swift

                                                                                          -
                                                                                          var deviceInfo: SDLDeviceInfo! { get set }
                                                                                          +
                                                                                          var deviceInfo: SDLDeviceInfo? { get set }
                                                                                          @@ -477,11 +441,11 @@

                                                                                          Objective-C

                                                                                          -
                                                                                          @property (readwrite, strong, atomic) NSString *appID;
                                                                                          +
                                                                                          @property (readwrite, strong, nonatomic) NSString *_Nonnull appID;

                                                                                          Swift

                                                                                          -
                                                                                          var appID: String! { get set }
                                                                                          +
                                                                                          var appID: String { get set }
                                                                                          @@ -497,11 +461,11 @@

                                                                                          Objective-C

                                                                                          -
                                                                                          @property (readwrite, strong, atomic) SDLAppInfo *appInfo;
                                                                                          +
                                                                                          @property (readwrite, strong, nonatomic, nullable) SDLAppInfo *appInfo;

                                                                                          Swift

                                                                                          -
                                                                                          var appInfo: SDLAppInfo! { get set }
                                                                                          +
                                                                                          var appInfo: SDLAppInfo? { get set }
                                                                                          diff --git a/docs/Classes/SDLRegisterAppInterfaceResponse.html b/docs/Classes/SDLRegisterAppInterfaceResponse.html index 9928173ce..fc9d9affd 100644 --- a/docs/Classes/SDLRegisterAppInterfaceResponse.html +++ b/docs/Classes/SDLRegisterAppInterfaceResponse.html @@ -3,8 +3,6 @@

                                                                                          SDLRegisterAppInterfaceResponse Class Reference

                                                                                          Section Contents

                                                                                            -
                                                                                          • -init
                                                                                          • -
                                                                                          • -initWithDictionary:
                                                                                          • syncMsgVersion
                                                                                          • language
                                                                                          • hmiDisplayLanguage
                                                                                          • @@ -17,6 +15,7 @@

                                                                                            Section Contents

                                                                                          • prerecordedSpeech
                                                                                          • vrCapabilities
                                                                                          • audioPassThruCapabilities
                                                                                          • +
                                                                                          • pcmStreamCapabilities
                                                                                          • vehicleType
                                                                                          • supportedDiagModes
                                                                                          • hmiCapabilities
                                                                                          • @@ -32,48 +31,6 @@

                                                                                            Overview

                                                                                            -

                                                                                            - -init -

                                                                                            - -

                                                                                            @abstract Constructs a new SDLRegisterAppInterfaceResponse object

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            - (instancetype)init;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            init!()
                                                                                            - - - - -

                                                                                            - -initWithDictionary: -

                                                                                            - -

                                                                                            Constructs a new SDLRegisterAppInterfaceResponse object indicated by the NSMutableDictionary -parameter

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            init!(dictionary dict: NSMutableDictionary!)
                                                                                            - - - -

                                                                                            Parameters

                                                                                            -
                                                                                            -
                                                                                            dict
                                                                                            -

                                                                                            The dictionary to use

                                                                                            -
                                                                                            -

                                                                                            syncMsgVersion

                                                                                            @@ -89,11 +46,12 @@

                                                                                            Objective-C

                                                                                            -
                                                                                            @property (readwrite, strong, atomic) SDLSyncMsgVersion *syncMsgVersion;
                                                                                            +
                                                                                            @property (readwrite, strong, nonatomic, nullable)
                                                                                            +    SDLSyncMsgVersion *syncMsgVersion;

                                                                                            Swift

                                                                                            -
                                                                                            var syncMsgVersion: SDLSyncMsgVersion! { get set }
                                                                                            +
                                                                                            var syncMsgVersion: SDLSyncMsgVersion? { get set }
                                                                                            @@ -114,11 +72,11 @@

                                                                                            Objective-C

                                                                                            -
                                                                                            @property (readwrite, strong, atomic) SDLLanguage *language;
                                                                                            +
                                                                                            @property (readwrite, strong, nonatomic, nullable) SDLLanguage language;

                                                                                            Swift

                                                                                            -
                                                                                            var language: SDLLanguage! { get set }
                                                                                            +
                                                                                            var language: SDLLanguage? { get set }
                                                                                            @@ -140,11 +98,12 @@

                                                                                            Objective-C

                                                                                            -
                                                                                            @property (readwrite, strong, atomic) SDLLanguage *hmiDisplayLanguage;
                                                                                            +
                                                                                            @property (readwrite, strong, nonatomic, nullable)
                                                                                            +    SDLLanguage hmiDisplayLanguage;

                                                                                            Swift

                                                                                            -
                                                                                            var hmiDisplayLanguage: SDLLanguage! { get set }
                                                                                            +
                                                                                            var hmiDisplayLanguage: SDLLanguage? { get set }
                                                                                            @@ -164,12 +123,12 @@

                                                                                            Objective-C

                                                                                            -
                                                                                            @property (readwrite, strong, atomic)
                                                                                            +  
                                                                                            @property (readwrite, strong, nonatomic, nullable)
                                                                                                 SDLDisplayCapabilities *displayCapabilities;

                                                                                            Swift

                                                                                            -
                                                                                            var displayCapabilities: SDLDisplayCapabilities! { get set }
                                                                                            +
                                                                                            var displayCapabilities: SDLDisplayCapabilities? { get set }
                                                                                            @@ -189,11 +148,12 @@

                                                                                            Objective-C

                                                                                            -
                                                                                            @property (readwrite, strong, atomic) NSMutableArray *buttonCapabilities;
                                                                                            +
                                                                                            @property (readwrite, strong, nonatomic, nullable)
                                                                                            +    NSArray<SDLButtonCapabilities *> *buttonCapabilities;

                                                                                            Swift

                                                                                            -
                                                                                            var buttonCapabilities: NSMutableArray! { get set }
                                                                                            +
                                                                                            var buttonCapabilities: [SDLButtonCapabilities]? { get set }
                                                                                            @@ -214,11 +174,12 @@

                                                                                            Objective-C

                                                                                            -
                                                                                            @property (readwrite, strong, atomic) NSMutableArray *softButtonCapabilities;
                                                                                            +
                                                                                            @property (readwrite, strong, nonatomic, nullable)
                                                                                            +    NSArray<SDLSoftButtonCapabilities *> *softButtonCapabilities;

                                                                                            Swift

                                                                                            -
                                                                                            var softButtonCapabilities: NSMutableArray! { get set }
                                                                                            +
                                                                                            var softButtonCapabilities: [SDLSoftButtonCapabilities]? { get set }
                                                                                            @@ -239,12 +200,12 @@

                                                                                            Objective-C

                                                                                            -
                                                                                            @property (readwrite, strong, atomic)
                                                                                            +  
                                                                                            @property (readwrite, strong, nonatomic, nullable)
                                                                                                 SDLPresetBankCapabilities *presetBankCapabilities;

                                                                                            Swift

                                                                                            -
                                                                                            var presetBankCapabilities: SDLPresetBankCapabilities! { get set }
                                                                                            +
                                                                                            var presetBankCapabilities: SDLPresetBankCapabilities? { get set }
                                                                                            @@ -264,11 +225,12 @@

                                                                                            Objective-C

                                                                                            -
                                                                                            @property (readwrite, strong, atomic) NSMutableArray *hmiZoneCapabilities;
                                                                                            +
                                                                                            @property (readwrite, strong, nonatomic, nullable)
                                                                                            +    NSArray<SDLHMIZoneCapabilities> *hmiZoneCapabilities;

                                                                                            Swift

                                                                                            -
                                                                                            var hmiZoneCapabilities: NSMutableArray! { get set }
                                                                                            +
                                                                                            var hmiZoneCapabilities: [SDLHMIZoneCapabilities]? { get set }
                                                                                            @@ -288,11 +250,12 @@

                                                                                            Objective-C

                                                                                            -
                                                                                            @property (readwrite, strong, atomic) NSMutableArray *speechCapabilities;
                                                                                            +
                                                                                            @property (readwrite, strong, nonatomic, nullable)
                                                                                            +    NSArray<SDLSpeechCapabilities> *speechCapabilities;

                                                                                            Swift

                                                                                            -
                                                                                            var speechCapabilities: NSMutableArray! { get set }
                                                                                            +
                                                                                            var speechCapabilities: [SDLSpeechCapabilities]? { get set }
                                                                                            @@ -312,11 +275,12 @@

                                                                                            Objective-C

                                                                                            -
                                                                                            @property (readwrite, strong, atomic) NSMutableArray *prerecordedSpeech;
                                                                                            +
                                                                                            @property (readwrite, strong, nonatomic, nullable)
                                                                                            +    NSArray<SDLPrerecordedSpeech> *prerecordedSpeech;

                                                                                            Swift

                                                                                            -
                                                                                            var prerecordedSpeech: NSMutableArray! { get set }
                                                                                            +
                                                                                            var prerecordedSpeech: [SDLPrerecordedSpeech]? { get set }
                                                                                            @@ -336,11 +300,12 @@

                                                                                            Objective-C

                                                                                            -
                                                                                            @property (readwrite, strong, atomic) NSMutableArray *vrCapabilities;
                                                                                            +
                                                                                            @property (readwrite, strong, nonatomic, nullable)
                                                                                            +    NSArray<SDLVRCapabilities> *vrCapabilities;

                                                                                            Swift

                                                                                            -
                                                                                            var vrCapabilities: NSMutableArray! { get set }
                                                                                            +
                                                                                            var vrCapabilities: [SDLVRCapabilities]? { get set }
                                                                                            @@ -360,11 +325,35 @@

                                                                                            Objective-C

                                                                                            -
                                                                                            @property (readwrite, strong, atomic) NSMutableArray *audioPassThruCapabilities;
                                                                                            +
                                                                                            @property (readwrite, strong, nonatomic, nullable)
                                                                                            +    NSArray<SDLAudioPassThruCapabilities *> *audioPassThruCapabilities;
                                                                                            + + +

                                                                                            Swift

                                                                                            +
                                                                                            var audioPassThruCapabilities: [SDLAudioPassThruCapabilities]? { get set }
                                                                                            + + + + +

                                                                                            + pcmStreamCapabilities +

                                                                                            + +
                                                                                            +

                                                                                            See

                                                                                            + SDLAudioPassThruCapabilities + +
                                                                                            + + + +

                                                                                            Objective-C

                                                                                            +
                                                                                            @property (readwrite, strong, nonatomic, nullable)
                                                                                            +    SDLAudioPassThruCapabilities *pcmStreamCapabilities;

                                                                                            Swift

                                                                                            -
                                                                                            var audioPassThruCapabilities: NSMutableArray! { get set }
                                                                                            +
                                                                                            var pcmStreamCapabilities: SDLAudioPassThruCapabilities? { get set }
                                                                                            @@ -385,11 +374,11 @@

                                                                                            Objective-C

                                                                                            -
                                                                                            @property (readwrite, strong, atomic) SDLVehicleType *vehicleType;
                                                                                            +
                                                                                            @property (readwrite, strong, nonatomic, nullable) SDLVehicleType *vehicleType;

                                                                                            Swift

                                                                                            -
                                                                                            var vehicleType: SDLVehicleType! { get set }
                                                                                            +
                                                                                            var vehicleType: SDLVehicleType? { get set }
                                                                                            @@ -405,11 +394,12 @@

                                                                                            Objective-C

                                                                                            -
                                                                                            @property (readwrite, strong, atomic) NSMutableArray *supportedDiagModes;
                                                                                            +
                                                                                            @property (readwrite, strong, nonatomic, nullable)
                                                                                            +    NSArray<NSNumber<SDLInt> *> *supportedDiagModes;

                                                                                            Swift

                                                                                            -
                                                                                            var supportedDiagModes: NSMutableArray! { get set }
                                                                                            +
                                                                                            var supportedDiagModes: [NSNumber 
                                                                                            @@ -429,11 +419,12 @@

                                                                                            Objective-C

                                                                                            -
                                                                                            @property (readwrite, strong, atomic) SDLHMICapabilities *hmiCapabilities;
                                                                                            +
                                                                                            @property (readwrite, strong, nonatomic, nullable)
                                                                                            +    SDLHMICapabilities *hmiCapabilities;

                                                                                            Swift

                                                                                            -
                                                                                            var hmiCapabilities: SDLHMICapabilities! { get set }
                                                                                            +
                                                                                            var hmiCapabilities: SDLHMICapabilities? { get set }
                                                                                            @@ -449,11 +440,11 @@

                                                                                            Objective-C

                                                                                            -
                                                                                            @property (readwrite, strong, atomic) NSString *sdlVersion;
                                                                                            +
                                                                                            @property (readwrite, strong, nonatomic, nullable) NSString *sdlVersion;

                                                                                            Swift

                                                                                            -
                                                                                            var sdlVersion: String! { get set }
                                                                                            +
                                                                                            var sdlVersion: String? { get set }
                                                                                            @@ -469,11 +460,12 @@

                                                                                            Objective-C

                                                                                            -
                                                                                            @property (readwrite, strong, atomic) NSString *systemSoftwareVersion;
                                                                                            +
                                                                                            @property (readwrite, strong, nonatomic, nullable)
                                                                                            +    NSString *systemSoftwareVersion;

                                                                                            Swift

                                                                                            -
                                                                                            var systemSoftwareVersion: String! { get set }
                                                                                            +
                                                                                            var systemSoftwareVersion: String? { get set }
                                                                                            diff --git a/docs/Classes/SDLRemoteControlCapabilities.html b/docs/Classes/SDLRemoteControlCapabilities.html new file mode 100644 index 000000000..182d700d3 --- /dev/null +++ b/docs/Classes/SDLRemoteControlCapabilities.html @@ -0,0 +1,94 @@ +

                                                                                            SDLRemoteControlCapabilities Class Reference

                                                                                            + +

                                                                                            Section Contents

                                                                                            + + + +

                                                                                            Overview

                                                                                            + +

                                                                                            Undocumented

                                                                                            + + +
                                                                                            +

                                                                                            + -initWithClimateControlCapabilities:radioControlCapabilities:buttonCapabilities: +

                                                                                            + +

                                                                                            Undocumented

                                                                                            + + + + + + +

                                                                                            + climateControlCapabilities +

                                                                                            + +

                                                                                            @abstract If included, the platform supports RC climate controls. + For this baseline version, maxsize=1. i.e. only one climate control module is supported.

                                                                                            + +

                                                                                            Optional, Array of SDLClimateControlCapabilities, Array length 1 - 100

                                                                                            + + + +

                                                                                            Objective-C

                                                                                            +
                                                                                            @property (readwrite, strong, nonatomic, nullable)
                                                                                            +    NSArray<SDLClimateControlCapabilities *> *climateControlCapabilities;
                                                                                            + + +

                                                                                            Swift

                                                                                            +
                                                                                            var climateControlCapabilities: [SDLClimateControlCapabilities]? { get set }
                                                                                            + + + + +

                                                                                            + radioControlCapabilities +

                                                                                            + +

                                                                                            @abstract If included, the platform supports RC radio controls. + For this baseline version, maxsize=1. i.e. only one radio control module is supported.

                                                                                            + +

                                                                                            Optional, Array of SDLRadioControlCapabilities, Array length 1 - 100

                                                                                            + + + +

                                                                                            Objective-C

                                                                                            +
                                                                                            @property (readwrite, strong, nonatomic, nullable)
                                                                                            +    NSArray<SDLRadioControlCapabilities *> *radioControlCapabilities;
                                                                                            + + +

                                                                                            Swift

                                                                                            +
                                                                                            var radioControlCapabilities: [SDLRadioControlCapabilities]? { get set }
                                                                                            + + + + +

                                                                                            + buttonCapabilities +

                                                                                            + +

                                                                                            @abstract If included, the platform supports RC button controls with the included button names.

                                                                                            + +

                                                                                            Optional, Array of SDLButtonCapabilities, Array length 1 - 100

                                                                                            + + + +

                                                                                            Objective-C

                                                                                            +
                                                                                            @property (readwrite, strong, nonatomic, nullable)
                                                                                            +    NSArray<SDLButtonCapabilities *> *buttonCapabilities;
                                                                                            + + +

                                                                                            Swift

                                                                                            +
                                                                                            var buttonCapabilities: [SDLButtonCapabilities]? { get set }
                                                                                            + + + + +
                                                                                            diff --git a/docs/Classes/SDLRequestType.html b/docs/Classes/SDLRequestType.html deleted file mode 100644 index bba9dbe05..000000000 --- a/docs/Classes/SDLRequestType.html +++ /dev/null @@ -1,278 +0,0 @@ -

                                                                                            SDLRequestType Class Reference

                                                                                            - -

                                                                                            Section Contents

                                                                                            - - - -

                                                                                            Overview

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - -
                                                                                            -

                                                                                            - +valueOf: -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - +values -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - +HTTP -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - +FILE_RESUME -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - +AUTH_REQUEST -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - +AUTH_CHALLENGE -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - +AUTH_ACK -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - +PROPRIETARY -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - +QUERY_APPS -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - +LAUNCH_APP -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - +LOCK_SCREEN_ICON_URL -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - +TRAFFIC_MESSAGE_CHANNEL -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - +DRIVER_PROFILE -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - - - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - +NAVIGATION -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - +PHONE -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - +CLIMATE -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - +SETTINGS -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - +VEHICLE_DIAGNOSTICS -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - +EMERGENCY -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - +MEDIA -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - +FOTA -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -
                                                                                            diff --git a/docs/Classes/SDLResetGlobalProperties.html b/docs/Classes/SDLResetGlobalProperties.html index 6bb8ad9ef..3cb741268 100644 --- a/docs/Classes/SDLResetGlobalProperties.html +++ b/docs/Classes/SDLResetGlobalProperties.html @@ -3,8 +3,6 @@

                                                                                            SDLResetGlobalProperties Class Reference

                                                                                            Section Contents

                                                                                            @@ -28,48 +26,6 @@

                                                                                            Overview

                                                                                            -

                                                                                            - -init -

                                                                                            - -

                                                                                            @abstract Constructs a new SDLResetGlobalProperties object

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            - (instancetype)init;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            init!()
                                                                                            - - - - -

                                                                                            - -initWithDictionary: -

                                                                                            - -

                                                                                            @abstract Constructs a new SDLResetGlobalProperties object indicated by the NSMutableDictionary -parameter

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            init!(dictionary dict: NSMutableDictionary!)
                                                                                            - - - -

                                                                                            Parameters

                                                                                            -
                                                                                            -
                                                                                            dict
                                                                                            -

                                                                                            The dictionary to use

                                                                                            -
                                                                                            -

                                                                                            -initWithProperties:

                                                                                            @@ -95,11 +51,12 @@

                                                                                            Objective-C

                                                                                            -
                                                                                            @property (readwrite, strong, atomic) NSMutableArray *properties;
                                                                                            +
                                                                                            @property (readwrite, strong, nonatomic)
                                                                                            +    NSArray<SDLGlobalProperty> *_Nonnull properties;

                                                                                            Swift

                                                                                            -
                                                                                            var properties: NSMutableArray! { get set }
                                                                                            +
                                                                                            var properties: [SDLGlobalProperty] { get set }
                                                                                            diff --git a/docs/Classes/SDLResetGlobalPropertiesResponse.html b/docs/Classes/SDLResetGlobalPropertiesResponse.html deleted file mode 100644 index 3482bdbf1..000000000 --- a/docs/Classes/SDLResetGlobalPropertiesResponse.html +++ /dev/null @@ -1,60 +0,0 @@ -

                                                                                            SDLResetGlobalPropertiesResponse Class Reference

                                                                                            - -

                                                                                            Section Contents

                                                                                            - - - -

                                                                                            Overview

                                                                                            - -

                                                                                            Reset Global Properties Response is sent, when SDLResetGlobalProperties has been called

                                                                                            - -

                                                                                            Since SmartDeviceLink 1.0

                                                                                            - - -
                                                                                            -

                                                                                            - -init -

                                                                                            - -

                                                                                            @abstract Constructs a new SDLResetGlobalPropertiesResponse object

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            - (instancetype)init;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            init!()
                                                                                            - - - - -

                                                                                            - -initWithDictionary: -

                                                                                            - -

                                                                                            @abstract Constructs a new SDLResetGlobalPropertiesResponse object indicated by the NSMutableDictionary -parameter

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            init!(dictionary dict: NSMutableDictionary!)
                                                                                            - - - -

                                                                                            Parameters

                                                                                            -
                                                                                            -
                                                                                            dict
                                                                                            -

                                                                                            The dictionary to use

                                                                                            -
                                                                                            - -
                                                                                            diff --git a/docs/Classes/SDLResult.html b/docs/Classes/SDLResult.html deleted file mode 100644 index 1a955089c..000000000 --- a/docs/Classes/SDLResult.html +++ /dev/null @@ -1,705 +0,0 @@ -

                                                                                            SDLResult Class Reference

                                                                                            - -

                                                                                            Section Contents

                                                                                            - - - -

                                                                                            Overview

                                                                                            - -

                                                                                            Defines the possible result codes returned by SDL to the application in a response to a requested operation

                                                                                            - -

                                                                                            @since SDL 1.0

                                                                                            - - -
                                                                                            -

                                                                                            - +valueOf: -

                                                                                            - -

                                                                                            @abstract get SDLResult according value string

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)valueOf:(NSString *)value;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func value(of value: String!) -> SDLResult!
                                                                                            - - - -

                                                                                            Parameters

                                                                                            -
                                                                                            -
                                                                                            value
                                                                                            -

                                                                                            The value of the string to get an object for

                                                                                            -
                                                                                            -
                                                                                            -

                                                                                            Return Value

                                                                                            -

                                                                                            SDLResult object

                                                                                            -
                                                                                            - -

                                                                                            - +values -

                                                                                            - -

                                                                                            @abstract declare an array to store all possible SDLResult values

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (NSArray *)values;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func values() -> [Any]!
                                                                                            - - - -
                                                                                            -

                                                                                            Return Value

                                                                                            -

                                                                                            the array

                                                                                            -
                                                                                            - -

                                                                                            - +SUCCESS -

                                                                                            - -

                                                                                            @abstract The request succeeded

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)SUCCESS;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func success() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +INVALID_DATA -

                                                                                            - -

                                                                                            @abstract Result code : Invalid Data

                                                                                            - -

                                                                                            @discussion The data sent is invalid. For example: -

                                                                                          • Invalid Json syntax
                                                                                          • -
                                                                                          • Parameters out of bounds (number or enum range)
                                                                                          • -
                                                                                          • Mandatory parameters not provided
                                                                                          • -
                                                                                          • Parameter provided with wrong type
                                                                                          • -
                                                                                          • Invalid characters
                                                                                          • -
                                                                                          • Empty string
                                                                                          • - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)INVALID_DATA;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func invalid_DATA() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +CHAR_LIMIT_EXCEEDED -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            @interface SDLResult : SDLEnum
                                                                                            - - - - - -

                                                                                            - +UNSUPPORTED_REQUEST -

                                                                                            - -

                                                                                            @abstract The request is not supported by SDL

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)UNSUPPORTED_REQUEST;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func unsupported_REQUEST() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +OUT_OF_MEMORY -

                                                                                            - -

                                                                                            @abstract The system could not process the request because the necessary memory couldn’t be allocated

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)OUT_OF_MEMORY;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func out_OF_MEMORY() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +TOO_MANY_PENDING_REQUESTS -

                                                                                            - -

                                                                                            @abstract There are too many requests pending (means that the response has not been delivered yet).

                                                                                            - -

                                                                                            @discussion There is a limit of 1000 pending requests at a time.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)TOO_MANY_PENDING_REQUESTS;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func too_MANY_PENDING_REQUESTS() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +INVALID_ID -

                                                                                            - -

                                                                                            @abstract One of the provided IDs is not valid. -@discussion For example: -

                                                                                          • CorrelationID
                                                                                          • -
                                                                                          • CommandID
                                                                                          • -
                                                                                          • MenuID
                                                                                          • - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)INVALID_ID;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func invalid_ID() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +DUPLICATE_NAME -

                                                                                            - -

                                                                                            @abstract The provided name or synonym is a duplicate of some already-defined name or synonym.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)DUPLICATE_NAME;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func duplicate_NAME() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +TOO_MANY_APPLICATIONS -

                                                                                            - -

                                                                                            There are already too many registered applications.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)TOO_MANY_APPLICATIONS;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func too_MANY_APPLICATIONS() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +APPLICATION_REGISTERED_ALREADY -

                                                                                            - -

                                                                                            RegisterApplication has been called again, after a RegisterApplication was successful before.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)APPLICATION_REGISTERED_ALREADY;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func application_REGISTERED_ALREADY() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +UNSUPPORTED_VERSION -

                                                                                            - -

                                                                                            The Head Unit doesn’t support the protocol that is requested by the mobile application.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)UNSUPPORTED_VERSION;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func unsupported_VERSION() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +WRONG_LANGUAGE -

                                                                                            - -

                                                                                            The requested language is currently not supported. Might be because of a mismatch of the currently active language on the head unit and the requested language.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)WRONG_LANGUAGE;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func wrong_LANGUAGE() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +APPLICATION_NOT_REGISTERED -

                                                                                            - -

                                                                                            A command can not be executed because no application has been registered with RegisterApplication.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)APPLICATION_NOT_REGISTERED;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func application_NOT_REGISTERED() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +IN_USE -

                                                                                            - -

                                                                                            The data may not be changed, because it is currently in use. For example when trying to delete a command set that is currently involved in an interaction.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)IN_USE;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func in_USE() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +VEHICLE_DATA_NOT_ALLOWED -

                                                                                            - -

                                                                                            The user has turned off access to vehicle data, and it is globally unavailable to mobile applications.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)VEHICLE_DATA_NOT_ALLOWED;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func vehicle_DATA_NOT_ALLOWED() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +VEHICLE_DATA_NOT_AVAILABLE -

                                                                                            - -

                                                                                            The requested vehicle data is not available on this vehicle or is not published.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)VEHICLE_DATA_NOT_AVAILABLE;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func vehicle_DATA_NOT_AVAILABLE() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +REJECTED -

                                                                                            - -

                                                                                            The requested command was rejected, e.g. because 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.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)REJECTED;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func rejected() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +ABORTED -

                                                                                            - -

                                                                                            A command was aborted, for example due to user interaction (e.g. user pressed button). Or an HMI command (e.g. Speak) is aborted because a higher priority HMI command (e.g. Alert) was requested.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)ABORTED;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func aborted() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +IGNORED -

                                                                                            - -

                                                                                            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.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)IGNORED;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func ignored() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +UNSUPPORTED_RESOURCE -

                                                                                            - -

                                                                                            A button that was requested for subscription is not supported under the current system.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)UNSUPPORTED_RESOURCE;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func unsupported_RESOURCE() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +FILE_NOT_FOUND -

                                                                                            - -

                                                                                            A specified file could not be found on the head unit.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)FILE_NOT_FOUND;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func file_NOT_FOUND() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +GENERIC_ERROR -

                                                                                            - -

                                                                                            Provided data is valid but something went wrong in the lower layers.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)GENERIC_ERROR;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func generic_ERROR() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +DISALLOWED -

                                                                                            - -

                                                                                            RPC is not authorized in local policy table.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)DISALLOWED;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func disallowed() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +USER_DISALLOWED -

                                                                                            - -

                                                                                            RPC is included in a functional group explicitly blocked by the user.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)USER_DISALLOWED;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func user_DISALLOWED() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +TIMED_OUT -

                                                                                            - -

                                                                                            Overlay reached the maximum timeout and closed.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)TIMED_OUT;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func timed_OUT() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +CANCEL_ROUTE -

                                                                                            - -

                                                                                            User selected to Cancel Route.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)CANCEL_ROUTE;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func cancel_ROUTE() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +TRUNCATED_DATA -

                                                                                            - -

                                                                                            The RPC (e.g. ReadDID) executed successfully but the data exceeded the platform maximum threshold and thus, only part of the data is available.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)TRUNCATED_DATA;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func truncated_DATA() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +RETRY -

                                                                                            - -

                                                                                            The user interrupted the RPC (e.g. PerformAudioPassThru) and indicated to start over. Note, the app must issue the new RPC.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)RETRY;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func retry() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +WARNINGS -

                                                                                            - -

                                                                                            The RPC (e.g. SubscribeVehicleData) executed successfully but one or more items have a warning or failure.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)WARNINGS;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func warnings() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +SAVED -

                                                                                            - -

                                                                                            The RPC (e.g. Slider) executed successfully and the user elected to save the current position / value.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)SAVED;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func saved() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +INVALID_CERT -

                                                                                            - -

                                                                                            The certificate provided during authentication is invalid.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)INVALID_CERT;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func invalid_CERT() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +EXPIRED_CERT -

                                                                                            - -

                                                                                            The certificate provided during authentication is expired.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)EXPIRED_CERT;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func expired_CERT() -> SDLResult!
                                                                                            - - - - -

                                                                                            - +RESUME_FAILED -

                                                                                            - -

                                                                                            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.

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLResult *)RESUME_FAILED;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func resume_FAILED() -> SDLResult!
                                                                                            - - - - -
                                                                                            diff --git a/docs/Classes/SDLSamplingRate.html b/docs/Classes/SDLSamplingRate.html deleted file mode 100644 index 014ff96cd..000000000 --- a/docs/Classes/SDLSamplingRate.html +++ /dev/null @@ -1,159 +0,0 @@ -

                                                                                            SDLSamplingRate Class Reference

                                                                                            - -

                                                                                            Section Contents

                                                                                            - - - -

                                                                                            Overview

                                                                                            - -

                                                                                            Describes different sampling rates for PerformAudioPassThru

                                                                                            - -

                                                                                            @since SDL 2.0

                                                                                            - - -
                                                                                            -

                                                                                            - +valueOf: -

                                                                                            - -

                                                                                            @abstract get SDLSamplingRate according value string

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLSamplingRate *)valueOf:(NSString *)value;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func value(of value: String!) -> SDLSamplingRate!
                                                                                            - - - -

                                                                                            Parameters

                                                                                            -
                                                                                            -
                                                                                            value
                                                                                            -

                                                                                            The value of the string to get an object for

                                                                                            -
                                                                                            -
                                                                                            -

                                                                                            Return Value

                                                                                            -

                                                                                            SDLSamplingRate object

                                                                                            -
                                                                                            - -

                                                                                            - +values -

                                                                                            - -

                                                                                            @abstract declare an array to store all possible SDLSamplingRate values

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (NSArray *)values;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func values() -> [Any]!
                                                                                            - - - -
                                                                                            -

                                                                                            Return Value

                                                                                            -

                                                                                            the array

                                                                                            -
                                                                                            - -

                                                                                            - +_8KHZ -

                                                                                            - -

                                                                                            @abstract Sampling rate of 8 kHz

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLSamplingRate *)_8KHZ;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func _8KHZ() -> SDLSamplingRate!
                                                                                            - - - -
                                                                                            -

                                                                                            Return Value

                                                                                            -

                                                                                            SamplingRate of 8KHZ

                                                                                            -
                                                                                            - -

                                                                                            - +_16KHZ -

                                                                                            - -

                                                                                            @abstract Sampling rate of 16 kHz

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLSamplingRate *)_16KHZ;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func _16KHZ() -> SDLSamplingRate!
                                                                                            - - - -
                                                                                            -

                                                                                            Return Value

                                                                                            -

                                                                                            SamplingRate of 16KHZ

                                                                                            -
                                                                                            - -

                                                                                            - +_22KHZ -

                                                                                            - -

                                                                                            @abstract Sampling rate of 22 kHz

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLSamplingRate *)_22KHZ;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func _22KHZ() -> SDLSamplingRate!
                                                                                            - - - -
                                                                                            -

                                                                                            Return Value

                                                                                            -

                                                                                            SamplingRate of 22KHZ

                                                                                            -
                                                                                            - -

                                                                                            - +_44KHZ -

                                                                                            - -

                                                                                            @abstract Sampling rate of 44 kHz

                                                                                            - - - -

                                                                                            Objective-C

                                                                                            -
                                                                                            + (SDLSamplingRate *)_44KHZ;
                                                                                            - - -

                                                                                            Swift

                                                                                            -
                                                                                            class func _44KHZ() -> SDLSamplingRate!
                                                                                            - - - -
                                                                                            -

                                                                                            Return Value

                                                                                            -

                                                                                            SamplingRate of 44KHZ

                                                                                            -
                                                                                            - -
                                                                                            diff --git a/docs/Classes/SDLScreenParams.html b/docs/Classes/SDLScreenParams.html index 6f9aec01a..c38304d36 100644 --- a/docs/Classes/SDLScreenParams.html +++ b/docs/Classes/SDLScreenParams.html @@ -3,8 +3,6 @@

                                                                                            SDLScreenParams Class Reference

                                                                                            Section Contents

                                                                                            @@ -15,28 +13,6 @@

                                                                                            Overview

                                                                                            -

                                                                                            - -init -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - - -

                                                                                            - -initWithDictionary: -

                                                                                            - -

                                                                                            Undocumented

                                                                                            - - - - - -

                                                                                            resolution

                                                                                            diff --git a/docs/Classes/SDLScrollableMessage.html b/docs/Classes/SDLScrollableMessage.html index 366d0cfdb..7b32549c5 100644 --- a/docs/Classes/SDLScrollableMessage.html +++ b/docs/Classes/SDLScrollableMessage.html @@ -3,8 +3,6 @@

                                                                                            SDLScrollableMessage Class Reference

                                                                                            Section Contents

                                                                                              -
                                                                                            • -init
                                                                                            • -
                                                                                            • -initWithDictionary:
                                                                                            • -initWithMessage:
                                                                                            • -initWithMessage:timeout:softButtons:
                                                                                            • scrollableMessageBody
                                                                                            • @@ -24,48 +22,6 @@

                                                                                              Overview

                                                                                              -

                                                                                              - -init -

                                                                                              - -

                                                                                              @abstract Constructs a new SDLScrollableMessage object

                                                                                              - - - -

                                                                                              Objective-C

                                                                                              -
                                                                                              - (instancetype)init;
                                                                                              - - -

                                                                                              Swift

                                                                                              -
                                                                                              init!()
                                                                                              - - - - -

                                                                                              - -initWithDictionary: -

                                                                                              - -

                                                                                              @abstract Constructs a new SDLScrollableMessage object indicated by the NSMutableDictionary -parameter

                                                                                              - - - -

                                                                                              Objective-C

                                                                                              -
                                                                                              - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                              - - -

                                                                                              Swift

                                                                                              -
                                                                                              init!(dictionary dict: NSMutableDictionary!)
                                                                                              - - - -

                                                                                              Parameters

                                                                                              -
                                                                                              -
                                                                                              dict
                                                                                              -

                                                                                              The dictionary to use

                                                                                              -
                                                                                              -

                                                                                              -initWithMessage:

                                                                                              @@ -109,11 +65,12 @@

                                                                                              Objective-C

                                                                                              -
                                                                                              @property (readwrite, strong, atomic) NSString *scrollableMessageBody;
                                                                                              +
                                                                                              @property (readwrite, strong, nonatomic)
                                                                                              +    NSString *_Nonnull scrollableMessageBody;

                                                                                              Swift

                                                                                              -
                                                                                              var scrollableMessageBody: String! { get set }
                                                                                              +
                                                                                              var scrollableMessageBody: String { get set }
                                                                                              @@ -131,11 +88,11 @@

                                                                                              Objective-C

                                                                                              -
                                                                                              @property (readwrite, strong, atomic) NSNumber *timeout;
                                                                                              +
                                                                                              @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *timeout;

                                                                                              Swift

                                                                                              -
                                                                                              var timeout: NSNumber! { get set }
                                                                                              +
                                                                                              var timeout: (NSNumber 
                                                                                              @@ -154,11 +111,12 @@

                                                                                              Objective-C

                                                                                              -
                                                                                              @property (readwrite, strong, atomic) NSMutableArray *softButtons;
                                                                                              +
                                                                                              @property (readwrite, strong, nonatomic, nullable)
                                                                                              +    NSArray<SDLSoftButton *> *softButtons;

                                                                                              Swift

                                                                                              -
                                                                                              var softButtons: NSMutableArray! { get set }
                                                                                              +
                                                                                              var softButtons: [SDLSoftButton]? { get set }
                                                                                              diff --git a/docs/Classes/SDLScrollableMessageResponse.html b/docs/Classes/SDLScrollableMessageResponse.html deleted file mode 100644 index 9e9777f8d..000000000 --- a/docs/Classes/SDLScrollableMessageResponse.html +++ /dev/null @@ -1,60 +0,0 @@ -

                                                                                              SDLScrollableMessageResponse Class Reference

                                                                                              - -

                                                                                              Section Contents

                                                                                              - - - -

                                                                                              Overview

                                                                                              - -

                                                                                              Scrollable Message Response is sent, when SDLScrollableMessage has been called

                                                                                              - -

                                                                                              Since SmartDeviceLink 2.0

                                                                                              - - -
                                                                                              -

                                                                                              - -init -

                                                                                              - -

                                                                                              @abstract Constructs a new SDLScrollableMessageResponse object

                                                                                              - - - -

                                                                                              Objective-C

                                                                                              -
                                                                                              - (instancetype)init;
                                                                                              - - -

                                                                                              Swift

                                                                                              -
                                                                                              init!()
                                                                                              - - - - -

                                                                                              - -initWithDictionary: -

                                                                                              - -

                                                                                              @abstract Constructs a new SDLScrollableMessageResponse object indicated by the NSMutableDictionary -parameter

                                                                                              - - - -

                                                                                              Objective-C

                                                                                              -
                                                                                              - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                              - - -

                                                                                              Swift

                                                                                              -
                                                                                              init!(dictionary dict: NSMutableDictionary!)
                                                                                              - - - -

                                                                                              Parameters

                                                                                              -
                                                                                              -
                                                                                              dict
                                                                                              -

                                                                                              The dictionary to use

                                                                                              -
                                                                                              - -
                                                                                              diff --git a/docs/Classes/SDLSendHapticData.html b/docs/Classes/SDLSendHapticData.html index 0e3559a70..770e142b7 100644 --- a/docs/Classes/SDLSendHapticData.html +++ b/docs/Classes/SDLSendHapticData.html @@ -3,8 +3,6 @@

                                                                                              SDLSendHapticData Class Reference

                                                                                              Section Contents

                                                                                              @@ -15,47 +13,6 @@

                                                                                              Overview

                                                                                              -

                                                                                              - -init -

                                                                                              - -

                                                                                              Constructs a new SDLSendHapticData object

                                                                                              - - - -

                                                                                              Objective-C

                                                                                              -
                                                                                              - (instancetype)init;
                                                                                              - - -

                                                                                              Swift

                                                                                              -
                                                                                              init!()
                                                                                              - - - - -

                                                                                              - -initWithDictionary: -

                                                                                              - -

                                                                                              Constructs a new SDLSendHapticData object indicated by the dictionary parameter

                                                                                              - - - -

                                                                                              Objective-C

                                                                                              -
                                                                                              - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                              - - -

                                                                                              Swift

                                                                                              -
                                                                                              init!(dictionary dict: NSMutableDictionary!)
                                                                                              - - - -

                                                                                              Parameters

                                                                                              -
                                                                                              -
                                                                                              dict
                                                                                              -

                                                                                              The dictionary to use

                                                                                              -
                                                                                              -

                                                                                              -initWithHapticRectData:

                                                                                              @@ -65,17 +22,18 @@

                                                                                              Objective-C

                                                                                              -
                                                                                              - (instancetype)initWithHapticRectData:(NSMutableArray *)hapticSpatialData;
                                                                                              +
                                                                                              - (nonnull instancetype)initWithHapticRectData:
                                                                                              +    (nonnull NSArray<SDLHapticRect *> *)hapticRectData;

                                                                                              Swift

                                                                                              -
                                                                                              init!(hapticRectData hapticSpatialData: NSMutableArray!)
                                                                                              +
                                                                                              init(hapticRectData: [SDLHapticRect])

                                                                                              Parameters

                                                                                              -
                                                                                              hapticSpatialData
                                                                                              +
                                                                                              hapticRectData

                                                                                              Array of spatial data structures

                                                                                              @@ -90,11 +48,12 @@

                                                                                              Objective-C

                                                                                              -
                                                                                              @property (readwrite, strong, atomic) NSMutableArray *hapticRectData;
                                                                                              +
                                                                                              @property (readwrite, strong, nonatomic, nullable)
                                                                                              +    NSArray<SDLHapticRect *> *hapticRectData;

                                                                                              Swift

                                                                                              -
                                                                                              var hapticRectData: NSMutableArray! { get set }
                                                                                              +
                                                                                              var hapticRectData: [SDLHapticRect]? { get set }
                                                                                              diff --git a/docs/Classes/SDLSendLocation.html b/docs/Classes/SDLSendLocation.html index 760880dc2..1005cf7de 100644 --- a/docs/Classes/SDLSendLocation.html +++ b/docs/Classes/SDLSendLocation.html @@ -56,7 +56,8 @@

                                                                                              Objective-C

                                                                                              -
                                                                                              @property (readwrite, copy, nonatomic) NSNumber<SDLFloat> *longitudeDegrees;
                                                                                              +
                                                                                              @property (readwrite, copy, nonatomic, nullable)
                                                                                              +    NSNumber<SDLFloat> *longitudeDegrees;

                                                                                              Swift

                                                                                              @@ -76,7 +77,8 @@

                                                                                              Objective-C

                                                                                              -
                                                                                              @property (readwrite, copy, nonatomic) NSNumber<SDLFloat> *latitudeDegrees;
                                                                                              +
                                                                                              @property (readwrite, copy, nonatomic, nullable)
                                                                                              +    NSNumber<SDLFloat> *latitudeDegrees;

                                                                                              Swift

                                                                                              @@ -96,11 +98,11 @@

                                                                                              Objective-C

                                                                                              -
                                                                                              @property (readwrite, copy, nonatomic) NSString *locationName;
                                                                                              +
                                                                                              @property (readwrite, copy, nonatomic, nullable) NSString *locationName;

                                                                                              Swift

                                                                                              -
                                                                                              var locationName: String! { get set }
                                                                                              +
                                                                                              var locationName: String? { get set }
                                                                                              @@ -116,11 +118,11 @@

                                                                                              Objective-C

                                                                                              -
                                                                                              @property (readwrite, copy, nonatomic) NSString *locationDescription;
                                                                                              +
                                                                                              @property (readwrite, copy, nonatomic, nullable) NSString *locationDescription;

                                                                                              Swift

                                                                                              -
                                                                                              var locationDescription: String! { get set }
                                                                                              +
                                                                                              var locationDescription: String? { get set }
                                                                                              @@ -136,11 +138,12 @@

                                                                                              Objective-C

                                                                                              -
                                                                                              @property (readwrite, copy, nonatomic) NSArray<NSString *> *addressLines;
                                                                                              +
                                                                                              @property (readwrite, copy, nonatomic, nullable)
                                                                                              +    NSArray<NSString *> *addressLines;

                                                                                              Swift

                                                                                              -
                                                                                              var addressLines: [String]! { get set }
                                                                                              +
                                                                                              var addressLines: [String]? { get set }
                                                                                              @@ -156,11 +159,11 @@

                                                                                              Objective-C

                                                                                              -
                                                                                              @property (readwrite, copy, nonatomic) NSString *phoneNumber;
                                                                                              +
                                                                                              @property (readwrite, copy, nonatomic, nullable) NSString *phoneNumber;

                                                                                              Swift

                                                                                              -
                                                                                              var phoneNumber: String! { get set }
                                                                                              +
                                                                                              var phoneNumber: String? { get set }
                                                                                              @@ -176,11 +179,11 @@

                                                                                              Objective-C

                                                                                              -
                                                                                              @property (readwrite, strong, nonatomic) SDLImage *locationImage;
                                                                                              +
                                                                                              @property (readwrite, strong, nonatomic, nullable) SDLImage *locationImage;

                                                                                              Swift

                                                                                              -
                                                                                              var locationImage: SDLImage! { get set }
                                                                                              +
                                                                                              var locationImage: SDLImage? { get set }
                                                                                              @@ -196,11 +199,11 @@

                                                                                              Objective-C

                                                                                              -
                                                                                              @property (readwrite, strong, nonatomic) SDLDeliveryMode *deliveryMode;
                                                                                              +
                                                                                              @property (readwrite, strong, nonatomic, nullable) SDLDeliveryMode deliveryMode;

                                                                                              Swift

                                                                                              -
                                                                                              var deliveryMode: SDLDeliveryMode! { get set }
                                                                                              +
                                                                                              var deliveryMode: SDLDeliveryMode? { get set }
                                                                                              @@ -216,11 +219,11 @@

                                                                                              Objective-C

                                                                                              -
                                                                                              @property (readwrite, strong, nonatomic) SDLDateTime *timeStamp;
                                                                                              +
                                                                                              @property (readwrite, strong, nonatomic, nullable) SDLDateTime *timeStamp;

                                                                                              Swift

                                                                                              -
                                                                                              var timeStamp: SDLDateTime! { get set }
                                                                                              +
                                                                                              var timeStamp: SDLDateTime? { get set }
                                                                                              @@ -236,11 +239,11 @@

                                                                                              Objective-C

                                                                                              -
                                                                                              @property (readwrite, strong, nonatomic) SDLOasisAddress *address;
                                                                                              +
                                                                                              @property (readwrite, strong, nonatomic, nullable) SDLOasisAddress *address;

                                                                                              Swift

                                                                                              -
                                                                                              var address: SDLOasisAddress! { get set }
                                                                                              +
                                                                                              var address: SDLOasisAddress? { get set }
                                                                                              diff --git a/docs/Classes/SDLSendLocationResponse.html b/docs/Classes/SDLSendLocationResponse.html deleted file mode 100644 index 64e84f81d..000000000 --- a/docs/Classes/SDLSendLocationResponse.html +++ /dev/null @@ -1,38 +0,0 @@ -

                                                                                              SDLSendLocationResponse Class Reference

                                                                                              - -

                                                                                              Section Contents

                                                                                              - - - -

                                                                                              Overview

                                                                                              - -

                                                                                              Undocumented

                                                                                              - - -
                                                                                              -

                                                                                              - -init -

                                                                                              - -

                                                                                              Undocumented

                                                                                              - - - - - - -

                                                                                              - -initWithDictionary: -

                                                                                              - -

                                                                                              Undocumented

                                                                                              - - - - - - -
                                                                                              diff --git a/docs/Classes/SDLSetAppIcon.html b/docs/Classes/SDLSetAppIcon.html index 1a19b46a9..1efb99767 100644 --- a/docs/Classes/SDLSetAppIcon.html +++ b/docs/Classes/SDLSetAppIcon.html @@ -3,8 +3,6 @@

                                                                                              SDLSetAppIcon Class Reference

                                                                                              Section Contents

                                                                                              @@ -19,47 +17,6 @@

                                                                                              Overview

                                                                                              -

                                                                                              - -init -

                                                                                              - -

                                                                                              @abstract Constructs a new SDLSetAppIcon object

                                                                                              - - - -

                                                                                              Objective-C

                                                                                              -
                                                                                              - (instancetype)init;
                                                                                              - - -

                                                                                              Swift

                                                                                              -
                                                                                              init!()
                                                                                              - - - - -

                                                                                              - -initWithDictionary: -

                                                                                              - -

                                                                                              @abstract Constructs a new SDLSetAppIcon object indicated by the dictionary parameter

                                                                                              - - - -

                                                                                              Objective-C

                                                                                              -
                                                                                              - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                              - - -

                                                                                              Swift

                                                                                              -
                                                                                              init!(dictionary dict: NSMutableDictionary!)
                                                                                              - - - -

                                                                                              Parameters

                                                                                              -
                                                                                              -
                                                                                              dict
                                                                                              -

                                                                                              The dictionary to use

                                                                                              -
                                                                                              -

                                                                                              -initWithFileName:

                                                                                              @@ -87,11 +44,11 @@

                                                                                              Objective-C

                                                                                              -
                                                                                              @property (readwrite, strong, atomic) NSString *syncFileName;
                                                                                              +
                                                                                              @property (readwrite, strong, nonatomic) NSString *_Nonnull syncFileName;

                                                                                              Swift

                                                                                              -
                                                                                              var syncFileName: String! { get set }
                                                                                              +
                                                                                              var syncFileName: String { get set }
                                                                                              diff --git a/docs/Classes/SDLSetAppIconResponse.html b/docs/Classes/SDLSetAppIconResponse.html deleted file mode 100644 index 6e408f997..000000000 --- a/docs/Classes/SDLSetAppIconResponse.html +++ /dev/null @@ -1,50 +0,0 @@ -

                                                                                              SDLSetAppIconResponse Class Reference

                                                                                              - -

                                                                                              Section Contents

                                                                                              - - - -

                                                                                              Overview

                                                                                              - -

                                                                                              SDLSetAppIconResponse is sent, when SDLSetAppIcon has been called.

                                                                                              - -
                                                                                                -
                                                                                              • SinceSmartDeviceLink 2.0
                                                                                              • -
                                                                                              - - -
                                                                                              -

                                                                                              - -init -

                                                                                              - -

                                                                                              Undocumented

                                                                                              - - - -

                                                                                              Objective-C

                                                                                              -
                                                                                              @interface SDLSetAppIconResponse : SDLRPCResponse
                                                                                              - - - - - -

                                                                                              - -initWithDictionary: -

                                                                                              - -

                                                                                              Undocumented

                                                                                              - - - -

                                                                                              Objective-C

                                                                                              -
                                                                                              @interface SDLSetAppIconResponse : SDLRPCResponse
                                                                                              - - - - - -
                                                                                              diff --git a/docs/Classes/SDLSetDisplayLayout.html b/docs/Classes/SDLSetDisplayLayout.html index a202dd0c3..ac9effe19 100644 --- a/docs/Classes/SDLSetDisplayLayout.html +++ b/docs/Classes/SDLSetDisplayLayout.html @@ -3,8 +3,6 @@

                                                                                              SDLSetDisplayLayout Class Reference

                                                                                              Section Contents

                                                                                                -
                                                                                              • -init
                                                                                              • -
                                                                                              • -initWithDictionary:
                                                                                              • -initWithPredefinedLayout:
                                                                                              • -initWithLayout:
                                                                                              • displayLayout
                                                                                              • @@ -19,48 +17,6 @@

                                                                                                Overview

                                                                                                -

                                                                                                - -init -

                                                                                                - -

                                                                                                @abstract Constructs a new SDLSetDisplayLayout object

                                                                                                - - - -

                                                                                                Objective-C

                                                                                                -
                                                                                                - (instancetype)init;
                                                                                                - - -

                                                                                                Swift

                                                                                                -
                                                                                                init!()
                                                                                                - - - - -

                                                                                                - -initWithDictionary: -

                                                                                                - -

                                                                                                @abstract Constructs a new SDLSetDisplayLayout object indicated by the NSMutableDictionary -parameter

                                                                                                - - - -

                                                                                                Objective-C

                                                                                                -
                                                                                                - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                                - - -

                                                                                                Swift

                                                                                                -
                                                                                                init!(dictionary dict: NSMutableDictionary!)
                                                                                                - - - -

                                                                                                Parameters

                                                                                                -
                                                                                                -
                                                                                                dict
                                                                                                -

                                                                                                The dictionary to use

                                                                                                -
                                                                                                -

                                                                                                -initWithPredefinedLayout:

                                                                                                @@ -103,11 +59,11 @@

                                                                                                Objective-C

                                                                                                -
                                                                                                @property (readwrite, strong, atomic) NSString *displayLayout;
                                                                                                +
                                                                                                @property (readwrite, strong, nonatomic) NSString *_Nonnull displayLayout;

                                                                                                Swift

                                                                                                -
                                                                                                var displayLayout: String! { get set }
                                                                                                +
                                                                                                var displayLayout: String { get set }
                                                                                                diff --git a/docs/Classes/SDLSetDisplayLayoutResponse.html b/docs/Classes/SDLSetDisplayLayoutResponse.html index 7439cf73f..85a18e236 100644 --- a/docs/Classes/SDLSetDisplayLayoutResponse.html +++ b/docs/Classes/SDLSetDisplayLayoutResponse.html @@ -3,8 +3,6 @@

                                                                                                SDLSetDisplayLayoutResponse Class Reference

                                                                                                Section Contents

                                                                                                  -
                                                                                                • -init
                                                                                                • -
                                                                                                • -initWithDictionary:
                                                                                                • displayCapabilities
                                                                                                • buttonCapabilities
                                                                                                • softButtonCapabilities
                                                                                                • @@ -19,39 +17,6 @@

                                                                                                  Overview

                                                                                                  -

                                                                                                  - -init -

                                                                                                  - -

                                                                                                  @abstract Constructs a new SDLSetDisplayLayoutResponse object

                                                                                                  - - - -

                                                                                                  Objective-C

                                                                                                  -
                                                                                                  - (instancetype)init;
                                                                                                  - - -

                                                                                                  Swift

                                                                                                  -
                                                                                                  init!()
                                                                                                  - - - - -

                                                                                                  - -initWithDictionary: -

                                                                                                  - -

                                                                                                  Undocumented

                                                                                                  - - - -

                                                                                                  Objective-C

                                                                                                  -
                                                                                                  @interface SDLSetDisplayLayoutResponse : SDLRPCResponse
                                                                                                  - - - - -

                                                                                                  displayCapabilities

                                                                                                  diff --git a/docs/Classes/SDLSetGlobalProperties.html b/docs/Classes/SDLSetGlobalProperties.html index a1ae8bff8..7dd45a5da 100644 --- a/docs/Classes/SDLSetGlobalProperties.html +++ b/docs/Classes/SDLSetGlobalProperties.html @@ -3,8 +3,6 @@

                                                                                                  SDLSetGlobalProperties Class Reference

                                                                                                  Section Contents

                                                                                                    -
                                                                                                  • -init
                                                                                                  • -
                                                                                                  • -initWithDictionary:
                                                                                                  • -initWithHelpText:timeoutText:
                                                                                                  • -initWithHelpText:timeoutText:vrHelpTitle:vrHelp:
                                                                                                  • -initWithHelpText:timeoutText:vrHelpTitle:vrHelp:menuTitle:menuIcon:keyboardProperties:
                                                                                                  • @@ -30,48 +28,6 @@

                                                                                                    Overview

                                                                                                    -

                                                                                                    - -init -

                                                                                                    - -

                                                                                                    @abstract Constructs a new SDLSetGlobalProperties object

                                                                                                    - - - -

                                                                                                    Objective-C

                                                                                                    -
                                                                                                    - (instancetype)init;
                                                                                                    - - -

                                                                                                    Swift

                                                                                                    -
                                                                                                    init!()
                                                                                                    - - - - -

                                                                                                    - -initWithDictionary: -

                                                                                                    - -

                                                                                                    @abstract Constructs a new SDLSetGlobalProperties object indicated by the NSMutableDictionary -parameter

                                                                                                    - - - -

                                                                                                    Objective-C

                                                                                                    -
                                                                                                    - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                                    - - -

                                                                                                    Swift

                                                                                                    -
                                                                                                    init!(dictionary dict: NSMutableDictionary!)
                                                                                                    - - - -

                                                                                                    Parameters

                                                                                                    -
                                                                                                    -
                                                                                                    dict
                                                                                                    -

                                                                                                    The dictionary to use

                                                                                                    -
                                                                                                    -

                                                                                                    -initWithHelpText:timeoutText:

                                                                                                    @@ -136,11 +92,12 @@

                                                                                                    Objective-C

                                                                                                    -
                                                                                                    @property (readwrite, strong, atomic) NSMutableArray *helpPrompt;
                                                                                                    +
                                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                                    +    NSArray<SDLTTSChunk *> *helpPrompt;

                                                                                                    Swift

                                                                                                    -
                                                                                                    var helpPrompt: NSMutableArray! { get set }
                                                                                                    +
                                                                                                    var helpPrompt: [SDLTTSChunk]? { get set }
                                                                                                    @@ -156,11 +113,12 @@

                                                                                                    Objective-C

                                                                                                    -
                                                                                                    @property (readwrite, strong, atomic) NSMutableArray *timeoutPrompt;
                                                                                                    +
                                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                                    +    NSArray<SDLTTSChunk *> *timeoutPrompt;

                                                                                                    Swift

                                                                                                    -
                                                                                                    var timeoutPrompt: NSMutableArray! { get set }
                                                                                                    +
                                                                                                    var timeoutPrompt: [SDLTTSChunk]? { get set }
                                                                                                    @@ -186,11 +144,11 @@

                                                                                                    Objective-C

                                                                                                    -
                                                                                                    @property (readwrite, strong, atomic) NSString *vrHelpTitle;
                                                                                                    +
                                                                                                    @property (readwrite, strong, nonatomic, nullable) NSString *vrHelpTitle;

                                                                                                    Swift

                                                                                                    -
                                                                                                    var vrHelpTitle: String! { get set }
                                                                                                    +
                                                                                                    var vrHelpTitle: String? { get set }
                                                                                                    @@ -221,11 +179,12 @@

                                                                                                    Objective-C

                                                                                                    -
                                                                                                    @property (readwrite, strong, atomic) NSMutableArray *vrHelp;
                                                                                                    +
                                                                                                    @property (readwrite, strong, nonatomic, nullable)
                                                                                                    +    NSArray<SDLVRHelpItem *> *vrHelp;

                                                                                                    Swift

                                                                                                    -
                                                                                                    var vrHelp: NSMutableArray! { get set }
                                                                                                    +
                                                                                                    var vrHelp: [SDLVRHelpItem]? { get set }
                                                                                                    diff --git a/docs/Classes/SDLSetGlobalPropertiesResponse.html b/docs/Classes/SDLSetGlobalPropertiesResponse.html deleted file mode 100644 index 65bee87e5..000000000 --- a/docs/Classes/SDLSetGlobalPropertiesResponse.html +++ /dev/null @@ -1,60 +0,0 @@ -

                                                                                                    SDLSetGlobalPropertiesResponse Class Reference

                                                                                                    - -

                                                                                                    Section Contents

                                                                                                    - - - -

                                                                                                    Overview

                                                                                                    - -

                                                                                                    Set Global Properties Response is sent, when SDLSetGlobalProperties has been called

                                                                                                    - -

                                                                                                    Since SmartDeviceLink 1.0

                                                                                                    - - -
                                                                                                    -

                                                                                                    - -init -

                                                                                                    - -

                                                                                                    @abstract Constructs a new SDLSetGlobalPropertiesResponse object

                                                                                                    - - - -

                                                                                                    Objective-C

                                                                                                    -
                                                                                                    - (instancetype)init;
                                                                                                    - - -

                                                                                                    Swift

                                                                                                    -
                                                                                                    init!()
                                                                                                    - - - - -

                                                                                                    - -initWithDictionary: -

                                                                                                    - -

                                                                                                    @abstract Constructs a new SDLSetGlobalPropertiesResponse object indicated by the NSMutableDictionary -parameter

                                                                                                    - - - -

                                                                                                    Objective-C

                                                                                                    -
                                                                                                    - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                                    - - -

                                                                                                    Swift

                                                                                                    -
                                                                                                    init!(dictionary dict: NSMutableDictionary!)
                                                                                                    - - - -

                                                                                                    Parameters

                                                                                                    -
                                                                                                    -
                                                                                                    dict
                                                                                                    -

                                                                                                    The dictionary to use

                                                                                                    -
                                                                                                    - -
                                                                                                    diff --git a/docs/Classes/SDLSetInteriorVehicleData.html b/docs/Classes/SDLSetInteriorVehicleData.html new file mode 100644 index 000000000..6f970b22e --- /dev/null +++ b/docs/Classes/SDLSetInteriorVehicleData.html @@ -0,0 +1,50 @@ +

                                                                                                    SDLSetInteriorVehicleData Class Reference

                                                                                                    + +

                                                                                                    Section Contents

                                                                                                    + + + +

                                                                                                    Overview

                                                                                                    + +

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

                                                                                                    + + +
                                                                                                    +

                                                                                                    + -initWithModuleData: +

                                                                                                    + +

                                                                                                    Undocumented

                                                                                                    + + + +

                                                                                                    Objective-C

                                                                                                    +
                                                                                                    @interface SDLSetInteriorVehicleData : SDLRPCRequest
                                                                                                    + + + + + +

                                                                                                    + moduleData +

                                                                                                    + +

                                                                                                    The module data to set for the requested RC module.

                                                                                                    + + + +

                                                                                                    Objective-C

                                                                                                    +
                                                                                                    @property (readwrite, strong, nonatomic) SDLModuleData *_Nonnull moduleData;
                                                                                                    + + +

                                                                                                    Swift

                                                                                                    +
                                                                                                    var moduleData: SDLModuleData { get set }
                                                                                                    + + + + +
                                                                                                    diff --git a/docs/Classes/SDLSetInteriorVehicleDataResponse.html b/docs/Classes/SDLSetInteriorVehicleDataResponse.html new file mode 100644 index 000000000..855a708de --- /dev/null +++ b/docs/Classes/SDLSetInteriorVehicleDataResponse.html @@ -0,0 +1,33 @@ +

                                                                                                    SDLSetInteriorVehicleDataResponse Class Reference

                                                                                                    + +

                                                                                                    Section Contents

                                                                                                    + + + +

                                                                                                    Overview

                                                                                                    + +

                                                                                                    Used to set the values of one remote control module

                                                                                                    + + +
                                                                                                    +

                                                                                                    + moduleData +

                                                                                                    + +

                                                                                                    The module data to set for the requested remote control module.

                                                                                                    + + + +

                                                                                                    Objective-C

                                                                                                    +
                                                                                                    @property (readwrite, strong, nonatomic) SDLModuleData *_Nonnull moduleData;
                                                                                                    + + +

                                                                                                    Swift

                                                                                                    +
                                                                                                    var moduleData: SDLModuleData { get set }
                                                                                                    + + + + +
                                                                                                    diff --git a/docs/Classes/SDLSetMediaClockTimer.html b/docs/Classes/SDLSetMediaClockTimer.html index d2bf0f025..c3db6c049 100644 --- a/docs/Classes/SDLSetMediaClockTimer.html +++ b/docs/Classes/SDLSetMediaClockTimer.html @@ -3,8 +3,6 @@

                                                                                                    SDLSetMediaClockTimer Class Reference

                                                                                                    Section Contents

                                                                                                      -
                                                                                                    • -init
                                                                                                    • -
                                                                                                    • -initWithDictionary:
                                                                                                    • -initWithUpdateMode:hours:minutes:seconds:
                                                                                                    • -initWithUpdateMode:
                                                                                                    • startTime
                                                                                                    • @@ -25,48 +23,6 @@

                                                                                                      Overview

                                                                                                      -

                                                                                                      - -init -

                                                                                                      - -

                                                                                                      @abstract Constructs a new SDLSetMediaClockTimer object

                                                                                                      - - - -

                                                                                                      Objective-C

                                                                                                      -
                                                                                                      - (instancetype)init;
                                                                                                      - - -

                                                                                                      Swift

                                                                                                      -
                                                                                                      init!()
                                                                                                      - - - - -

                                                                                                      - -initWithDictionary: -

                                                                                                      - -

                                                                                                      @abstract Constructs a new SDLSetMediaClockTimer object indicated by the NSMutableDictionary -parameter

                                                                                                      - - - -

                                                                                                      Objective-C

                                                                                                      -
                                                                                                      - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                                      - - -

                                                                                                      Swift

                                                                                                      -
                                                                                                      init!(dictionary dict: NSMutableDictionary!)
                                                                                                      - - - -

                                                                                                      Parameters

                                                                                                      -
                                                                                                      -
                                                                                                      dict
                                                                                                      -

                                                                                                      The dictionary to use

                                                                                                      -
                                                                                                      -

                                                                                                      -initWithUpdateMode:hours:minutes:seconds:

                                                                                                      @@ -115,11 +71,11 @@

                                                                                                      Objective-C

                                                                                                      -
                                                                                                      @property (readwrite, strong, atomic) SDLStartTime *startTime;
                                                                                                      +
                                                                                                      @property (readwrite, strong, nonatomic, nullable) SDLStartTime *startTime;

                                                                                                      Swift

                                                                                                      -
                                                                                                      var startTime: SDLStartTime! { get set }
                                                                                                      +
                                                                                                      var startTime: SDLStartTime? { get set }
                                                                                                      @@ -135,11 +91,11 @@

                                                                                                      Objective-C

                                                                                                      -
                                                                                                      @property (readwrite, strong, atomic) SDLStartTime *endTime;
                                                                                                      +
                                                                                                      @property (readwrite, strong, nonatomic, nullable) SDLStartTime *endTime;

                                                                                                      Swift

                                                                                                      -
                                                                                                      var endTime: SDLStartTime! { get set }
                                                                                                      +
                                                                                                      var endTime: SDLStartTime? { get set }
                                                                                                      @@ -163,11 +119,11 @@

                                                                                                      Objective-C

                                                                                                      -
                                                                                                      @property (readwrite, strong, atomic) SDLUpdateMode *updateMode;
                                                                                                      +
                                                                                                      @property (readwrite, strong, nonatomic) SDLUpdateMode _Nonnull updateMode;

                                                                                                      Swift

                                                                                                      -
                                                                                                      var updateMode: SDLUpdateMode! { get set }
                                                                                                      +
                                                                                                      var updateMode: SDLUpdateMode { get set }
                                                                                                      diff --git a/docs/Classes/SDLSetMediaClockTimerResponse.html b/docs/Classes/SDLSetMediaClockTimerResponse.html deleted file mode 100644 index 1deb0854c..000000000 --- a/docs/Classes/SDLSetMediaClockTimerResponse.html +++ /dev/null @@ -1,61 +0,0 @@ -

                                                                                                      SDLSetMediaClockTimerResponse Class Reference

                                                                                                      - -

                                                                                                      Section Contents

                                                                                                      - - - -

                                                                                                      Overview

                                                                                                      - -

                                                                                                      Set Media Clock Timer Response is sent, when SDLSetMediaClockTimer has been called

                                                                                                      - -

                                                                                                      Since SmartDeviceLink 1.0

                                                                                                      - - -
                                                                                                      -

                                                                                                      - -init -

                                                                                                      - -

                                                                                                      @abstract Constructs a new SDLSetMediaClockTimerResponse object

                                                                                                      - - - -

                                                                                                      Objective-C

                                                                                                      -
                                                                                                      - (instancetype)init;
                                                                                                      - - -

                                                                                                      Swift

                                                                                                      -
                                                                                                      init!()
                                                                                                      - - - - -

                                                                                                      - -initWithDictionary: -

                                                                                                      - -

                                                                                                      @abstract Constructs a new SDLSetMediaClockTimerResponse object indicated by the NSMutableDictionary - parameter -

                                                                                                      - - - -

                                                                                                      Objective-C

                                                                                                      -
                                                                                                      - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                                      - - -

                                                                                                      Swift

                                                                                                      -
                                                                                                      init!(dictionary dict: NSMutableDictionary!)
                                                                                                      - - - -

                                                                                                      Parameters

                                                                                                      -
                                                                                                      -
                                                                                                      dict
                                                                                                      -

                                                                                                      The dictionary to use

                                                                                                      -
                                                                                                      - -
                                                                                                      diff --git a/docs/Classes/SDLShow.html b/docs/Classes/SDLShow.html index 5ffdbe7b1..69345b399 100644 --- a/docs/Classes/SDLShow.html +++ b/docs/Classes/SDLShow.html @@ -3,14 +3,11 @@

                                                                                                      SDLShow Class Reference

                                                                                                      Section Contents

                                                                                                        -
                                                                                                      • -init
                                                                                                      • -
                                                                                                      • -initWithDictionary:
                                                                                                      • -initWithMainField1:mainField2:alignment:
                                                                                                      • -initWithMainField1:mainField1Type:mainField2:mainField2Type:alignment:
                                                                                                      • -initWithMainField1:mainField2:mainField3:mainField4:alignment:
                                                                                                      • -initWithMainField1:mainField1Type:mainField2:mainField2Type:mainField3:mainField3Type:mainField4:mainField4Type:alignment:
                                                                                                      • -initWithMainField1:mainField2:alignment:statusBar:mediaClock:mediaTrack:
                                                                                                      • -
                                                                                                      • -initWithMainField1:mainField2:mainField3:mainField4:alignment:statusBar:mediaClock:mediaTrack:graphic:softButtons:customPresets:
                                                                                                      • -initWithMainField1:mainField2:mainField3:mainField4:alignment:statusBar:mediaClock:mediaTrack:graphic:softButtons:customPresets:textFieldMetadata:
                                                                                                      • mainField1
                                                                                                      • mainField2
                                                                                                      • @@ -52,47 +49,6 @@

                                                                                                        Overview

                                                                                                        -

                                                                                                        - -init -

                                                                                                        - -

                                                                                                        @abstract Constructs a new SDLShow object

                                                                                                        - - - -

                                                                                                        Objective-C

                                                                                                        -
                                                                                                        - (instancetype)init;
                                                                                                        - - -

                                                                                                        Swift

                                                                                                        -
                                                                                                        init!()
                                                                                                        - - - - -

                                                                                                        - -initWithDictionary: -

                                                                                                        - -

                                                                                                        @abstract Constructs a new SDLShow object indicated by the dictionary parameter

                                                                                                        - - - -

                                                                                                        Objective-C

                                                                                                        -
                                                                                                        - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                                        - - -

                                                                                                        Swift

                                                                                                        -
                                                                                                        init!(dictionary dict: NSMutableDictionary!)
                                                                                                        - - - -

                                                                                                        Parameters

                                                                                                        -
                                                                                                        -
                                                                                                        dict
                                                                                                        -

                                                                                                        The dictionary to use

                                                                                                        -
                                                                                                        -

                                                                                                        -initWithMainField1:mainField2:alignment:

                                                                                                        @@ -168,21 +124,6 @@

                                                                                                        Objective-C

                                                                                                        -

                                                                                                        - -initWithMainField1:mainField2:mainField3:mainField4:alignment:statusBar:mediaClock:mediaTrack:graphic:softButtons:customPresets: -

                                                                                                        - -

                                                                                                        Undocumented

                                                                                                        - - - -

                                                                                                        Objective-C

                                                                                                        -
                                                                                                        @interface SDLShow : SDLRPCRequest
                                                                                                        - - - - -

                                                                                                        -initWithMainField1:mainField2:mainField3:mainField4:alignment:statusBar:mediaClock:mediaTrack:graphic:softButtons:customPresets:textFieldMetadata:

                                                                                                        @@ -219,11 +160,11 @@

                                                                                                        Objective-C

                                                                                                        -
                                                                                                        @property (readwrite, strong, atomic) NSString *mainField1;
                                                                                                        +
                                                                                                        @property (readwrite, strong, nonatomic, nullable) NSString *mainField1;

                                                                                                        Swift

                                                                                                        -
                                                                                                        var mainField1: String! { get set }
                                                                                                        +
                                                                                                        var mainField1: String? { get set }
                                                                                                        @@ -251,11 +192,11 @@

                                                                                                        Objective-C

                                                                                                        -
                                                                                                        @property (readwrite, strong, atomic) NSString *mainField2;
                                                                                                        +
                                                                                                        @property (readwrite, strong, nonatomic, nullable) NSString *mainField2;

                                                                                                        Swift

                                                                                                        -
                                                                                                        var mainField2: String! { get set }
                                                                                                        +
                                                                                                        var mainField2: String? { get set }
                                                                                                        @@ -284,11 +225,11 @@

                                                                                                        Objective-C

                                                                                                        -
                                                                                                        @property (readwrite, strong, atomic) NSString *mainField3;
                                                                                                        +
                                                                                                        @property (readwrite, strong, nonatomic, nullable) NSString *mainField3;

                                                                                                        Swift

                                                                                                        -
                                                                                                        var mainField3: String! { get set }
                                                                                                        +
                                                                                                        var mainField3: String? { get set }
                                                                                                        @@ -317,11 +258,11 @@

                                                                                                        Objective-C

                                                                                                        -
                                                                                                        @property (readwrite, strong, atomic) NSString *mainField4;
                                                                                                        +
                                                                                                        @property (readwrite, strong, nonatomic, nullable) NSString *mainField4;

                                                                                                        Swift

                                                                                                        -
                                                                                                        var mainField4: String! { get set }
                                                                                                        +
                                                                                                        var mainField4: String? { get set }
                                                                                                        @@ -347,11 +288,11 @@

                                                                                                        Objective-C

                                                                                                        -
                                                                                                        @property (readwrite, strong, atomic) SDLTextAlignment *alignment;
                                                                                                        +
                                                                                                        @property (readwrite, strong, nonatomic, nullable) SDLTextAlignment alignment;

                                                                                                        Swift

                                                                                                        -
                                                                                                        var alignment: SDLTextAlignment! { get set }
                                                                                                        +
                                                                                                        var alignment: SDLTextAlignment? { get set }
                                                                                                        @@ -379,11 +320,11 @@

                                                                                                        Objective-C

                                                                                                        -
                                                                                                        @property (readwrite, strong, atomic) NSString *statusBar;
                                                                                                        +
                                                                                                        @property (readwrite, strong, nonatomic, nullable) NSString *statusBar;

                                                                                                        Swift

                                                                                                        -
                                                                                                        var statusBar: String! { get set }
                                                                                                        +
                                                                                                        var statusBar: String? { get set }
                                                                                                        @@ -410,11 +351,11 @@

                                                                                                        Objective-C

                                                                                                        -
                                                                                                        @property (readwrite, strong, atomic) NSString *mediaClock;
                                                                                                        +
                                                                                                        @property (readwrite, strong, nonatomic, nullable) NSString *mediaClock;

                                                                                                        Swift

                                                                                                        -
                                                                                                        var mediaClock: String! { get set }
                                                                                                        +
                                                                                                        var mediaClock: String? { get set }
                                                                                                        @@ -437,11 +378,11 @@

                                                                                                        Objective-C

                                                                                                        -
                                                                                                        @property (readwrite, strong, atomic) NSString *mediaTrack;
                                                                                                        +
                                                                                                        @property (readwrite, strong, nonatomic, nullable) NSString *mediaTrack;

                                                                                                        Swift

                                                                                                        -
                                                                                                        var mediaTrack: String! { get set }
                                                                                                        +
                                                                                                        var mediaTrack: String? { get set }
                                                                                                        @@ -461,11 +402,11 @@

                                                                                                        Objective-C

                                                                                                        -
                                                                                                        @property (readwrite, strong, atomic) SDLImage *graphic;
                                                                                                        +
                                                                                                        @property (readwrite, strong, nonatomic, nullable) SDLImage *graphic;

                                                                                                        Swift

                                                                                                        -
                                                                                                        var graphic: SDLImage! { get set }
                                                                                                        +
                                                                                                        var graphic: SDLImage? { get set }
                                                                                                        @@ -485,11 +426,11 @@

                                                                                                        Objective-C

                                                                                                        -
                                                                                                        @property (readwrite, strong, atomic) SDLImage *secondaryGraphic;
                                                                                                        +
                                                                                                        @property (readwrite, strong, nonatomic, nullable) SDLImage *secondaryGraphic;

                                                                                                        Swift

                                                                                                        -
                                                                                                        var secondaryGraphic: SDLImage! { get set }
                                                                                                        +
                                                                                                        var secondaryGraphic: SDLImage? { get set }
                                                                                                        @@ -516,11 +457,12 @@

                                                                                                        Objective-C

                                                                                                        -
                                                                                                        @property (readwrite, strong, atomic) NSMutableArray *softButtons;
                                                                                                        +
                                                                                                        @property (readwrite, strong, nonatomic, nullable)
                                                                                                        +    NSArray<SDLSoftButton *> *softButtons;

                                                                                                        Swift

                                                                                                        -
                                                                                                        var softButtons: NSMutableArray! { get set }
                                                                                                        +
                                                                                                        var softButtons: [SDLSoftButton]? { get set }
                                                                                                        @@ -544,11 +486,12 @@

                                                                                                        Objective-C

                                                                                                        -
                                                                                                        @property (readwrite, strong, atomic) NSMutableArray *customPresets;
                                                                                                        +
                                                                                                        @property (readwrite, strong, nonatomic, nullable)
                                                                                                        +    NSArray<NSString *> *customPresets;

                                                                                                        Swift

                                                                                                        -
                                                                                                        var customPresets: NSMutableArray! { get set }
                                                                                                        +
                                                                                                        var customPresets: [String]? { get set }
                                                                                                        @@ -570,11 +513,11 @@

                                                                                                        Objective-C

                                                                                                        -
                                                                                                        @property (readwrite, strong, atomic) SDLMetadataTags *metadataTags;
                                                                                                        +
                                                                                                        @property (readwrite, strong, nonatomic, nullable) SDLMetadataTags *metadataTags;

                                                                                                        Swift

                                                                                                        -
                                                                                                        var metadataTags: SDLMetadataTags! { get set }
                                                                                                        +
                                                                                                        var metadataTags: SDLMetadataTags? { get set }
                                                                                                        diff --git a/docs/Classes/SDLShowConstantTBT.html b/docs/Classes/SDLShowConstantTBT.html index 15b8af5bc..db614ddb0 100644 --- a/docs/Classes/SDLShowConstantTBT.html +++ b/docs/Classes/SDLShowConstantTBT.html @@ -3,8 +3,6 @@

                                                                                                        SDLShowConstantTBT Class Reference

                                                                                                        Section Contents

                                                                                                          -
                                                                                                        • -init
                                                                                                        • -
                                                                                                        • -initWithDictionary:
                                                                                                        • -initWithNavigationText1:navigationText2:eta:timeToDestination:totalDistance:turnIcon:nextTurnIcon:distanceToManeuver:distanceToManeuverScale:maneuverComplete:softButtons:
                                                                                                        • navigationText1
                                                                                                        • navigationText2
                                                                                                        • @@ -32,36 +30,6 @@

                                                                                                          Overview

                                                                                                          -

                                                                                                          - -init -

                                                                                                          - -

                                                                                                          Undocumented

                                                                                                          - - - -

                                                                                                          Objective-C

                                                                                                          -
                                                                                                          @interface SDLShowConstantTBT : SDLRPCRequest
                                                                                                          - - - - - -

                                                                                                          - -initWithDictionary: -

                                                                                                          - -

                                                                                                          Undocumented

                                                                                                          - - - -

                                                                                                          Objective-C

                                                                                                          -
                                                                                                          @interface SDLShowConstantTBT : SDLRPCRequest
                                                                                                          - - - - -

                                                                                                          -initWithNavigationText1:navigationText2:eta:timeToDestination:totalDistance:turnIcon:nextTurnIcon:distanceToManeuver:distanceToManeuverScale:maneuverComplete:softButtons:

                                                                                                          diff --git a/docs/Classes/SDLShowConstantTBTResponse.html b/docs/Classes/SDLShowConstantTBTResponse.html deleted file mode 100644 index 441168934..000000000 --- a/docs/Classes/SDLShowConstantTBTResponse.html +++ /dev/null @@ -1,50 +0,0 @@ -

                                                                                                          SDLShowConstantTBTResponse Class Reference

                                                                                                          - -

                                                                                                          Section Contents

                                                                                                          - - - -

                                                                                                          Overview

                                                                                                          - -

                                                                                                          SDLShowConstantTBTResponse is sent, when SDLShowConstantTBT has been called.

                                                                                                          - -
                                                                                                            -
                                                                                                          • SinceSmartDeviceLink 2.0
                                                                                                          • -
                                                                                                          - - -
                                                                                                          -

                                                                                                          - -init -

                                                                                                          - -

                                                                                                          Undocumented

                                                                                                          - - - -

                                                                                                          Objective-C

                                                                                                          -
                                                                                                          @interface SDLShowConstantTBTResponse : SDLRPCResponse
                                                                                                          - - - - - -

                                                                                                          - -initWithDictionary: -

                                                                                                          - -

                                                                                                          Undocumented

                                                                                                          - - - -

                                                                                                          Objective-C

                                                                                                          -
                                                                                                          @interface SDLShowConstantTBTResponse : SDLRPCResponse
                                                                                                          - - - - - -
                                                                                                          diff --git a/docs/Classes/SDLShowResponse.html b/docs/Classes/SDLShowResponse.html deleted file mode 100644 index 43f0e38ab..000000000 --- a/docs/Classes/SDLShowResponse.html +++ /dev/null @@ -1,60 +0,0 @@ -

                                                                                                          SDLShowResponse Class Reference

                                                                                                          - -

                                                                                                          Section Contents

                                                                                                          - - - -

                                                                                                          Overview

                                                                                                          - -

                                                                                                          Show Response is sent, when Show has been called

                                                                                                          - -

                                                                                                          Since SmartDeviceLink 1.0

                                                                                                          - - -
                                                                                                          -

                                                                                                          - -init -

                                                                                                          - -

                                                                                                          @abstract Constructs a new SDLShowResponse object

                                                                                                          - - - -

                                                                                                          Objective-C

                                                                                                          -
                                                                                                          - (instancetype)init;
                                                                                                          - - -

                                                                                                          Swift

                                                                                                          -
                                                                                                          init!()
                                                                                                          - - - - -

                                                                                                          - -initWithDictionary: -

                                                                                                          - -

                                                                                                          @abstract Constructs a new SDLShowResponse object indicated by the NSMutableDictionary -parameter

                                                                                                          - - - -

                                                                                                          Objective-C

                                                                                                          -
                                                                                                          - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                                          - - -

                                                                                                          Swift

                                                                                                          -
                                                                                                          init!(dictionary dict: NSMutableDictionary!)
                                                                                                          - - - -

                                                                                                          Parameters

                                                                                                          -
                                                                                                          -
                                                                                                          dict
                                                                                                          -

                                                                                                          The dictionary to use

                                                                                                          -
                                                                                                          - -
                                                                                                          diff --git a/docs/Classes/SDLSingleTireStatus.html b/docs/Classes/SDLSingleTireStatus.html index 49f2080b9..827ca11b3 100644 --- a/docs/Classes/SDLSingleTireStatus.html +++ b/docs/Classes/SDLSingleTireStatus.html @@ -3,8 +3,6 @@

                                                                                                          SDLSingleTireStatus Class Reference

                                                                                                          Section Contents

                                                                                                          @@ -16,47 +14,6 @@

                                                                                                          Overview

                                                                                                          -

                                                                                                          - -init -

                                                                                                          - -

                                                                                                          @abstract Constructs a newly allocated SDLSingleTireStatus object

                                                                                                          - - - -

                                                                                                          Objective-C

                                                                                                          -
                                                                                                          - (instancetype)init;
                                                                                                          - - -

                                                                                                          Swift

                                                                                                          -
                                                                                                          init!()
                                                                                                          - - - - -

                                                                                                          - -initWithDictionary: -

                                                                                                          - -

                                                                                                          @abstract Constructs a newly allocated SDLSingleTireStatus object indicated by the dictionary parameter

                                                                                                          - - - -

                                                                                                          Objective-C

                                                                                                          -
                                                                                                          - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                                          - - -

                                                                                                          Swift

                                                                                                          -
                                                                                                          init!(dictionary dict: NSMutableDictionary!)
                                                                                                          - - - -

                                                                                                          Parameters

                                                                                                          -
                                                                                                          -
                                                                                                          dict
                                                                                                          -

                                                                                                          The dictionary to use

                                                                                                          -
                                                                                                          -

                                                                                                          status

                                                                                                          @@ -66,11 +23,12 @@

                                                                                                          Objective-C

                                                                                                          -
                                                                                                          @property (readwrite, strong, atomic) SDLComponentVolumeStatus *status;
                                                                                                          +
                                                                                                          @property (readwrite, strong, nonatomic)
                                                                                                          +    SDLComponentVolumeStatus _Nonnull status;

                                                                                                          Swift

                                                                                                          -
                                                                                                          var status: SDLComponentVolumeStatus! { get set }
                                                                                                          +
                                                                                                          var status: SDLComponentVolumeStatus { get set }
                                                                                                          diff --git a/docs/Classes/SDLSiphonServer.html b/docs/Classes/SDLSiphonServer.html deleted file mode 100644 index 680d50eb9..000000000 --- a/docs/Classes/SDLSiphonServer.html +++ /dev/null @@ -1,122 +0,0 @@ -

                                                                                                          SDLSiphonServer Class Reference

                                                                                                          - -

                                                                                                          Section Contents

                                                                                                          - - - -

                                                                                                          Overview

                                                                                                          - -

                                                                                                          Undocumented

                                                                                                          - - -
                                                                                                          -

                                                                                                          - +enableSiphonDebug -

                                                                                                          - -

                                                                                                          Undocumented

                                                                                                          - - - - - - -

                                                                                                          - +disableSiphonDebug -

                                                                                                          - -

                                                                                                          Undocumented

                                                                                                          - - - - - - -

                                                                                                          - +_siphonRawTransportDataFromApp:msgBytesLength: -

                                                                                                          - -

                                                                                                          Undocumented

                                                                                                          - - - - - - -

                                                                                                          - +_siphonRawTransportDataFromSDL:msgBytesLength: -

                                                                                                          - -

                                                                                                          Undocumented

                                                                                                          - - - - - - -

                                                                                                          - +_siphonNSLogData: -

                                                                                                          - -

                                                                                                          Undocumented

                                                                                                          - - - - - - -

                                                                                                          - +_siphonFormattedTraceData: -

                                                                                                          - -

                                                                                                          Undocumented

                                                                                                          - - - - - - -

                                                                                                          - +_siphonIsActive -

                                                                                                          - -

                                                                                                          Undocumented

                                                                                                          - - - - - - -

                                                                                                          - +init -

                                                                                                          - -

                                                                                                          Undocumented

                                                                                                          - - - - - - -

                                                                                                          - +dealloc -

                                                                                                          - -

                                                                                                          Undocumented

                                                                                                          - - - - - - -
                                                                                                          diff --git a/docs/Classes/SDLSlider.html b/docs/Classes/SDLSlider.html index 4147815a7..7081948b0 100644 --- a/docs/Classes/SDLSlider.html +++ b/docs/Classes/SDLSlider.html @@ -3,8 +3,6 @@

                                                                                                          SDLSlider Class Reference

                                                                                                          Section Contents

                                                                                                            -
                                                                                                          • -init
                                                                                                          • -
                                                                                                          • -initWithDictionary:
                                                                                                          • -initWithNumTicks:position:
                                                                                                          • -initWithNumTicks:position:sliderHeader:sliderFooter:timeout:
                                                                                                          • -initWithNumTicks:position:sliderHeader:sliderFooters:timeout:
                                                                                                          • @@ -25,47 +23,6 @@

                                                                                                            Overview

                                                                                                            -

                                                                                                            - -init -

                                                                                                            - -

                                                                                                            @abstract Constructs a new SDLSlider object

                                                                                                            - - - -

                                                                                                            Objective-C

                                                                                                            -
                                                                                                            - (instancetype)init;
                                                                                                            - - -

                                                                                                            Swift

                                                                                                            -
                                                                                                            init!()
                                                                                                            - - - - -

                                                                                                            - -initWithDictionary: -

                                                                                                            - -

                                                                                                            @abstract Constructs a new SDLSlider object indicated by the dictionary parameter

                                                                                                            - - - -

                                                                                                            Objective-C

                                                                                                            -
                                                                                                            - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                                            - - -

                                                                                                            Swift

                                                                                                            -
                                                                                                            init!(dictionary dict: NSMutableDictionary!)
                                                                                                            - - - -

                                                                                                            Parameters

                                                                                                            -
                                                                                                            -
                                                                                                            dict
                                                                                                            -

                                                                                                            The dictionary to use

                                                                                                            -
                                                                                                            -

                                                                                                            -initWithNumTicks:position:

                                                                                                            @@ -122,11 +79,11 @@

                                                                                                            Objective-C

                                                                                                            -
                                                                                                            @property (readwrite, strong, atomic) NSNumber *numTicks;
                                                                                                            +
                                                                                                            @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull numTicks;

                                                                                                            Swift

                                                                                                            -
                                                                                                            var numTicks: NSNumber! { get set }
                                                                                                            +
                                                                                                            var numTicks: NSNumber 
                                                                                                            @@ -142,11 +99,11 @@

                                                                                                            Objective-C

                                                                                                            -
                                                                                                            @property (readwrite, strong, atomic) NSNumber *position;
                                                                                                            +
                                                                                                            @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull position;

                                                                                                            Swift

                                                                                                            -
                                                                                                            var position: NSNumber! { get set }
                                                                                                            +
                                                                                                            var position: NSNumber 
                                                                                                            @@ -162,11 +119,11 @@

                                                                                                            Objective-C

                                                                                                            -
                                                                                                            @property (readwrite, strong, atomic) NSString *sliderHeader;
                                                                                                            +
                                                                                                            @property (readwrite, strong, nonatomic) NSString *_Nonnull sliderHeader;

                                                                                                            Swift

                                                                                                            -
                                                                                                            var sliderHeader: String! { get set }
                                                                                                            +
                                                                                                            var sliderHeader: String { get set }
                                                                                                            @@ -190,11 +147,12 @@

                                                                                                            Objective-C

                                                                                                            -
                                                                                                            @property (readwrite, strong, atomic) NSMutableArray *sliderFooter;
                                                                                                            +
                                                                                                            @property (readwrite, strong, nonatomic, nullable)
                                                                                                            +    NSArray<NSString *> *sliderFooter;

                                                                                                            Swift

                                                                                                            -
                                                                                                            var sliderFooter: NSMutableArray! { get set }
                                                                                                            +
                                                                                                            var sliderFooter: [String]? { get set }
                                                                                                            @@ -214,11 +172,11 @@

                                                                                                            Objective-C

                                                                                                            -
                                                                                                            @property (readwrite, strong, atomic) NSNumber *timeout;
                                                                                                            +
                                                                                                            @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLInt> *timeout;

                                                                                                            Swift

                                                                                                            -
                                                                                                            var timeout: NSNumber! { get set }
                                                                                                            +
                                                                                                            var timeout: (NSNumber 
                                                                                                            diff --git a/docs/Classes/SDLSliderResponse.html b/docs/Classes/SDLSliderResponse.html index be4795ef9..90a0b1847 100644 --- a/docs/Classes/SDLSliderResponse.html +++ b/docs/Classes/SDLSliderResponse.html @@ -3,8 +3,6 @@

                                                                                                            SDLSliderResponse Class Reference

                                                                                                            Section Contents

                                                                                                            @@ -16,48 +14,6 @@

                                                                                                            Overview

                                                                                                            -

                                                                                                            - -init -

                                                                                                            - -

                                                                                                            @abstract Constructs a new SDLSliderResponse object

                                                                                                            - - - -

                                                                                                            Objective-C

                                                                                                            -
                                                                                                            - (instancetype)init;
                                                                                                            - - -

                                                                                                            Swift

                                                                                                            -
                                                                                                            init!()
                                                                                                            - - - - -

                                                                                                            - -initWithDictionary: -

                                                                                                            - -

                                                                                                            @abstract Constructs a new SDLSliderResponse object indicated by the NSMutableDictionary -parameter

                                                                                                            - - - -

                                                                                                            Objective-C

                                                                                                            -
                                                                                                            - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                                            - - -

                                                                                                            Swift

                                                                                                            -
                                                                                                            init!(dictionary dict: NSMutableDictionary!)
                                                                                                            - - - -

                                                                                                            Parameters

                                                                                                            -
                                                                                                            -
                                                                                                            dict
                                                                                                            -

                                                                                                            The dictionary to use

                                                                                                            -
                                                                                                            -

                                                                                                            sliderPosition

                                                                                                            @@ -67,11 +23,12 @@

                                                                                                            Objective-C

                                                                                                            -
                                                                                                            @property (readwrite, strong, atomic) NSNumber *sliderPosition;
                                                                                                            +
                                                                                                            @property (readwrite, strong, nonatomic, nullable)
                                                                                                            +    NSNumber<SDLInt> *sliderPosition;

                                                                                                            Swift

                                                                                                            -
                                                                                                            var sliderPosition: NSNumber! { get set }
                                                                                                            +
                                                                                                            var sliderPosition: (NSNumber 
                                                                                                            diff --git a/docs/Classes/SDLSoftButton.html b/docs/Classes/SDLSoftButton.html index 0f543b340..c8197eeff 100644 --- a/docs/Classes/SDLSoftButton.html +++ b/docs/Classes/SDLSoftButton.html @@ -3,9 +3,7 @@

                                                                                                            SDLSoftButton Class Reference

                                                                                                            Section Contents

                                                                                                              -
                                                                                                            • -init
                                                                                                            • -initWithHandler:
                                                                                                            • -
                                                                                                            • -initWithDictionary:
                                                                                                            • -initWithType:text:image:highlighted:buttonId:systemAction:handler:
                                                                                                            • handler
                                                                                                            • type
                                                                                                            • @@ -22,17 +20,6 @@

                                                                                                              Overview

                                                                                                              -

                                                                                                              - -init -

                                                                                                              - -

                                                                                                              Undocumented

                                                                                                              - - - - - -

                                                                                                              -initWithHandler:

                                                                                                              @@ -44,17 +31,6 @@

                                                                                                              -

                                                                                                              - -initWithDictionary: -

                                                                                                              - -

                                                                                                              Undocumented

                                                                                                              - - - - - -

                                                                                                              -initWithType:text:image:highlighted:buttonId:systemAction:handler:

                                                                                                              diff --git a/docs/Classes/SDLSoftButtonCapabilities.html b/docs/Classes/SDLSoftButtonCapabilities.html index c323ea567..ec25b9809 100644 --- a/docs/Classes/SDLSoftButtonCapabilities.html +++ b/docs/Classes/SDLSoftButtonCapabilities.html @@ -3,8 +3,6 @@

                                                                                                              SDLSoftButtonCapabilities Class Reference

                                                                                                              Section Contents

                                                                                                                -
                                                                                                              • -init
                                                                                                              • -
                                                                                                              • -initWithDictionary:
                                                                                                              • shortPressAvailable
                                                                                                              • longPressAvailable
                                                                                                              • upDownAvailable
                                                                                                              • @@ -19,47 +17,6 @@

                                                                                                                Overview

                                                                                                                -

                                                                                                                - -init -

                                                                                                                - -

                                                                                                                @abstract Constructs a newly allocated SDLSoftButtonCapabilities object

                                                                                                                - - - -

                                                                                                                Objective-C

                                                                                                                -
                                                                                                                - (instancetype)init;
                                                                                                                - - -

                                                                                                                Swift

                                                                                                                -
                                                                                                                init!()
                                                                                                                - - - - -

                                                                                                                - -initWithDictionary: -

                                                                                                                - -

                                                                                                                @abstract Constructs a newly allocated SDLSoftButtonCapabilities object indicated by the dictionary parameter

                                                                                                                - - - -

                                                                                                                Objective-C

                                                                                                                -
                                                                                                                - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                                                - - -

                                                                                                                Swift

                                                                                                                -
                                                                                                                init!(dictionary dict: NSMutableDictionary!)
                                                                                                                - - - -

                                                                                                                Parameters

                                                                                                                -
                                                                                                                -
                                                                                                                dict
                                                                                                                -

                                                                                                                The dictionary to use

                                                                                                                -
                                                                                                                -

                                                                                                                shortPressAvailable

                                                                                                                @@ -73,11 +30,12 @@

                                                                                                                Objective-C

                                                                                                                -
                                                                                                                @property (readwrite, strong, atomic) NSNumber *shortPressAvailable;
                                                                                                                +
                                                                                                                @property (readwrite, strong, nonatomic)
                                                                                                                +    NSNumber<SDLBool> *_Nonnull shortPressAvailable;

                                                                                                                Swift

                                                                                                                -
                                                                                                                var shortPressAvailable: NSNumber! { get set }
                                                                                                                +
                                                                                                                var shortPressAvailable: NSNumber 
                                                                                                                @@ -95,11 +53,12 @@

                                                                                                                Objective-C

                                                                                                                -
                                                                                                                @property (readwrite, strong, atomic) NSNumber *longPressAvailable;
                                                                                                                +
                                                                                                                @property (readwrite, strong, nonatomic)
                                                                                                                +    NSNumber<SDLBool> *_Nonnull longPressAvailable;

                                                                                                                Swift

                                                                                                                -
                                                                                                                var longPressAvailable: NSNumber! { get set }
                                                                                                                +
                                                                                                                var longPressAvailable: NSNumber 
                                                                                                                @@ -117,11 +76,12 @@

                                                                                                                Objective-C

                                                                                                                -
                                                                                                                @property (readwrite, strong, atomic) NSNumber *upDownAvailable;
                                                                                                                +
                                                                                                                @property (readwrite, strong, nonatomic)
                                                                                                                +    NSNumber<SDLBool> *_Nonnull upDownAvailable;

                                                                                                                Swift

                                                                                                                -
                                                                                                                var upDownAvailable: NSNumber! { get set }
                                                                                                                +
                                                                                                                var upDownAvailable: NSNumber 
                                                                                                                @@ -137,11 +97,12 @@

                                                                                                                Objective-C

                                                                                                                -
                                                                                                                @property (readwrite, strong, atomic) NSNumber *imageSupported;
                                                                                                                +
                                                                                                                @property (readwrite, strong, nonatomic)
                                                                                                                +    NSNumber<SDLBool> *_Nonnull imageSupported;

                                                                                                                Swift

                                                                                                                -
                                                                                                                var imageSupported: NSNumber! { get set }
                                                                                                                +
                                                                                                                var imageSupported: NSNumber 
                                                                                                                diff --git a/docs/Classes/SDLSoftButtonType.html b/docs/Classes/SDLSoftButtonType.html deleted file mode 100644 index ed127e3d5..000000000 --- a/docs/Classes/SDLSoftButtonType.html +++ /dev/null @@ -1,134 +0,0 @@ -

                                                                                                                SDLSoftButtonType Class Reference

                                                                                                                - -

                                                                                                                Section Contents

                                                                                                                - - - -

                                                                                                                Overview

                                                                                                                - -

                                                                                                                SoftButtonType (TEXT / IMAGE / BOTH)

                                                                                                                - - -
                                                                                                                -

                                                                                                                - +valueOf: -

                                                                                                                - -

                                                                                                                @abstract get SDLSoftButtonType according value string

                                                                                                                - - - -

                                                                                                                Objective-C

                                                                                                                -
                                                                                                                + (SDLSoftButtonType *)valueOf:(NSString *)value;
                                                                                                                - - -

                                                                                                                Swift

                                                                                                                -
                                                                                                                class func value(of value: String!) -> SDLSoftButtonType!
                                                                                                                - - - -

                                                                                                                Parameters

                                                                                                                -
                                                                                                                -
                                                                                                                value
                                                                                                                -

                                                                                                                NSString

                                                                                                                -
                                                                                                                -
                                                                                                                -

                                                                                                                Return Value

                                                                                                                -

                                                                                                                SDLSoftButtonType object

                                                                                                                -
                                                                                                                - -

                                                                                                                - +values -

                                                                                                                - -

                                                                                                                @abstract declare an array to store all possible SDLSoftButtonType values

                                                                                                                - - - -

                                                                                                                Objective-C

                                                                                                                -
                                                                                                                + (NSArray *)values;
                                                                                                                - - -

                                                                                                                Swift

                                                                                                                -
                                                                                                                class func values() -> [Any]!
                                                                                                                - - - -
                                                                                                                -

                                                                                                                Return Value

                                                                                                                -

                                                                                                                the array

                                                                                                                -
                                                                                                                - -

                                                                                                                - +TEXT -

                                                                                                                - -

                                                                                                                @abstract Text kind Softbutton

                                                                                                                - - - -

                                                                                                                Objective-C

                                                                                                                -
                                                                                                                + (SDLSoftButtonType *)TEXT;
                                                                                                                - - -

                                                                                                                Swift

                                                                                                                -
                                                                                                                class func text() -> SDLSoftButtonType!
                                                                                                                - - - -
                                                                                                                -

                                                                                                                Return Value

                                                                                                                -

                                                                                                                SDLSoftButtonType object with string value TEXT

                                                                                                                -
                                                                                                                - -

                                                                                                                - +IMAGE -

                                                                                                                - -

                                                                                                                @abstract Image kind Softbutton

                                                                                                                - - - -

                                                                                                                Objective-C

                                                                                                                -
                                                                                                                + (SDLSoftButtonType *)IMAGE;
                                                                                                                - - -

                                                                                                                Swift

                                                                                                                -
                                                                                                                class func image() -> SDLSoftButtonType!
                                                                                                                - - - -
                                                                                                                -

                                                                                                                Return Value

                                                                                                                -

                                                                                                                SDLSoftButtonType object with string value IMAGE

                                                                                                                -
                                                                                                                - -

                                                                                                                - +BOTH -

                                                                                                                - -

                                                                                                                @abstract Both (Text & Image) kind Softbutton

                                                                                                                - - - -

                                                                                                                Objective-C

                                                                                                                -
                                                                                                                + (SDLSoftButtonType *)BOTH;
                                                                                                                - - -

                                                                                                                Swift

                                                                                                                -
                                                                                                                class func both() -> SDLSoftButtonType!
                                                                                                                - - - -
                                                                                                                -

                                                                                                                Return Value

                                                                                                                -

                                                                                                                SDLSoftButtonType object with string value BOTH

                                                                                                                -
                                                                                                                - -
                                                                                                                diff --git a/docs/Classes/SDLSpeak.html b/docs/Classes/SDLSpeak.html index b27fa22d5..dac4331d9 100644 --- a/docs/Classes/SDLSpeak.html +++ b/docs/Classes/SDLSpeak.html @@ -3,8 +3,6 @@

                                                                                                                SDLSpeak Class Reference

                                                                                                                Section Contents

                                                                                                                  -
                                                                                                                • -init
                                                                                                                • -
                                                                                                                • -initWithDictionary:
                                                                                                                • -initWithTTS:
                                                                                                                • -initWithTTSChunks:
                                                                                                                • ttsChunks
                                                                                                                • @@ -50,47 +48,6 @@

                                                                                                                  Overview

                                                                                                                  -

                                                                                                                  - -init -

                                                                                                                  - -

                                                                                                                  @abstract Constructs a new SDLSpeak object

                                                                                                                  - - - -

                                                                                                                  Objective-C

                                                                                                                  -
                                                                                                                  - (instancetype)init;
                                                                                                                  - - -

                                                                                                                  Swift

                                                                                                                  -
                                                                                                                  init!()
                                                                                                                  - - - - -

                                                                                                                  - -initWithDictionary: -

                                                                                                                  - -

                                                                                                                  @abstract Constructs a new SDLSpeak object indicated by the dictionary parameter

                                                                                                                  - - - -

                                                                                                                  Objective-C

                                                                                                                  -
                                                                                                                  - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                                                  - - -

                                                                                                                  Swift

                                                                                                                  -
                                                                                                                  init!(dictionary dict: NSMutableDictionary!)
                                                                                                                  - - - -

                                                                                                                  Parameters

                                                                                                                  -
                                                                                                                  -
                                                                                                                  dict
                                                                                                                  -

                                                                                                                  The dictionary to use

                                                                                                                  -
                                                                                                                  -

                                                                                                                  -initWithTTS:

                                                                                                                  @@ -139,11 +96,12 @@

                                                                                                                  Objective-C

                                                                                                                  -
                                                                                                                  @property (readwrite, strong, atomic) NSMutableArray *ttsChunks;
                                                                                                                  +
                                                                                                                  @property (readwrite, strong, nonatomic)
                                                                                                                  +    NSArray<SDLTTSChunk *> *_Nonnull ttsChunks;

                                                                                                                  Swift

                                                                                                                  -
                                                                                                                  var ttsChunks: NSMutableArray! { get set }
                                                                                                                  +
                                                                                                                  var ttsChunks: [SDLTTSChunk] { get set }
                                                                                                                  diff --git a/docs/Classes/SDLSpeakResponse.html b/docs/Classes/SDLSpeakResponse.html deleted file mode 100644 index 56625b5df..000000000 --- a/docs/Classes/SDLSpeakResponse.html +++ /dev/null @@ -1,60 +0,0 @@ -

                                                                                                                  SDLSpeakResponse Class Reference

                                                                                                                  - -

                                                                                                                  Section Contents

                                                                                                                  - - - -

                                                                                                                  Overview

                                                                                                                  - -

                                                                                                                  Speak Response is sent, when Speak has been called

                                                                                                                  - -

                                                                                                                  Since SmartDeviceLink 1.0

                                                                                                                  - - -
                                                                                                                  -

                                                                                                                  - -init -

                                                                                                                  - -

                                                                                                                  @abstract Constructs a new SDLSpeakResponse object

                                                                                                                  - - - -

                                                                                                                  Objective-C

                                                                                                                  -
                                                                                                                  - (instancetype)init;
                                                                                                                  - - -

                                                                                                                  Swift

                                                                                                                  -
                                                                                                                  init!()
                                                                                                                  - - - - -

                                                                                                                  - -initWithDictionary: -

                                                                                                                  - -

                                                                                                                  @abstract Constructs a new SDLSpeakResponse object indicated by the NSMutableDictionary -parameter

                                                                                                                  - - - -

                                                                                                                  Objective-C

                                                                                                                  -
                                                                                                                  - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                                                  - - -

                                                                                                                  Swift

                                                                                                                  -
                                                                                                                  init!(dictionary dict: NSMutableDictionary!)
                                                                                                                  - - - -

                                                                                                                  Parameters

                                                                                                                  -
                                                                                                                  -
                                                                                                                  dict
                                                                                                                  -

                                                                                                                  The dictionary to use

                                                                                                                  -
                                                                                                                  - -
                                                                                                                  diff --git a/docs/Classes/SDLSpeechCapabilities.html b/docs/Classes/SDLSpeechCapabilities.html deleted file mode 100644 index 26e5b56cd..000000000 --- a/docs/Classes/SDLSpeechCapabilities.html +++ /dev/null @@ -1,136 +0,0 @@ -

                                                                                                                  SDLSpeechCapabilities Class Reference

                                                                                                                  - -

                                                                                                                  Section Contents

                                                                                                                  - - - -

                                                                                                                  Overview

                                                                                                                  - -

                                                                                                                  Undocumented

                                                                                                                  - - -
                                                                                                                  -

                                                                                                                  - +valueOf: -

                                                                                                                  - -

                                                                                                                  @abstract get SDLSpeechCapabilities according value string

                                                                                                                  - - - -

                                                                                                                  Objective-C

                                                                                                                  -
                                                                                                                  + (SDLSpeechCapabilities *)valueOf:(NSString *)value;
                                                                                                                  - - -

                                                                                                                  Swift

                                                                                                                  -
                                                                                                                  class func value(of value: String!) -> SDLSpeechCapabilities!
                                                                                                                  - - - -

                                                                                                                  Parameters

                                                                                                                  -
                                                                                                                  -
                                                                                                                  value
                                                                                                                  -

                                                                                                                  The value of the string to get an object for

                                                                                                                  -
                                                                                                                  -
                                                                                                                  -

                                                                                                                  Return Value

                                                                                                                  -

                                                                                                                  SDLSpeechCapabilities object

                                                                                                                  -
                                                                                                                  - -

                                                                                                                  - +values -

                                                                                                                  - -

                                                                                                                  @abstract declare an array to store all possible SDLSpeechCapabilities values

                                                                                                                  - - - -

                                                                                                                  Objective-C

                                                                                                                  -
                                                                                                                  + (NSArray *)values;
                                                                                                                  - - -

                                                                                                                  Swift

                                                                                                                  -
                                                                                                                  class func values() -> [Any]!
                                                                                                                  - - - -
                                                                                                                  -

                                                                                                                  Return Value

                                                                                                                  -

                                                                                                                  the array of all possible values

                                                                                                                  -
                                                                                                                  - -

                                                                                                                  - +TEXT -

                                                                                                                  - -

                                                                                                                  @abstract The SDL platform can speak text phrases.

                                                                                                                  - - - -

                                                                                                                  Objective-C

                                                                                                                  -
                                                                                                                  + (SDLSpeechCapabilities *)TEXT;
                                                                                                                  - - -

                                                                                                                  Swift

                                                                                                                  -
                                                                                                                  class func text() -> SDLSpeechCapabilities!
                                                                                                                  - - - -
                                                                                                                  -

                                                                                                                  Return Value

                                                                                                                  -

                                                                                                                  SDLSpeechCapabilities of value: TEXT

                                                                                                                  -
                                                                                                                  - -

                                                                                                                  - +SAPI_PHONEMES -

                                                                                                                  - -

                                                                                                                  Undocumented

                                                                                                                  - - - - - - -

                                                                                                                  - +LHPLUS_PHONEMES -

                                                                                                                  - -

                                                                                                                  Undocumented

                                                                                                                  - - - - - - -

                                                                                                                  - +PRE_RECORDED -

                                                                                                                  - -

                                                                                                                  Undocumented

                                                                                                                  - - - - - - -

                                                                                                                  - +SILENCE -

                                                                                                                  - -

                                                                                                                  Undocumented

                                                                                                                  - - - - - - -
                                                                                                                  diff --git a/docs/Classes/SDLStartTime.html b/docs/Classes/SDLStartTime.html index a96c73c0c..0a16d843c 100644 --- a/docs/Classes/SDLStartTime.html +++ b/docs/Classes/SDLStartTime.html @@ -3,8 +3,6 @@

                                                                                                                  SDLStartTime Class Reference

                                                                                                                  Section Contents

                                                                                                                    -
                                                                                                                  • -init
                                                                                                                  • -
                                                                                                                  • -initWithDictionary:
                                                                                                                  • -initWithHours:minutes:seconds:
                                                                                                                  • hours
                                                                                                                  • minutes
                                                                                                                  • @@ -19,47 +17,6 @@

                                                                                                                    Overview

                                                                                                                    -

                                                                                                                    - -init -

                                                                                                                    - -

                                                                                                                    @abstract Constructs a newly allocated SDLStartTime object

                                                                                                                    - - - -

                                                                                                                    Objective-C

                                                                                                                    -
                                                                                                                    - (instancetype)init;
                                                                                                                    - - -

                                                                                                                    Swift

                                                                                                                    -
                                                                                                                    init!()
                                                                                                                    - - - - -

                                                                                                                    - -initWithDictionary: -

                                                                                                                    - -

                                                                                                                    @abstract Constructs a newly allocated SDLStartTime object indicated by the dictionary parameter

                                                                                                                    - - - -

                                                                                                                    Objective-C

                                                                                                                    -
                                                                                                                    - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                                                                                    - - -

                                                                                                                    Swift

                                                                                                                    -
                                                                                                                    init!(dictionary dict: NSMutableDictionary!)
                                                                                                                    - - - -

                                                                                                                    Parameters

                                                                                                                    -
                                                                                                                    -
                                                                                                                    dict
                                                                                                                    -

                                                                                                                    The dictionary to use

                                                                                                                    -
                                                                                                                    -

                                                                                                                    -initWithHours:minutes:seconds:

                                                                                                                    @@ -88,11 +45,11 @@

                                                                                                                    Objective-C

                                                                                                                    -
                                                                                                                    @property (readwrite, strong, atomic) NSNumber *hours;
                                                                                                                    +
                                                                                                                    @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull hours;

                                                                                                                    Swift

                                                                                                                    -
                                                                                                                    var hours: NSNumber! { get set }
                                                                                                                    +
                                                                                                                    var hours: NSNumber 
                                                                                                                    @@ -108,11 +65,11 @@

                                                                                                                    Objective-C

                                                                                                                    -
                                                                                                                    @property (readwrite, strong, atomic) NSNumber *minutes;
                                                                                                                    +
                                                                                                                    @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull minutes;

                                                                                                                    Swift

                                                                                                                    -
                                                                                                                    var minutes: NSNumber! { get set }
                                                                                                                    +
                                                                                                                    var minutes: NSNumber 
                                                                                                                    @@ -128,11 +85,11 @@

                                                                                                                    Objective-C

                                                                                                                    -
                                                                                                                    @property (readwrite, strong, atomic) NSNumber *seconds;
                                                                                                                    +
                                                                                                                    @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull seconds;

                                                                                                                    Swift

                                                                                                                    -
                                                                                                                    var seconds: NSNumber! { get set }
                                                                                                                    +
                                                                                                                    var seconds: NSNumber 
                                                                                                                    diff --git a/docs/Classes/SDLStreamingMediaConfiguration.html b/docs/Classes/SDLStreamingMediaConfiguration.html new file mode 100644 index 000000000..5a1160a1c --- /dev/null +++ b/docs/Classes/SDLStreamingMediaConfiguration.html @@ -0,0 +1,252 @@ +

                                                                                                                    SDLStreamingMediaConfiguration Class Reference

                                                                                                                    + +

                                                                                                                    Section Contents

                                                                                                                    + + + +

                                                                                                                    Overview

                                                                                                                    + +

                                                                                                                    Undocumented

                                                                                                                    + + +
                                                                                                                    +

                                                                                                                    + securityManagers +

                                                                                                                    + +

                                                                                                                    Set security managers which could be used. This is primarily used with video streaming applications to authenticate and perhaps encrypt traffic data.

                                                                                                                    + + + +

                                                                                                                    Objective-C

                                                                                                                    +
                                                                                                                    @property (readwrite, copy, nonatomic, nullable)
                                                                                                                    +    NSArray<Class<SDLSecurityType>> *securityManagers;
                                                                                                                    + + + + + +

                                                                                                                    + maximumDesiredEncryption +

                                                                                                                    + +

                                                                                                                    What encryption level video/audio streaming should be. The default is SDLStreamingEncryptionFlagAuthenticateAndEncrypt.

                                                                                                                    + + + +

                                                                                                                    Objective-C

                                                                                                                    +
                                                                                                                    @property (assign, readwrite, nonatomic)
                                                                                                                    +    SDLStreamingEncryptionFlag maximumDesiredEncryption;
                                                                                                                    + + +

                                                                                                                    Swift

                                                                                                                    +
                                                                                                                    var maximumDesiredEncryption: SDLStreamingEncryptionFlag { get set }
                                                                                                                    + + + + +

                                                                                                                    + customVideoEncoderSettings +

                                                                                                                    + +

                                                                                                                    Properties to use for applications that utilitze the video encoder for streaming. See VTCompressionProperties.h for more details. For example, you can set kVTCompressionPropertyKey_ExpectedFrameRate to set your expected framerate.

                                                                                                                    + + + +

                                                                                                                    Objective-C

                                                                                                                    +
                                                                                                                    @property (readwrite, copy, nonatomic, nullable)
                                                                                                                    +    NSDictionary<NSString *, id> *customVideoEncoderSettings;
                                                                                                                    + + +

                                                                                                                    Swift

                                                                                                                    +
                                                                                                                    var customVideoEncoderSettings: [String : Any]? { get set }
                                                                                                                    + + + + +

                                                                                                                    + dataSource +

                                                                                                                    + +

                                                                                                                    Usable to change run time video stream setup behavior. Only use this and modify the results if you really know what you’re doing. The head unit defaults are generally good.

                                                                                                                    + + + +

                                                                                                                    Objective-C

                                                                                                                    +
                                                                                                                    @property (readwrite, nonatomic, nullable) id<SDLStreamingMediaManagerDataSource>
                                                                                                                    +    dataSource;
                                                                                                                    + + + + + +

                                                                                                                    + window +

                                                                                                                    + +

                                                                                                                    Set the window your video streaming content is within.

                                                                                                                    + +

                                                                                                                    Activates the haptic view parser when set. If the window contains UIView based views, these will be discovered and automatically sent to the head unit if it uses a haptic interface. Whether or not it supports the haptic interace, this library will also use that information to attempt to return the touched view to you in SDLTouchManagerDelegate.

                                                                                                                    +
                                                                                                                    +

                                                                                                                    Warning

                                                                                                                    +

                                                                                                                    Apps using views outside of the UIView heirarchy (such as OpenGL) are currently unsupported. If you app uses partial views in the heirarchy, only those views will be discovered. Your OpenGL views will not be discoverable to a haptic interface head unit and you will have to manually make these views discoverable via the SDLSendHapticData RPC request.

                                                                                                                    + +
                                                                                                                    +
                                                                                                                    +

                                                                                                                    Warning

                                                                                                                    +

                                                                                                                    This is a weak property and it’s therefore your job to hold a strong reference to this window.

                                                                                                                    + +
                                                                                                                    + + + +

                                                                                                                    Objective-C

                                                                                                                    +
                                                                                                                    @property (readwrite, nonatomic, nullable) UIWindow *window;
                                                                                                                    + + +

                                                                                                                    Swift

                                                                                                                    +
                                                                                                                    weak var window: UIWindow? { get set }
                                                                                                                    + + + + +

                                                                                                                    + -init +

                                                                                                                    + +

                                                                                                                    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.

                                                                                                                    + + + +

                                                                                                                    Objective-C

                                                                                                                    +
                                                                                                                    - (nonnull instancetype)init;
                                                                                                                    + + +

                                                                                                                    Swift

                                                                                                                    +
                                                                                                                    init()
                                                                                                                    + + + +
                                                                                                                    +

                                                                                                                    Return Value

                                                                                                                    +

                                                                                                                    The configuration

                                                                                                                    +
                                                                                                                    + +

                                                                                                                    + -initWithSecurityManagers:encryptionFlag:videoSettings:dataSource:window: +

                                                                                                                    + +

                                                                                                                    Manually set all the properties to the streaming media configuration

                                                                                                                    + + + +

                                                                                                                    Objective-C

                                                                                                                    +
                                                                                                                    - (nonnull instancetype)
                                                                                                                    +initWithSecurityManagers:
                                                                                                                    +    (nullable NSArray<Class<SDLSecurityType>> *)securityManagers
                                                                                                                    +          encryptionFlag:(SDLStreamingEncryptionFlag)encryptionFlag
                                                                                                                    +           videoSettings:(nullable NSDictionary<NSString *, id> *)videoSettings
                                                                                                                    +              dataSource:
                                                                                                                    +                  (nullable id<SDLStreamingMediaManagerDataSource>)dataSource
                                                                                                                    +                  window:(nullable UIWindow *)window;
                                                                                                                    + + + + +

                                                                                                                    Parameters

                                                                                                                    +
                                                                                                                    +
                                                                                                                    securityManagers
                                                                                                                    +

                                                                                                                    The security managers to use or nil for none.

                                                                                                                    +
                                                                                                                    encryptionFlag
                                                                                                                    +

                                                                                                                    The maximum encrpytion supported. If the connected head unit supports less than set here, it will still connect, but if it supports more than set here, it will not connect.

                                                                                                                    +
                                                                                                                    videoSettings
                                                                                                                    +

                                                                                                                    Custom video encoder settings to be used in video streaming.

                                                                                                                    +
                                                                                                                    window
                                                                                                                    +

                                                                                                                    The UIWindow you are running the content that is being streamed on, to use for haptics if needed and possible (only works for UIViews)

                                                                                                                    +
                                                                                                                    +
                                                                                                                    +

                                                                                                                    Return Value

                                                                                                                    +

                                                                                                                    The configuration

                                                                                                                    +
                                                                                                                    + +

                                                                                                                    + -initWithSecurityManagers: +

                                                                                                                    + +

                                                                                                                    Create a secure configuration for each of the security managers provided.

                                                                                                                    + + + +

                                                                                                                    Objective-C

                                                                                                                    +
                                                                                                                    - (nonnull instancetype)initWithSecurityManagers:
                                                                                                                    +    (nonnull NSArray<Class<SDLSecurityType>> *)securityManagers;
                                                                                                                    + + + + +

                                                                                                                    Parameters

                                                                                                                    +
                                                                                                                    +
                                                                                                                    securityManagers
                                                                                                                    +

                                                                                                                    The security managers to be used. The encryption flag will be set to AuthenticateAndEncrypt if any security managers are set.

                                                                                                                    +
                                                                                                                    +
                                                                                                                    +

                                                                                                                    Return Value

                                                                                                                    +

                                                                                                                    The configuration

                                                                                                                    +
                                                                                                                    + +

                                                                                                                    + +secureConfigurationWithSecurityManagers: +

                                                                                                                    + +

                                                                                                                    Create a secure configuration for each of the security managers provided.

                                                                                                                    + + + +

                                                                                                                    Objective-C

                                                                                                                    +
                                                                                                                    + (nonnull instancetype)secureConfigurationWithSecurityManagers:
                                                                                                                    +    (nonnull NSArray<Class<SDLSecurityType>> *)securityManagers;
                                                                                                                    + + + + +

                                                                                                                    Parameters

                                                                                                                    +
                                                                                                                    +
                                                                                                                    securityManagers
                                                                                                                    +

                                                                                                                    The security managers to be used. The encryption flag will be set to AuthenticateAndEncrypt if any security managers are set.

                                                                                                                    +
                                                                                                                    +
                                                                                                                    +

                                                                                                                    Return Value

                                                                                                                    +

                                                                                                                    The configuration

                                                                                                                    +
                                                                                                                    + +

                                                                                                                    + +insecureConfiguration +

                                                                                                                    + +

                                                                                                                    Create an insecure video streaming configuration. No security managers will be provided and the encryption flag will be set to None. If you’d like custom video encoder settings, you can set the property manually. This is equivalent to init.

                                                                                                                    + + + +

                                                                                                                    Objective-C

                                                                                                                    +
                                                                                                                    + (nonnull instancetype)insecureConfiguration;
                                                                                                                    + + + + +
                                                                                                                    +

                                                                                                                    Return Value

                                                                                                                    +

                                                                                                                    The configuration

                                                                                                                    +
                                                                                                                    + +
                                                                                                                    diff --git a/docs/Classes/SDLStreamingMediaManager.html b/docs/Classes/SDLStreamingMediaManager.html index db0d4863f..879455738 100644 --- a/docs/Classes/SDLStreamingMediaManager.html +++ b/docs/Classes/SDLStreamingMediaManager.html @@ -3,27 +3,25 @@

                                                                                                                    SDLStreamingMediaManager Class Reference

                                                                                                                    Section Contents

                                                                                                                    @@ -33,131 +31,155 @@

                                                                                                                    Overview

                                                                                                                    -

                                                                                                                    - videoSessionConnected +

                                                                                                                    + touchManager

                                                                                                                    -

                                                                                                                    Undocumented

                                                                                                                    +

                                                                                                                    Touch Manager responsible for providing touch event notifications.

                                                                                                                    +

                                                                                                                    Objective-C

                                                                                                                    +
                                                                                                                    @property (readonly, strong, nonatomic) SDLTouchManager *_Nonnull touchManager;
                                                                                                                    + + +

                                                                                                                    Swift

                                                                                                                    +
                                                                                                                    var touchManager: SDLTouchManager { get }
                                                                                                                    + -

                                                                                                                    - audioSessionConnected +

                                                                                                                    + focusableItemManager

                                                                                                                    -

                                                                                                                    Undocumented

                                                                                                                    +

                                                                                                                    A haptic interface that can be updated to reparse views within the window you’ve provided. Send a SDLDidUpdateProjectionView notification or call the updateInterfaceLayout method to reparse. The output of this haptic interface occurs in the touchManager property where it will call the delegate.

                                                                                                                    +

                                                                                                                    Objective-C

                                                                                                                    +
                                                                                                                    @property (readonly, strong, nonatomic, nullable) id<SDLFocusableItemLocatorType>
                                                                                                                    +    focusableItemManager;
                                                                                                                    + + -

                                                                                                                    - videoSessionEncrypted +

                                                                                                                    + streamingSupported

                                                                                                                    -

                                                                                                                    Undocumented

                                                                                                                    +

                                                                                                                    Whether or not video streaming is supported

                                                                                                                    +
                                                                                                                    +

                                                                                                                    See

                                                                                                                    + SDLRegisterAppInterface SDLDisplayCapabilities +
                                                                                                                    + + +

                                                                                                                    Objective-C

                                                                                                                    +
                                                                                                                    @property (readonly, getter=isStreamingSupported, assign, nonatomic)
                                                                                                                    +    BOOL streamingSupported;
                                                                                                                    + +

                                                                                                                    Swift

                                                                                                                    +
                                                                                                                    var isStreamingSupported: Bool { get }
                                                                                                                    + -

                                                                                                                    - audioSessionEncrypted +

                                                                                                                    + videoConnected

                                                                                                                    -

                                                                                                                    Undocumented

                                                                                                                    +

                                                                                                                    Whether or not the video session is connected.

                                                                                                                    +

                                                                                                                    Objective-C

                                                                                                                    +
                                                                                                                    @property (readonly, getter=isVideoConnected, assign, nonatomic)
                                                                                                                    +    BOOL videoConnected;
                                                                                                                    + + +

                                                                                                                    Swift

                                                                                                                    +
                                                                                                                    var isVideoConnected: Bool { get }
                                                                                                                    + -

                                                                                                                    - touchManager +

                                                                                                                    + videoEncrypted

                                                                                                                    -

                                                                                                                    Touch Manager responsible for providing touch event notifications.

                                                                                                                    +

                                                                                                                    Whether or not the video session is encrypted. This may be different than the requestedEncryptionType.

                                                                                                                    Objective-C

                                                                                                                    -
                                                                                                                    @property (readonly, strong, nonatomic) SDLTouchManager *_Nonnull touchManager;
                                                                                                                    +
                                                                                                                    @property (readonly, getter=isVideoEncrypted, assign, nonatomic)
                                                                                                                    +    BOOL videoEncrypted;

                                                                                                                    Swift

                                                                                                                    -
                                                                                                                    var touchManager: SDLTouchManager { get }
                                                                                                                    +
                                                                                                                    var isVideoEncrypted: Bool { get }
                                                                                                                    -

                                                                                                                    - videoEncoderSettings +

                                                                                                                    + audioConnected

                                                                                                                    -

                                                                                                                    The settings used in a VTCompressionSessionRef encoder. These will be verified when the video stream is started. Acceptable properties for this are located in VTCompressionProperties. If set to nil, the defaultVideoEncoderSettings will be used.

                                                                                                                    -
                                                                                                                    -

                                                                                                                    Warning

                                                                                                                    - Video streaming must not be connected to update the encoder properties. If it is running, issue a stopVideoSession before updating. - -
                                                                                                                    +

                                                                                                                    Whether or not the audio session is connected.

                                                                                                                    Objective-C

                                                                                                                    -
                                                                                                                    @property (readwrite, strong, nonatomic, null_resettable)
                                                                                                                    -    NSDictionary *videoEncoderSettings;
                                                                                                                    +
                                                                                                                    @property (readonly, getter=isAudioConnected, assign, nonatomic)
                                                                                                                    +    BOOL audioConnected;

                                                                                                                    Swift

                                                                                                                    -
                                                                                                                    var videoEncoderSettings: [AnyHashable : Any]! { get set }
                                                                                                                    +
                                                                                                                    var isAudioConnected: Bool { get }
                                                                                                                    -

                                                                                                                    - displayCapabilties +

                                                                                                                    + audioEncrypted

                                                                                                                    -

                                                                                                                    Display capabilties that will set the screenSize property. If set to nil, the SDLDefaultScreenSize will be used.

                                                                                                                    -
                                                                                                                    -

                                                                                                                    Warning

                                                                                                                    - Video streaming must not be connected to update the encoder properties. If it is running, issue a stopVideoSession before updating. - -
                                                                                                                    +

                                                                                                                    Whether or not the audio session is encrypted. This may be different than the requestedEncryptionType.

                                                                                                                    Objective-C

                                                                                                                    -
                                                                                                                    @property (readwrite, strong, nonatomic, null_resettable)
                                                                                                                    -    SDLDisplayCapabilities *displayCapabilties;
                                                                                                                    +
                                                                                                                    @property (readonly, getter=isAudioEncrypted, assign, nonatomic)
                                                                                                                    +    BOOL audioEncrypted;

                                                                                                                    Swift

                                                                                                                    -
                                                                                                                    var displayCapabilties: SDLDisplayCapabilities! { get set }
                                                                                                                    +
                                                                                                                    var isAudioEncrypted: Bool { get }
                                                                                                                    -

                                                                                                                    - defaultVideoEncoderSettings +

                                                                                                                    + videoStreamingPaused

                                                                                                                    -

                                                                                                                    Provides default video encoder settings used.

                                                                                                                    +

                                                                                                                    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.

                                                                                                                    Objective-C

                                                                                                                    -
                                                                                                                    @property (readonly, strong, nonatomic)
                                                                                                                    -    NSDictionary *_Nonnull defaultVideoEncoderSettings;
                                                                                                                    +
                                                                                                                    @property (readonly, getter=isVideoStreamingPaused, assign, nonatomic)
                                                                                                                    +    BOOL videoStreamingPaused;

                                                                                                                    Swift

                                                                                                                    -
                                                                                                                    var defaultVideoEncoderSettings: [AnyHashable : Any] { get }
                                                                                                                    +
                                                                                                                    var isVideoStreamingPaused: Bool { get }
                                                                                                                    @@ -180,190 +202,163 @@

                                                                                                                    Swift

                                                                                                                    -

                                                                                                                    - pixelBufferPool +

                                                                                                                    + videoFormat

                                                                                                                    -

                                                                                                                    The pixel buffer pool reference returned back from an active VTCompressionSessionRef encoder.

                                                                                                                    -
                                                                                                                    -

                                                                                                                    Warning

                                                                                                                    - This will only return a valid pixel buffer pool after the encoder has been initialized (when the video session has started). -@discussion Clients may call this once and retain the resulting pool, this call is cheap enough that it’s OK to call it once per frame. - -
                                                                                                                    +

                                                                                                                    This is the agreed upon format of video encoder that is in use, or nil if not currently connected.

                                                                                                                    Objective-C

                                                                                                                    -
                                                                                                                    @property (readonly, assign, nonatomic, nullable)
                                                                                                                    -    CVPixelBufferPoolRef pixelBufferPool;
                                                                                                                    +
                                                                                                                    @property (readonly, strong, nonatomic, nullable)
                                                                                                                    +    SDLVideoStreamingFormat *videoFormat;

                                                                                                                    Swift

                                                                                                                    -
                                                                                                                    unowned(unsafe) var pixelBufferPool: CVPixelBufferPool? { get }
                                                                                                                    +
                                                                                                                    var videoFormat: SDLVideoStreamingFormat? { get }
                                                                                                                    -

                                                                                                                    - -initWithProtocol: +

                                                                                                                    + supportedFormats

                                                                                                                    -

                                                                                                                    Undocumented

                                                                                                                    +

                                                                                                                    A list of all supported video formats by this manager

                                                                                                                    - - - -

                                                                                                                    - -initWithProtocol:displayCapabilities: -

                                                                                                                    - -

                                                                                                                    Undocumented

                                                                                                                    +

                                                                                                                    Objective-C

                                                                                                                    +
                                                                                                                    @property (readonly, strong, nonatomic)
                                                                                                                    +    NSArray<SDLVideoStreamingFormat *> *_Nonnull supportedFormats;
                                                                                                                    +

                                                                                                                    Swift

                                                                                                                    +
                                                                                                                    var supportedFormats: [SDLVideoStreamingFormat] { get }
                                                                                                                    + - -

                                                                                                                    - -startVideoSessionWithStartBlock: +

                                                                                                                    + pixelBufferPool

                                                                                                                    -

                                                                                                                    This method will attempt to start a streaming video session. It will set up iOS’s video encoder, and call out to the head unit asking if it will start a video session. This will not use encryption.

                                                                                                                    +

                                                                                                                    The pixel buffer pool reference returned back from an active VTCompressionSessionRef encoder.

                                                                                                                    Warning

                                                                                                                    -

                                                                                                                    If this method is called on an 8.0 device, it will assert (in debug), or return a failure immediately to your block (in release).

                                                                                                                    + This will only return a valid pixel buffer pool after the encoder has been initialized (when the video session has started). +@discussion Clients may call this once and retain the resulting pool, this call is cheap enough that it’s OK to call it once per frame.

                                                                                                                    Objective-C

                                                                                                                    -
                                                                                                                    - (void)startVideoSessionWithStartBlock:
                                                                                                                    -    (nonnull SDLStreamingStartBlock)startBlock;
                                                                                                                    +
                                                                                                                    @property (readonly, assign, nonatomic, nullable)
                                                                                                                    +    CVPixelBufferPoolRef pixelBufferPool;

                                                                                                                    Swift

                                                                                                                    -
                                                                                                                    func startVideoSession(start startBlock: @escaping SDLStreamingStartBlock)
                                                                                                                    +
                                                                                                                    unowned(unsafe) var pixelBufferPool: CVPixelBufferPool? { get }
                                                                                                                    -

                                                                                                                    Parameters

                                                                                                                    -
                                                                                                                    -
                                                                                                                    startBlock
                                                                                                                    -

                                                                                                                    A block that will be called with the result of attempting to start a video session

                                                                                                                    -
                                                                                                                    -

                                                                                                                    - -startVideoSessionWithHeight:width:startBlock: +

                                                                                                                    + requestedEncryptionType

                                                                                                                    -

                                                                                                                    This method will attempt to start a streaming video session. It will set up iOS’s video encoder, and call out to the head unit asking if it will start a video session. This will not use encryption. To get proper values for height and width. If the remote system does not support GetSystemCapabilities, then call startVideoSessionWithStartBlock: instead.

                                                                                                                    -
                                                                                                                    -

                                                                                                                    Warning

                                                                                                                    -

                                                                                                                    If this method is called on an 8.0 device, it will assert (in debug), or return a failure immediately to your block (in release).

                                                                                                                    +

                                                                                                                    The requested encryption type when a session attempts to connect. This setting applies to both video and audio sessions.

                                                                                                                    -
                                                                                                                    +

                                                                                                                    DEFAULT: SDLStreamingEncryptionFlagAuthenticateAndEncrypt

                                                                                                                    Objective-C

                                                                                                                    -
                                                                                                                    - (void)startVideoSessionWithHeight:(int32_t)height
                                                                                                                    -                              width:(int32_t)width
                                                                                                                    -                         startBlock:(nonnull SDLStreamingStartBlock)startBlock;
                                                                                                                    +
                                                                                                                    @property (assign, readwrite, nonatomic)
                                                                                                                    +    SDLStreamingEncryptionFlag requestedEncryptionType;

                                                                                                                    Swift

                                                                                                                    -
                                                                                                                    func startVideoSession(withHeight height: Int32, width: Int32, start startBlock: @escaping SDLStreamingStartBlock)
                                                                                                                    +
                                                                                                                    var requestedEncryptionType: SDLStreamingEncryptionFlag { get set }
                                                                                                                    -

                                                                                                                    Parameters

                                                                                                                    -
                                                                                                                    -
                                                                                                                    height
                                                                                                                    -

                                                                                                                    The height requested to be used

                                                                                                                    -
                                                                                                                    width
                                                                                                                    -

                                                                                                                    The width requested to be used

                                                                                                                    -
                                                                                                                    startBlock
                                                                                                                    -

                                                                                                                    A block that will be called with the result of attempting to start a video session

                                                                                                                    -
                                                                                                                    -

                                                                                                                    - -startVideoSessionWithTLS:startBlock: +

                                                                                                                    + -init

                                                                                                                    -

                                                                                                                    Start a video session either with with no encryption (the default), with authentication but no encryption (this will attempt a TLS authentication with the other side, but will not physically encrypt the data after that), or authentication and encryption, which will encrypt all video data being sent.

                                                                                                                    +

                                                                                                                    Undocumented

                                                                                                                    -

                                                                                                                    Objective-C

                                                                                                                    -
                                                                                                                    - (void)startVideoSessionWithTLS:(SDLEncryptionFlag)encryptionFlag
                                                                                                                    -                      startBlock:
                                                                                                                    -                          (nonnull SDLStreamingEncryptionStartBlock)startBlock;
                                                                                                                    + + + +

                                                                                                                    + -initWithConnectionManager:configuration: +

                                                                                                                    + +

                                                                                                                    Create a new streaming media manager for navigation and VPM apps with a specified configuration

                                                                                                                    -

                                                                                                                    Swift

                                                                                                                    -
                                                                                                                    func startVideoSession(withTLS encryptionFlag: SDLEncryptionFlag, start startBlock: @escaping SDLStreamingEncryptionStartBlock)
                                                                                                                    + +

                                                                                                                    Objective-C

                                                                                                                    +
                                                                                                                    - (nonnull instancetype)
                                                                                                                    +initWithConnectionManager:
                                                                                                                    +    (nonnull id<SDLConnectionManagerType>)connectionManager
                                                                                                                    +            configuration:
                                                                                                                    +                (nonnull SDLStreamingMediaConfiguration *)configuration;
                                                                                                                    +

                                                                                                                    Parameters

                                                                                                                    -
                                                                                                                    encryptionFlag
                                                                                                                    -

                                                                                                                    Whether and how much security to apply to the video session.

                                                                                                                    -
                                                                                                                    startBlock
                                                                                                                    -

                                                                                                                    A block that will be called with the result of attempting to start a video session

                                                                                                                    +
                                                                                                                    connectionManager
                                                                                                                    +

                                                                                                                    The pass-through for RPCs

                                                                                                                    +
                                                                                                                    configuration
                                                                                                                    +

                                                                                                                    The configuration of this streaming media session

                                                                                                                    +
                                                                                                                    +

                                                                                                                    Return Value

                                                                                                                    +

                                                                                                                    A new streaming manager

                                                                                                                    +
                                                                                                                    -

                                                                                                                    - -startVideoSessionWithTLS:height:width:startBlock: +

                                                                                                                    + -startWithProtocol:

                                                                                                                    -

                                                                                                                    Start a video session either with with no encryption (the default), with authentication but no encryption (this will attempt a TLS authentication with the other side, but will not physically encrypt the data after that), or authentication and encryption, which will encrypt all video data being sent. To get proper values for height, width, protocol, and codec, call GetSystemCapabilities. If the remote system does not support GetSystemCapabilities, then call startVideoSessionWithStartBlock: instead.

                                                                                                                    +

                                                                                                                    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.

                                                                                                                    Objective-C

                                                                                                                    -
                                                                                                                    - (void)startVideoSessionWithTLS:(SDLEncryptionFlag)encryptionFlag
                                                                                                                    -                          height:(int32_t)height
                                                                                                                    -                           width:(int32_t)width
                                                                                                                    -                      startBlock:
                                                                                                                    -                          (nonnull SDLStreamingEncryptionStartBlock)startBlock;
                                                                                                                    +
                                                                                                                    - (void)startWithProtocol:(nonnull SDLAbstractProtocol *)protocol;

                                                                                                                    Swift

                                                                                                                    -
                                                                                                                    func startVideoSession(withTLS encryptionFlag: SDLEncryptionFlag, height: Int32, width: Int32, start startBlock: @escaping SDLStreamingEncryptionStartBlock)
                                                                                                                    +
                                                                                                                    func start(with protocol: SDLAbstractProtocol)
                                                                                                                    -

                                                                                                                    Parameters

                                                                                                                    -
                                                                                                                    -
                                                                                                                    encryptionFlag
                                                                                                                    -

                                                                                                                    Whether and how much security to apply to the video session.

                                                                                                                    -
                                                                                                                    height
                                                                                                                    -

                                                                                                                    The height requested to be used

                                                                                                                    -
                                                                                                                    width
                                                                                                                    -

                                                                                                                    The width requested to be used

                                                                                                                    -
                                                                                                                    startBlock
                                                                                                                    -

                                                                                                                    A block that will be called with the result of attempting to start a video session

                                                                                                                    -
                                                                                                                    -

                                                                                                                    - -stopVideoSession +

                                                                                                                    + -stop

                                                                                                                    -

                                                                                                                    This method will stop a running video session if there is one running.

                                                                                                                    +

                                                                                                                    Stop the manager. This method is used internally.

                                                                                                                    Objective-C

                                                                                                                    -
                                                                                                                    - (void)stopVideoSession;
                                                                                                                    +
                                                                                                                    - (void)stop;

                                                                                                                    Swift

                                                                                                                    -
                                                                                                                    func stopVideoSession()
                                                                                                                    +
                                                                                                                    func stop()
                                                                                                                    @@ -395,58 +390,35 @@

                                                                                                                    Return Value

                                                                                                                    Whether or not the data was successfully encoded and sent.

                            -

                            - -startAudioSessionWithStartBlock: +

                            + -sendVideoData:presentationTimestamp:

                            -

                            This method will attempt to start an audio session

                            +

                            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.

                            Objective-C

                            -
                            - (void)startAudioSessionWithStartBlock:
                            -    (nonnull SDLStreamingStartBlock)startBlock;
                            +
                            - (BOOL)sendVideoData:(nonnull CVImageBufferRef)imageBuffer
                            +    presentationTimestamp:(CMTime)presentationTimestamp;

                            Swift

                            -
                            func startAudioSession(start startBlock: @escaping SDLStreamingStartBlock)
                            +
                            func sendVideoData(_ imageBuffer: CVImageBuffer, presentationTimestamp: CMTime) -> Bool

                            Parameters

                            -
                            startBlock
                            -

                            A block that will be called with the result of attempting to start an audio session

                            +
                            imageBuffer
                            +

                            A CVImageBufferRef to be encoded by Video Toolbox

                            +
                            presentationTimestamp
                            +

                            A presentation timestamp for the frame, or kCMTimeInvalid if timestamp is unknown. If it’s valid, it must be greater than the previous one.

                            - -

                            - -startAudioSessionWithTLS:startBlock: -

                            - -

                            Undocumented

                            - - - - - - -

                            - -stopAudioSession -

                            - -

                            This method will stop a running audio session if there is one running.

                            - - - -

                            Objective-C

                            -
                            - (void)stopAudioSession;
                            - - -

                            Swift

                            -
                            func stopAudioSession()
                            - - - +
                            +

                            Return Value

                            +

                            Whether or not the data was successfully encoded and sent.

                            +

                            -sendAudioData: @@ -457,17 +429,17 @@

                            Objective-C

                            -
                            - (BOOL)sendAudioData:(nonnull NSData *)pcmAudioData;
                            +
                            - (BOOL)sendAudioData:(nonnull NSData *)audioData;

                            Swift

                            -
                            func sendAudioData(_ pcmAudioData: Data) -> Bool
                            +
                            func sendAudioData(_ audioData: Data) -> Bool

                            Parameters

                            -
                            pcmAudioData
                            +
                            audioData

                            The data in PCM audio format, to be played

                            diff --git a/docs/Classes/SDLSubscribeButton.html b/docs/Classes/SDLSubscribeButton.html index 631663d5f..1e7151503 100644 --- a/docs/Classes/SDLSubscribeButton.html +++ b/docs/Classes/SDLSubscribeButton.html @@ -3,9 +3,7 @@

                            SDLSubscribeButton Class Reference

                            Section Contents

                            -

                            - -initWithDictionary: -

                            - -

                            @abstract Constructs a new SDLSubscribeButton object indicated by the NSMutableDictionary -parameter

                            - - - -

                            Objective-C

                            -
                            - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                            - - -

                            Swift

                            -
                            init!(dictionary dict: NSMutableDictionary!)
                            - - - -

                            Parameters

                            -
                            -
                            dict
                            -

                            The dictionary to use

                            -
                            -

                            -initWithButtonName:handler:

                            @@ -146,7 +99,7 @@

                            Objective-C

                            -
                            @interface SDLSubscribeButton : SDLRPCRequest <SDLRequestHandler>
                            +
                            @interface SDLSubscribeButton : SDLRPCRequest
                            @@ -166,11 +119,12 @@

                            Objective-C

                            -
                            @property (readwrite, copy, nonatomic) SDLRPCNotificationHandler handler;
                            +
                            @property (readwrite, copy, nonatomic)
                            +    SDLRPCButtonNotificationHandler _Nonnull handler;

                            Swift

                            -
                            var handler: SDLRPCNotificationHandler! { get set }
                            +
                            var handler: SDLRPCButtonNotificationHandler { get set }
                            @@ -185,11 +139,11 @@

                            Objective-C

                            -
                            @property (readwrite, strong, atomic) SDLButtonName *buttonName;
                            +
                            @property (readwrite, strong, nonatomic) SDLButtonName _Nonnull buttonName;

                            Swift

                            -
                            var buttonName: SDLButtonName! { get set }
                            +
                            var buttonName: SDLButtonName { get set }
                            diff --git a/docs/Classes/SDLSubscribeButtonResponse.html b/docs/Classes/SDLSubscribeButtonResponse.html deleted file mode 100644 index 4a9cbb86c..000000000 --- a/docs/Classes/SDLSubscribeButtonResponse.html +++ /dev/null @@ -1,60 +0,0 @@ -

                            SDLSubscribeButtonResponse Class Reference

                            - -

                            Section Contents

                            - - - -

                            Overview

                            - -

                            SubscribeButton Response is sent, when SDLSubscribeButton has been called

                            - -

                            Since SmartDeviceLink 1.0

                            - - -
                            -

                            - -init -

                            - -

                            @abstract Constructs a new SDLSubscribeButtonResponse object

                            - - - -

                            Objective-C

                            -
                            - (instancetype)init;
                            - - -

                            Swift

                            -
                            init!()
                            - - - - -

                            - -initWithDictionary: -

                            - -

                            @abstract Constructs a new SDLSubscribeButtonResponse object indicated by the NSMutableDictionary -parameter

                            - - - -

                            Objective-C

                            -
                            - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                            - - -

                            Swift

                            -
                            init!(dictionary dict: NSMutableDictionary!)
                            - - - -

                            Parameters

                            -
                            -
                            dict
                            -

                            The dictionary to use

                            -
                            - -
                            diff --git a/docs/Classes/SDLSubscribeVehicleData.html b/docs/Classes/SDLSubscribeVehicleData.html index 4b0f97ce2..d8c0d7e13 100644 --- a/docs/Classes/SDLSubscribeVehicleData.html +++ b/docs/Classes/SDLSubscribeVehicleData.html @@ -3,8 +3,6 @@

                            SDLSubscribeVehicleData Class Reference

                            Section Contents

                              -
                            • -init
                            • -
                            • -initWithDictionary:
                            • -initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:
                            • gps
                            • speed
                            • @@ -50,48 +48,6 @@

                              Overview

                              -

                              - -init -

                              - -

                              @abstract Constructs a new SDLSubscribeVehicleData object

                              - - - -

                              Objective-C

                              -
                              - (instancetype)init;
                              - - -

                              Swift

                              -
                              init!()
                              - - - - -

                              - -initWithDictionary: -

                              - -

                              @abstract Constructs a new SDLSubscribeVehicleData object indicated by the NSMutableDictionary -parameter

                              - - - -

                              Objective-C

                              -
                              - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                              - - -

                              Swift

                              -
                              init!(dictionary dict: NSMutableDictionary!)
                              - - - -

                              Parameters

                              -
                              -
                              dict
                              -

                              The dictionary to use

                              -
                              -

                              -initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:

                              @@ -116,11 +72,11 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSNumber *gps;
                              +
                              @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *gps;

                              Swift

                              -
                              var gps: NSNumber! { get set }
                              +
                              var gps: (NSNumber 
                              @@ -134,11 +90,11 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSNumber *speed;
                              +
                              @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *speed;

                              Swift

                              -
                              var speed: NSNumber! { get set }
                              +
                              var speed: (NSNumber 
                              @@ -152,11 +108,11 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSNumber *rpm;
                              +
                              @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *rpm;

                              Swift

                              -
                              var rpm: NSNumber! { get set }
                              +
                              var rpm: (NSNumber 
                              @@ -170,11 +126,11 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSNumber *fuelLevel;
                              +
                              @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *fuelLevel;

                              Swift

                              -
                              var fuelLevel: NSNumber! { get set }
                              +
                              var fuelLevel: (NSNumber 
                              @@ -188,11 +144,12 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSNumber *fuelLevel_State;
                              +
                              @property (readwrite, strong, nonatomic, nullable)
                              +    NSNumber<SDLBool> *fuelLevel_State;

                              Swift

                              -
                              var fuelLevel_State: NSNumber! { get set }
                              +
                              var fuelLevel_State: (NSNumber 
                              @@ -206,11 +163,12 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSNumber *instantFuelConsumption;
                              +
                              @property (readwrite, strong, nonatomic, nullable)
                              +    NSNumber<SDLBool> *instantFuelConsumption;

                              Swift

                              -
                              var instantFuelConsumption: NSNumber! { get set }
                              +
                              var instantFuelConsumption: (NSNumber 
                              @@ -224,11 +182,12 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSNumber *externalTemperature;
                              +
                              @property (readwrite, strong, nonatomic, nullable)
                              +    NSNumber<SDLBool> *externalTemperature;

                              Swift

                              -
                              var externalTemperature: NSNumber! { get set }
                              +
                              var externalTemperature: (NSNumber 
                              @@ -242,11 +201,11 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSNumber *prndl;
                              +
                              @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *prndl;

                              Swift

                              -
                              var prndl: NSNumber! { get set }
                              +
                              var prndl: (NSNumber 
                              @@ -260,11 +219,12 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSNumber *tirePressure;
                              +
                              @property (readwrite, strong, nonatomic, nullable)
                              +    NSNumber<SDLBool> *tirePressure;

                              Swift

                              -
                              var tirePressure: NSNumber! { get set }
                              +
                              var tirePressure: (NSNumber 
                              @@ -278,11 +238,11 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSNumber *odometer;
                              +
                              @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *odometer;

                              Swift

                              -
                              var odometer: NSNumber! { get set }
                              +
                              var odometer: (NSNumber 
                              @@ -296,11 +256,11 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSNumber *beltStatus;
                              +
                              @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *beltStatus;

                              Swift

                              -
                              var beltStatus: NSNumber! { get set }
                              +
                              var beltStatus: (NSNumber 
                              @@ -314,11 +274,12 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSNumber *bodyInformation;
                              +
                              @property (readwrite, strong, nonatomic, nullable)
                              +    NSNumber<SDLBool> *bodyInformation;

                              Swift

                              -
                              var bodyInformation: NSNumber! { get set }
                              +
                              var bodyInformation: (NSNumber 
                              @@ -332,11 +293,12 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSNumber *deviceStatus;
                              +
                              @property (readwrite, strong, nonatomic, nullable)
                              +    NSNumber<SDLBool> *deviceStatus;

                              Swift

                              -
                              var deviceStatus: NSNumber! { get set }
                              +
                              var deviceStatus: (NSNumber 
                              @@ -350,11 +312,12 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSNumber *driverBraking;
                              +
                              @property (readwrite, strong, nonatomic, nullable)
                              +    NSNumber<SDLBool> *driverBraking;

                              Swift

                              -
                              var driverBraking: NSNumber! { get set }
                              +
                              var driverBraking: (NSNumber 
                              @@ -368,11 +331,12 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSNumber *wiperStatus;
                              +
                              @property (readwrite, strong, nonatomic, nullable)
                              +    NSNumber<SDLBool> *wiperStatus;

                              Swift

                              -
                              var wiperStatus: NSNumber! { get set }
                              +
                              var wiperStatus: (NSNumber 
                              @@ -386,11 +350,12 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSNumber *headLampStatus;
                              +
                              @property (readwrite, strong, nonatomic, nullable)
                              +    NSNumber<SDLBool> *headLampStatus;

                              Swift

                              -
                              var headLampStatus: NSNumber! { get set }
                              +
                              var headLampStatus: (NSNumber 
                              @@ -404,11 +369,12 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSNumber *engineTorque;
                              +
                              @property (readwrite, strong, nonatomic, nullable)
                              +    NSNumber<SDLBool> *engineTorque;

                              Swift

                              -
                              var engineTorque: NSNumber! { get set }
                              +
                              var engineTorque: (NSNumber 
                              @@ -423,11 +389,12 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSNumber *accPedalPosition;
                              +
                              @property (readwrite, strong, nonatomic, nullable)
                              +    NSNumber<SDLBool> *accPedalPosition;

                              Swift

                              -
                              var accPedalPosition: NSNumber! { get set }
                              +
                              var accPedalPosition: (NSNumber 
                              @@ -442,11 +409,12 @@

                              Objective-C

                              -
                              @property (readwrite, strong, atomic) NSNumber *steeringWheelAngle;
                              +
                              @property (readwrite, strong, nonatomic, nullable)
                              +    NSNumber<SDLBool> *steeringWheelAngle;

                              Swift

                              -
                              var steeringWheelAngle: NSNumber! { get set }
                              +
                              var steeringWheelAngle: (NSNumber 
                              diff --git a/docs/Classes/SDLSubscribeVehicleDataResponse.html b/docs/Classes/SDLSubscribeVehicleDataResponse.html index a0b83ba66..a4dca20e2 100644 --- a/docs/Classes/SDLSubscribeVehicleDataResponse.html +++ b/docs/Classes/SDLSubscribeVehicleDataResponse.html @@ -3,8 +3,6 @@

                              SDLSubscribeVehicleDataResponse Class Reference

                              Section Contents

                                -
                              • -init
                              • -
                              • -initWithDictionary:
                              • gps
                              • speed
                              • rpm
                              • @@ -39,48 +37,6 @@

                                Overview

                                -

                                - -init -

                                - -

                                @abstract Constructs a new SDLSubscribeVehicleDataResponse object

                                - - - -

                                Objective-C

                                -
                                - (instancetype)init;
                                - - -

                                Swift

                                -
                                init!()
                                - - - - -

                                - -initWithDictionary: -

                                - -

                                @abstract Constructs a new SDLSubscribeVehicleDataResponse object indicated by the NSMutableDictionary -parameter

                                - - - -

                                Objective-C

                                -
                                - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                - - -

                                Swift

                                -
                                init!(dictionary dict: NSMutableDictionary!)
                                - - - -

                                Parameters

                                -
                                -
                                dict
                                -

                                The dictionary to use

                                -
                                -

                                gps

                                @@ -90,11 +46,11 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) SDLVehicleDataResult *gps;
                                +
                                @property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *gps;

                                Swift

                                -
                                var gps: SDLVehicleDataResult! { get set }
                                +
                                var gps: SDLVehicleDataResult? { get set }
                                @@ -108,11 +64,11 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) SDLVehicleDataResult *speed;
                                +
                                @property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *speed;

                                Swift

                                -
                                var speed: SDLVehicleDataResult! { get set }
                                +
                                var speed: SDLVehicleDataResult? { get set }
                                @@ -126,11 +82,11 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) SDLVehicleDataResult *rpm;
                                +
                                @property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *rpm;

                                Swift

                                -
                                var rpm: SDLVehicleDataResult! { get set }
                                +
                                var rpm: SDLVehicleDataResult? { get set }
                                @@ -144,11 +100,12 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) SDLVehicleDataResult *fuelLevel;
                                +
                                @property (readwrite, strong, nonatomic, nullable)
                                +    SDLVehicleDataResult *fuelLevel;

                                Swift

                                -
                                var fuelLevel: SDLVehicleDataResult! { get set }
                                +
                                var fuelLevel: SDLVehicleDataResult? { get set }
                                @@ -162,11 +119,12 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) SDLVehicleDataResult *fuelLevel_State;
                                +
                                @property (readwrite, strong, nonatomic, nullable)
                                +    SDLVehicleDataResult *fuelLevel_State;

                                Swift

                                -
                                var fuelLevel_State: SDLVehicleDataResult! { get set }
                                +
                                var fuelLevel_State: SDLVehicleDataResult? { get set }
                                @@ -180,12 +138,12 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic)
                                +  
                                @property (readwrite, strong, nonatomic, nullable)
                                     SDLVehicleDataResult *instantFuelConsumption;

                                Swift

                                -
                                var instantFuelConsumption: SDLVehicleDataResult! { get set }
                                +
                                var instantFuelConsumption: SDLVehicleDataResult? { get set }
                                @@ -199,11 +157,12 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) SDLVehicleDataResult *externalTemperature;
                                +
                                @property (readwrite, strong, nonatomic, nullable)
                                +    SDLVehicleDataResult *externalTemperature;

                                Swift

                                -
                                var externalTemperature: SDLVehicleDataResult! { get set }
                                +
                                var externalTemperature: SDLVehicleDataResult? { get set }
                                @@ -217,11 +176,11 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) SDLVehicleDataResult *prndl;
                                +
                                @property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *prndl;

                                Swift

                                -
                                var prndl: SDLVehicleDataResult! { get set }
                                +
                                var prndl: SDLVehicleDataResult? { get set }
                                @@ -235,11 +194,12 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) SDLVehicleDataResult *tirePressure;
                                +
                                @property (readwrite, strong, nonatomic, nullable)
                                +    SDLVehicleDataResult *tirePressure;

                                Swift

                                -
                                var tirePressure: SDLVehicleDataResult! { get set }
                                +
                                var tirePressure: SDLVehicleDataResult? { get set }
                                @@ -253,11 +213,12 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) SDLVehicleDataResult *odometer;
                                +
                                @property (readwrite, strong, nonatomic, nullable)
                                +    SDLVehicleDataResult *odometer;

                                Swift

                                -
                                var odometer: SDLVehicleDataResult! { get set }
                                +
                                var odometer: SDLVehicleDataResult? { get set }
                                @@ -271,11 +232,12 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) SDLVehicleDataResult *beltStatus;
                                +
                                @property (readwrite, strong, nonatomic, nullable)
                                +    SDLVehicleDataResult *beltStatus;

                                Swift

                                -
                                var beltStatus: SDLVehicleDataResult! { get set }
                                +
                                var beltStatus: SDLVehicleDataResult? { get set }
                                @@ -289,11 +251,12 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) SDLVehicleDataResult *bodyInformation;
                                +
                                @property (readwrite, strong, nonatomic, nullable)
                                +    SDLVehicleDataResult *bodyInformation;

                                Swift

                                -
                                var bodyInformation: SDLVehicleDataResult! { get set }
                                +
                                var bodyInformation: SDLVehicleDataResult? { get set }
                                @@ -307,11 +270,12 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) SDLVehicleDataResult *deviceStatus;
                                +
                                @property (readwrite, strong, nonatomic, nullable)
                                +    SDLVehicleDataResult *deviceStatus;

                                Swift

                                -
                                var deviceStatus: SDLVehicleDataResult! { get set }
                                +
                                var deviceStatus: SDLVehicleDataResult? { get set }
                                @@ -325,11 +289,12 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) SDLVehicleDataResult *driverBraking;
                                +
                                @property (readwrite, strong, nonatomic, nullable)
                                +    SDLVehicleDataResult *driverBraking;

                                Swift

                                -
                                var driverBraking: SDLVehicleDataResult! { get set }
                                +
                                var driverBraking: SDLVehicleDataResult? { get set }
                                @@ -343,11 +308,12 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) SDLVehicleDataResult *wiperStatus;
                                +
                                @property (readwrite, strong, nonatomic, nullable)
                                +    SDLVehicleDataResult *wiperStatus;

                                Swift

                                -
                                var wiperStatus: SDLVehicleDataResult! { get set }
                                +
                                var wiperStatus: SDLVehicleDataResult? { get set }
                                @@ -361,11 +327,12 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) SDLVehicleDataResult *headLampStatus;
                                +
                                @property (readwrite, strong, nonatomic, nullable)
                                +    SDLVehicleDataResult *headLampStatus;

                                Swift

                                -
                                var headLampStatus: SDLVehicleDataResult! { get set }
                                +
                                var headLampStatus: SDLVehicleDataResult? { get set }
                                @@ -379,11 +346,12 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) SDLVehicleDataResult *engineTorque;
                                +
                                @property (readwrite, strong, nonatomic, nullable)
                                +    SDLVehicleDataResult *engineTorque;

                                Swift

                                -
                                var engineTorque: SDLVehicleDataResult! { get set }
                                +
                                var engineTorque: SDLVehicleDataResult? { get set }
                                @@ -397,11 +365,12 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) SDLVehicleDataResult *accPedalPosition;
                                +
                                @property (readwrite, strong, nonatomic, nullable)
                                +    SDLVehicleDataResult *accPedalPosition;

                                Swift

                                -
                                var accPedalPosition: SDLVehicleDataResult! { get set }
                                +
                                var accPedalPosition: SDLVehicleDataResult? { get set }
                                @@ -415,11 +384,12 @@

                                Objective-C

                                -
                                @property (readwrite, strong, atomic) SDLVehicleDataResult *steeringWheelAngle;
                                +
                                @property (readwrite, strong, nonatomic, nullable)
                                +    SDLVehicleDataResult *steeringWheelAngle;

                                Swift

                                -
                                var steeringWheelAngle: SDLVehicleDataResult! { get set }
                                +
                                var steeringWheelAngle: SDLVehicleDataResult? { get set }
                                diff --git a/docs/Classes/SDLSyncMsgVersion.html b/docs/Classes/SDLSyncMsgVersion.html index 10ea0fcde..5a2a668da 100644 --- a/docs/Classes/SDLSyncMsgVersion.html +++ b/docs/Classes/SDLSyncMsgVersion.html @@ -3,9 +3,6 @@

                                SDLSyncMsgVersion Class Reference

                                Section Contents

                                  -
                                • -init
                                • -
                                • -initWithDictionary:
                                • -
                                • -initWithMajorVersion:minorVersion:
                                • -initWithMajorVersion:minorVersion:patchVersion:
                                • majorVersion
                                • minorVersion
                                • @@ -20,62 +17,6 @@

                                  Overview

                                  -

                                  - -init -

                                  - -

                                  @abstract Constructs a newly allocated SDLSyncMsgVersion object

                                  - - - -

                                  Objective-C

                                  -
                                  - (instancetype)init;
                                  - - -

                                  Swift

                                  -
                                  init!()
                                  - - - - -

                                  - -initWithDictionary: -

                                  - -

                                  @abstract Constructs a newly allocated SDLSyncMsgVersion object indicated by the dictionary parameter

                                  - - - -

                                  Objective-C

                                  -
                                  - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                  - - -

                                  Swift

                                  -
                                  init!(dictionary dict: NSMutableDictionary!)
                                  - - - -

                                  Parameters

                                  -
                                  -
                                  dict
                                  -

                                  The dictionary to use

                                  -
                                  - -

                                  - -initWithMajorVersion:minorVersion: -

                                  - -

                                  Undocumented

                                  - - - -

                                  Objective-C

                                  -
                                  @interface SDLSyncMsgVersion : SDLRPCStruct
                                  - - - - -

                                  -initWithMajorVersion:minorVersion:patchVersion:

                                  @@ -102,11 +43,11 @@

                                  Objective-C

                                  -
                                  @property (readwrite, strong, atomic) NSNumber *majorVersion;
                                  +
                                  @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull majorVersion;

                                  Swift

                                  -
                                  var majorVersion: NSNumber! { get set }
                                  +
                                  var majorVersion: NSNumber 
                                  @@ -122,11 +63,11 @@

                                  Objective-C

                                  -
                                  @property (readwrite, strong, atomic) NSNumber *minorVersion;
                                  +
                                  @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull minorVersion;

                                  Swift

                                  -
                                  var minorVersion: NSNumber! { get set }
                                  +
                                  var minorVersion: NSNumber 
                                  @@ -140,11 +81,12 @@

                                  Objective-C

                                  -
                                  @property (readwrite, strong, atomic) NSNumber *patchVersion;
                                  +
                                  @property (readwrite, strong, nonatomic, nullable)
                                  +    NSNumber<SDLInt> *patchVersion;

                                  Swift

                                  -
                                  var patchVersion: NSNumber! { get set }
                                  +
                                  var patchVersion: (NSNumber 
                                  diff --git a/docs/Classes/SDLSyncPData.html b/docs/Classes/SDLSyncPData.html deleted file mode 100644 index 72fb4f6a1..000000000 --- a/docs/Classes/SDLSyncPData.html +++ /dev/null @@ -1,38 +0,0 @@ -

                                  SDLSyncPData Class Reference

                                  - -

                                  Section Contents

                                  - - - -

                                  Overview

                                  - -

                                  Undocumented

                                  - - -
                                  -

                                  - -init -

                                  - -

                                  Undocumented

                                  - - - - - - -

                                  - -initWithDictionary: -

                                  - -

                                  Undocumented

                                  - - - - - - -
                                  diff --git a/docs/Classes/SDLSyncPDataResponse.html b/docs/Classes/SDLSyncPDataResponse.html deleted file mode 100644 index ea88f6020..000000000 --- a/docs/Classes/SDLSyncPDataResponse.html +++ /dev/null @@ -1,38 +0,0 @@ -

                                  SDLSyncPDataResponse Class Reference

                                  - -

                                  Section Contents

                                  - - - -

                                  Overview

                                  - -

                                  Undocumented

                                  - - -
                                  -

                                  - -init -

                                  - -

                                  Undocumented

                                  - - - - - - -

                                  - -initWithDictionary: -

                                  - -

                                  Undocumented

                                  - - - - - - -
                                  diff --git a/docs/Classes/SDLSystemAction.html b/docs/Classes/SDLSystemAction.html deleted file mode 100644 index ac021d35e..000000000 --- a/docs/Classes/SDLSystemAction.html +++ /dev/null @@ -1,122 +0,0 @@ -

                                  SDLSystemAction Class Reference

                                  - -

                                  Section Contents

                                  - - - -

                                  Overview

                                  - -

                                  Enumeration that describes system actions that can be triggered.

                                  - - -
                                  -

                                  - +valueOf: -

                                  - -

                                  Convert String to SDLSystemAction

                                  - - - -

                                  Objective-C

                                  -
                                  + (SDLSystemAction *)valueOf:(NSString *)value;
                                  - - -

                                  Swift

                                  -
                                  class func value(of value: String!) -> SDLSystemAction!
                                  - - - -

                                  Parameters

                                  -
                                  -
                                  value
                                  -

                                  String

                                  -
                                  -
                                  -

                                  Return Value

                                  -

                                  SDLSystemAction

                                  -
                                  - -

                                  - +values -

                                  - -

                                  @abstract Store the enumeration of all possible SDLSystemAction

                                  - - - -

                                  Objective-C

                                  -
                                  + (NSArray *)values;
                                  - - -

                                  Swift

                                  -
                                  class func values() -> [Any]!
                                  - - - -
                                  -

                                  Return Value

                                  -

                                  an array that store all possible SDLSystemAction

                                  -
                                  - -

                                  - +DEFAULT_ACTION -

                                  - -

                                  @abstract Default_Action

                                  - - - -

                                  Objective-C

                                  -
                                  + (SDLSystemAction *)DEFAULT_ACTION;
                                  - - -

                                  Swift

                                  -
                                  class func default_() -> SDLSystemAction!
                                  - - - - -

                                  - +STEAL_FOCUS -

                                  - -

                                  @abstract Steal_Focus

                                  - - - -

                                  Objective-C

                                  -
                                  + (SDLSystemAction *)STEAL_FOCUS;
                                  - - -

                                  Swift

                                  -
                                  class func steal_FOCUS() -> SDLSystemAction!
                                  - - - - -

                                  - +KEEP_CONTEXT -

                                  - -

                                  @abstract Keep_Context

                                  - - - -

                                  Objective-C

                                  -
                                  + (SDLSystemAction *)KEEP_CONTEXT;
                                  - - -

                                  Swift

                                  -
                                  class func keep_CONTEXT() -> SDLSystemAction!
                                  - - - - -
                                  diff --git a/docs/Classes/SDLSystemCapability.html b/docs/Classes/SDLSystemCapability.html index 1f193b79d..9d9ba02fb 100644 --- a/docs/Classes/SDLSystemCapability.html +++ b/docs/Classes/SDLSystemCapability.html @@ -3,15 +3,15 @@

                                  SDLSystemCapability Class Reference

                                  Section Contents

                                  Overview

                                  @@ -24,49 +24,38 @@

                                  Overview

                                  -

                                  - -init +

                                  + -initWithNavigationCapability:

                                  -

                                  @abstract Constructs a newly allocated SDLSystemCapability object

                                  +

                                  Undocumented

                                  Objective-C

                                  -
                                  - (instancetype)init;
                                  +
                                  @interface SDLSystemCapability : SDLRPCStruct
                                  -

                                  Swift

                                  -
                                  init!()
                                  - -

                                  - -initWithDictionary: +

                                  + -initWithPhoneCapability:

                                  -

                                  @abstract Constructs a newly allocated SDLSystemCapability object indicated by the dictionary parameter

                                  +

                                  Undocumented

                                  Objective-C

                                  -
                                  - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                  +
                                  @interface SDLSystemCapability : SDLRPCStruct
                                  -

                                  Swift

                                  -
                                  init!(dictionary dict: NSMutableDictionary!)
                                  - -

                                  Parameters

                                  -
                                  -
                                  dict
                                  -

                                  The dictionary to use

                                  -
                                  -

                                  - -initWithNavigationCapability: +

                                  + -initWithVideoStreamingCapability:

                                  Undocumented

                                  @@ -80,8 +69,8 @@

                                  Objective-C

                                  -

                                  - -initWithPhoneCapability: +

                                  + -initWithRemoteControlCapability:

                                  Undocumented

                                  @@ -95,8 +84,8 @@

                                  Objective-C

                                  -

                                  - -initWithVideoStreamingCapability: +

                                  + systemCapabilityType

                                  Undocumented

                                  @@ -110,8 +99,8 @@

                                  Objective-C

                                  -

                                  - systemCapabilityType +

                                  + navigationCapability

                                  Undocumented

                                  @@ -125,8 +114,8 @@

                                  Objective-C

                                  -

                                  - navigationCapability +

                                  + phoneCapability

                                  Undocumented

                                  @@ -140,8 +129,8 @@

                                  Objective-C

                                  -

                                  - phoneCapability +

                                  + videoStreamingCapability

                                  Undocumented

                                  @@ -155,8 +144,8 @@

                                  Objective-C

                                  -

                                  - videoStreamingCapability +

                                  + remoteControlCapability

                                  Undocumented

                                  diff --git a/docs/Classes/SDLSystemContext.html b/docs/Classes/SDLSystemContext.html deleted file mode 100644 index 021e7885e..000000000 --- a/docs/Classes/SDLSystemContext.html +++ /dev/null @@ -1,186 +0,0 @@ -

                                  SDLSystemContext Class Reference

                                  - -

                                  Section Contents

                                  - - - -

                                  Overview

                                  - -

                                  Indicates whether or not a user-initiated interaction is in progress, and if so, in what mode (i.e. MENU or VR).

                                  - -

                                  @since SDL 1.0

                                  - - -
                                  -

                                  - +valueOf: -

                                  - -

                                  Convert String to SDLSystemContext

                                  - - - -

                                  Objective-C

                                  -
                                  + (SDLSystemContext *)valueOf:(NSString *)value;
                                  - - -

                                  Swift

                                  -
                                  class func value(of value: String!) -> SDLSystemContext!
                                  - - - -

                                  Parameters

                                  -
                                  -
                                  value
                                  -

                                  String value to retrieve the object for

                                  -
                                  -
                                  -

                                  Return Value

                                  -

                                  SDLSystemContext

                                  -
                                  - -

                                  - +values -

                                  - -

                                  @abstract Store the enumeration of all possible SDLSystemContext

                                  - - - -

                                  Objective-C

                                  -
                                  + (NSArray *)values;
                                  - - -

                                  Swift

                                  -
                                  class func values() -> [Any]!
                                  - - - -
                                  -

                                  Return Value

                                  -

                                  an array that store all possible SDLSystemContext

                                  -
                                  - -

                                  - +MAIN -

                                  - -

                                  @abstract No user interaction (user-initiated or app-initiated) is in progress.

                                  - - - -

                                  Objective-C

                                  -
                                  + (SDLSystemContext *)MAIN;
                                  - - -

                                  Swift

                                  -
                                  class func main() -> SDLSystemContext!
                                  - - - -
                                  -

                                  Return Value

                                  -

                                  SDLSystemContext object of value MAIN

                                  -
                                  - -

                                  - +VRSESSION -

                                  - -

                                  @abstract VR-oriented, user-initiated or app-initiated interaction is in-progress.

                                  - - - -

                                  Objective-C

                                  -
                                  + (SDLSystemContext *)VRSESSION;
                                  - - -

                                  Swift

                                  -
                                  class func vrsession() -> SDLSystemContext!
                                  - - - -
                                  -

                                  Return Value

                                  -

                                  SDLSystemContext object of value VRSESSION

                                  -
                                  - -

                                  - +MENU -

                                  - -

                                  @abstract Menu-oriented, user-initiated or app-initiated interaction is in-progress.

                                  - - - -

                                  Objective-C

                                  -
                                  + (SDLSystemContext *)MENU;
                                  - - -

                                  Swift

                                  -
                                  class func menu() -> SDLSystemContext!
                                  - - - -
                                  -

                                  Return Value

                                  -

                                  SDLSystemContext object of value MENU

                                  -
                                  - -

                                  - +HMI_OBSCURED -

                                  - -

                                  @abstract The app’s display HMI is currently being obscured by either a system or other app’s overlay.

                                  - -

                                  @since SDL 2.0

                                  - - - -

                                  Objective-C

                                  -
                                  + (SDLSystemContext *)HMI_OBSCURED;
                                  - - -

                                  Swift

                                  -
                                  class func hmi_OBSCURED() -> SDLSystemContext!
                                  - - - -
                                  -

                                  Return Value

                                  -

                                  SDLSystemContext object of value HMI_OBSCURED

                                  -
                                  - -

                                  - +ALERT -

                                  - -

                                  @abstract Broadcast only to whichever app has an alert currently being displayed.

                                  - -

                                  @since SDL 2.0

                                  - - - -

                                  Objective-C

                                  -
                                  + (SDLSystemContext *)ALERT;
                                  - - -

                                  Swift

                                  -
                                  class func alert() -> SDLSystemContext!
                                  - - - -
                                  -

                                  Return Value

                                  -

                                  SDLSystemContext object of value ALERT

                                  -
                                  - -
                                  diff --git a/docs/Classes/SDLTBTState.html b/docs/Classes/SDLTBTState.html deleted file mode 100644 index 3aa239755..000000000 --- a/docs/Classes/SDLTBTState.html +++ /dev/null @@ -1,158 +0,0 @@ -

                                  SDLTBTState Class Reference

                                  - -

                                  Section Contents

                                  - - - -

                                  Overview

                                  - -

                                  Undocumented

                                  - - -
                                  -

                                  - +valueOf: -

                                  - -

                                  Undocumented

                                  - - - - - - -

                                  - +values -

                                  - -

                                  Undocumented

                                  - - - - - - -

                                  - +ROUTE_UPDATE_REQUEST -

                                  - -

                                  Undocumented

                                  - - - - - - -

                                  - +ROUTE_ACCEPTED -

                                  - -

                                  Undocumented

                                  - - - - - - -

                                  - +ROUTE_REFUSED -

                                  - -

                                  Undocumented

                                  - - - - - - -

                                  - +ROUTE_CANCELLED -

                                  - -

                                  Undocumented

                                  - - - - - - -

                                  - +ETA_REQUEST -

                                  - -

                                  Undocumented

                                  - - - - - - -

                                  - +NEXT_TURN_REQUEST -

                                  - -

                                  Undocumented

                                  - - - - - - -

                                  - +ROUTE_STATUS_REQUEST -

                                  - -

                                  Undocumented

                                  - - - - - - -

                                  - +ROUTE_SUMMARY_REQUEST -

                                  - -

                                  Undocumented

                                  - - - - - - -

                                  - +TRIP_STATUS_REQUEST -

                                  - -

                                  Undocumented

                                  - - - - - - -

                                  - +ROUTE_UPDATE_REQUEST_TIMEOUT -

                                  - -

                                  Undocumented

                                  - - - - - - -
                                  diff --git a/docs/Classes/SDLTTSChunk.html b/docs/Classes/SDLTTSChunk.html index f9a25d3e1..ca05f3cd8 100644 --- a/docs/Classes/SDLTTSChunk.html +++ b/docs/Classes/SDLTTSChunk.html @@ -3,8 +3,6 @@

                                  SDLTTSChunk Class Reference

                                  Section Contents

                                    -
                                  • -init
                                  • -
                                  • -initWithDictionary:
                                  • -initWithText:type:
                                  • +textChunksFromString:
                                  • +sapiChunksFromString:
                                  • @@ -49,47 +47,6 @@

                                    Overview

                                    -

                                    - -init -

                                    - -

                                    @abstract Constructs a newly allocated SDLTTSChunk object

                                    - - - -

                                    Objective-C

                                    -
                                    - (instancetype)init;
                                    - - -

                                    Swift

                                    -
                                    init!()
                                    - - - - -

                                    - -initWithDictionary: -

                                    - -

                                    @abstract Constructs a newly allocated SDLTTSChunk object indicated by the dictionary parameter

                                    - - - -

                                    Objective-C

                                    -
                                    - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                    - - -

                                    Swift

                                    -
                                    init!(dictionary dict: NSMutableDictionary!)
                                    - - - -

                                    Parameters

                                    -
                                    -
                                    dict
                                    -

                                    The dictionary to use

                                    -
                                    -

                                    -initWithText:type:

                                    @@ -191,11 +148,11 @@

                                    Objective-C

                                    -
                                    @property (readwrite, strong, atomic) NSString *text;
                                    +
                                    @property (readwrite, strong, nonatomic) NSString *_Nonnull text;

                                    Swift

                                    -
                                    var text: String! { get set }
                                    +
                                    var text: String { get set }
                                    @@ -211,11 +168,11 @@

                                    Objective-C

                                    -
                                    @property (readwrite, strong, atomic) SDLSpeechCapabilities *type;
                                    +
                                    @property (readwrite, strong, nonatomic) SDLSpeechCapabilities _Nonnull type;

                                    Swift

                                    -
                                    var type: SDLSpeechCapabilities! { get set }
                                    +
                                    var type: SDLSpeechCapabilities { get set }
                                    diff --git a/docs/Classes/SDLTTSChunkFactory.html b/docs/Classes/SDLTTSChunkFactory.html deleted file mode 100644 index fa8d158d5..000000000 --- a/docs/Classes/SDLTTSChunkFactory.html +++ /dev/null @@ -1,38 +0,0 @@ -

                                    SDLTTSChunkFactory Class Reference

                                    - -

                                    Section Contents

                                    - - - -

                                    Overview

                                    - -

                                    Undocumented

                                    - - -
                                    -

                                    - +buildTTSChunkForString:type: -

                                    - -

                                    Undocumented

                                    - - - - - - -

                                    - +buildTTSChunksFromSimple: -

                                    - -

                                    Undocumented

                                    - - - - - - -
                                    diff --git a/docs/Classes/SDLTemperature.html b/docs/Classes/SDLTemperature.html new file mode 100644 index 000000000..5b1cd02e4 --- /dev/null +++ b/docs/Classes/SDLTemperature.html @@ -0,0 +1,66 @@ +

                                    SDLTemperature Class Reference

                                    + +

                                    Section Contents

                                    + + + +

                                    Overview

                                    + +

                                    Undocumented

                                    + + +
                                    +

                                    + -initWithUnit:value: +

                                    + +

                                    Undocumented

                                    + + + + + + +

                                    + unit +

                                    + +

                                    @abstract Temperature Unit

                                    + + + +

                                    Objective-C

                                    +
                                    @property (readwrite, strong, nonatomic) SDLTemperatureUnit _Nonnull unit;
                                    + + +

                                    Swift

                                    +
                                    var unit: SDLTemperatureUnit { get set }
                                    + + + + +

                                    + value +

                                    + +

                                    @abstract Temperature Value in TemperatureUnit specified unit. Range depends on OEM and is not checked by SDL

                                    + +

                                    FLoat value

                                    + + + +

                                    Objective-C

                                    +
                                    @property (readwrite, strong, nonatomic) NSNumber<SDLFloat> *_Nonnull value;
                                    + + +

                                    Swift

                                    +
                                    var value: NSNumber 
                                    + + + + +
                                    diff --git a/docs/Classes/SDLTextAlignment.html b/docs/Classes/SDLTextAlignment.html deleted file mode 100644 index c3cf07c7d..000000000 --- a/docs/Classes/SDLTextAlignment.html +++ /dev/null @@ -1,136 +0,0 @@ -

                                    SDLTextAlignment Class Reference

                                    - -

                                    Section Contents

                                    - - - -

                                    Overview

                                    - -

                                    The list of possible alignments of text in a field. May only work on some display types.

                                    - -

                                    @since SDL 1.0

                                    - - -
                                    -

                                    - +valueOf: -

                                    - -

                                    Convert String to SDLTextAlignment

                                    - - - -

                                    Objective-C

                                    -
                                    + (SDLTextAlignment *)valueOf:(NSString *)value;
                                    - - -

                                    Swift

                                    -
                                    class func value(of value: String!) -> SDLTextAlignment!
                                    - - - -

                                    Parameters

                                    -
                                    -
                                    value
                                    -

                                    The value of the string to get an object for

                                    -
                                    -
                                    -

                                    Return Value

                                    -

                                    SDLTextAlignment

                                    -
                                    - -

                                    - +values -

                                    - -

                                    @abstract Store the enumeration of all possible SDLTextAlignment

                                    - - - -

                                    Objective-C

                                    -
                                    + (NSArray *)values;
                                    - - -

                                    Swift

                                    -
                                    class func values() -> [Any]!
                                    - - - -
                                    -

                                    Return Value

                                    -

                                    an array that store all possible SDLTextAlignment

                                    -
                                    - -

                                    - +LEFT_ALIGNED -

                                    - -

                                    @abstract Text aligned left.

                                    - - - -

                                    Objective-C

                                    -
                                    + (SDLTextAlignment *)LEFT_ALIGNED;
                                    - - -

                                    Swift

                                    -
                                    class func left_ALIGNED() -> SDLTextAlignment!
                                    - - - -
                                    -

                                    Return Value

                                    -

                                    A SDLTextAlignment object with value of LEFT_ALIGNED

                                    -
                                    - -

                                    - +RIGHT_ALIGNED -

                                    - -

                                    @abstract Text aligned right.

                                    - - - -

                                    Objective-C

                                    -
                                    + (SDLTextAlignment *)RIGHT_ALIGNED;
                                    - - -

                                    Swift

                                    -
                                    class func right_ALIGNED() -> SDLTextAlignment!
                                    - - - -
                                    -

                                    Return Value

                                    -

                                    A SDLTextAlignment object with value of RIGHT_ALIGNED

                                    -
                                    - -

                                    - +CENTERED -

                                    - -

                                    @abstract Text aligned centered.

                                    - - - -

                                    Objective-C

                                    -
                                    + (SDLTextAlignment *)CENTERED;
                                    - - -

                                    Swift

                                    -
                                    class func centered() -> SDLTextAlignment!
                                    - - - -
                                    -

                                    Return Value

                                    -

                                    A SDLTextAlignment object with value of CENTERED

                                    -
                                    - -
                                    diff --git a/docs/Classes/SDLTextField.html b/docs/Classes/SDLTextField.html index d659e76e5..bc0731b23 100644 --- a/docs/Classes/SDLTextField.html +++ b/docs/Classes/SDLTextField.html @@ -3,8 +3,6 @@

                                    SDLTextField Class Reference

                                    Section Contents

                                      -
                                    • -init
                                    • -
                                    • -initWithDictionary:
                                    • name
                                    • characterSet
                                    • width
                                    • @@ -63,47 +61,6 @@

                                      Overview

                                      -

                                      - -init -

                                      - -

                                      @abstract Constructs a newly allocated SDLTextField object

                                      - - - -

                                      Objective-C

                                      -
                                      - (instancetype)init;
                                      - - -

                                      Swift

                                      -
                                      init!()
                                      - - - - -

                                      - -initWithDictionary: -

                                      - -

                                      @abstract Constructs a newly allocated SDLTextField object indicated by the dictionary parameter

                                      - - - -

                                      Objective-C

                                      -
                                      - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                      - - -

                                      Swift

                                      -
                                      init!(dictionary dict: NSMutableDictionary!)
                                      - - - -

                                      Parameters

                                      -
                                      -
                                      dict
                                      -

                                      The dictionary to use to construct the object

                                      -
                                      -

                                      name

                                      @@ -120,11 +77,11 @@

                                      Objective-C

                                      -
                                      @property (readwrite, strong, atomic) SDLTextFieldName *name;
                                      +
                                      @property (readwrite, strong, nonatomic) SDLTextFieldName _Nonnull name;

                                      Swift

                                      -
                                      var name: SDLTextFieldName! { get set }
                                      +
                                      var name: SDLTextFieldName { get set }
                                      @@ -145,11 +102,11 @@

                                      Objective-C

                                      -
                                      @property (readwrite, strong, atomic) SDLCharacterSet *characterSet;
                                      +
                                      @property (readwrite, strong, nonatomic) SDLCharacterSet _Nonnull characterSet;

                                      Swift

                                      -
                                      var characterSet: SDLCharacterSet! { get set }
                                      +
                                      var characterSet: SDLCharacterSet { get set }
                                      @@ -165,11 +122,11 @@

                                      Objective-C

                                      -
                                      @property (readwrite, strong, atomic) NSNumber *width;
                                      +
                                      @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull width;

                                      Swift

                                      -
                                      var width: NSNumber! { get set }
                                      +
                                      var width: NSNumber 
                                      @@ -185,11 +142,11 @@

                                      Objective-C

                                      -
                                      @property (readwrite, strong, atomic) NSNumber *rows;
                                      +
                                      @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull rows;

                                      Swift

                                      -
                                      var rows: NSNumber! { get set }
                                      +
                                      var rows: NSNumber 
                                      diff --git a/docs/Classes/SDLTextFieldName.html b/docs/Classes/SDLTextFieldName.html deleted file mode 100644 index b193aebb7..000000000 --- a/docs/Classes/SDLTextFieldName.html +++ /dev/null @@ -1,751 +0,0 @@ -

                                      SDLTextFieldName Class Reference

                                      - -

                                      Section Contents

                                      - - - -

                                      Overview

                                      - -

                                      Names of the text fields that can appear on a SDL display.

                                      - -

                                      @since SDL 1.0

                                      - - -
                                      -

                                      - +valueOf: -

                                      - -

                                      Convert String to SDLTextFieldName

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)valueOf:(NSString *)value;
                                      - - -

                                      Swift

                                      -
                                      class func value(of value: String!) -> SDLTextFieldName!
                                      - - - -

                                      Parameters

                                      -
                                      -
                                      value
                                      -

                                      String value to retrieve the object for

                                      -
                                      -
                                      -

                                      Return Value

                                      -

                                      SDLTextFieldName

                                      -
                                      - -

                                      - +values -

                                      - -

                                      @abstract Store the enumeration of all possible SDLTextFieldName

                                      - - - -

                                      Objective-C

                                      -
                                      + (NSArray *)values;
                                      - - -

                                      Swift

                                      -
                                      class func values() -> [Any]!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      an array that store all possible SDLTextFieldName

                                      -
                                      - -

                                      - +mainField1 -

                                      - -

                                      @abstract The first line of the first set of main fields of the persistent display. Applies to SDLShow.

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)mainField1;
                                      - - -

                                      Swift

                                      -
                                      class func mainField1() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of mainField1

                                      -
                                      - -

                                      - +mainField2 -

                                      - -

                                      @abstract The second line of the first set of main fields of the persistent display. Applies to SDLShow.

                                      - -

                                      @since SDL 2.0

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)mainField2;
                                      - - -

                                      Swift

                                      -
                                      class func mainField2() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of mainField2

                                      -
                                      - -

                                      - +mainField3 -

                                      - -

                                      @abstract The first line of the second set of main fields of the persistent display. Applies to SDLShow.

                                      - -

                                      @since SDL 2.0

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)mainField3;
                                      - - -

                                      Swift

                                      -
                                      class func mainField3() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of mainField3

                                      -
                                      - -

                                      - +mainField4 -

                                      - -

                                      @abstract The second line of the second set of main fields of the persistent display. Applies to SDLShow.

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)mainField4;
                                      - - -

                                      Swift

                                      -
                                      class func mainField4() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of mainField4

                                      -
                                      - -

                                      - +statusBar -

                                      - -

                                      @abstract The status bar on the NGN display. Applies to SDLShow.

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)statusBar;
                                      - - -

                                      Swift

                                      -
                                      class func statusBar() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of statusBar

                                      -
                                      - -

                                      - +mediaClock -

                                      - -

                                      @abstract Text value for MediaClock field. Must be properly formatted according to MediaClockFormat. Applies to SDLShow.

                                      - -

                                      @discussion This field is commonly used to show elapsed or remaining time in an audio track or audio capture.

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)mediaClock;
                                      - - -

                                      Swift

                                      -
                                      class func mediaClock() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of mediaClock

                                      -
                                      - -

                                      - +mediaTrack -

                                      - -

                                      @abstract The track field of NGN type ACMs. This field is only available for media applications on a NGN display. Applies to SDLShow.

                                      - -

                                      @discussion This field is commonly used to show the current track number

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)mediaTrack;
                                      - - -

                                      Swift

                                      -
                                      class func mediaTrack() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of mediaTrack

                                      -
                                      - -

                                      - +alertText1 -

                                      - -

                                      @abstract The first line of the alert text field. Applies to SDLAlert.

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)alertText1;
                                      - - -

                                      Swift

                                      -
                                      class func alertText1() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of alertText1

                                      -
                                      - -

                                      - +alertText2 -

                                      - -

                                      @abstract The second line of the alert text field. Applies to SDLAlert.

                                      - -

                                      @since SDL 2.0

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)alertText2;
                                      - - -

                                      Swift

                                      -
                                      class func alertText2() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of alertText2

                                      -
                                      - -

                                      - +alertText3 -

                                      - -

                                      @abstract The third line of the alert text field. Applies to SDLAlert.

                                      - -

                                      @since SDL 2.0

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)alertText3;
                                      - - -

                                      Swift

                                      -
                                      class func alertText3() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of alertText3

                                      -
                                      - -

                                      - +scrollableMessageBody -

                                      - -

                                      @abstract Long form body of text that can include newlines and tabs. Applies to SDLScrollableMessage.

                                      - -

                                      @since SDL 2.0

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)scrollableMessageBody;
                                      - - -

                                      Swift

                                      -
                                      class func scrollableMessageBody() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of scrollableMessageBody

                                      -
                                      - -

                                      - +initialInteractionText -

                                      - -

                                      @abstract First line suggestion for a user response (in the case of VR enabled interaction).

                                      - -

                                      @since SDL 2.0

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)initialInteractionText;
                                      - - -

                                      Swift

                                      -
                                      class func initialInteractionText() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of initialInteractionText

                                      -
                                      - -

                                      - +navigationText1 -

                                      - -

                                      @abstract First line of navigation text.

                                      - -

                                      @since SDL 2.0

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)navigationText1;
                                      - - -

                                      Swift

                                      -
                                      class func navigationText1() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of navigationText1

                                      -
                                      - -

                                      - +navigationText2 -

                                      - -

                                      @abstract Second line of navigation text.

                                      - -

                                      @since SDL 2.0

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)navigationText2;
                                      - - -

                                      Swift

                                      -
                                      class func navigationText2() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of navigationText2

                                      -
                                      - -

                                      - +ETA -

                                      - -

                                      @abstract Estimated Time of Arrival time for navigation.

                                      - -

                                      @since SDL 2.0

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)ETA;
                                      - - -

                                      Swift

                                      -
                                      class func eta() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of ETA

                                      -
                                      - -

                                      - +totalDistance -

                                      - -

                                      @abstract Total distance to destination for navigation.

                                      - -

                                      @since SDL 2.0

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)totalDistance;
                                      - - -

                                      Swift

                                      -
                                      class func totalDistance() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of totalDistance

                                      -
                                      - -

                                      - +audioPassThruDisplayText1 -

                                      - -

                                      @abstract First line of text for audio pass thru.

                                      - -

                                      @since SDL 2.0

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)audioPassThruDisplayText1;
                                      - - -

                                      Swift

                                      -
                                      class func audioPassThruDisplayText1() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of audioPassThruDisplayText1

                                      -
                                      - -

                                      - +audioPassThruDisplayText2 -

                                      - -

                                      @abstract Second line of text for audio pass thru.

                                      - -

                                      @since SDL 2.0

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)audioPassThruDisplayText2;
                                      - - -

                                      Swift

                                      -
                                      class func audioPassThruDisplayText2() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of audioPassThruDisplayText2

                                      -
                                      - -

                                      - +sliderHeader -

                                      - -

                                      @abstract Header text for slider.

                                      - -

                                      @since SDL 2.0

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)sliderHeader;
                                      - - -

                                      Swift

                                      -
                                      class func sliderHeader() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of sliderHeader

                                      -
                                      - -

                                      - +sliderFooter -

                                      - -

                                      @abstract Footer text for slider

                                      - -

                                      @since SDL 2.0

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)sliderFooter;
                                      - - -

                                      Swift

                                      -
                                      class func sliderFooter() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of sliderFooter

                                      -
                                      - -

                                      - +menuName -

                                      - -

                                      Primary text for SDLChoice

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)menuName;
                                      - - -

                                      Swift

                                      -
                                      class func menu() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of menuName

                                      -
                                      - -

                                      - +secondaryText -

                                      - -

                                      Secondary text for SDLChoice

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)secondaryText;
                                      - - -

                                      Swift

                                      -
                                      class func secondaryText() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of secondaryText

                                      -
                                      - -

                                      - +tertiaryText -

                                      - -

                                      Tertiary text for SDLChoice

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)tertiaryText;
                                      - - -

                                      Swift

                                      -
                                      class func tertiaryText() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of tertiaryText

                                      -
                                      - -

                                      - +menuTitle -

                                      - -

                                      Optional text to label an app menu button (for certain touchscreen platforms)

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)menuTitle;
                                      - - -

                                      Swift

                                      -
                                      class func menuTitle() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of menuTitle

                                      -
                                      - -

                                      - +locationName -

                                      - -

                                      Optional name / title of intended location for SDLSendLocation

                                      - -

                                      @since SDL 4.0

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)locationName;
                                      - - -

                                      Swift

                                      -
                                      class func location() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of locationName

                                      -
                                      - -

                                      - +locationDescription -

                                      - -

                                      Optional description of intended location / establishment (if applicable) for SDLSendLocation

                                      - -

                                      @since SDL 4.0

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)locationDescription;
                                      - - -

                                      Swift

                                      -
                                      class func locationDescription() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of locationDescription

                                      -
                                      - -

                                      - +addressLines -

                                      - -

                                      Optional location address (if applicable) for SDLSendLocation

                                      - -

                                      @since SDL 4.0

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)addressLines;
                                      - - -

                                      Swift

                                      -
                                      class func addressLines() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of addressLines

                                      -
                                      - -

                                      - +phoneNumber -

                                      - -

                                      Optional hone number of intended location / establishment (if applicable) for SDLSendLocation

                                      - -

                                      @since SDL 4.0

                                      - - - -

                                      Objective-C

                                      -
                                      + (SDLTextFieldName *)phoneNumber;
                                      - - -

                                      Swift

                                      -
                                      class func phoneNumber() -> SDLTextFieldName!
                                      - - - -
                                      -

                                      Return Value

                                      -

                                      a SDLTextFieldName with value of phoneNumber

                                      -
                                      - -
                                      diff --git a/docs/Classes/SDLTimerMode.html b/docs/Classes/SDLTimerMode.html deleted file mode 100644 index 93d9261ce..000000000 --- a/docs/Classes/SDLTimerMode.html +++ /dev/null @@ -1,74 +0,0 @@ -

                                      SDLTimerMode Class Reference

                                      - -

                                      Section Contents

                                      - - - -

                                      Overview

                                      - -

                                      Undocumented

                                      - - -
                                      -

                                      - +valueOf: -

                                      - -

                                      Undocumented

                                      - - - - - - -

                                      - +values -

                                      - -

                                      Undocumented

                                      - - - - - - -

                                      - +UP -

                                      - -

                                      Undocumented

                                      - - - - - - -

                                      - +DOWN -

                                      - -

                                      Undocumented

                                      - - - - - - -

                                      - +NONE -

                                      - -

                                      Undocumented

                                      - - - - - - -
                                      diff --git a/docs/Classes/SDLTireStatus.html b/docs/Classes/SDLTireStatus.html index 72a931341..f07b2a1b6 100644 --- a/docs/Classes/SDLTireStatus.html +++ b/docs/Classes/SDLTireStatus.html @@ -3,8 +3,6 @@

                                      SDLTireStatus Class Reference

                                      Section Contents

                                        -
                                      • -init
                                      • -
                                      • -initWithDictionary:
                                      • pressureTelltale
                                      • leftFront
                                      • rightFront
                                      • @@ -20,28 +18,6 @@

                                        Overview

                                        -

                                        - -init -

                                        - -

                                        Undocumented

                                        - - - - - - -

                                        - -initWithDictionary: -

                                        - -

                                        Undocumented

                                        - - - - - -

                                        pressureTelltale

                                        diff --git a/docs/Classes/SDLTouch.html b/docs/Classes/SDLTouch.html new file mode 100644 index 000000000..41a8ad0d3 --- /dev/null +++ b/docs/Classes/SDLTouch.html @@ -0,0 +1,145 @@ +

                                        SDLTouch Class Reference

                                        + +

                                        Section Contents

                                        + + + +

                                        Overview

                                        + +

                                        Undocumented

                                        + + +
                                        +

                                        + -initWithTouchEvent: +

                                        + +

                                        @abstract + Initializes a touch.

                                        + + + +

                                        Objective-C

                                        +
                                        - (nonnull instancetype)initWithTouchEvent:(nonnull SDLTouchEvent *)touchEvent;
                                        + + +

                                        Swift

                                        +
                                        init(touchEvent: SDLTouchEvent)
                                        + + + +

                                        Parameters

                                        +
                                        +
                                        touchEvent
                                        +

                                        Incoming touch event from onOnTouchEvent notification.

                                        +
                                        +
                                        +

                                        Return Value

                                        +

                                        SDLTouch +Instance of SDLTouch.

                                        +
                                        + +

                                        + identifier +

                                        + +

                                        @abstract + Identifier of the touch’s finger. Refer to SDLTouchIdentifier for valid + identifiers.

                                        + + + +

                                        Objective-C

                                        +
                                        @property (readonly, assign, nonatomic) NSInteger identifier;
                                        + + +

                                        Swift

                                        +
                                        var identifier: Int { get }
                                        + + + + +

                                        + location +

                                        + +

                                        @abstract + Location of touch point, in the head unit’s coordinate system.

                                        + + + +

                                        Objective-C

                                        +
                                        @property (readonly, assign, nonatomic) CGPoint location;
                                        + + +

                                        Swift

                                        +
                                        var location: CGPoint { get }
                                        + + + + +

                                        + timeStamp +

                                        + +

                                        @abstract + Timestamp in which the touch occured.

                                        + + + +

                                        Objective-C

                                        +
                                        @property (readonly, assign, nonatomic) NSUInteger timeStamp;
                                        + + +

                                        Swift

                                        +
                                        var timeStamp: UInt { get }
                                        + + + + +

                                        + isFirstFinger +

                                        + +

                                        @abstract + Returns whether or not this touch is a first finger.

                                        + + + +

                                        Objective-C

                                        +
                                        @property (readonly, assign, nonatomic) BOOL isFirstFinger;
                                        + + +

                                        Swift

                                        +
                                        var isFirstFinger: Bool { get }
                                        + + + + +

                                        + isSecondFinger +

                                        + +

                                        @abstract + Returns whether or not this touch is a second finger.

                                        + + + +

                                        Objective-C

                                        +
                                        @property (readonly, assign, nonatomic) BOOL isSecondFinger;
                                        + + +

                                        Swift

                                        +
                                        var isSecondFinger: Bool { get }
                                        + + + + +
                                        diff --git a/docs/Classes/SDLTouchCoord.html b/docs/Classes/SDLTouchCoord.html index 5effd07bb..7bb7a86ff 100644 --- a/docs/Classes/SDLTouchCoord.html +++ b/docs/Classes/SDLTouchCoord.html @@ -3,8 +3,6 @@

                                        SDLTouchCoord Class Reference

                                        Section Contents

                                        @@ -15,28 +13,6 @@

                                        Overview

                                        -

                                        - -init -

                                        - -

                                        Undocumented

                                        - - - - - - -

                                        - -initWithDictionary: -

                                        - -

                                        Undocumented

                                        - - - - - -

                                        x

                                        diff --git a/docs/Classes/SDLTouchEvent.html b/docs/Classes/SDLTouchEvent.html index d9ef95c1d..6e6284586 100644 --- a/docs/Classes/SDLTouchEvent.html +++ b/docs/Classes/SDLTouchEvent.html @@ -3,8 +3,6 @@

                                        SDLTouchEvent Class Reference

                                        Section Contents

                                          -
                                        • -init
                                        • -
                                        • -initWithDictionary:
                                        • touchEventId
                                        • timeStamp
                                        • coord
                                        • @@ -16,28 +14,6 @@

                                          Overview

                                          -

                                          - -init -

                                          - -

                                          Undocumented

                                          - - - - - - -

                                          - -initWithDictionary: -

                                          - -

                                          Undocumented

                                          - - - - - -

                                          touchEventId

                                          @@ -51,11 +27,11 @@

                                          Objective-C

                                          -
                                          @property (readwrite, strong, atomic) NSNumber *touchEventId;
                                          +
                                          @property (readwrite, strong, nonatomic) NSNumber<SDLInt> *_Nonnull touchEventId;

                                          Swift

                                          -
                                          var touchEventId: NSNumber! { get set }
                                          +
                                          var touchEventId: NSNumber 
                                          @@ -77,11 +53,12 @@

                                          Objective-C

                                          -
                                          @property (readwrite, strong, atomic) NSMutableArray *timeStamp;
                                          +
                                          @property (readwrite, strong, nonatomic)
                                          +    NSArray<NSNumber<SDLInt> *> *_Nonnull timeStamp;

                                          Swift

                                          -
                                          var timeStamp: NSMutableArray! { get set }
                                          +
                                          var timeStamp: [NSNumber 
                                          @@ -95,11 +72,12 @@

                                          Objective-C

                                          -
                                          @property (readwrite, strong, atomic) NSMutableArray *coord;
                                          +
                                          @property (readwrite, strong, nonatomic)
                                          +    NSArray<SDLTouchCoord *> *_Nonnull coord;

                                          Swift

                                          -
                                          var coord: NSMutableArray! { get set }
                                          +
                                          var coord: [SDLTouchCoord] { get set }
                                          diff --git a/docs/Classes/SDLTouchEventCapabilities.html b/docs/Classes/SDLTouchEventCapabilities.html index 1c7610a06..b360bd919 100644 --- a/docs/Classes/SDLTouchEventCapabilities.html +++ b/docs/Classes/SDLTouchEventCapabilities.html @@ -3,8 +3,6 @@

                                          SDLTouchEventCapabilities Class Reference

                                          Section Contents

                                            -
                                          • -init
                                          • -
                                          • -initWithDictionary:
                                          • pressAvailable
                                          • multiTouchAvailable
                                          • doublePressAvailable
                                          • @@ -16,28 +14,6 @@

                                            Overview

                                            -

                                            - -init -

                                            - -

                                            Undocumented

                                            - - - - - - -

                                            - -initWithDictionary: -

                                            - -

                                            Undocumented

                                            - - - - - -

                                            pressAvailable

                                            diff --git a/docs/Classes/SDLTouchManager.html b/docs/Classes/SDLTouchManager.html index 8710a35ff..fa9fcc870 100644 --- a/docs/Classes/SDLTouchManager.html +++ b/docs/Classes/SDLTouchManager.html @@ -4,11 +4,14 @@

                                            Section Contents

                                            Overview

                                            @@ -21,22 +24,48 @@

                                            touchEventDelegate

                                            -

                                            Undocumented

                                            +

                                            Notified of processed touches such as pinches, pans, and taps

                                            + + + +

                                            Objective-C

                                            +
                                            @property (readwrite, nonatomic, nullable) id<SDLTouchManagerDelegate>
                                            +    touchEventDelegate;
                                            +

                                            + touchEventHandler +

                                            + +

                                            @abstract + Returns all OnTouchEvent notifications as SDLTouch and SDLTouchType objects.

                                            + + + +

                                            Objective-C

                                            +
                                            @property (readwrite, copy, nonatomic, nullable)
                                            +    SDLTouchEventHandler touchEventHandler;
                                            + + +

                                            Swift

                                            +
                                            var touchEventHandler: SDLTouchEventHandler? { get set }
                                            + + +

                                            tapDistanceThreshold

                                            -

                                            @abstract - Distance between two taps on the screen, in the head unit’s coordinate system, used - for registering double-tap callbacks. -@remark - Default is 50 pixels.

                                            +

                                            Distance between two taps on the screen, in the head unit’s coordinate system, used for registering double-tap callbacks.

                                            +
                                            +

                                            Note

                                            + Defaults to 50 px. + +
                                            @@ -137,4 +166,40 @@

                                            Swift

                                            +

                                            + -init +

                                            + +

                                            Undocumented

                                            + + + + + + +

                                            + -initWithHitTester: +

                                            + +

                                            Initialize a touch manager with a hit tester if available

                                            + + + +

                                            Objective-C

                                            +
                                            - (nonnull instancetype)initWithHitTester:
                                            +    (nullable id<SDLHapticHitTester>)hitTester;
                                            + + + + +

                                            Parameters

                                            +
                                            +
                                            hitTester
                                            +

                                            The hit tester to be used to correlate a point with a view

                                            +
                                            +
                                            +

                                            Return Value

                                            +

                                            The initialized touch manager

                                            +
                                            +
                                            diff --git a/docs/Classes/SDLTouchType.html b/docs/Classes/SDLTouchType.html deleted file mode 100644 index 2ff2574c6..000000000 --- a/docs/Classes/SDLTouchType.html +++ /dev/null @@ -1,86 +0,0 @@ -

                                            SDLTouchType Class Reference

                                            - -

                                            Section Contents

                                            - - - -

                                            Overview

                                            - -

                                            Undocumented

                                            - - -
                                            -

                                            - +valueOf: -

                                            - -

                                            Undocumented

                                            - - - - - - -

                                            - +values -

                                            - -

                                            Undocumented

                                            - - - - - - -

                                            - +BEGIN -

                                            - -

                                            Undocumented

                                            - - - - - - -

                                            - +MOVE -

                                            - -

                                            Undocumented

                                            - - - - - - -

                                            - +END -

                                            - -

                                            Undocumented

                                            - - - - - - -

                                            - +CANCEL -

                                            - -

                                            Undocumented

                                            - - - - - - -
                                            diff --git a/docs/Classes/SDLTriggerSource.html b/docs/Classes/SDLTriggerSource.html deleted file mode 100644 index 518dc19df..000000000 --- a/docs/Classes/SDLTriggerSource.html +++ /dev/null @@ -1,136 +0,0 @@ -

                                            SDLTriggerSource Class Reference

                                            - -

                                            Section Contents

                                            - - - -

                                            Overview

                                            - -

                                            Indicates whether choice/command was selected via VR or via a menu selection (using SEEKRIGHT/SEEKLEFT, TUNEUP, TUNEDOWN, OK buttons)

                                            - -

                                            @since SDL 1.0

                                            - - -
                                            -

                                            - +valueOf: -

                                            - -

                                            Convert String to SDLTriggerSource

                                            - - - -

                                            Objective-C

                                            -
                                            + (SDLTriggerSource *)valueOf:(NSString *)value;
                                            - - -

                                            Swift

                                            -
                                            class func value(of value: String!) -> SDLTriggerSource!
                                            - - - -

                                            Parameters

                                            -
                                            -
                                            value
                                            -

                                            The value of the string to get an object for

                                            -
                                            -
                                            -

                                            Return Value

                                            -

                                            SDLTriggerSource

                                            -
                                            - -

                                            - +values -

                                            - -

                                            @abstract Store the enumeration of all possible SDLTriggerSource

                                            - - - -

                                            Objective-C

                                            -
                                            + (NSArray *)values;
                                            - - -

                                            Swift

                                            -
                                            class func values() -> [Any]!
                                            - - - -
                                            -

                                            Return Value

                                            -

                                            an array that store all possible SDLTriggerSource

                                            -
                                            - -

                                            - +MENU -

                                            - -

                                            @abstract Selection made via menu

                                            - - - -

                                            Objective-C

                                            -
                                            + (SDLTriggerSource *)MENU;
                                            - - -

                                            Swift

                                            -
                                            class func menu() -> SDLTriggerSource!
                                            - - - -
                                            -

                                            Return Value

                                            -

                                            SDLTriggerSource with value of MENU

                                            -
                                            - -

                                            - +VR -

                                            - -

                                            @abstract Selection made via Voice session

                                            - - - -

                                            Objective-C

                                            -
                                            + (SDLTriggerSource *)VR;
                                            - - -

                                            Swift

                                            -
                                            class func vr() -> SDLTriggerSource!
                                            - - - -
                                            -

                                            Return Value

                                            -

                                            SDLTriggerSource with value of VR

                                            -
                                            - -

                                            - +KEYBOARD -

                                            - -

                                            @abstract Selection made via Keyboard

                                            - - - -

                                            Objective-C

                                            -
                                            + (SDLTriggerSource *)KEYBOARD;
                                            - - -

                                            Swift

                                            -
                                            class func keyboard() -> SDLTriggerSource!
                                            - - - -
                                            -

                                            Return Value

                                            -

                                            SDLTriggerSource with value of KEYBOARD

                                            -
                                            - -
                                            diff --git a/docs/Classes/SDLTurn.html b/docs/Classes/SDLTurn.html index 68ffa480b..81a4f3a0d 100644 --- a/docs/Classes/SDLTurn.html +++ b/docs/Classes/SDLTurn.html @@ -3,8 +3,6 @@

                                            SDLTurn Class Reference

                                            Section Contents

                                              -
                                            • -init
                                            • -
                                            • -initWithDictionary:
                                            • -initWithNavigationText:turnIcon:
                                            • navigationText
                                            • turnIcon
                                            • @@ -16,28 +14,6 @@

                                              Overview

                                              -

                                              - -init -

                                              - -

                                              Undocumented

                                              - - - - - - -

                                              - -initWithDictionary: -

                                              - -

                                              Undocumented

                                              - - - - - -

                                              -initWithNavigationText:turnIcon:

                                              diff --git a/docs/Classes/SDLUnregisterAppInterface.html b/docs/Classes/SDLUnregisterAppInterface.html deleted file mode 100644 index 54949ef93..000000000 --- a/docs/Classes/SDLUnregisterAppInterface.html +++ /dev/null @@ -1,70 +0,0 @@ -

                                              SDLUnregisterAppInterface Class Reference

                                              - -

                                              Section Contents

                                              - - - -

                                              Overview

                                              - -

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

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

                                              - HMILevel can be FULL, LIMITED, BACKGROUND or NONE -

                                              - -

                                              See SDLRegisterAppInterface SDLOnAppInterfaceUnregistered

                                              - - -
                                              -

                                              - -init -

                                              - -

                                              @abstract Constructs a new SDLUnregisterAppInterface object

                                              - - - -

                                              Objective-C

                                              -
                                              - (instancetype)init;
                                              - - -

                                              Swift

                                              -
                                              init!()
                                              - - - - -

                                              - -initWithDictionary: -

                                              - -

                                              @abstract Constructs a new SDLUnregisterAppInterface object indicated by the NSMutableDictionary -parameter

                                              - - - -

                                              Objective-C

                                              -
                                              - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                              - - -

                                              Swift

                                              -
                                              init!(dictionary dict: NSMutableDictionary!)
                                              - - - -

                                              Parameters

                                              -
                                              -
                                              dict
                                              -

                                              The dictionary to use

                                              -
                                              - -
                                              diff --git a/docs/Classes/SDLUnregisterAppInterfaceResponse.html b/docs/Classes/SDLUnregisterAppInterfaceResponse.html deleted file mode 100644 index a8147164e..000000000 --- a/docs/Classes/SDLUnregisterAppInterfaceResponse.html +++ /dev/null @@ -1,60 +0,0 @@ -

                                              SDLUnregisterAppInterfaceResponse Class Reference

                                              - -

                                              Section Contents

                                              - - - -

                                              Overview

                                              - -

                                              Unregister AppInterface Response is sent, when SDLUnregisterAppInterface has been called

                                              - -

                                              @since SmartDeviceLink 1.0

                                              - - -
                                              -

                                              - -init -

                                              - -

                                              @abstract Constructs a new SDLUnregisterAppInterfaceResponse object

                                              - - - -

                                              Objective-C

                                              -
                                              - (instancetype)init;
                                              - - -

                                              Swift

                                              -
                                              init!()
                                              - - - - -

                                              - -initWithDictionary: -

                                              - -

                                              @abstract Constructs a new SDLUnregisterAppInterfaceResponse object indicated by the NSMutableDictionary -parameter

                                              - - - -

                                              Objective-C

                                              -
                                              - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                              - - -

                                              Swift

                                              -
                                              init!(dictionary dict: NSMutableDictionary!)
                                              - - - -

                                              Parameters

                                              -
                                              -
                                              dict
                                              -

                                              The dictionary to use

                                              -
                                              - -
                                              diff --git a/docs/Classes/SDLUnsubscribeButton.html b/docs/Classes/SDLUnsubscribeButton.html index 8995e860d..b4a0abf34 100644 --- a/docs/Classes/SDLUnsubscribeButton.html +++ b/docs/Classes/SDLUnsubscribeButton.html @@ -3,8 +3,6 @@

                                              SDLUnsubscribeButton Class Reference

                                              Section Contents

                                              @@ -25,48 +23,6 @@

                                              Overview

                                              -

                                              - -init -

                                              - -

                                              @abstract Constructs a new SDLUnsubscribeButton object

                                              - - - -

                                              Objective-C

                                              -
                                              - (instancetype)init;
                                              - - -

                                              Swift

                                              -
                                              init!()
                                              - - - - -

                                              - -initWithDictionary: -

                                              - -

                                              @abstract Constructs a new SDLUnsubscribeButton object indicated by the NSMutableDictionary -parameter

                                              - - - -

                                              Objective-C

                                              -
                                              - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                              - - -

                                              Swift

                                              -
                                              init!(dictionary dict: NSMutableDictionary!)
                                              - - - -

                                              Parameters

                                              -
                                              -
                                              dict
                                              -

                                              The dictionary to use

                                              -
                                              -

                                              -initWithButtonName:

                                              @@ -93,11 +49,11 @@

                                              Objective-C

                                              -
                                              @property (readwrite, strong, atomic) SDLButtonName *buttonName;
                                              +
                                              @property (readwrite, strong, nonatomic) SDLButtonName _Nonnull buttonName;

                                              Swift

                                              -
                                              var buttonName: SDLButtonName! { get set }
                                              +
                                              var buttonName: SDLButtonName { get set }
                                              diff --git a/docs/Classes/SDLUnsubscribeButtonResponse.html b/docs/Classes/SDLUnsubscribeButtonResponse.html deleted file mode 100644 index 9e92c8215..000000000 --- a/docs/Classes/SDLUnsubscribeButtonResponse.html +++ /dev/null @@ -1,60 +0,0 @@ -

                                              SDLUnsubscribeButtonResponse Class Reference

                                              - -

                                              Section Contents

                                              - - - -

                                              Overview

                                              - -

                                              Unsubscribe Button Response is sent, when SDLUnsubscribeButton has been called

                                              - -

                                              @since SmartDeviceLink 1.0

                                              - - -
                                              -

                                              - -init -

                                              - -

                                              @abstract Constructs a new SDLUnsubscribeButtonResponse object

                                              - - - -

                                              Objective-C

                                              -
                                              - (instancetype)init;
                                              - - -

                                              Swift

                                              -
                                              init!()
                                              - - - - -

                                              - -initWithDictionary: -

                                              - -

                                              @abstract Constructs a new SDLUnsubscribeButtonResponse object indicated by the NSMutableDictionary -parameter

                                              - - - -

                                              Objective-C

                                              -
                                              - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                              - - -

                                              Swift

                                              -
                                              init!(dictionary dict: NSMutableDictionary!)
                                              - - - -

                                              Parameters

                                              -
                                              -
                                              dict
                                              -

                                              The dictionary to use

                                              -
                                              - -
                                              diff --git a/docs/Classes/SDLUnsubscribeVehicleData.html b/docs/Classes/SDLUnsubscribeVehicleData.html index 588094c90..11adf368f 100644 --- a/docs/Classes/SDLUnsubscribeVehicleData.html +++ b/docs/Classes/SDLUnsubscribeVehicleData.html @@ -3,8 +3,6 @@

                                              SDLUnsubscribeVehicleData Class Reference

                                              Section Contents

                                                -
                                              • -init
                                              • -
                                              • -initWithDictionary:
                                              • -initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:
                                              • gps
                                              • speed
                                              • @@ -47,48 +45,6 @@

                                                Overview

                                                -

                                                - -init -

                                                - -

                                                @abstract Constructs a new SDLUnsubscribeVehicleData object

                                                - - - -

                                                Objective-C

                                                -
                                                - (instancetype)init;
                                                - - -

                                                Swift

                                                -
                                                init!()
                                                - - - - -

                                                - -initWithDictionary: -

                                                - -

                                                @abstract Constructs a new SDLUnsubscribeVehicleData object indicated by the NSMutableDictionary -parameter

                                                - - - -

                                                Objective-C

                                                -
                                                - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                - - -

                                                Swift

                                                -
                                                init!(dictionary dict: NSMutableDictionary!)
                                                - - - -

                                                Parameters

                                                -
                                                -
                                                dict
                                                -

                                                The dictionary to use

                                                -
                                                -

                                                -initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:

                                                @@ -113,11 +69,11 @@

                                                Objective-C

                                                -
                                                @property (readwrite, strong, atomic) NSNumber *gps;
                                                +
                                                @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *gps;

                                                Swift

                                                -
                                                var gps: NSNumber! { get set }
                                                +
                                                var gps: (NSNumber 
                                                @@ -131,11 +87,11 @@

                                                Objective-C

                                                -
                                                @property (readwrite, strong, atomic) NSNumber *speed;
                                                +
                                                @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *speed;

                                                Swift

                                                -
                                                var speed: NSNumber! { get set }
                                                +
                                                var speed: (NSNumber 
                                                @@ -149,11 +105,11 @@

                                                Objective-C

                                                -
                                                @property (readwrite, strong, atomic) NSNumber *rpm;
                                                +
                                                @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *rpm;

                                                Swift

                                                -
                                                var rpm: NSNumber! { get set }
                                                +
                                                var rpm: (NSNumber 
                                                @@ -167,11 +123,11 @@

                                                Objective-C

                                                -
                                                @property (readwrite, strong, atomic) NSNumber *fuelLevel;
                                                +
                                                @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *fuelLevel;

                                                Swift

                                                -
                                                var fuelLevel: NSNumber! { get set }
                                                +
                                                var fuelLevel: (NSNumber 
                                                @@ -185,11 +141,12 @@

                                                Objective-C

                                                -
                                                @property (readwrite, strong, atomic) NSNumber *fuelLevel_State;
                                                +
                                                @property (readwrite, strong, nonatomic, nullable)
                                                +    NSNumber<SDLBool> *fuelLevel_State;

                                                Swift

                                                -
                                                var fuelLevel_State: NSNumber! { get set }
                                                +
                                                var fuelLevel_State: (NSNumber 
                                                @@ -203,11 +160,12 @@

                                                Objective-C

                                                -
                                                @property (readwrite, strong, atomic) NSNumber *instantFuelConsumption;
                                                +
                                                @property (readwrite, strong, nonatomic, nullable)
                                                +    NSNumber<SDLBool> *instantFuelConsumption;

                                                Swift

                                                -
                                                var instantFuelConsumption: NSNumber! { get set }
                                                +
                                                var instantFuelConsumption: (NSNumber 
                                                @@ -221,11 +179,12 @@

                                                Objective-C

                                                -
                                                @property (readwrite, strong, atomic) NSNumber *externalTemperature;
                                                +
                                                @property (readwrite, strong, nonatomic, nullable)
                                                +    NSNumber<SDLBool> *externalTemperature;

                                                Swift

                                                -
                                                var externalTemperature: NSNumber! { get set }
                                                +
                                                var externalTemperature: (NSNumber 
                                                @@ -239,11 +198,11 @@

                                                Objective-C

                                                -
                                                @property (readwrite, strong, atomic) NSNumber *prndl;
                                                +
                                                @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *prndl;

                                                Swift

                                                -
                                                var prndl: NSNumber! { get set }
                                                +
                                                var prndl: (NSNumber 
                                                @@ -257,11 +216,12 @@

                                                Objective-C

                                                -
                                                @property (readwrite, strong, atomic) NSNumber *tirePressure;
                                                +
                                                @property (readwrite, strong, nonatomic, nullable)
                                                +    NSNumber<SDLBool> *tirePressure;

                                                Swift

                                                -
                                                var tirePressure: NSNumber! { get set }
                                                +
                                                var tirePressure: (NSNumber 
                                                @@ -275,11 +235,11 @@

                                                Objective-C

                                                -
                                                @property (readwrite, strong, atomic) NSNumber *odometer;
                                                +
                                                @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *odometer;

                                                Swift

                                                -
                                                var odometer: NSNumber! { get set }
                                                +
                                                var odometer: (NSNumber 
                                                @@ -293,11 +253,11 @@

                                                Objective-C

                                                -
                                                @property (readwrite, strong, atomic) NSNumber *beltStatus;
                                                +
                                                @property (readwrite, strong, nonatomic, nullable) NSNumber<SDLBool> *beltStatus;

                                                Swift

                                                -
                                                var beltStatus: NSNumber! { get set }
                                                +
                                                var beltStatus: (NSNumber 
                                                @@ -311,11 +271,12 @@

                                                Objective-C

                                                -
                                                @property (readwrite, strong, atomic) NSNumber *bodyInformation;
                                                +
                                                @property (readwrite, strong, nonatomic, nullable)
                                                +    NSNumber<SDLBool> *bodyInformation;

                                                Swift

                                                -
                                                var bodyInformation: NSNumber! { get set }
                                                +
                                                var bodyInformation: (NSNumber 
                                                @@ -329,11 +290,12 @@

                                                Objective-C

                                                -
                                                @property (readwrite, strong, atomic) NSNumber *deviceStatus;
                                                +
                                                @property (readwrite, strong, nonatomic, nullable)
                                                +    NSNumber<SDLBool> *deviceStatus;

                                                Swift

                                                -
                                                var deviceStatus: NSNumber! { get set }
                                                +
                                                var deviceStatus: (NSNumber 
                                                @@ -347,11 +309,12 @@

                                                Objective-C

                                                -
                                                @property (readwrite, strong, atomic) NSNumber *driverBraking;
                                                +
                                                @property (readwrite, strong, nonatomic, nullable)
                                                +    NSNumber<SDLBool> *driverBraking;

                                                Swift

                                                -
                                                var driverBraking: NSNumber! { get set }
                                                +
                                                var driverBraking: (NSNumber 
                                                @@ -365,11 +328,12 @@

                                                Objective-C

                                                -
                                                @property (readwrite, strong, atomic) NSNumber *wiperStatus;
                                                +
                                                @property (readwrite, strong, nonatomic, nullable)
                                                +    NSNumber<SDLBool> *wiperStatus;

                                                Swift

                                                -
                                                var wiperStatus: NSNumber! { get set }
                                                +
                                                var wiperStatus: (NSNumber 
                                                @@ -383,11 +347,12 @@

                                                Objective-C

                                                -
                                                @property (readwrite, strong, atomic) NSNumber *headLampStatus;
                                                +
                                                @property (readwrite, strong, nonatomic, nullable)
                                                +    NSNumber<SDLBool> *headLampStatus;

                                                Swift

                                                -
                                                var headLampStatus: NSNumber! { get set }
                                                +
                                                var headLampStatus: (NSNumber 
                                                @@ -401,11 +366,12 @@

                                                Objective-C

                                                -
                                                @property (readwrite, strong, atomic) NSNumber *engineTorque;
                                                +
                                                @property (readwrite, strong, nonatomic, nullable)
                                                +    NSNumber<SDLBool> *engineTorque;

                                                Swift

                                                -
                                                var engineTorque: NSNumber! { get set }
                                                +
                                                var engineTorque: (NSNumber 
                                                @@ -419,11 +385,12 @@

                                                Objective-C

                                                -
                                                @property (readwrite, strong, atomic) NSNumber *accPedalPosition;
                                                +
                                                @property (readwrite, strong, nonatomic, nullable)
                                                +    NSNumber<SDLBool> *accPedalPosition;

                                                Swift

                                                -
                                                var accPedalPosition: NSNumber! { get set }
                                                +
                                                var accPedalPosition: (NSNumber 
                                                diff --git a/docs/Classes/SDLUnsubscribeVehicleDataResponse.html b/docs/Classes/SDLUnsubscribeVehicleDataResponse.html index 2b9432874..f7ba7c3dc 100644 --- a/docs/Classes/SDLUnsubscribeVehicleDataResponse.html +++ b/docs/Classes/SDLUnsubscribeVehicleDataResponse.html @@ -3,8 +3,6 @@

                                                SDLUnsubscribeVehicleDataResponse Class Reference

                                                Section Contents

                                                  -
                                                • -init
                                                • -
                                                • -initWithDictionary:
                                                • gps
                                                • speed
                                                • rpm
                                                • @@ -39,48 +37,6 @@

                                                  Overview

                                                  -

                                                  - -init -

                                                  - -

                                                  @abstract Constructs a new SDLUnsubscribeVehicleDataResponse object

                                                  - - - -

                                                  Objective-C

                                                  -
                                                  - (instancetype)init;
                                                  - - -

                                                  Swift

                                                  -
                                                  init!()
                                                  - - - - -

                                                  - -initWithDictionary: -

                                                  - -

                                                  @abstract Constructs a new SDLUnsubscribeVehicleDataResponse object indicated by the NSMutableDictionary -parameter

                                                  - - - -

                                                  Objective-C

                                                  -
                                                  - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                  - - -

                                                  Swift

                                                  -
                                                  init!(dictionary dict: NSMutableDictionary!)
                                                  - - - -

                                                  Parameters

                                                  -
                                                  -
                                                  dict
                                                  -

                                                  The dictionary to use

                                                  -
                                                  -

                                                  gps

                                                  @@ -90,11 +46,11 @@

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, atomic) SDLVehicleDataResult *gps;
                                                  +
                                                  @property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *gps;

                                                  Swift

                                                  -
                                                  var gps: SDLVehicleDataResult! { get set }
                                                  +
                                                  var gps: SDLVehicleDataResult? { get set }
                                                  @@ -108,11 +64,11 @@

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, atomic) SDLVehicleDataResult *speed;
                                                  +
                                                  @property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *speed;

                                                  Swift

                                                  -
                                                  var speed: SDLVehicleDataResult! { get set }
                                                  +
                                                  var speed: SDLVehicleDataResult? { get set }
                                                  @@ -126,11 +82,11 @@

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, atomic) SDLVehicleDataResult *rpm;
                                                  +
                                                  @property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *rpm;

                                                  Swift

                                                  -
                                                  var rpm: SDLVehicleDataResult! { get set }
                                                  +
                                                  var rpm: SDLVehicleDataResult? { get set }
                                                  @@ -144,11 +100,12 @@

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, atomic) SDLVehicleDataResult *fuelLevel;
                                                  +
                                                  @property (readwrite, strong, nonatomic, nullable)
                                                  +    SDLVehicleDataResult *fuelLevel;

                                                  Swift

                                                  -
                                                  var fuelLevel: SDLVehicleDataResult! { get set }
                                                  +
                                                  var fuelLevel: SDLVehicleDataResult? { get set }
                                                  @@ -162,11 +119,12 @@

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, atomic) SDLVehicleDataResult *fuelLevel_State;
                                                  +
                                                  @property (readwrite, strong, nonatomic, nullable)
                                                  +    SDLVehicleDataResult *fuelLevel_State;

                                                  Swift

                                                  -
                                                  var fuelLevel_State: SDLVehicleDataResult! { get set }
                                                  +
                                                  var fuelLevel_State: SDLVehicleDataResult? { get set }
                                                  @@ -180,12 +138,12 @@

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, atomic)
                                                  +  
                                                  @property (readwrite, strong, nonatomic, nullable)
                                                       SDLVehicleDataResult *instantFuelConsumption;

                                                  Swift

                                                  -
                                                  var instantFuelConsumption: SDLVehicleDataResult! { get set }
                                                  +
                                                  var instantFuelConsumption: SDLVehicleDataResult? { get set }
                                                  @@ -199,11 +157,12 @@

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, atomic) SDLVehicleDataResult *externalTemperature;
                                                  +
                                                  @property (readwrite, strong, nonatomic, nullable)
                                                  +    SDLVehicleDataResult *externalTemperature;

                                                  Swift

                                                  -
                                                  var externalTemperature: SDLVehicleDataResult! { get set }
                                                  +
                                                  var externalTemperature: SDLVehicleDataResult? { get set }
                                                  @@ -217,11 +176,11 @@

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, atomic) SDLVehicleDataResult *prndl;
                                                  +
                                                  @property (readwrite, strong, nonatomic, nullable) SDLVehicleDataResult *prndl;

                                                  Swift

                                                  -
                                                  var prndl: SDLVehicleDataResult! { get set }
                                                  +
                                                  var prndl: SDLVehicleDataResult? { get set }
                                                  @@ -235,11 +194,12 @@

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, atomic) SDLVehicleDataResult *tirePressure;
                                                  +
                                                  @property (readwrite, strong, nonatomic, nullable)
                                                  +    SDLVehicleDataResult *tirePressure;

                                                  Swift

                                                  -
                                                  var tirePressure: SDLVehicleDataResult! { get set }
                                                  +
                                                  var tirePressure: SDLVehicleDataResult? { get set }
                                                  @@ -253,11 +213,12 @@

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, atomic) SDLVehicleDataResult *odometer;
                                                  +
                                                  @property (readwrite, strong, nonatomic, nullable)
                                                  +    SDLVehicleDataResult *odometer;

                                                  Swift

                                                  -
                                                  var odometer: SDLVehicleDataResult! { get set }
                                                  +
                                                  var odometer: SDLVehicleDataResult? { get set }
                                                  @@ -271,11 +232,12 @@

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, atomic) SDLVehicleDataResult *beltStatus;
                                                  +
                                                  @property (readwrite, strong, nonatomic, nullable)
                                                  +    SDLVehicleDataResult *beltStatus;

                                                  Swift

                                                  -
                                                  var beltStatus: SDLVehicleDataResult! { get set }
                                                  +
                                                  var beltStatus: SDLVehicleDataResult? { get set }
                                                  @@ -289,11 +251,12 @@

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, atomic) SDLVehicleDataResult *bodyInformation;
                                                  +
                                                  @property (readwrite, strong, nonatomic, nullable)
                                                  +    SDLVehicleDataResult *bodyInformation;

                                                  Swift

                                                  -
                                                  var bodyInformation: SDLVehicleDataResult! { get set }
                                                  +
                                                  var bodyInformation: SDLVehicleDataResult? { get set }
                                                  @@ -307,11 +270,12 @@

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, atomic) SDLVehicleDataResult *deviceStatus;
                                                  +
                                                  @property (readwrite, strong, nonatomic, nullable)
                                                  +    SDLVehicleDataResult *deviceStatus;

                                                  Swift

                                                  -
                                                  var deviceStatus: SDLVehicleDataResult! { get set }
                                                  +
                                                  var deviceStatus: SDLVehicleDataResult? { get set }
                                                  @@ -325,11 +289,12 @@

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, atomic) SDLVehicleDataResult *driverBraking;
                                                  +
                                                  @property (readwrite, strong, nonatomic, nullable)
                                                  +    SDLVehicleDataResult *driverBraking;

                                                  Swift

                                                  -
                                                  var driverBraking: SDLVehicleDataResult! { get set }
                                                  +
                                                  var driverBraking: SDLVehicleDataResult? { get set }
                                                  @@ -343,11 +308,12 @@

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, atomic) SDLVehicleDataResult *wiperStatus;
                                                  +
                                                  @property (readwrite, strong, nonatomic, nullable)
                                                  +    SDLVehicleDataResult *wiperStatus;

                                                  Swift

                                                  -
                                                  var wiperStatus: SDLVehicleDataResult! { get set }
                                                  +
                                                  var wiperStatus: SDLVehicleDataResult? { get set }
                                                  @@ -361,11 +327,12 @@

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, atomic) SDLVehicleDataResult *headLampStatus;
                                                  +
                                                  @property (readwrite, strong, nonatomic, nullable)
                                                  +    SDLVehicleDataResult *headLampStatus;

                                                  Swift

                                                  -
                                                  var headLampStatus: SDLVehicleDataResult! { get set }
                                                  +
                                                  var headLampStatus: SDLVehicleDataResult? { get set }
                                                  @@ -379,11 +346,12 @@

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, atomic) SDLVehicleDataResult *engineTorque;
                                                  +
                                                  @property (readwrite, strong, nonatomic, nullable)
                                                  +    SDLVehicleDataResult *engineTorque;

                                                  Swift

                                                  -
                                                  var engineTorque: SDLVehicleDataResult! { get set }
                                                  +
                                                  var engineTorque: SDLVehicleDataResult? { get set }
                                                  @@ -397,11 +365,12 @@

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, atomic) SDLVehicleDataResult *accPedalPosition;
                                                  +
                                                  @property (readwrite, strong, nonatomic, nullable)
                                                  +    SDLVehicleDataResult *accPedalPosition;

                                                  Swift

                                                  -
                                                  var accPedalPosition: SDLVehicleDataResult! { get set }
                                                  +
                                                  var accPedalPosition: SDLVehicleDataResult? { get set }
                                                  @@ -415,11 +384,12 @@

                                                  Objective-C

                                                  -
                                                  @property (readwrite, strong, atomic) SDLVehicleDataResult *steeringWheelAngle;
                                                  +
                                                  @property (readwrite, strong, nonatomic, nullable)
                                                  +    SDLVehicleDataResult *steeringWheelAngle;

                                                  Swift

                                                  -
                                                  var steeringWheelAngle: SDLVehicleDataResult! { get set }
                                                  +
                                                  var steeringWheelAngle: SDLVehicleDataResult? { get set }
                                                  diff --git a/docs/Classes/SDLUpdateMode.html b/docs/Classes/SDLUpdateMode.html deleted file mode 100644 index 3e1a65fb8..000000000 --- a/docs/Classes/SDLUpdateMode.html +++ /dev/null @@ -1,178 +0,0 @@ -

                                                  SDLUpdateMode Class Reference

                                                  - -

                                                  Section Contents

                                                  - - - -

                                                  Overview

                                                  - -

                                                  Specifies what function should be performed on the media clock/counter

                                                  - -

                                                  @since SDL 1.0

                                                  - - -
                                                  -

                                                  - +valueOf: -

                                                  - -

                                                  Convert String to SDLUpdateMode

                                                  - - - -

                                                  Objective-C

                                                  -
                                                  + (SDLUpdateMode *)valueOf:(NSString *)value;
                                                  - - -

                                                  Swift

                                                  -
                                                  class func value(of value: String!) -> SDLUpdateMode!
                                                  - - - -

                                                  Parameters

                                                  -
                                                  -
                                                  value
                                                  -

                                                  The value of the string to get an object for

                                                  -
                                                  -
                                                  -

                                                  Return Value

                                                  -

                                                  SDLUpdateMode

                                                  -
                                                  - -

                                                  - +values -

                                                  - -

                                                  @abstract Store the enumeration of all possible SDLUpdateMode

                                                  - - - -

                                                  Objective-C

                                                  -
                                                  + (NSArray *)values;
                                                  - - -

                                                  Swift

                                                  -
                                                  class func values() -> [Any]!
                                                  - - - -
                                                  -

                                                  Return Value

                                                  -

                                                  an array that store all possible SDLUpdateMode

                                                  -
                                                  - -

                                                  - +COUNTUP -

                                                  - -

                                                  @abstract Starts the media clock timer counting upward, in increments of 1 second.

                                                  - - - -

                                                  Objective-C

                                                  -
                                                  + (SDLUpdateMode *)COUNTUP;
                                                  - - -

                                                  Swift

                                                  -
                                                  class func countup() -> SDLUpdateMode!
                                                  - - - -
                                                  -

                                                  Return Value

                                                  -

                                                  SDLUpdateMode with value of COUNTUP

                                                  -
                                                  - -

                                                  - +COUNTDOWN -

                                                  - -

                                                  @abstract Starts the media clock timer counting downward, in increments of 1 second.

                                                  - - - -

                                                  Objective-C

                                                  -
                                                  + (SDLUpdateMode *)COUNTDOWN;
                                                  - - -

                                                  Swift

                                                  -
                                                  class func countdown() -> SDLUpdateMode!
                                                  - - - -
                                                  -

                                                  Return Value

                                                  -

                                                  SDLUpdateMode with value of COUNTDOWN

                                                  -
                                                  - -

                                                  - +PAUSE -

                                                  - -

                                                  @abstract Pauses the media clock timer.

                                                  - - - -

                                                  Objective-C

                                                  -
                                                  + (SDLUpdateMode *)PAUSE;
                                                  - - -

                                                  Swift

                                                  -
                                                  class func pause() -> SDLUpdateMode!
                                                  - - - -
                                                  -

                                                  Return Value

                                                  -

                                                  SDLUpdateMode with value of PAUSE

                                                  -
                                                  - -

                                                  - +RESUME -

                                                  - -

                                                  @abstract Resumes the media clock timer. The timer resumes counting in whatever mode was in effect before pausing (i.e. COUNTUP or COUNTDOWN).

                                                  - - - -

                                                  Objective-C

                                                  -
                                                  + (SDLUpdateMode *)RESUME;
                                                  - - -

                                                  Swift

                                                  -
                                                  class func resume() -> SDLUpdateMode!
                                                  - - - -
                                                  -

                                                  Return Value

                                                  -

                                                  SDLUpdateMode with value of RESUME

                                                  -
                                                  - -

                                                  - +CLEAR -

                                                  - -

                                                  @abstract Clear the media clock timer.

                                                  - - - -

                                                  Objective-C

                                                  -
                                                  + (SDLUpdateMode *)CLEAR;
                                                  - - -

                                                  Swift

                                                  -
                                                  class func clear() -> SDLUpdateMode!
                                                  - - - - -
                                                  diff --git a/docs/Classes/SDLUpdateTurnList.html b/docs/Classes/SDLUpdateTurnList.html index 92f4d5765..7a22b05c4 100644 --- a/docs/Classes/SDLUpdateTurnList.html +++ b/docs/Classes/SDLUpdateTurnList.html @@ -3,8 +3,6 @@

                                                  SDLUpdateTurnList Class Reference

                                                  Section Contents

                                                    -
                                                  • -init
                                                  • -
                                                  • -initWithDictionary:
                                                  • -initWithTurnList:softButtons:
                                                  • turnList
                                                  • softButtons
                                                  • @@ -22,36 +20,6 @@

                                                    Overview

                                                    -

                                                    - -init -

                                                    - -

                                                    Undocumented

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    @interface SDLUpdateTurnList : SDLRPCRequest
                                                    - - - - - -

                                                    - -initWithDictionary: -

                                                    - -

                                                    Undocumented

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    @interface SDLUpdateTurnList : SDLRPCRequest
                                                    - - - - -

                                                    -initWithTurnList:softButtons:

                                                    @@ -76,11 +44,11 @@

                                                    Objective-C

                                                    -
                                                    @property (readwrite, strong, atomic) NSMutableArray *turnList;
                                                    +
                                                    @property (readwrite, strong, nonatomic, nullable) NSArray<SDLTurn *> *turnList;

                                                    Swift

                                                    -
                                                    var turnList: NSMutableArray! { get set }
                                                    +
                                                    var turnList: [SDLTurn]? { get set }
                                                    @@ -94,11 +62,12 @@

                                                    Objective-C

                                                    -
                                                    @property (readwrite, strong, atomic) NSMutableArray *softButtons;
                                                    +
                                                    @property (readwrite, strong, nonatomic, nullable)
                                                    +    NSArray<SDLSoftButton *> *softButtons;

                                                    Swift

                                                    -
                                                    var softButtons: NSMutableArray! { get set }
                                                    +
                                                    var softButtons: [SDLSoftButton]? { get set }
                                                    diff --git a/docs/Classes/SDLUpdateTurnListResponse.html b/docs/Classes/SDLUpdateTurnListResponse.html deleted file mode 100644 index 0aa8fb172..000000000 --- a/docs/Classes/SDLUpdateTurnListResponse.html +++ /dev/null @@ -1,50 +0,0 @@ -

                                                    SDLUpdateTurnListResponse Class Reference

                                                    - -

                                                    Section Contents

                                                    - - - -

                                                    Overview

                                                    - -

                                                    SDLUpdateTurnListResponse is sent, when SDLUpdateTurnList has been called.

                                                    - -
                                                      -
                                                    • SinceSmartDeviceLink 2.0
                                                    • -
                                                    - - -
                                                    -

                                                    - -init -

                                                    - -

                                                    Undocumented

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    @interface SDLUpdateTurnListResponse : SDLRPCResponse
                                                    - - - - - -

                                                    - -initWithDictionary: -

                                                    - -

                                                    Undocumented

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    @interface SDLUpdateTurnListResponse : SDLRPCResponse
                                                    - - - - - -
                                                    diff --git a/docs/Classes/SDLVRCapabilities.html b/docs/Classes/SDLVRCapabilities.html deleted file mode 100644 index 650ea7b94..000000000 --- a/docs/Classes/SDLVRCapabilities.html +++ /dev/null @@ -1,90 +0,0 @@ -

                                                    SDLVRCapabilities Class Reference

                                                    - -

                                                    Section Contents

                                                    - - - -

                                                    Overview

                                                    - -

                                                    The VR capabilities of the connected SDL platform.

                                                    - -

                                                    @since SDL 1.0

                                                    - - -
                                                    -

                                                    - +valueOf: -

                                                    - -

                                                    Convert String to SDLVRCapabilities

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    + (SDLVRCapabilities *)valueOf:(NSString *)value;
                                                    - - -

                                                    Swift

                                                    -
                                                    class func value(of value: String!) -> SDLVRCapabilities!
                                                    - - - -

                                                    Parameters

                                                    -
                                                    -
                                                    value
                                                    -

                                                    The value of the string to get an object for

                                                    -
                                                    -
                                                    -

                                                    Return Value

                                                    -

                                                    SDLVRCapabilities

                                                    -
                                                    - -

                                                    - +values -

                                                    - -

                                                    @abstract Store the enumeration of all possible SDLVRCapabilities

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    + (NSArray *)values;
                                                    - - -

                                                    Swift

                                                    -
                                                    class func values() -> [Any]!
                                                    - - - -
                                                    -

                                                    Return Value

                                                    -

                                                    an array that store all possible SDLVRCapabilities

                                                    -
                                                    - -

                                                    - +TEXT -

                                                    - -

                                                    @abstract The SDL platform is capable of recognizing spoken text in the current language.

                                                    - - - -

                                                    Objective-C

                                                    -
                                                    + (SDLVRCapabilities *)TEXT;
                                                    - - -

                                                    Swift

                                                    -
                                                    class func text() -> SDLVRCapabilities!
                                                    - - - -
                                                    -

                                                    Return Value

                                                    -

                                                    an SDLVRCapabilities instance pointer with value of TEXT

                                                    -
                                                    - -
                                                    diff --git a/docs/Classes/SDLVRHelpItem.html b/docs/Classes/SDLVRHelpItem.html index 302744b2e..9dfb11397 100644 --- a/docs/Classes/SDLVRHelpItem.html +++ b/docs/Classes/SDLVRHelpItem.html @@ -3,8 +3,6 @@

                                                    SDLVRHelpItem Class Reference

                                                    Section Contents

                                                      -
                                                    • -init
                                                    • -
                                                    • -initWithDictionary:
                                                    • -initWithText:image:
                                                    • -initWithText:image:position:
                                                    • text
                                                    • @@ -18,28 +16,6 @@

                                                      Overview

                                                      -

                                                      - -init -

                                                      - -

                                                      Undocumented

                                                      - - - - - - -

                                                      - -initWithDictionary: -

                                                      - -

                                                      Undocumented

                                                      - - - - - -

                                                      -initWithText:image:

                                                      diff --git a/docs/Classes/SDLVehicleDataActiveStatus.html b/docs/Classes/SDLVehicleDataActiveStatus.html deleted file mode 100644 index d86de55a8..000000000 --- a/docs/Classes/SDLVehicleDataActiveStatus.html +++ /dev/null @@ -1,156 +0,0 @@ -

                                                      SDLVehicleDataActiveStatus Class Reference

                                                      - -

                                                      Section Contents

                                                      - - - -

                                                      Overview

                                                      - -

                                                      Vehicle Data Activity Status

                                                      - - -
                                                      -

                                                      - +valueOf: -

                                                      - -

                                                      @abstract Convert String to SDLVehicleDataActiveStatus

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataActiveStatus *)valueOf:(NSString *)value;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func value(of value: String!) -> SDLVehicleDataActiveStatus!
                                                      - - - -

                                                      Parameters

                                                      -
                                                      -
                                                      value
                                                      -

                                                      NSString

                                                      -
                                                      -
                                                      -

                                                      Return Value

                                                      -

                                                      SDLVehicleDataActiveStatus

                                                      -
                                                      - -

                                                      - +values -

                                                      - -

                                                      @abstract return the array that store all possible SDLVehicleDataActiveStatus values

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (NSArray *)values;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func values() -> [Any]!
                                                      - - - - -

                                                      - +INACTIVE_NOT_CONFIRMED -

                                                      - -

                                                      @abstract SDLVehicleDataActiveStatus : Inactive not confirmed

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataActiveStatus *)INACTIVE_NOT_CONFIRMED;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func inactive_NOT_CONFIRMED() -> SDLVehicleDataActiveStatus!
                                                      - - - - -

                                                      - +INACTIVE_CONFIRMED -

                                                      - -

                                                      @abstract SDLVehicleDataActiveStatus : Inactive confirmed

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataActiveStatus *)INACTIVE_CONFIRMED;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func inactive_CONFIRMED() -> SDLVehicleDataActiveStatus!
                                                      - - - - -

                                                      - +ACTIVE_NOT_CONFIRMED -

                                                      - -

                                                      @abstract SDLVehicleDataActiveStatus : Active not confirmed

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataActiveStatus *)ACTIVE_NOT_CONFIRMED;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func active_NOT_CONFIRMED() -> SDLVehicleDataActiveStatus!
                                                      - - - - -

                                                      - +ACTIVE_CONFIRMED -

                                                      - -

                                                      @abstract SDLVehicleDataActiveStatus : Active confirmed

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataActiveStatus *)ACTIVE_CONFIRMED;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func active_CONFIRMED() -> SDLVehicleDataActiveStatus!
                                                      - - - - -

                                                      - +FAULT -

                                                      - -

                                                      @abstract SDLVehicleDataActiveStatus : Fault

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataActiveStatus *)FAULT;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func fault() -> SDLVehicleDataActiveStatus!
                                                      - - - - -
                                                      diff --git a/docs/Classes/SDLVehicleDataEventStatus.html b/docs/Classes/SDLVehicleDataEventStatus.html deleted file mode 100644 index a5396f673..000000000 --- a/docs/Classes/SDLVehicleDataEventStatus.html +++ /dev/null @@ -1,175 +0,0 @@ -

                                                      SDLVehicleDataEventStatus Class Reference

                                                      - -

                                                      Section Contents

                                                      - - - -

                                                      Overview

                                                      - -

                                                      Reflects the status of a vehicle data event; e.g. a seat belt event status.

                                                      - -

                                                      @since SDL 2.0

                                                      - - -
                                                      -

                                                      - +valueOf: -

                                                      - -

                                                      Convert String to SDLVehicleDataEventStatus

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataEventStatus *)valueOf:(NSString *)value;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func value(of value: String!) -> SDLVehicleDataEventStatus!
                                                      - - - -

                                                      Parameters

                                                      -
                                                      -
                                                      value
                                                      -

                                                      The value of the string to get an object for

                                                      -
                                                      -
                                                      -

                                                      Return Value

                                                      -

                                                      SDLVehicleDataEventStatus

                                                      -
                                                      - -

                                                      - +values -

                                                      - -

                                                      @abstract Store the enumeration of all possible SDLVehicleDataEventStatus

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (NSArray *)values;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func values() -> [Any]!
                                                      - - - -
                                                      -

                                                      Return Value

                                                      -

                                                      an array that store all possible SDLVehicleDataEventStatus

                                                      -
                                                      - -

                                                      - +NO_EVENT -

                                                      - - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataEventStatus *)NO_EVENT;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func no_EVENT() -> SDLVehicleDataEventStatus!
                                                      - - - -
                                                      -

                                                      Return Value

                                                      -

                                                      The SDLVehicleDataEventStatus instance with value of NO_EVENT

                                                      -
                                                      - -

                                                      - +_NO -

                                                      - - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataEventStatus *)_NO;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func _NO() -> SDLVehicleDataEventStatus!
                                                      - - - -
                                                      -

                                                      Return Value

                                                      -

                                                      The SDLVehicleDataEventStatus instance with value of NO

                                                      -
                                                      - -

                                                      - +_YES -

                                                      - - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataEventStatus *)_YES;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func _YES() -> SDLVehicleDataEventStatus!
                                                      - - - -
                                                      -

                                                      Return Value

                                                      -

                                                      The SDLVehicleDataEventStatus instance with value of YES

                                                      -
                                                      - -

                                                      - +NOT_SUPPORTED -

                                                      - -

                                                      @abstract Vehicle data event is not supported

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataEventStatus *)NOT_SUPPORTED;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func not_SUPPORTED() -> SDLVehicleDataEventStatus!
                                                      - - - -
                                                      -

                                                      Return Value

                                                      -

                                                      the SDLVehicleDataEventStatus instance with value of NOT_SUPPORTED

                                                      -
                                                      - -

                                                      - +FAULT -

                                                      - -

                                                      @abstract The SDLVehicleDataEventStatus instance with value of FAULT

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataEventStatus *)FAULT;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func fault() -> SDLVehicleDataEventStatus!
                                                      - - - - -
                                                      diff --git a/docs/Classes/SDLVehicleDataNotificationStatus.html b/docs/Classes/SDLVehicleDataNotificationStatus.html deleted file mode 100644 index 2bdee3c39..000000000 --- a/docs/Classes/SDLVehicleDataNotificationStatus.html +++ /dev/null @@ -1,143 +0,0 @@ -

                                                      SDLVehicleDataNotificationStatus Class Reference

                                                      - -

                                                      Section Contents

                                                      - - - -

                                                      Overview

                                                      - -

                                                      Reflects the status of a vehicle data notification.

                                                      - -

                                                      @since SDL 2.0

                                                      - - -
                                                      -

                                                      - +valueOf: -

                                                      - -

                                                      Convert String to SDLVehicleDataNotificationStatus

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataNotificationStatus *)valueOf:(NSString *)value;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func value(of value: String!) -> SDLVehicleDataNotificationStatus!
                                                      - - - -

                                                      Parameters

                                                      -
                                                      -
                                                      value
                                                      -

                                                      The value of the string to get an object for

                                                      -
                                                      -
                                                      -

                                                      Return Value

                                                      -

                                                      SDLVehicleDataNotificationStatus

                                                      -
                                                      - -

                                                      - +values -

                                                      - -

                                                      @abstract Store the enumeration of all possible SDLVehicleDataNotificationStatus

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (NSArray *)values;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func values() -> [Any]!
                                                      - - - -
                                                      -

                                                      Return Value

                                                      -

                                                      an array that store all possible SDLVehicleDataNotificationStatus

                                                      -
                                                      - -

                                                      - +NOT_SUPPORTED -

                                                      - -

                                                      @abstract SDLVehicleDataNotificationStatus: NOT_SUPPORTED

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataNotificationStatus *)NOT_SUPPORTED;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func not_SUPPORTED() -> SDLVehicleDataNotificationStatus!
                                                      - - - - -

                                                      - +NORMAL -

                                                      - -

                                                      @abstract SDLVehicleDataNotificationStatus: NORMAL

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataNotificationStatus *)NORMAL;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func normal() -> SDLVehicleDataNotificationStatus!
                                                      - - - - -

                                                      - +ACTIVE -

                                                      - -

                                                      @abstract SDLVehicleDataNotificationStatus: ACTIVE

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataNotificationStatus *)ACTIVE;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func active() -> SDLVehicleDataNotificationStatus!
                                                      - - - - -

                                                      - +NOT_USED -

                                                      - -

                                                      @abstract SDLVehicleDataNotificationStatus: NOT_USED

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataNotificationStatus *)NOT_USED;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func not_USED() -> SDLVehicleDataNotificationStatus!
                                                      - - - - -
                                                      diff --git a/docs/Classes/SDLVehicleDataResult.html b/docs/Classes/SDLVehicleDataResult.html index 0b9dd445a..806089fc4 100644 --- a/docs/Classes/SDLVehicleDataResult.html +++ b/docs/Classes/SDLVehicleDataResult.html @@ -3,8 +3,6 @@

                                                      SDLVehicleDataResult Class Reference

                                                      Section Contents

                                                      @@ -15,28 +13,6 @@

                                                      Overview

                                                      -

                                                      - -init -

                                                      - -

                                                      Undocumented

                                                      - - - - - - -

                                                      - -initWithDictionary: -

                                                      - -

                                                      Undocumented

                                                      - - - - - -

                                                      dataType

                                                      diff --git a/docs/Classes/SDLVehicleDataResultCode.html b/docs/Classes/SDLVehicleDataResultCode.html deleted file mode 100644 index 1eb0ab0ca..000000000 --- a/docs/Classes/SDLVehicleDataResultCode.html +++ /dev/null @@ -1,236 +0,0 @@ -

                                                      SDLVehicleDataResultCode Class Reference

                                                      - -

                                                      Section Contents

                                                      - - - -

                                                      Overview

                                                      - -

                                                      Vehicle Data Result Code

                                                      - - -
                                                      -

                                                      - +valueOf: -

                                                      - -

                                                      Convert String to SDLVehicleDataResultCode

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataResultCode *)valueOf:(NSString *)value;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func value(of value: String!) -> SDLVehicleDataResultCode!
                                                      - - - -

                                                      Parameters

                                                      -
                                                      -
                                                      value
                                                      -

                                                      String

                                                      -
                                                      -
                                                      -

                                                      Return Value

                                                      -

                                                      SDLVehicleDataResultCode

                                                      -
                                                      - -

                                                      - +values -

                                                      - -

                                                      @abstract Store the enumeration of all possible SDLVehicleDataResultCode

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (NSArray *)values;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func values() -> [Any]!
                                                      - - - -
                                                      -

                                                      Return Value

                                                      -

                                                      an array that store all possible SDLVehicleDataResultCode

                                                      -
                                                      - -

                                                      - +SUCCESS -

                                                      - -

                                                      Individual vehicle data item / DTC / DID request or subscription successful

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataResultCode *)SUCCESS;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func success() -> SDLVehicleDataResultCode!
                                                      - - - - -

                                                      - +TRUNCATED_DATA -

                                                      - -

                                                      DTC / DID request successful, however, not all active DTCs or full contents of DID location available

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataResultCode *)TRUNCATED_DATA;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func truncated_DATA() -> SDLVehicleDataResultCode!
                                                      - - - - -

                                                      - +DISALLOWED -

                                                      - -

                                                      This vehicle data item is not allowed for this app by SDL

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataResultCode *)DISALLOWED;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func disallowed() -> SDLVehicleDataResultCode!
                                                      - - - - -

                                                      - +USER_DISALLOWED -

                                                      - -

                                                      The user has not granted access to this type of vehicle data item at this time

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataResultCode *)USER_DISALLOWED;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func user_DISALLOWED() -> SDLVehicleDataResultCode!
                                                      - - - - -

                                                      - +INVALID_ID -

                                                      - -

                                                      The ECU ID referenced is not a valid ID on the bus / system

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataResultCode *)INVALID_ID;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func invalid_ID() -> SDLVehicleDataResultCode!
                                                      - - - - -

                                                      - +VEHICLE_DATA_NOT_AVAILABLE -

                                                      - -

                                                      The requested vehicle data item / DTC / DID is not currently available or responding on the bus / system

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataResultCode *)VEHICLE_DATA_NOT_AVAILABLE;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicle_DATA_NOT_AVAILABLE() -> SDLVehicleDataResultCode!
                                                      - - - - -

                                                      - +DATA_ALREADY_SUBSCRIBED -

                                                      - -

                                                      The vehicle data item is already subscribed

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataResultCode *)DATA_ALREADY_SUBSCRIBED;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func data_ALREADY_SUBSCRIBED() -> SDLVehicleDataResultCode!
                                                      - - - - -

                                                      - +DATA_NOT_SUBSCRIBED -

                                                      - -

                                                      The vehicle data item cannot be unsubscribed because it is not currently subscribed

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataResultCode *)DATA_NOT_SUBSCRIBED;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func data_NOT_SUBSCRIBED() -> SDLVehicleDataResultCode!
                                                      - - - - -

                                                      - +IGNORED -

                                                      - -

                                                      The request for this item is ignored because it is already in progress

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataResultCode *)IGNORED;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func ignored() -> SDLVehicleDataResultCode!
                                                      - - - - -
                                                      diff --git a/docs/Classes/SDLVehicleDataStatus.html b/docs/Classes/SDLVehicleDataStatus.html deleted file mode 100644 index c422f5b2e..000000000 --- a/docs/Classes/SDLVehicleDataStatus.html +++ /dev/null @@ -1,128 +0,0 @@ -

                                                      SDLVehicleDataStatus Class Reference

                                                      - -

                                                      Section Contents

                                                      - - - -

                                                      Overview

                                                      - -

                                                      Reflects the status of a binary vehicle data item.

                                                      - -

                                                      @since SDL 2.0

                                                      - - -
                                                      -

                                                      - +valueOf: -

                                                      - -

                                                      Convert String to SDLVehicleDataStatus

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataStatus *)valueOf:(NSString *)value;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func value(of value: String!) -> SDLVehicleDataStatus!
                                                      - - - -

                                                      Parameters

                                                      -
                                                      -
                                                      value
                                                      -

                                                      The value of the string to get an object for

                                                      -
                                                      -
                                                      -

                                                      Return Value

                                                      -

                                                      SDLVehicleDataStatus

                                                      -
                                                      - -

                                                      - +values -

                                                      - -

                                                      @abstract Store the enumeration of all possible SDLVehicleDataStatus

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (NSArray *)values;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func values() -> [Any]!
                                                      - - - -
                                                      -

                                                      Return Value

                                                      -

                                                      an array that store all possible SDLVehicleDataStatus

                                                      -
                                                      - -

                                                      - +NO_DATA_EXISTS -

                                                      - -

                                                      @abstract No data avaliable

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataStatus *)NO_DATA_EXISTS;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func no_DATA_EXISTS() -> SDLVehicleDataStatus!
                                                      - - - -
                                                      -

                                                      Return Value

                                                      -

                                                      SDLVehicleDataStatus: NO_DATA_EXISTS

                                                      -
                                                      - -

                                                      - +OFF -

                                                      - -

                                                      @abstract return SDLVehicleDataStatus: OFF

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataStatus *)OFF;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func off() -> SDLVehicleDataStatus!
                                                      - - - - -

                                                      - +ON -

                                                      - -

                                                      @abstract return SDLVehicleDataStatus: ON

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataStatus *)ON;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func on() -> SDLVehicleDataStatus!
                                                      - - - - -
                                                      diff --git a/docs/Classes/SDLVehicleDataType.html b/docs/Classes/SDLVehicleDataType.html deleted file mode 100644 index 98fc7f6cd..000000000 --- a/docs/Classes/SDLVehicleDataType.html +++ /dev/null @@ -1,559 +0,0 @@ -

                                                      SDLVehicleDataType Class Reference

                                                      - -

                                                      Section Contents

                                                      - - - -

                                                      Overview

                                                      - -

                                                      Defines the vehicle data types that can be published and/or subscribed to using SDLSubscribeVehicleData

                                                      - - -
                                                      -

                                                      - +valueOf: -

                                                      - -

                                                      Convert String to SDLVehicleDataType

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)valueOf:(NSString *)value;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func value(of value: String!) -> SDLVehicleDataType!
                                                      - - - -

                                                      Parameters

                                                      -
                                                      -
                                                      value
                                                      -

                                                      String value to retrieve the object for

                                                      -
                                                      -
                                                      -

                                                      Return Value

                                                      -

                                                      SDLVehicleDataType

                                                      -
                                                      - -

                                                      - +values -

                                                      - -

                                                      @abstract Store the enumeration of all possible SDLVehicleDataType

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (NSArray *)values;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func values() -> [Any]!
                                                      - - - -
                                                      -

                                                      Return Value

                                                      -

                                                      an array that store all possible SDLVehicleDataType

                                                      -
                                                      - -

                                                      - +VEHICLEDATA_GPS -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_GPS

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_GPS;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_GPS() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_SPEED -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_SPEED

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_SPEED;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_SPEED() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_RPM -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_RPM

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_RPM;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_RPM() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_FUELLEVEL -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_FUELLEVEL

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_FUELLEVEL;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_FUELLEVEL() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_FUELLEVEL_STATE -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_FUELLEVEL_STATE

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_FUELLEVEL_STATE;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_FUELLEVEL_STATE() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_FUELCONSUMPTION -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_FUELCONSUMPTION

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_FUELCONSUMPTION;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_FUELCONSUMPTION() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_EXTERNTEMP -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_EXTERNTEMP

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_EXTERNTEMP;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_EXTERNTEMP() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_VIN -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_VIN

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_VIN;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_VIN() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_PRNDL -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_PRNDL

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_PRNDL;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_PRNDL() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_TIREPRESSURE -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_TIREPRESSURE

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_TIREPRESSURE;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_TIREPRESSURE() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_ODOMETER -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_ODOMETER

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_ODOMETER;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_ODOMETER() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_BELTSTATUS -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_BELTSTATUS

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_BELTSTATUS;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_BELTSTATUS() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_BODYINFO -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_BODYINFO

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_BODYINFO;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_BODYINFO() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_DEVICESTATUS -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_DEVICESTATUS

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_DEVICESTATUS;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_DEVICESTATUS() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_ECALLINFO -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_ECALLINFO

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_ECALLINFO;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_ECALLINFO() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_AIRBAGSTATUS -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_AIRBAGSTATUS

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_AIRBAGSTATUS;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_AIRBAGSTATUS() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_EMERGENCYEVENT -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_EMERGENCYEVENT

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_EMERGENCYEVENT;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_EMERGENCYEVENT() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_CLUSTERMODESTATUS -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_CLUSTERMODESTATUS

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_CLUSTERMODESTATUS;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_CLUSTERMODESTATUS() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_MYKEY -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_MYKEY

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_MYKEY;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_MYKEY() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_BRAKING -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_BRAKING

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_BRAKING;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_BRAKING() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_WIPERSTATUS -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_WIPERSTATUS

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_WIPERSTATUS;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_WIPERSTATUS() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_HEADLAMPSTATUS -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_HEADLAMPSTATUS

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_HEADLAMPSTATUS;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_HEADLAMPSTATUS() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_BATTVOLTAGE -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_BATTVOLTAGE

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_BATTVOLTAGE;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_BATTVOLTAGE() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_ENGINETORQUE -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_ENGINETORQUE

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_ENGINETORQUE;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_ENGINETORQUE() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_ACCPEDAL -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_ACCPEDAL

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_ACCPEDAL;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_ACCPEDAL() -> SDLVehicleDataType!
                                                      - - - - -

                                                      - +VEHICLEDATA_STEERINGWHEEL -

                                                      - -

                                                      @abstract SDLVehicleDataType: VEHICLEDATA_STEERINGWHEEL

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      + (SDLVehicleDataType *)VEHICLEDATA_STEERINGWHEEL;
                                                      - - -

                                                      Swift

                                                      -
                                                      class func vehicledata_STEERINGWHEEL() -> SDLVehicleDataType!
                                                      - - - - -
                                                      diff --git a/docs/Classes/SDLVehicleType.html b/docs/Classes/SDLVehicleType.html index 9aa6f71c4..115c028f9 100644 --- a/docs/Classes/SDLVehicleType.html +++ b/docs/Classes/SDLVehicleType.html @@ -3,8 +3,6 @@

                                                      SDLVehicleType Class Reference

                                                      Section Contents

                                                        -
                                                      • -init
                                                      • -
                                                      • -initWithDictionary:
                                                      • make
                                                      • model
                                                      • modelYear
                                                      • @@ -19,47 +17,6 @@

                                                        Overview

                                                        -

                                                        - -init -

                                                        - -

                                                        @abstract Constructs a newly allocated SDLVehicleType object

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        - (instancetype)init;
                                                        - - -

                                                        Swift

                                                        -
                                                        init!()
                                                        - - - - -

                                                        - -initWithDictionary: -

                                                        - -

                                                        @abstract Constructs a newly allocated SDLVehicleType object indicated by the dictionary parameter

                                                        - - - -

                                                        Objective-C

                                                        -
                                                        - (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
                                                        - - -

                                                        Swift

                                                        -
                                                        init!(dictionary dict: NSMutableDictionary!)
                                                        - - - -

                                                        Parameters

                                                        -
                                                        -
                                                        dict
                                                        -

                                                        The dictionary to use

                                                        -
                                                        -

                                                        make

                                                        @@ -73,11 +30,11 @@

                                                        Objective-C

                                                        -
                                                        @property (readwrite, strong, atomic) NSString *make;
                                                        +
                                                        @property (readwrite, strong, nonatomic, nullable) NSString *make;

                                                        Swift

                                                        -
                                                        var make: String! { get set }
                                                        +
                                                        var make: String? { get set }
                                                        @@ -95,11 +52,11 @@

                                                        Objective-C

                                                        -
                                                        @property (readwrite, strong, atomic) NSString *model;
                                                        +
                                                        @property (readwrite, strong, nonatomic, nullable) NSString *model;

                                                        Swift

                                                        -
                                                        var model: String! { get set }
                                                        +
                                                        var model: String? { get set }
                                                        @@ -117,11 +74,11 @@

                                                        Objective-C

                                                        -
                                                        @property (readwrite, strong, atomic) NSString *modelYear;
                                                        +
                                                        @property (readwrite, strong, nonatomic, nullable) NSString *modelYear;

                                                        Swift

                                                        -
                                                        var modelYear: String! { get set }
                                                        +
                                                        var modelYear: String? { get set }
                                                        @@ -139,11 +96,11 @@

                                                        Objective-C

                                                        -
                                                        @property (readwrite, strong, atomic) NSString *trim;
                                                        +
                                                        @property (readwrite, strong, nonatomic, nullable) NSString *trim;

                                                        Swift

                                                        -
                                                        var trim: String! { get set }
                                                        +
                                                        var trim: String? { get set }
                                                        diff --git a/docs/Classes/SDLVideoStreamingCapability.html b/docs/Classes/SDLVideoStreamingCapability.html index 3c320e6a5..76086651c 100644 --- a/docs/Classes/SDLVideoStreamingCapability.html +++ b/docs/Classes/SDLVideoStreamingCapability.html @@ -3,9 +3,7 @@

                                                        SDLVideoStreamingCapability Class Reference

                                                        Section Contents

                                                        Overview

                                                        @@ -28,7 +32,7 @@

                                                        Objective-C

                                                        Swift

                                                        -
                                                        case cannotOverwrite = -1
                                                        +
                                                        case errorCannotOverwrite = -1
                                                        @@ -46,7 +50,7 @@

                                                        Objective-C

                                                        Swift

                                                        -
                                                        case noKnownFile = -2
                                                        +
                                                        case errorNoKnownFile = -2
                                                        @@ -64,7 +68,7 @@

                                                        Objective-C

                                                        Swift

                                                        -
                                                        case unableToStart = -3
                                                        +
                                                        case errorUnableToStart = -3
                                                        @@ -82,7 +86,79 @@

                                                        Objective-C

                                                        Swift

                                                        -
                                                        case unableToUpload = -4
                                                        +
                                                        case errorUnableToUpload = -4
                                                        + + + + +

                                                        + SDLFileManagerErrorFileDoesNotExist +

                                                        + +

                                                        The file manager could not find the local file.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        SDLFileManagerErrorFileDoesNotExist = -5
                                                        + + +

                                                        Swift

                                                        +
                                                        case errorFileDoesNotExist = -5
                                                        + + + + +

                                                        + SDLFileManagerUploadCanceled +

                                                        + +

                                                        The file manager could not find the local file.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        SDLFileManagerUploadCanceled = -6
                                                        + + +

                                                        Swift

                                                        +
                                                        case uploadCanceled = -6
                                                        + + + + +

                                                        + SDLFileManagerMultipleFileUploadTasksFailed +

                                                        + +

                                                        The file manager could not find the local file.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        SDLFileManagerMultipleFileUploadTasksFailed = -7
                                                        + + +

                                                        Swift

                                                        +
                                                        case multipleFileUploadTasksFailed = -7
                                                        + + + + +

                                                        + SDLFileManagerMultipleFileDeleteTasksFailed +

                                                        + +

                                                        The file manager could not find the local file.

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        SDLFileManagerMultipleFileDeleteTasksFailed = -8
                                                        + + +

                                                        Swift

                                                        +
                                                        case multipleFileDeleteTasksFailed = -8
                                                        diff --git a/docs/Enums/SDLFrameData.html b/docs/Enums/SDLFrameData.html deleted file mode 100644 index 1ee4d11ff..000000000 --- a/docs/Enums/SDLFrameData.html +++ /dev/null @@ -1,158 +0,0 @@ -

                                                        SDLFrameData Enum Reference

                                                        - -

                                                        Section Contents

                                                        - - - -

                                                        Overview

                                                        - -

                                                        Undocumented

                                                        - - -
                                                        -

                                                        - SDLFrameData_Heartbeat -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - SDLFrameData_StartSession -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - SDLFrameData_StartSessionACK -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - SDLFrameData_StartSessionNACK -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - SDLFrameData_EndSession -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - SDLFrameData_EndSessionACK -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - SDLFrameData_EndSessionNACK -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - SDLFrameData_ServiceDataACK -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - SDLFrameData_HeartbeatACK -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - SDLFrameData_SingleFrame -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - SDLFrameData_FirstFrame -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - SDLFrameData_ConsecutiveLastFrame -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -
                                                        diff --git a/docs/Enums/SDLFrameInfo.html b/docs/Enums/SDLFrameInfo.html new file mode 100644 index 000000000..2804fe0b2 --- /dev/null +++ b/docs/Enums/SDLFrameInfo.html @@ -0,0 +1,158 @@ +

                                                        SDLFrameInfo Enum Reference

                                                        + +

                                                        Section Contents

                                                        + + + +

                                                        Overview

                                                        + +

                                                        Undocumented

                                                        + + +
                                                        +

                                                        + SDLFrameInfoHeartbeat +

                                                        + +

                                                        Undocumented

                                                        + + + + + + +

                                                        + SDLFrameInfoStartService +

                                                        + +

                                                        Undocumented

                                                        + + + + + + +

                                                        + SDLFrameInfoStartServiceACK +

                                                        + +

                                                        Undocumented

                                                        + + + + + + +

                                                        + SDLFrameInfoStartServiceNACK +

                                                        + +

                                                        Undocumented

                                                        + + + + + + +

                                                        + SDLFrameInfoEndService +

                                                        + +

                                                        Undocumented

                                                        + + + + + + +

                                                        + SDLFrameInfoEndServiceACK +

                                                        + +

                                                        Undocumented

                                                        + + + + + + +

                                                        + SDLFrameInfoEndServiceNACK +

                                                        + +

                                                        Undocumented

                                                        + + + + + + +

                                                        + SDLFrameInfoServiceDataAck +

                                                        + +

                                                        Undocumented

                                                        + + + + + + +

                                                        + SDLFrameInfoHeartbeatACK +

                                                        + +

                                                        Undocumented

                                                        + + + + + + +

                                                        + SDLFrameInfoSingleFrame +

                                                        + +

                                                        Undocumented

                                                        + + + + + + +

                                                        + SDLFrameInfoFirstFrame +

                                                        + +

                                                        Undocumented

                                                        + + + + + + +

                                                        + SDLFrameInfoConsecutiveLastFrame +

                                                        + +

                                                        Undocumented

                                                        + + + + + + +
                                                        diff --git a/docs/Enums/SDLFrameType.html b/docs/Enums/SDLFrameType.html index c944f69bb..18d9e9554 100644 --- a/docs/Enums/SDLFrameType.html +++ b/docs/Enums/SDLFrameType.html @@ -3,10 +3,10 @@

                                                        SDLFrameType Enum Reference

                                                        Section Contents

                                                        Overview

                                                        @@ -15,8 +15,8 @@

                                                        Overview

                                                        -

                                                        - SDLFrameType_Control +

                                                        + SDLFrameTypeControl

                                                        Undocumented

                                                        @@ -26,8 +26,8 @@

                                                        -

                                                        - SDLFrameType_Single +

                                                        + SDLFrameTypeSingle

                                                        Undocumented

                                                        @@ -37,8 +37,8 @@

                                                        -

                                                        - SDLFrameType_First +

                                                        + SDLFrameTypeFirst

                                                        Undocumented

                                                        @@ -48,8 +48,8 @@

                                                        -

                                                        - SDLFrameType_Consecutive +

                                                        + SDLFrameTypeConsecutive

                                                        Undocumented

                                                        diff --git a/docs/Enums/SDLLogBytesDirection.html b/docs/Enums/SDLLogBytesDirection.html new file mode 100644 index 000000000..1a3d550f6 --- /dev/null +++ b/docs/Enums/SDLLogBytesDirection.html @@ -0,0 +1,38 @@ +

                                                        SDLLogBytesDirection Enum Reference

                                                        + +

                                                        Section Contents

                                                        + + + +

                                                        Overview

                                                        + +

                                                        Undocumented

                                                        + + +
                                                        +

                                                        + SDLLogBytesDirectionTransmit +

                                                        + +

                                                        Undocumented

                                                        + + + + + + +

                                                        + SDLLogBytesDirectionReceive +

                                                        + +

                                                        Undocumented

                                                        + + + + + + +
                                                        diff --git a/docs/Enums/SDLLogFlag.html b/docs/Enums/SDLLogFlag.html new file mode 100644 index 000000000..959febece --- /dev/null +++ b/docs/Enums/SDLLogFlag.html @@ -0,0 +1,85 @@ +

                                                        SDLLogFlag Enum Reference

                                                        + +

                                                        Section Contents

                                                        + + + +

                                                        Overview

                                                        + +

                                                        Flags used for SDLLogLevel to provide correct enum values. This is purely for internal use.

                                                        + +
                                                          +
                                                        • SDLLogFlagVerbose: Verbose level logging
                                                        • +
                                                        • SDLLogFlagDebug: Debug level logging
                                                        • +
                                                        • SDLLogFlagWarning: Warning level logging
                                                        • +
                                                        • SDLLogFlagError: Error level logging.
                                                        • +
                                                        + + +
                                                        +

                                                        + SDLLogFlagError +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        enum SDLLogFlag {}
                                                        + + + + + +

                                                        + SDLLogFlagWarning +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        enum SDLLogFlag {}
                                                        + + + + + +

                                                        + SDLLogFlagDebug +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        enum SDLLogFlag {}
                                                        + + + + + +

                                                        + SDLLogFlagVerbose +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        enum SDLLogFlag {}
                                                        + + + + + +
                                                        diff --git a/docs/Enums/SDLLogFormatType.html b/docs/Enums/SDLLogFormatType.html new file mode 100644 index 000000000..fdd13e62c --- /dev/null +++ b/docs/Enums/SDLLogFormatType.html @@ -0,0 +1,68 @@ +

                                                        SDLLogFormatType Enum Reference

                                                        + +

                                                        Section Contents

                                                        + + + +

                                                        Overview

                                                        + +

                                                        The output format of logs; how they will appear when printed out into a string.

                                                        + +
                                                          +
                                                        • SDLLogFormatTypeSimple: A bare-bones log format: 09:52:07:324 🔹 (SDL)Protocol – a random test i guess
                                                        • +
                                                        • SDLLogFormatTypeDefault: A middle detail default log format: 09:52:07:324 🔹 (SDL)Protocol:SDLV2ProtocolHeader:25 – Some log message
                                                        • +
                                                        • SDLLogFormatTypeDetailed: A very detailed log format: 09:52:07:324 🔹 DEBUG com.apple.main-thread:(SDL)Protocol:[SDLV2ProtocolHeader parse:]:74 – Some log message
                                                        • +
                                                        + + +
                                                        +

                                                        + SDLLogFormatTypeSimple +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        enum SDLLogFormatType {}
                                                        + + + + + +

                                                        + SDLLogFormatTypeDefault +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        enum SDLLogFormatType {}
                                                        + + + + + +

                                                        + SDLLogFormatTypeDetailed +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        enum SDLLogFormatType {}
                                                        + + + + + +
                                                        diff --git a/docs/Enums/SDLLogLevel.html b/docs/Enums/SDLLogLevel.html new file mode 100644 index 000000000..f93a6c3df --- /dev/null +++ b/docs/Enums/SDLLogLevel.html @@ -0,0 +1,119 @@ +

                                                        SDLLogLevel Enum Reference

                                                        + +

                                                        Section Contents

                                                        + + + +

                                                        Overview

                                                        + +

                                                        An enum describing a level of logging.

                                                        + +
                                                          +
                                                        • SDLLogLevelDefault: This is used to describe that a specific logging will instead use the global log level, for example, a module may use the global log level instead of its own by specifying this level.
                                                        • +
                                                        • SDLLogLevelOff: This is used to describe a level that involves absolutely no logs being output.
                                                        • +
                                                        • SDLLogLevelError: Only error level logs will be output.
                                                        • +
                                                        • SDLLogLevelWarning: Both error and warning level logs will be output.
                                                        • +
                                                        • SDLLogLevelDebug: Error, warning, and debug level logs will be output. This level will never be output in RELEASE environments.
                                                        • +
                                                        • SDLLogLevelVerbose: All level logs will be output. This level will never be output in RELEASE environments.
                                                        • +
                                                        + + +
                                                        +

                                                        + SDLLogLevelDefault +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        enum SDLLogLevel {}
                                                        + + + + + +

                                                        + SDLLogLevelOff +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        enum SDLLogLevel {}
                                                        + + + + + +

                                                        + SDLLogLevelError +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        enum SDLLogLevel {}
                                                        + + + + + +

                                                        + SDLLogLevelWarning +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        enum SDLLogLevel {}
                                                        + + + + + +

                                                        + SDLLogLevelDebug +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        enum SDLLogLevel {}
                                                        + + + + + +

                                                        + SDLLogLevelVerbose +

                                                        + +

                                                        Undocumented

                                                        + + + +

                                                        Objective-C

                                                        +
                                                        enum SDLLogLevel {}
                                                        + + + + + +
                                                        diff --git a/docs/Enums/SDLLogOutput.html b/docs/Enums/SDLLogOutput.html deleted file mode 100644 index c55694c7f..000000000 --- a/docs/Enums/SDLLogOutput.html +++ /dev/null @@ -1,62 +0,0 @@ -

                                                        SDLLogOutput Enum Reference

                                                        - -

                                                        Section Contents

                                                        - - - -

                                                        Overview

                                                        - -

                                                        Undocumented

                                                        - - -
                                                        -

                                                        - SDLLogOutputNone -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - SDLLogOutputConsole -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - SDLLogOutputFile -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -

                                                        - SDLLogOutputSiphon -

                                                        - -

                                                        Undocumented

                                                        - - - - - - -
                                                        diff --git a/docs/Enums/SDLManagerError.html b/docs/Enums/SDLManagerError.html index 5528ca643..d9c18b73b 100644 --- a/docs/Enums/SDLManagerError.html +++ b/docs/Enums/SDLManagerError.html @@ -9,6 +9,7 @@

                                                        Section Contents

                                                      • SDLManagerErrorUnknownRemoteError
                                                      • SDLManagerErrorManagersFailedToStart
                                                      • SDLManagerErrorRegistrationFailed
                                                      • +
                                                      • SDLManagerErrorRegistrationSuccessWithWarning

                                                      Overview

                                                      @@ -125,4 +126,22 @@

                                                      Swift

                                                      +

                                                      + SDLManagerErrorRegistrationSuccessWithWarning +

                                                      + +

                                                      Registering with the remote system was successful, but had a warning.

                                                      + + + +

                                                      Objective-C

                                                      +
                                                      SDLManagerErrorRegistrationSuccessWithWarning = -7
                                                      + + +

                                                      Swift

                                                      +
                                                      case registrationSuccessWithWarning = -7
                                                      + + + +
                                                      diff --git a/docs/Enums/SDLServiceType.html b/docs/Enums/SDLServiceType.html index 6bf0f5d01..a1dfe5d1d 100644 --- a/docs/Enums/SDLServiceType.html +++ b/docs/Enums/SDLServiceType.html @@ -3,11 +3,11 @@

                                                      SDLServiceType Enum Reference

                                                      Section Contents

                                                      Overview

                                                      @@ -16,8 +16,8 @@

                                                      Overview

                                                      -

                                                      - SDLServiceType_Control +

                                                      + SDLServiceTypeControl

                                                      Undocumented

                                                      @@ -27,8 +27,8 @@

                                                      -

                                                      - SDLServiceType_RPC +

                                                      + SDLServiceTypeRPC

                                                      Undocumented

                                                      @@ -38,8 +38,8 @@

                                                      -

                                                      - SDLServiceType_Audio +

                                                      + SDLServiceTypeAudio

                                                      Undocumented

                                                      @@ -49,8 +49,8 @@

                                                      -

                                                      - SDLServiceType_Video +

                                                      + SDLServiceTypeVideo

                                                      Undocumented

                                                      @@ -60,8 +60,8 @@

                                                      -

                                                      - SDLServiceType_BulkData +

                                                      + SDLServiceTypeBulkData

                                                      Undocumented

                                                      diff --git a/docs/Enums/SDLStreamingAudioError.html b/docs/Enums/SDLStreamingAudioError.html deleted file mode 100644 index 7650e49e2..000000000 --- a/docs/Enums/SDLStreamingAudioError.html +++ /dev/null @@ -1,26 +0,0 @@ -

                                                      SDLStreamingAudioError Enum Reference

                                                      - -

                                                      Section Contents

                                                      - - - -

                                                      Overview

                                                      - -

                                                      Undocumented

                                                      - - -
                                                      -

                                                      - SDLStreamingAudioErrorHeadUnitNACK -

                                                      - -

                                                      Undocumented

                                                      - - - - - - -
                                                      diff --git a/docs/Enums/SDLStreamingEncryptionFlag.html b/docs/Enums/SDLStreamingEncryptionFlag.html new file mode 100644 index 000000000..8e01a3f7c --- /dev/null +++ b/docs/Enums/SDLStreamingEncryptionFlag.html @@ -0,0 +1,50 @@ +

                                                      SDLStreamingEncryptionFlag Enum Reference

                                                      + +

                                                      Section Contents

                                                      + + + +

                                                      Overview

                                                      + +

                                                      Undocumented

                                                      + + +
                                                      +

                                                      + SDLStreamingEncryptionFlagNone +

                                                      + +

                                                      Undocumented

                                                      + + + + + + +

                                                      + SDLStreamingEncryptionFlagAuthenticateOnly +

                                                      + +

                                                      Undocumented

                                                      + + + + + + +

                                                      + SDLStreamingEncryptionFlagAuthenticateAndEncrypt +

                                                      + +

                                                      Undocumented

                                                      + + + + + + +
                                                      diff --git a/docs/Enums/SDLStreamingVideoError.html b/docs/Enums/SDLStreamingVideoError.html deleted file mode 100644 index aead28232..000000000 --- a/docs/Enums/SDLStreamingVideoError.html +++ /dev/null @@ -1,86 +0,0 @@ -

                                                      SDLStreamingVideoError Enum Reference

                                                      - -

                                                      Section Contents

                                                      - - - -

                                                      Overview

                                                      - -

                                                      Undocumented

                                                      - - -
                                                      -

                                                      - SDLStreamingVideoErrorHeadUnitNACK -

                                                      - -

                                                      Undocumented

                                                      - - - - - - -

                                                      - SDLSTreamingVideoErrorInvalidOperatingSystemVersion -

                                                      - -

                                                      Undocumented

                                                      - - - - - - -

                                                      - SDLStreamingVideoErrorInvalidOperatingSystemVersion -

                                                      - -

                                                      Undocumented

                                                      - - - - - - -

                                                      - SDLStreamingVideoErrorConfigurationCompressionSessionCreationFailure -

                                                      - -

                                                      Undocumented

                                                      - - - - - - -

                                                      - SDLStreamingVideoErrorConfigurationAllocationFailure -

                                                      - -

                                                      Undocumented

                                                      - - - - - - -

                                                      - SDLStreamingVideoErrorConfigurationCompressionSessionSetPropertyFailure -

                                                      - -

                                                      Undocumented

                                                      - - - - - - -
                                                      diff --git a/docs/Protocols.html b/docs/Protocols.html index 9bf3d00d8..d7fa96e6b 100644 --- a/docs/Protocols.html +++ b/docs/Protocols.html @@ -7,12 +7,11 @@

                                                      Section Contents

                                                    • SDLUInt
                                                    • SDLBool
                                                    • SDLFloat
                                                    • -
                                                    • SDLDebugToolConsole
                                                    • SDLIAPSessionDelegate
                                                    • +
                                                    • SDLLogTarget
                                                    • SDLManagerDelegate
                                                    • SDLProtocolListener
                                                    • SDLProxyListener
                                                    • -
                                                    • SDLRequestHandler
                                                    • SDLSecurityType
                                                    • SDLTouchManagerDelegate
                                                    • SDLTransportDelegate
                                                    • @@ -96,25 +95,25 @@

                                                      Swift

                                                      -

                                                      - SDLDebugToolConsole +

                                                      + SDLIAPSessionDelegate

                                                      Undocumented

                                                      - See more + See more -

                                                      - SDLIAPSessionDelegate +

                                                      + SDLLogTarget

                                                      Undocumented

                                                      - See more + See more @@ -156,18 +155,6 @@

                                                      -

                                                      - SDLRequestHandler -

                                                      - -

                                                      Undocumented

                                                      - - See more - - - - -

                                                      SDLSecurityType

                                                      diff --git a/docs/Protocols/SDLLogTarget.html b/docs/Protocols/SDLLogTarget.html new file mode 100644 index 000000000..39d8813cc --- /dev/null +++ b/docs/Protocols/SDLLogTarget.html @@ -0,0 +1,99 @@ +

                                                      SDLLogTarget Protocol Reference

                                                      + +

                                                      Section Contents

                                                      + + + +

                                                      Overview

                                                      + +

                                                      Undocumented

                                                      + + +
                                                      +

                                                      + +logger +

                                                      + +

                                                      A simple convenience initializer to create the object. This should not start up the logger.

                                                      + + + +

                                                      Objective-C

                                                      +
                                                      + (nonnull id<SDLLogTarget>)logger;
                                                      + + +

                                                      Swift

                                                      +
                                                      static func logger() -> SDLLogTarget
                                                      + + + +
                                                      +

                                                      Return Value

                                                      +

                                                      An instance of the logger.

                                                      +
                                                      + +

                                                      + -setupLogger +

                                                      + +

                                                      A call to setup the logger in whatever manner it needs to do so.

                                                      + + + +

                                                      Objective-C

                                                      +
                                                      - (BOOL)setupLogger;
                                                      + + +

                                                      Swift

                                                      +
                                                      func setupLogger() -> Bool
                                                      + + + +
                                                      +

                                                      Return Value

                                                      +

                                                      Whether or not the logger set up correctly.

                                                      +
                                                      + +

                                                      + -logWithLog:formattedLog: +

                                                      + +

                                                      Log a particular log using the model and the formatted log message to the target.

                                                      + + + +

                                                      Objective-C

                                                      +
                                                      - (void)logWithLog:(nonnull SDLLogModel *)log
                                                      +      formattedLog:(nonnull NSString *)stringLog;
                                                      + + +

                                                      Swift

                                                      +
                                                      func log(withLog log: SDLLogModel, formattedLog stringLog: String)
                                                      + + + +

                                                      Parameters

                                                      +
                                                      +
                                                      log
                                                      +

                                                      The log model, if you can log additional data, such as the log level, use this

                                                      +
                                                      stringLog
                                                      +

                                                      The formatted message

                                                      +
                                                      + +

                                                      + -teardownLogger +

                                                      + +

                                                      Undocumented

                                                      + + + + + + +
                                                      diff --git a/docs/Protocols/SDLManagerDelegate.html b/docs/Protocols/SDLManagerDelegate.html index d90b37f3a..1dd0851b7 100644 --- a/docs/Protocols/SDLManagerDelegate.html +++ b/docs/Protocols/SDLManagerDelegate.html @@ -5,6 +5,8 @@

                                                      Section Contents

                                                      Overview

                                                      @@ -40,12 +42,12 @@

                                                      Objective-C

                                                      -
                                                      - (void)hmiLevel:(nonnull SDLHMILevel *)oldLevel
                                                      -    didChangeToLevel:(nonnull SDLHMILevel *)newLevel;
                                                      +
                                                      - (void)hmiLevel:(nonnull SDLHMILevel)oldLevel
                                                      +    didChangeToLevel:(nonnull SDLHMILevel)newLevel;

                                                      Swift

                                                      -
                                                      func hmiLevel(_ oldLevel: SDLHMILevel, didChangeTo newLevel: SDLHMILevel)
                                                      +
                                                      func hmiLevel(_ oldLevel: SDLHMILevel, didChangeToLevel newLevel: SDLHMILevel)
                                                      @@ -57,4 +59,56 @@

                                                      Parameters

                                                      The current level.

                                                      +

                                                      + -audioStreamingState:didChangeToState: +

                                                      + +

                                                      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.

                                                      + + + +

                                                      Objective-C

                                                      +
                                                      - (void)audioStreamingState:(nullable SDLAudioStreamingState)oldState
                                                      +           didChangeToState:(nonnull SDLAudioStreamingState)newState;
                                                      + + +

                                                      Swift

                                                      +
                                                      optional func audioStreamingState(_ oldState: SDLAudioStreamingState?, didChangeToState newState: SDLAudioStreamingState)
                                                      + + + +

                                                      Parameters

                                                      +
                                                      +
                                                      oldState
                                                      +

                                                      The previous state which has now been left.

                                                      +
                                                      newState
                                                      +

                                                      The current state.

                                                      +
                                                      + +

                                                      + -systemContext:didChangeToContext: +

                                                      + +

                                                      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.

                                                      + + + +

                                                      Objective-C

                                                      +
                                                      - (void)systemContext:(nullable SDLSystemContext)oldContext
                                                      +    didChangeToContext:(nonnull SDLSystemContext)newContext;
                                                      + + +

                                                      Swift

                                                      +
                                                      optional func systemContext(_ oldContext: SDLSystemContext?, didChangeToContext newContext: SDLSystemContext)
                                                      + + + +

                                                      Parameters

                                                      +
                                                      +
                                                      oldContext
                                                      +

                                                      The previous context which has now been left.

                                                      +
                                                      newContext
                                                      +

                                                      The current context.

                                                      +
                                                      +
                                                      diff --git a/docs/Protocols/SDLProtocolListener.html b/docs/Protocols/SDLProtocolListener.html index dd97bd845..07cbfcba6 100644 --- a/docs/Protocols/SDLProtocolListener.html +++ b/docs/Protocols/SDLProtocolListener.html @@ -7,11 +7,6 @@

                                                      Section Contents

                                                    • -handleProtocolStartServiceNAKMessage:
                                                    • -handleProtocolEndServiceACKMessage:
                                                    • -handleProtocolEndServiceNAKMessage:
                                                    • -
                                                    • -handleProtocolStartSessionACK:sessionID:version:
                                                    • -
                                                    • -handleProtocolStartSessionACK:
                                                    • -
                                                    • -handleProtocolStartSessionNACK:
                                                    • -
                                                    • -handleProtocolEndSessionACK:
                                                    • -
                                                    • -handleProtocolEndSessionNACK:
                                                    • -handleHeartbeatForSession:
                                                    • -handleHeartbeatACK
                                                    • -onProtocolMessageReceived:
                                                    • @@ -70,61 +65,6 @@

                                                      -

                                                      - -handleProtocolStartSessionACK:sessionID:version: -

                                                      - -

                                                      Undocumented

                                                      - - - - - - -

                                                      - -handleProtocolStartSessionACK: -

                                                      - -

                                                      Undocumented

                                                      - - - - - - -

                                                      - -handleProtocolStartSessionNACK: -

                                                      - -

                                                      Undocumented

                                                      - - - - - - -

                                                      - -handleProtocolEndSessionACK: -

                                                      - -

                                                      Undocumented

                                                      - - - - - - -

                                                      - -handleProtocolEndSessionNACK: -

                                                      - -

                                                      Undocumented

                                                      - - - - - -

                                                      -handleHeartbeatForSession:

                                                      diff --git a/docs/Protocols/SDLProxyListener.html b/docs/Protocols/SDLProxyListener.html index 7555a1df7..3fdfc9f2d 100644 --- a/docs/Protocols/SDLProxyListener.html +++ b/docs/Protocols/SDLProxyListener.html @@ -11,6 +11,7 @@

                                                      Section Contents

                                                    • -onAddSubMenuResponse:
                                                    • -onAlertManeuverResponse:
                                                    • -onAlertResponse:
                                                    • +
                                                    • -onButtonPressResponse:
                                                    • -onChangeRegistrationResponse:
                                                    • -onCreateInteractionChoiceSetResponse:
                                                    • -onDeleteCommandResponse:
                                                    • @@ -24,6 +25,7 @@

                                                      Section Contents

                                                    • -onError:
                                                    • -onGenericResponse:
                                                    • -onGetDTCsResponse:
                                                    • +
                                                    • -onGetInteriorVehicleDataResponse:
                                                    • -onGetSystemCapabilityResponse:
                                                    • -onGetVehicleDataResponse:
                                                    • -onGetWayPointsResponse:
                                                    • @@ -36,6 +38,7 @@

                                                      Section Contents

                                                    • -onOnCommand:
                                                    • -onOnEncodedSyncPData:
                                                    • -onOnHashChange:
                                                    • +
                                                    • -onOnInteriorVehicleData:
                                                    • -onOnKeyboardInput:
                                                    • -onOnLanguageChange:
                                                    • -onOnLockScreenNotification:
                                                    • @@ -58,6 +61,7 @@

                                                      Section Contents

                                                    • -onSetAppIconResponse:
                                                    • -onSetDisplayLayoutResponse:
                                                    • -onSetGlobalPropertiesResponse:
                                                    • +
                                                    • -onSetInteriorVehicleDataResponse:
                                                    • -onSetMediaClockTimerResponse:
                                                    • -onShowConstantTBTResponse:
                                                    • -onShowResponse:
                                                    • @@ -168,6 +172,17 @@

                                                      +

                                                      + -onButtonPressResponse: +

                                                      + +

                                                      Undocumented

                                                      + + + + + +

                                                      -onChangeRegistrationResponse:

                                                      @@ -311,6 +326,17 @@

                                                      +

                                                      + -onGetInteriorVehicleDataResponse: +

                                                      + +

                                                      Undocumented

                                                      + + + + + +

                                                      -onGetSystemCapabilityResponse:

                                                      @@ -443,6 +469,17 @@

                                                      +

                                                      + -onOnInteriorVehicleData: +

                                                      + +

                                                      Undocumented

                                                      + + + + + +

                                                      -onOnKeyboardInput:

                                                      @@ -685,6 +722,17 @@

                                                      +

                                                      + -onSetInteriorVehicleDataResponse: +

                                                      + +

                                                      Undocumented

                                                      + + + + + +

                                                      -onSetMediaClockTimerResponse:

                                                      diff --git a/docs/Protocols/SDLRequestHandler.html b/docs/Protocols/SDLRequestHandler.html deleted file mode 100644 index a86a11484..000000000 --- a/docs/Protocols/SDLRequestHandler.html +++ /dev/null @@ -1,63 +0,0 @@ -

                                                      SDLRequestHandler Protocol Reference

                                                      - -

                                                      Section Contents

                                                      - - - -

                                                      Overview

                                                      - -

                                                      Undocumented

                                                      - - -
                                                      -

                                                      - handler -

                                                      - -

                                                      The handler that is added to any RPC implementing this protocol.

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      @property (readwrite, copy, nonatomic)
                                                      -    SDLRPCNotificationHandler _Nonnull handler;
                                                      - - -

                                                      Swift

                                                      -
                                                      var handler: SDLRPCNotificationHandler { get set }
                                                      - - - - -

                                                      - -initWithHandler: -

                                                      - -

                                                      A special init function on any RPC implementing this protocol.

                                                      - - - -

                                                      Objective-C

                                                      -
                                                      - (nonnull instancetype)initWithHandler:
                                                      -    (nonnull SDLRPCNotificationHandler)handler;
                                                      - - -

                                                      Swift

                                                      -
                                                      init(handler: @escaping SDLRPCNotificationHandler)
                                                      - - - -

                                                      Parameters

                                                      -
                                                      -
                                                      handler
                                                      -

                                                      The handler to be called at specified times, such as events for buttons.

                                                      -
                                                      -
                                                      -

                                                      Return Value

                                                      -

                                                      An instance of the class implementing this protocol.

                                                      -
                                                      - -
                                                      diff --git a/docs/Protocols/SDLTouchManagerDelegate.html b/docs/Protocols/SDLTouchManagerDelegate.html index f464c9952..53dc3a71a 100644 --- a/docs/Protocols/SDLTouchManagerDelegate.html +++ b/docs/Protocols/SDLTouchManagerDelegate.html @@ -3,14 +3,17 @@

                                                      SDLTouchManagerDelegate Protocol Reference

                                                      Section Contents

                                                      Overview

                                                      @@ -19,84 +22,89 @@

                                                      Overview

                                                      -

                                                      - -touchManager:didReceiveSingleTapAtPoint: +

                                                      + -touchManager:didReceiveSingleTapForView:atPoint:

                                                      -

                                                      @abstract - Single tap was received.

                                                      +

                                                      A single tap was received

                                                      Objective-C

                                                      - (void)touchManager:(nonnull SDLTouchManager *)manager
                                                      -    didReceiveSingleTapAtPoint:(CGPoint)point;
                                                      + didReceiveSingleTapForView:(UIView *_Nullable)view + atPoint:(CGPoint)point;

                                                  Swift

                                                  -
                                                  optional func touchManager(_ manager: SDLTouchManager, didReceiveSingleTapAt point: CGPoint)
                                                  +
                                                  optional func touchManager(_ manager: SDLTouchManager, didReceiveSingleTapFor view: UIView?, at point: CGPoint)

                                                  Parameters

                                                  manager
                                                  -

                                                  Current initalized SDLTouchManager issuing the callback.

                                                  +

                                                  The SDLTouchManager issuing the callback

                                                  +
                                                  view
                                                  +

                                                  The view under the touch if it could be determined

                                                  point
                                                  -

                                                  Location of the single tap in the head unit’s coordinate system.

                                                  +

                                                  The point at which the touch occurred in the head unit’s coordinate system

                                                  -

                                                  - -touchManager:didReceiveDoubleTapAtPoint: +

                                                  + -touchManager:didReceiveDoubleTapForView:atPoint:

                                                  -

                                                  @abstract - Double tap was received.

                                                  +

                                                  A double tap was received

                                                  Objective-C

                                                  - (void)touchManager:(nonnull SDLTouchManager *)manager
                                                  -    didReceiveDoubleTapAtPoint:(CGPoint)point;
                                                  + didReceiveDoubleTapForView:(UIView *_Nullable)view + atPoint:(CGPoint)point;

                                Swift

                                -
                                optional func touchManager(_ manager: SDLTouchManager, didReceiveDoubleTapAt point: CGPoint)
                                +
                                optional func touchManager(_ manager: SDLTouchManager, didReceiveDoubleTapFor view: UIView?, at point: CGPoint)

                                Parameters

                                manager
                                -

                                Current initalized SDLTouchManager issuing the callback.

                                +

                                The SDLTouchManager issuing the callback

                                +
                                view
                                +

                                The view under the touch if it could be determined

                                point
                                -

                                Location of the double tap in the head unit’s coordinate system. This is the -average of the first and second tap.

                                +

                                Location of the double tap in the head unit’s coordinate system. This is the average of the first and second tap.

                                -

                                - -touchManager:panningDidStartAtPoint: +

                                + -touchManager:panningDidStartInView:atPoint:

                                -

                                @abstract - Panning did start.

                                +

                                Panning started

                                Objective-C

                                - (void)touchManager:(nonnull SDLTouchManager *)manager
                                -    panningDidStartAtPoint:(CGPoint)point;
                                + panningDidStartInView:(UIView *_Nullable)view + atPoint:(CGPoint)point;

                                Swift

                                -
                                optional func touchManager(_ manager: SDLTouchManager, panningDidStartAt point: CGPoint)
                                +
                                optional func touchManager(_ manager: SDLTouchManager, panningDidStartIn view: UIView?, at point: CGPoint)

                                Parameters

                                manager
                                -

                                Current initalized SDLTouchManager issuing the callback.

                                +

                                The SDLTouchManager issuing the callback

                                +
                                view
                                +

                                The view under where the panning started if it could be determined

                                point

                                Location of the panning start point in the head unit’s coordinate system.

                                @@ -105,8 +113,7 @@

                                -touchManager:didReceivePanningFromPoint:toPoint:

                                -

                                @abstract - Panning did move.

                                +

                                Panning moved between points

                                @@ -124,65 +131,95 @@

                                Swift

                                Parameters

                                manager
                                -

                                Current initalized SDLTouchManager issuing the callback.

                                +

                                The SDLTouchManager issuing the callback

                                fromPoint
                                -

                                Location of the panning’s previous point in the head unit’s coordinate system.

                                +

                                Location of the panning’s previous point in the head unit’s coordinate system

                                toPoint
                                -

                                Location of the panning’s new point in the head unit’s coordinate system.

                                +

                                Location of the panning’s new point in the head unit’s coordinate system

                                -

                                - -touchManager:panningDidEndAtPoint: +

                                + -touchManager:panningDidEndInView:atPoint:

                                -

                                @abstract - Panning did end.

                                +

                                Panning ended

                                Objective-C

                                - (void)touchManager:(nonnull SDLTouchManager *)manager
                                -    panningDidEndAtPoint:(CGPoint)point;
                                + panningDidEndInView:(UIView *_Nullable)view + atPoint:(CGPoint)point;

                                Swift

                                -
                                optional func touchManager(_ manager: SDLTouchManager, panningDidEndAt point: CGPoint)
                                +
                                optional func touchManager(_ manager: SDLTouchManager, panningDidEndIn view: UIView?, at point: CGPoint)

                                Parameters

                                manager
                                -

                                Current initalized SDLTouchManager issuing the callback.

                                +

                                The SDLTouchManager issuing the callback

                                +
                                view
                                +

                                The view under where the panning ended if it could be determined

                                point
                                -

                                Location of the panning’s end point in the head unit’s coordinate system.

                                +

                                Location of the panning’s end point in the head unit’s coordinate system

                                -

                                - -touchManager:pinchDidStartAtCenterPoint: +

                                + -touchManager:panningCanceledAtPoint:

                                -

                                @abstract - Pinch did start.

                                +

                                Panning canceled

                                Objective-C

                                - (void)touchManager:(nonnull SDLTouchManager *)manager
                                -    pinchDidStartAtCenterPoint:(CGPoint)point;
                                + panningCanceledAtPoint:(CGPoint)point;

                                Swift

                                -
                                optional func touchManager(_ manager: SDLTouchManager, pinchDidStartAtCenter point: CGPoint)
                                +
                                optional func touchManager(_ manager: SDLTouchManager, panningCanceledAt point: CGPoint)

                                Parameters

                                manager
                                -

                                Current initalized SDLTouchManager issuing the callback.

                                +

                                The SDLTouchManager issuing the callback

                                point
                                -

                                Center point of the pinch in the head unit’s coordinate system.

                                +

                                Location of the panning’s end point in the head unit’s coordinate system

                                +
                                + +

                                + -touchManager:pinchDidStartInView:atCenterPoint: +

                                + +

                                Pinch did start

                                + + + +

                                Objective-C

                                +
                                - (void)touchManager:(nonnull SDLTouchManager *)manager
                                +    pinchDidStartInView:(UIView *_Nullable)view
                                +          atCenterPoint:(CGPoint)point;
                                + + +

                                Swift

                                +
                                optional func touchManager(_ manager: SDLTouchManager, pinchDidStartIn view: UIView?, atCenter point: CGPoint)
                                + + + +

                                Parameters

                                +
                                +
                                manager
                                +

                                The SDLTouchManager issuing the callback

                                +
                                view
                                +

                                The view under the center of the pinch start

                                +
                                point
                                +

                                Center point of the pinch in the head unit’s coordinate system

                                @@ -215,31 +252,91 @@

                                Parameters

                                Scale relative to the distance between touch points.

                                -

                                - -touchManager:pinchDidEndAtCenterPoint: +

                                + -touchManager:didReceivePinchInView:atCenterPoint:withScale:

                                -

                                @abstract - Pinch did end.

                                +

                                Pinch moved and changed scale

                                Objective-C

                                - (void)touchManager:(nonnull SDLTouchManager *)manager
                                -    pinchDidEndAtCenterPoint:(CGPoint)point;
                                + didReceivePinchInView:(UIView *_Nullable)view + atCenterPoint:(CGPoint)point + withScale:(CGFloat)scale;

                                Swift

                                -
                                optional func touchManager(_ manager: SDLTouchManager, pinchDidEndAtCenter point: CGPoint)
                                +
                                optional func touchManager(_ manager: SDLTouchManager, didReceivePinchIn view: UIView?, atCenter point: CGPoint, withScale scale: CGFloat)

                                Parameters

                                manager
                                -

                                Current initalized SDLTouchManager issuing the callback.

                                +

                                The SDLTouchManager issuing the callback

                                +
                                view
                                +

                                The view under the center of the pinch

                                point
                                -

                                Center point of the pinch in the head unit’s coordinate system.

                                +

                                Center point of the pinch in the head unit’s coordinate system

                                +
                                scale
                                +

                                Scale relative to the distance between touch points

                                +
                                + +

                                + -touchManager:pinchDidEndInView:atCenterPoint: +

                                + +

                                Pinch did end

                                + + + +

                                Objective-C

                                +
                                - (void)touchManager:(nonnull SDLTouchManager *)manager
                                +    pinchDidEndInView:(UIView *_Nullable)view
                                +        atCenterPoint:(CGPoint)point;
                                + + +

                                Swift

                                +
                                optional func touchManager(_ manager: SDLTouchManager, pinchDidEndIn view: UIView?, atCenter point: CGPoint)
                                + + + +

                                Parameters

                                +
                                +
                                manager
                                +

                                The SDLTouchManager issuing the callback

                                +
                                view
                                +

                                The view under the center of the pinch

                                +
                                point
                                +

                                Center point of the pinch in the head unit’s coordinate system

                                +
                                + +

                                + -touchManager:pinchCanceledAtCenterPoint: +

                                + +

                                Pinch canceled

                                + + + +

                                Objective-C

                                +
                                - (void)touchManager:(nonnull SDLTouchManager *)manager
                                +    pinchCanceledAtCenterPoint:(CGPoint)point;
                                + + +

                                Swift

                                +
                                optional func touchManager(_ manager: SDLTouchManager, pinchCanceledAtCenter point: CGPoint)
                                + + + +

                                Parameters

                                +
                                +
                                manager
                                +

                                The SDLTouchManager issuing the callback

                                +
                                point
                                +

                                Center point of the pinch in the head unit’s coordinate system

                                diff --git a/docs/Type Definitions.html b/docs/Type Definitions.html index 55f1bb02a..de66f0281 100644 --- a/docs/Type Definitions.html +++ b/docs/Type Definitions.html @@ -3,21 +3,107 @@

                                Type Definitions Reference

                                Section Contents

                                Overview

                                @@ -26,19 +112,1462 @@

                                Overview

                                +

                                + SDLAmbientLightStatus +

                                + +

                                Reflects the status of the ambient light sensor +@since SDL 3.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLAmbientLightStatus
                                + + +

                                Swift

                                +
                                struct SDLAmbientLightStatus : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLAppHMIType +

                                + +

                                Enumeration listing possible app hmi types.

                                + +

                                @since SDL 2.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLAppHMIType
                                + + +

                                Swift

                                +
                                struct SDLAppHMIType : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLAppInterfaceUnregisteredReason +

                                + +

                                Indicates reason why app interface was unregistered. The application is being disconnected by SDL.

                                + +

                                @since SDL 1.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLAppInterfaceUnregisteredReason
                                + + +

                                Swift

                                +
                                struct SDLAppInterfaceUnregisteredReason : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLAudioStreamingState +

                                + +

                                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

                                + +

                                @since SDL 1.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLAudioStreamingState
                                + + +

                                Swift

                                +
                                struct SDLAudioStreamingState : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLAudioType +

                                + +

                                Describes different audio type options for PerformAudioPassThru

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLAudioType
                                + + +

                                Swift

                                +
                                struct SDLAudioType : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLBitsPerSample +

                                + +

                                Describes different bit depth options for PerformAudioPassThru

                                + +

                                @since SDL 2.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLBitsPerSample
                                + + +

                                Swift

                                +
                                struct SDLBitsPerSample : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLButtonEventMode +

                                + +

                                Indicates whether the button was depressed or released. A BUTTONUP event will always be preceded by a BUTTONDOWN event.

                                + +

                                @since SDL 1.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLButtonEventMode
                                + + +

                                Swift

                                +
                                struct SDLButtonEventMode : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLButtonName +

                                + +

                                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.

                                + +

                                The preset buttons (0-9) can typically be interpreted by the application as + corresponding to some user-configured choices, though the application is free + to interpret these button presses as it sees fit.

                                + +

                                The application can discover which buttons a given SDL unit implements by + interrogating the ButtonCapabilities parameter of the + RegisterAppInterface response.

                                + +

                                @since SDL 1.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLButtonName
                                + + +

                                Swift

                                +
                                struct SDLButtonName : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLButtonPressMode +

                                + +

                                Indicates whether this is a LONG or SHORT button press

                                + +

                                @since SDL 1.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLButtonPressMode
                                + + +

                                Swift

                                +
                                struct SDLButtonPressMode : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLCarModeStatus +

                                + +

                                Describes the carmode the vehicle is in.

                                + +
                                  +
                                • Since SmartDeviceLink 2.0
                                • +
                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLCarModeStatus
                                + + +

                                Swift

                                +
                                struct SDLCarModeStatus : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLCharacterSet +

                                + +

                                Character sets supported by SDL.

                                + +

                                @since SDL 1.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLCharacterSet
                                + + +

                                Swift

                                +
                                struct SDLCharacterSet : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLCompassDirection +

                                + +

                                The list of potential compass directions.

                                + +

                                @since SDL 2.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLCompassDirection
                                + + +

                                Swift

                                +
                                struct SDLCompassDirection : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLComponentVolumeStatus +

                                + +

                                The volume status of a vehicle component.

                                + +

                                @since SDL 2.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLComponentVolumeStatus
                                + + +

                                Swift

                                +
                                struct SDLComponentVolumeStatus : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLDefrostZone +

                                + +

                                Enumeration listing possible defrost zones.

                                + +

                                @since SDL 2.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLDefrostZone
                                + + +

                                Swift

                                +
                                struct SDLDefrostZone : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLDeliveryMode +

                                + +

                                Specifies the mode in which the sendLocation request is sent.

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLDeliveryMode
                                + + +

                                Swift

                                +
                                struct SDLDeliveryMode : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLDeviceLevelStatus +

                                + +

                                Reflects the reported battery status of the connected device, if reported.

                                + +

                                @since SDL 2.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLDeviceLevelStatus
                                + + +

                                Swift

                                +
                                struct SDLDeviceLevelStatus : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLDimension +

                                + +

                                The supported dimensions of the GPS.

                                + +

                                @since SDL 2.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLDimension
                                + + +

                                Swift

                                +
                                struct SDLDimension : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLDisplayType +

                                + +

                                Identifies the various display types used by SDL.

                                + +

                                @since SDL 1.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLDisplayType
                                + + +

                                Swift

                                +
                                struct SDLDisplayType : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLDriverDistractionState +

                                + +

                                Enumeration that describes possible states of driver distraction.

                                + +

                                @since SDL 1.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLDriverDistractionState
                                + + +

                                Swift

                                +
                                struct SDLDriverDistractionState : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLECallConfirmationStatus +

                                + +

                                Reflects the status of the eCall Notification. + *Since SmartDeviceLink 2.0 +

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLECallConfirmationStatus
                                + + +

                                Swift

                                +
                                struct SDLECallConfirmationStatus : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLEmergencyEventType +

                                + +

                                Reflects the emergency event status of the vehicle. + * Since: SmartDeviceLink 2.0 + *

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLEmergencyEventType
                                + + +

                                Swift

                                +
                                struct SDLEmergencyEventType : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLEnum +

                                + +

                                Undocumented

                                + + + + + +

                                SDLFileName

                                -

                                Undocumented

                                +

                                Undocumented

                                + + + + + + +

                                + SDLFileManagerStartupCompletionHandler +

                                + +

                                Undocumented

                                + + + + + + +

                                + SDLFileManagerUploadCompletionHandler +

                                + +

                                A completion handler called after a response from Core to a upload request.

                                + + + +

                                Objective-C

                                +
                                typedef void (^SDLFileManagerUploadCompletionHandler)(BOOL, NSUInteger,
                                +                                                      NSError *_Nullable)
                                + + +

                                Swift

                                +
                                typealias SDLFileManagerUploadCompletionHandler = (Bool, UInt, Error?) -> Void
                                + + + +

                                Parameters

                                +
                                +
                                success
                                +

                                Whether or not the upload was successful

                                +
                                bytesAvailable
                                +

                                The amount of space left for files on Core

                                +
                                error
                                +

                                The error that occurred during the request if one occurred, nil if no error occured

                                +
                                + +

                                + SDLFileManagerMultiUploadCompletionHandler +

                                + +

                                A completion handler called after a set of upload requests has completed.

                                + + + +

                                Objective-C

                                +
                                typedef void (^SDLFileManagerMultiUploadCompletionHandler)(NSError *_Nullable)
                                + + +

                                Swift

                                +
                                typealias SDLFileManagerMultiUploadCompletionHandler = (Error?) -> Void
                                + + + +

                                Parameters

                                +
                                +
                                error
                                +

                                The userInfo dictionary property, of type , contains information on all failed uploads. The key is the name of the file that did not upload properly, the value is an error describing what went wrong on that particular upload attempt. If all files are uploaded successfully, nil is returned

                                +
                                + +

                                + SDLFileManagerMultiUploadProgressHandler +

                                + +

                                In a multiple request send, a handler called after each response from Core to a upload request.

                                + + + +

                                Objective-C

                                +
                                typedef BOOL (^SDLFileManagerMultiUploadProgressHandler)(SDLFileName *_Nonnull,
                                +                                                         float,
                                +                                                         NSError *_Nullable)
                                + + +

                                Swift

                                +
                                typealias SDLFileManagerMultiUploadProgressHandler = (String, Float, Error?) -> Bool
                                + + + +

                                Parameters

                                +
                                +
                                fileName
                                +

                                The name of the file that received a response from SDL Core

                                +
                                uploadPercentage
                                +

                                The percentage of uploaded data. The upload percentage is calculated as the total file size of all attempted file uploads (regardless of the successfulness of the upload) divided by the sum of the data in all the files

                                +
                                error
                                +

                                The error that occurred during the request if one occurred, nil if no error occured

                                +
                                +
                                +

                                Return Value

                                +

                                Return NO to cancel any requests that have not yet been sent. Return YES to continue sending requests

                                +
                                + +

                                + SDLFileManagerDeleteCompletionHandler +

                                + +

                                A completion handler called after a response from Core to a delete request.

                                + + + +

                                Objective-C

                                +
                                typedef void (^SDLFileManagerDeleteCompletionHandler)(BOOL, NSUInteger,
                                +                                                      NSError *_Nullable)
                                + + +

                                Swift

                                +
                                typealias SDLFileManagerDeleteCompletionHandler = (Bool, UInt, Error?) -> Void
                                + + + +

                                Parameters

                                +
                                +
                                success
                                +

                                Whether or not the delete was successful

                                +
                                bytesAvailable
                                +

                                The amount of space left for files on Core

                                +
                                error
                                +

                                The error that occurred during the request if one occurred, nil if no error occured

                                +
                                + +

                                + SDLFileManagerMultiDeleteCompletionHandler +

                                + +

                                A completion handler called after a set of delete requests has completed.

                                + + + +

                                Objective-C

                                +
                                typedef void (^SDLFileManagerMultiDeleteCompletionHandler)(NSError *_Nullable)
                                + + +

                                Swift

                                +
                                typealias SDLFileManagerMultiDeleteCompletionHandler = (Error?) -> Void
                                + + + +

                                Parameters

                                +
                                +
                                error
                                +

                                The userInfo dictionary property, of type , will return information on all failed deletes. The key is the name of the file that did not delete properly, the value is an error describing what went wrong on that particular delete attempt. If all files are deleted successfully, nil is returned

                                +
                                + +

                                + SDLFileManagerListFilesCompletionHandler +

                                + +

                                A completion handler called after response from Core to a list files request.

                                + + + +

                                Objective-C

                                +
                                typedef void (^SDLFileManagerListFilesCompletionHandler)(
                                +    BOOL, NSUInteger, NSArray<NSString *> *_Nonnull, NSError *_Nullable)
                                + + +

                                Swift

                                +
                                typealias SDLFileManagerListFilesCompletionHandler = (Bool, UInt, [String], Error?) -> Void
                                + + + +

                                Parameters

                                +
                                +
                                success
                                +

                                Whether or not the list files request was successful

                                +
                                bytesAvailable
                                +

                                The amount of space available for files on Core

                                +
                                fileNames
                                +

                                The names of the files stored on SDL Core

                                +
                                error
                                +

                                The error that occurred during the request if one occurred, nil if no error occured

                                +
                                + +

                                + SDLFileType +

                                + +

                                Enumeration listing possible file types.

                                + +

                                @since SDL 2.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLFileType
                                + + +

                                Swift

                                +
                                struct SDLFileType : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLFuelCutoffStatus +

                                + +

                                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.

                                + +

                                @since SDL 2.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLFuelCutoffStatus
                                + + +

                                Swift

                                +
                                struct SDLFuelCutoffStatus : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLGlobalProperty +

                                + +

                                Properties of a user-initiated VR interaction (i.e. interactions started by the user pressing the PTT button).

                                + +

                                @since SDL 1.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLGlobalProperty
                                + + +

                                Swift

                                +
                                struct SDLGlobalProperty : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLHMILevel +

                                + +

                                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 focus to other applications (e.g. phone, other mobile applications, etc.)

                                + +

                                @since SDL 1.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLHMILevel
                                + + +

                                Swift

                                +
                                struct SDLHMILevel : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLHMIZoneCapabilities +

                                + +

                                Specifies HMI Zones in the vehicle.

                                + +

                                @since SDL 1.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLHMIZoneCapabilities
                                + + +

                                Swift

                                +
                                struct SDLHMIZoneCapabilities : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLIgnitionStableStatus +

                                + +

                                Reflects the ignition switch stability.

                                + +

                                @since SDL 2.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLIgnitionStableStatus
                                + + +

                                Swift

                                +
                                struct SDLIgnitionStableStatus : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLIgnitionStatus +

                                + +

                                Reflects the status of ignition..

                                + +

                                @since SDL 2.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLIgnitionStatus
                                + + +

                                Swift

                                +
                                struct SDLIgnitionStatus : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLImageFieldName +

                                + +

                                The name that identifies the filed. + * + *

                                + +
                                  +
                                • @since SmartDeviceLink 3.0 +*
                                • +
                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLImageFieldName
                                + + +

                                Swift

                                +
                                struct SDLImageFieldName : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLImageType +

                                + +

                                Contains information about the type of image.

                                + +

                                @since SDL 2.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLImageType
                                + + +

                                Swift

                                +
                                struct SDLImageType : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLInteractionMode +

                                + +

                                For application-initiated interactions (SDLPerformInteraction), this specifies the mode by which the user is prompted and by which the user’s selection is indicated

                                + +

                                @since SDL 1.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLInteractionMode
                                + + +

                                Swift

                                +
                                struct SDLInteractionMode : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLKeyboardEvent +

                                + +

                                Enumeration listing possible keyboard events. + *

                                + +
                                  +
                                • @since SmartDeviceLink 3.0 +*
                                • +
                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLKeyboardEvent
                                + + +

                                Swift

                                +
                                struct SDLKeyboardEvent : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLKeyboardLayout +

                                + +

                                Enumeration listing possible keyboard layouts + * + *Since SmartDeviceLink 3.0 + *

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLKeyboardLayout
                                + + +

                                Swift

                                +
                                struct SDLKeyboardLayout : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLKeypressMode +

                                + +

                                Enumeration listing possible keyboard events.

                                + +
                                  +
                                • +
                                • Note: Depending on keypressMode value (from keyboardProperties structure of UI.SetGlobalProperties),
                                  HMI must send the onKeyboardInput notification with the following data:
                                  +SINGLE_KEYPRESS,QUEUE_KEYPRESSES,RESEND_CURRENT_ENTRY.
                                • +
                                • @since SmartDeviceLink 3.0 +*
                                • +
                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLKeypressMode
                                + + +

                                Swift

                                +
                                struct SDLKeypressMode : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLLanguage +

                                + +

                                Specifies the language to be used for TTS, VR, displayed messages/menus

                                + +

                                @since SDL 1.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLLanguage
                                + + +

                                Swift

                                +
                                struct SDLLanguage : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLLayoutMode +

                                + +

                                For touchscreen interactions, the mode of how the choices are presented.

                                + +

                                @since SDL 3.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLLayoutMode
                                + + +

                                Swift

                                +
                                struct SDLLayoutMode : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLLockScreenStatus +

                                + +

                                Undocumented

                                + + + + + + +

                                + SDLLogFilterBlock +

                                + +

                                A block that takes in a log model and returns whether or not the log passes the filter and should therefore be logged.

                                + + + +

                                Objective-C

                                +
                                typedef BOOL (^SDLLogFilterBlock)(SDLLogModel *_Nonnull)
                                + + +

                                Swift

                                +
                                typealias SDLLogFilterBlock = (SDLLogModel) -> Bool
                                + + + +

                                Parameters

                                +
                                +
                                log
                                +

                                The log model describing the log.

                                +
                                +
                                +

                                Return Value

                                +

                                Whether or not the log should be logged.

                                +
                                + +

                                + SDLMaintenanceModeStatus +

                                + +

                                The SDLMaintenanceModeStatus class.

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLMaintenanceModeStatus
                                + + +

                                Swift

                                +
                                struct SDLMaintenanceModeStatus : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLManagerReadyBlock +

                                + +

                                Undocumented

                                + + + + + + +

                                + SDLMediaClockFormat +

                                + +

                                Indicates the format of the time displayed on the connected SDL unit.

                                + +

                                Format description follows the following nomenclature:
                                + Sp = Space
                                + | = or
                                + c = character

                                + +

                                @since SDL 1.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLMediaClockFormat
                                + + +

                                Swift

                                +
                                struct SDLMediaClockFormat : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLMetadataType +

                                + +

                                Text Field Types

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLMetadataType
                                + + +

                                Swift

                                +
                                struct SDLMetadataType : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLModuleType +

                                + +

                                Undocumented

                                + + + + + + +

                                + SDLNotificationName +

                                + +

                                Undocumented

                                + + + + + + +

                                + SDLNotificationUserInfoKey +

                                + +

                                Undocumented

                                + + + + + + +

                                + SDLAudioPassThruHandler +

                                + +

                                A handler used on SDLPerformAudioPassThru.

                                + + + +

                                Objective-C

                                +
                                typedef void (^SDLAudioPassThruHandler)(NSData *_Nullable)
                                + + +

                                Swift

                                +
                                typealias SDLAudioPassThruHandler = (Data?) -> Void
                                + + + +

                                Parameters

                                +
                                +
                                audioData
                                +

                                The audio data contained in the notification.

                                +
                                + +

                                + SDLResponseHandler +

                                + +

                                A handler used on all RPC requests which fires when the response is received.

                                + + + +

                                Objective-C

                                +
                                typedef void (^SDLResponseHandler)(__kindof SDLRPCRequest *_Nullable,
                                +                                   __kindof SDLRPCResponse *_Nullable,
                                +                                   NSError *_Nullable)
                                + + +

                                Swift

                                +
                                typealias SDLResponseHandler = (SDLRPCRequest?, SDLRPCResponse?, Error?) -> Void
                                + + + +

                                Parameters

                                +
                                +
                                request
                                +

                                The request which was sent.

                                +
                                response
                                +

                                The response which was received.

                                +
                                error
                                +

                                If sending the request encountered an error, this parameter will not be nil.

                                +
                                + +

                                + SDLRPCButtonNotificationHandler +

                                + +

                                A handler that may optionally be run when an SDLSubscribeButton or SDLSoftButton has a corresponding notification occur.

                                +
                                +

                                Warning

                                + This only works if you send the RPC using SDLManager. + +
                                +
                                +

                                Warning

                                +

                                Only one of the two parameters will be set for each block call.

                                + +
                                + + + +

                                Objective-C

                                +
                                typedef void (^SDLRPCButtonNotificationHandler)(SDLOnButtonPress *_Nullable,
                                +                                                SDLOnButtonEvent *_Nullable)
                                + + +

                                Swift

                                +
                                typealias SDLRPCButtonNotificationHandler = (SDLOnButtonPress?, SDLOnButtonEvent?) -> Void
                                + + + +

                                Parameters

                                +
                                +
                                buttonPress
                                +

                                An SDLOnButtonPress object that corresponds to this particular button.

                                +
                                buttonEvent
                                +

                                An SDLOnButtonEvent object that corresponds to this particular button.

                                +
                                + +

                                + SDLRPCCommandNotificationHandler +

                                + +

                                A handler that may optionally be run when an SDLAddCommand has a corresponding notification occur.

                                +
                                +

                                Warning

                                +

                                This only works if you send the RPC using SDLManager.

                                + +
                                + + + +

                                Objective-C

                                +
                                typedef void (^SDLRPCCommandNotificationHandler)(SDLOnCommand *_Nonnull)
                                + + +

                                Swift

                                +
                                typealias SDLRPCCommandNotificationHandler = (SDLOnCommand) -> Void
                                + + + +

                                Parameters

                                +
                                +
                                command
                                +

                                An SDLOnCommand object that corresponds to this particular SDLAddCommand.

                                +
                                + +

                                + SDLPRNDL +

                                + +

                                The selected gear the car is in.

                                + +

                                @since SDL 2.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLPRNDL
                                + + +

                                Swift

                                +
                                struct SDLPRNDL : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLPermissionRPCName +

                                + +

                                Undocumented

                                + + + + + + +

                                + SDLPermissionObserverIdentifier +

                                + +

                                Undocumented

                                + + + + + + +

                                + SDLPermissionsChangedHandler +

                                + +

                                The PermissionObserver is a block that is passed in to some methods that will be stored and called when specified permissions change.

                                + + + +

                                Objective-C

                                +
                                typedef void (^SDLPermissionsChangedHandler)(
                                +    NSDictionary<SDLPermissionRPCName, NSNumber<SDLBool> *> *_Nonnull,
                                +    SDLPermissionGroupStatus)
                                + + +

                                Swift

                                +
                                typealias SDLPermissionsChangedHandler = ([String : NSNumber 
                                + + + +

                                Parameters

                                +
                                +
                                change
                                +

                                A dictionary of permission changes containing

                                +
                                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

                                +
                                + +

                                + SDLPermissionStatus +

                                + +

                                Enumeration that describes possible permission states of a policy table entry.

                                + +

                                @since SDL 2.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLPermissionStatus
                                + + +

                                Swift

                                +
                                struct SDLPermissionStatus : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLPowerModeQualificationStatus +

                                + +

                                Undocumented

                                + + + + + + +

                                + SDLPowerModeStatus +

                                + +

                                Undocumented

                                + + + + + + +

                                + SDLPredefinedLayout +

                                + +

                                Undocumented

                                + + + + + + +

                                + SDLPrerecordedSpeech +

                                + +

                                Undocumented

                                + + + + + + +

                                + SDLPrimaryAudioSource +

                                + +

                                Reflects the current primary audio source of SDL (if selected).

                                + +

                                @since SDL 2.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLPrimaryAudioSource
                                + + +

                                Swift

                                +
                                struct SDLPrimaryAudioSource : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLRadioBand +

                                + +

                                Undocumented

                                + + + + + + +

                                + SDLRadioState +

                                + +

                                List possible states of a remote control radio module.

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLRadioState
                                + + +

                                Swift

                                +
                                struct SDLRadioState : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLRequestType +

                                + +

                                Undocumented

                                + + + + + + +

                                + SDLResult +

                                + +

                                Defines the possible result codes returned by SDL to the application in a response to a requested operation

                                + +

                                @since SDL 1.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLResult
                                + + +

                                Swift

                                +
                                struct SDLResult : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLSamplingRate +

                                + +

                                Describes different sampling rates for PerformAudioPassThru

                                + +

                                @since SDL 2.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLSamplingRate
                                + + +

                                Swift

                                +
                                struct SDLSamplingRate : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLSoftButtonType +

                                + +

                                SoftButtonType (TEXT / IMAGE / BOTH)

                                +

                                Objective-C

                                +
                                typedef SDLEnum SDLSoftButtonType
                                + + +

                                Swift

                                +
                                struct SDLSoftButtonType : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + -

                                - SDLFileManagerStartupCompletionHandler +

                                + SDLSpeechCapabilities

                                Undocumented

                                @@ -48,8 +1577,64 @@

                                -

                                - SDLFileManagerUploadCompletionHandler +

                                + SDLSystemAction +

                                + +

                                Enumeration that describes system actions that can be triggered.

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLSystemAction
                                + + +

                                Swift

                                +
                                struct SDLSystemAction : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLSystemCapabilityType +

                                + +

                                The type of system capability to get more information on

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLSystemCapabilityType
                                + + +

                                Swift

                                +
                                struct SDLSystemCapabilityType : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLSystemContext +

                                + +

                                Indicates whether or not a user-initiated interaction is in progress, and if so, in what mode (i.e. MENU or VR).

                                + +

                                @since SDL 1.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLSystemContext
                                + + +

                                Swift

                                +
                                struct SDLSystemContext : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLTBTState

                                Undocumented

                                @@ -59,8 +1644,8 @@

                                -

                                - SDLFileManagerDeleteCompletionHandler +

                                + SDLTemperatureUnit

                                Undocumented

                                @@ -70,8 +1655,48 @@

                                -

                                - SDLFileManagerListFilesCompletionHandler +

                                + SDLTextAlignment +

                                + +

                                The list of possible alignments of text in a field. May only work on some display types.

                                + +

                                @since SDL 1.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLTextAlignment
                                + + +

                                Swift

                                +
                                struct SDLTextAlignment : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLTextFieldName +

                                + +

                                Names of the text fields that can appear on a SDL display.

                                + +

                                @since SDL 1.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLTextFieldName
                                + + +

                                Swift

                                +
                                struct SDLTextFieldName : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLTimerMode

                                Undocumented

                                @@ -81,19 +1706,20 @@

                                -

                                - SDLManagerReadyBlock +

                                + SDLTouchIdentifier

                                Undocumented

                                + See more -

                                - SDLNotificationName +

                                + SDLTouchEventHandler

                                Undocumented

                                @@ -103,8 +1729,8 @@

                                -

                                - SDLNotificationUserInfoKey +

                                + SDLTouchType

                                Undocumented

                                @@ -114,109 +1740,162 @@

                                -

                                - SDLRPCNotificationHandler +

                                + SDLTriggerSource

                                -

                                A handler used on certain RPCs, primarily buttons or commands, when an event occurs.

                                +

                                Indicates whether choice/command was selected via VR or via a menu selection (using SEEKRIGHT/SEEKLEFT, TUNEUP, TUNEDOWN, OK buttons)

                                + +

                                @since SDL 1.0

                                Objective-C

                                -
                                typedef void (^SDLRPCNotificationHandler)(__kindof SDLRPCNotification *_Nonnull)
                                +
                                typedef SDLEnum SDLTriggerSource

                                Swift

                                -
                                typealias SDLRPCNotificationHandler = (SDLRPCNotification) -> Void
                                +
                                struct SDLTriggerSource : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                -

                                Parameters

                                -
                                -
                                notification
                                -

                                The RPC Notification that was fired.

                                -
                                -

                                - SDLResponseHandler +

                                + SDLUpdateMode

                                -

                                A handler used on all RPC requests which fires when the response is received.

                                +

                                Specifies what function should be performed on the media clock/counter

                                + +

                                @since SDL 1.0

                                Objective-C

                                -
                                typedef void (^SDLResponseHandler)(__kindof SDLRPCRequest *_Nullable,
                                -                                   __kindof SDLRPCResponse *_Nullable,
                                -                                   NSError *_Nullable)
                                +
                                typedef SDLEnum SDLUpdateMode

                                Swift

                                -
                                typealias SDLResponseHandler = (SDLRPCRequest?, SDLRPCResponse?, Error?) -> Void
                                +
                                struct SDLUpdateMode : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                -

                                Parameters

                                -
                                -
                                request
                                -

                                The request which was sent.

                                -
                                response
                                -

                                The response which was received.

                                -
                                error
                                -

                                If sending the request encountered an error, this parameter will not be nil.

                                -
                                -

                                - SDLPermissionRPCName +

                                + SDLVehicleDataActiveStatus

                                -

                                Undocumented

                                +

                                Vehicle Data Activity Status

                                +

                                Objective-C

                                +
                                typedef SDLEnum SDLVehicleDataActiveStatus
                                + + +

                                Swift

                                +
                                struct SDLVehicleDataActiveStatus : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + -

                                - SDLPermissionObserverIdentifier +

                                + SDLVehicleDataEventStatus

                                -

                                Undocumented

                                +

                                Reflects the status of a vehicle data event; e.g. a seat belt event status.

                                +

                                @since SDL 2.0

                                + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLVehicleDataEventStatus
                                + +

                                Swift

                                +
                                struct SDLVehicleDataEventStatus : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + -

                                - SDLPermissionsChangedHandler +

                                + SDLVehicleDataNotificationStatus

                                -

                                The PermissionObserver is a block that is passed in to some methods that will be stored and called when specified permissions change.

                                +

                                Reflects the status of a vehicle data notification.

                                + +

                                @since SDL 2.0

                                Objective-C

                                -
                                typedef void (^SDLPermissionsChangedHandler)(
                                -    NSDictionary<SDLPermissionRPCName, NSNumber<SDLBool> *> *_Nonnull,
                                -    SDLPermissionGroupStatus)
                                +
                                typedef SDLEnum SDLVehicleDataNotificationStatus

                                Swift

                                -
                                typealias SDLPermissionsChangedHandler = ([String : NSNumber 
                                +
                                struct SDLVehicleDataNotificationStatus : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                -

                                Parameters

                                -
                                -
                                change
                                -

                                A dictionary of permission changes containing

                                -
                                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

                                -
                                -

                                - SDLStreamingStartBlock +

                                + SDLVehicleDataResultCode +

                                + +

                                Vehicle Data Result Code

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLVehicleDataResultCode
                                + + +

                                Swift

                                +
                                struct SDLVehicleDataResultCode : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLVehicleDataStatus +

                                + +

                                Reflects the status of a binary vehicle data item.

                                + +

                                @since SDL 2.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLVehicleDataStatus
                                + + +

                                Swift

                                +
                                struct SDLVehicleDataStatus : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLVehicleDataType +

                                + +

                                Defines the vehicle data types that can be published and/or subscribed to using SDLSubscribeVehicleData

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLVehicleDataType
                                + + +

                                Swift

                                +
                                struct SDLVehicleDataType : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLVentilationMode

                                Undocumented

                                @@ -226,8 +1905,84 @@

                                -

                                - SDLStreamingEncryptionStartBlock +

                                + SDLVideoStreamingCodec +

                                + +

                                Enum for each type of video streaming codec

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLVideoStreamingCodec
                                + + +

                                Swift

                                +
                                struct SDLVideoStreamingCodec : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLVideoStreamingProtocol +

                                + +

                                Enum for each type of video streaming protocol

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLVideoStreamingProtocol
                                + + +

                                Swift

                                +
                                struct SDLVideoStreamingProtocol : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLVRCapabilities +

                                + +

                                The VR capabilities of the connected SDL platform.

                                + +

                                @since SDL 1.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLVRCapabilities
                                + + +

                                Swift

                                +
                                struct SDLVRCapabilities : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLWarningLightStatus +

                                + +

                                Reflects the status of a cluster instrument warning light.

                                + +

                                @since SDL 2.0

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLWarningLightStatus
                                + + +

                                Swift

                                +
                                struct SDLWarningLightStatus : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + + +

                                + SDLWayPointType

                                Undocumented

                                @@ -237,4 +1992,22 @@

                                +

                                + SDLWiperStatus +

                                + +

                                Wiper Status

                                + + + +

                                Objective-C

                                +
                                typedef SDLEnum SDLWiperStatus
                                + + +

                                Swift

                                +
                                struct SDLWiperStatus : RawRepresentable, _SwiftNewtypeWrapper, Equatable, Hashable, _ObjectiveCBridgeable
                                + + + +
                                diff --git a/docs/Type Definitions/SDLTouchIdentifier.html b/docs/Type Definitions/SDLTouchIdentifier.html new file mode 100644 index 000000000..882696186 --- /dev/null +++ b/docs/Type Definitions/SDLTouchIdentifier.html @@ -0,0 +1,27 @@ +

                                SDLTouchIdentifier Type Definition Reference

                                + +

                                Section Contents

                                + +
                                  +
                                • +
                                + +

                                Overview

                                + +

                                Undocumented

                                + + +
                                +

                                + +

                                + +

                                Undocumented

                                + + See more + + + + + +
                                diff --git a/docs/Type Definitions/SDLTouchIdentifier/.html b/docs/Type Definitions/SDLTouchIdentifier/.html new file mode 100644 index 000000000..03468a407 --- /dev/null +++ b/docs/Type Definitions/SDLTouchIdentifier/.html @@ -0,0 +1,38 @@ +

                                Enum Reference

                                + +

                                Section Contents

                                + + + +

                                Overview

                                + +

                                Undocumented

                                + + +
                                +

                                + SDLTouchIdentifierFirstFinger +

                                + +

                                Undocumented

                                + + + + + + +

                                + SDLTouchIdentifierSecondFinger +

                                + +

                                Undocumented

                                + + + + + + +
                                diff --git a/docs/badge.svg b/docs/badge.svg index 88841a797..5cbd336ce 100644 --- a/docs/badge.svg +++ b/docs/badge.svg @@ -1 +1 @@ -documentationdocumentation54%54% \ No newline at end of file +documentationdocumentation59%59% \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index a37b691db..9a2e49fa8 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,3 +1,7 @@ +- name: Categories + sub_nav: + - name: NSString(SDLEnum) + url: Categories/NSString(SDLEnum).html - name: Classes sub_nav: - name: SDLAbstractProtocol @@ -7,11 +11,11 @@ - name: SDLAddCommand url: Classes/SDLAddCommand.html - name: SDLAddCommandResponse - url: Classes/SDLAddCommandResponse.html + url: Classes.html#/c:objc(cs)SDLAddCommandResponse - name: SDLAddSubMenu url: Classes/SDLAddSubMenu.html - name: SDLAddSubMenuResponse - url: Classes/SDLAddSubMenuResponse.html + url: Classes.html#/c:objc(cs)SDLAddSubMenuResponse - name: SDLAirbagStatus url: Classes/SDLAirbagStatus.html - name: SDLAlert @@ -19,73 +23,51 @@ - name: SDLAlertManeuver url: Classes/SDLAlertManeuver.html - name: SDLAlertManeuverResponse - url: Classes/SDLAlertManeuverResponse.html + url: Classes.html#/c:objc(cs)SDLAlertManeuverResponse - name: SDLAlertResponse url: Classes/SDLAlertResponse.html - - name: SDLAmbientLightStatus - url: Classes/SDLAmbientLightStatus.html - - name: SDLAppHMIType - url: Classes/SDLAppHMIType.html - name: SDLAppInfo url: Classes/SDLAppInfo.html - - name: SDLAppInterfaceUnregisteredReason - url: Classes/SDLAppInterfaceUnregisteredReason.html - name: SDLArtwork url: Classes/SDLArtwork.html - name: SDLAudioPassThruCapabilities url: Classes/SDLAudioPassThruCapabilities.html - - name: SDLAudioStreamingState - url: Classes/SDLAudioStreamingState.html - - name: SDLAudioType - url: Classes/SDLAudioType.html - name: SDLBeltStatus url: Classes/SDLBeltStatus.html - - name: SDLBitsPerSample - url: Classes/SDLBitsPerSample.html - name: SDLBodyInformation url: Classes/SDLBodyInformation.html - name: SDLButtonCapabilities url: Classes/SDLButtonCapabilities.html - - name: SDLButtonEventMode - url: Classes/SDLButtonEventMode.html - - name: SDLButtonName - url: Classes/SDLButtonName.html - - name: SDLButtonPressMode - url: Classes/SDLButtonPressMode.html - - name: SDLCarModeStatus - url: Classes/SDLCarModeStatus.html + - name: SDLButtonPress + url: Classes/SDLButtonPress.html + - name: SDLButtonPressResponse + url: Classes.html#/c:objc(cs)SDLButtonPressResponse - name: SDLChangeRegistration url: Classes/SDLChangeRegistration.html - name: SDLChangeRegistrationResponse - url: Classes/SDLChangeRegistrationResponse.html - - name: SDLCharacterSet - url: Classes/SDLCharacterSet.html + url: Classes.html#/c:objc(cs)SDLChangeRegistrationResponse - name: SDLChoice url: Classes/SDLChoice.html + - name: SDLClimateControlCapabilities + url: Classes/SDLClimateControlCapabilities.html + - name: SDLClimateControlData + url: Classes/SDLClimateControlData.html - name: SDLClusterModeStatus url: Classes/SDLClusterModeStatus.html - - name: SDLCompassDirection - url: Classes/SDLCompassDirection.html - - name: SDLComponentVolumeStatus - url: Classes/SDLComponentVolumeStatus.html - name: SDLConfiguration url: Classes/SDLConfiguration.html - - name: SDLConsoleController - url: Classes/SDLConsoleController.html - name: SDLCreateInteractionChoiceSet url: Classes/SDLCreateInteractionChoiceSet.html - name: SDLCreateInteractionChoiceSetResponse - url: Classes/SDLCreateInteractionChoiceSetResponse.html + url: Classes.html#/c:objc(cs)SDLCreateInteractionChoiceSetResponse - name: SDLDIDResult url: Classes/SDLDIDResult.html - name: SDLDateTime url: Classes/SDLDateTime.html - - name: SDLDebugTool - url: Classes/SDLDebugTool.html - name: SDLDeleteCommand url: Classes/SDLDeleteCommand.html - name: SDLDeleteCommandResponse - url: Classes/SDLDeleteCommandResponse.html + url: Classes.html#/c:objc(cs)SDLDeleteCommandResponse - name: SDLDeleteFile url: Classes/SDLDeleteFile.html - name: SDLDeleteFileResponse @@ -93,17 +75,13 @@ - name: SDLDeleteInteractionChoiceSet url: Classes/SDLDeleteInteractionChoiceSet.html - name: SDLDeleteInteractionChoiceSetResponse - url: Classes/SDLDeleteInteractionChoiceSetResponse.html + url: Classes.html#/c:objc(cs)SDLDeleteInteractionChoiceSetResponse - name: SDLDeleteSubMenu url: Classes/SDLDeleteSubMenu.html - name: SDLDeleteSubMenuResponse - url: Classes/SDLDeleteSubMenuResponse.html - - name: SDLDeliveryMode - url: Classes/SDLDeliveryMode.html + url: Classes.html#/c:objc(cs)SDLDeleteSubMenuResponse - name: SDLDeviceInfo url: Classes/SDLDeviceInfo.html - - name: SDLDeviceLevelStatus - url: Classes/SDLDeviceLevelStatus.html - name: SDLDeviceStatus url: Classes/SDLDeviceStatus.html - name: SDLDiagnosticMessage @@ -113,49 +91,37 @@ - name: SDLDialNumber url: Classes/SDLDialNumber.html - name: SDLDialNumberResponse - url: Classes/SDLDialNumberResponse.html - - name: SDLDimension - url: Classes/SDLDimension.html + url: Classes.html#/c:objc(cs)SDLDialNumberResponse - name: SDLDisplayCapabilities url: Classes/SDLDisplayCapabilities.html - - name: SDLDisplayType - url: Classes/SDLDisplayType.html - - name: SDLDriverDistractionState - url: Classes/SDLDriverDistractionState.html - - name: SDLECallConfirmationStatus - url: Classes/SDLECallConfirmationStatus.html - name: SDLECallInfo url: Classes/SDLECallInfo.html - name: SDLEmergencyEvent url: Classes/SDLEmergencyEvent.html - - name: SDLEmergencyEventType - url: Classes/SDLEmergencyEventType.html - name: SDLEncodedSyncPData url: Classes/SDLEncodedSyncPData.html - name: SDLEncodedSyncPDataResponse - url: Classes/SDLEncodedSyncPDataResponse.html + url: Classes.html#/c:objc(cs)SDLEncodedSyncPDataResponse - name: SDLEndAudioPassThru - url: Classes/SDLEndAudioPassThru.html + url: Classes.html#/c:objc(cs)SDLEndAudioPassThru - name: SDLEndAudioPassThruResponse - url: Classes/SDLEndAudioPassThruResponse.html - - name: SDLEnum - url: Classes/SDLEnum.html + url: Classes.html#/c:objc(cs)SDLEndAudioPassThruResponse - name: SDLFile url: Classes/SDLFile.html - name: SDLFileManager url: Classes/SDLFileManager.html - - name: SDLFileType - url: Classes/SDLFileType.html - - name: SDLFuelCutoffStatus - url: Classes/SDLFuelCutoffStatus.html - name: SDLGPSData url: Classes/SDLGPSData.html - name: SDLGenericResponse - url: Classes/SDLGenericResponse.html + url: Classes.html#/c:objc(cs)SDLGenericResponse - name: SDLGetDTCs url: Classes/SDLGetDTCs.html - name: SDLGetDTCsResponse url: Classes/SDLGetDTCsResponse.html + - name: SDLGetInteriorVehicleData + url: Classes/SDLGetInteriorVehicleData.html + - name: SDLGetInteriorVehicleDataResponse + url: Classes/SDLGetInteriorVehicleDataResponse.html - name: SDLGetSystemCapability url: Classes/SDLGetSystemCapability.html - name: SDLGetSystemCapabilityResponse @@ -168,60 +134,28 @@ url: Classes/SDLGetWayPoints.html - name: SDLGetWayPointsResponse url: Classes/SDLGetWayPointsResponse.html - - name: SDLGetWaypoints - url: Classes.html#/c:objc(cs)SDLGetWaypoints - - name: SDLGetWaypointsResponse - url: Classes.html#/c:objc(cs)SDLGetWaypointsResponse - - name: SDLGlobalProperty - url: Classes/SDLGlobalProperty.html - name: SDLHMICapabilities url: Classes/SDLHMICapabilities.html - - name: SDLHMILevel - url: Classes/SDLHMILevel.html - name: SDLHMIPermissions url: Classes/SDLHMIPermissions.html - - name: SDLHMIZoneCapabilities - url: Classes/SDLHMIZoneCapabilities.html - name: SDLHapticRect url: Classes/SDLHapticRect.html - name: SDLHeadLampStatus url: Classes/SDLHeadLampStatus.html - name: SDLIAPTransport url: Classes/SDLIAPTransport.html - - name: SDLIgnitionStableStatus - url: Classes/SDLIgnitionStableStatus.html - - name: SDLIgnitionStatus - url: Classes/SDLIgnitionStatus.html - name: SDLImage url: Classes/SDLImage.html - name: SDLImageField url: Classes/SDLImageField.html - - name: SDLImageFieldName - url: Classes/SDLImageFieldName.html - name: SDLImageResolution url: Classes/SDLImageResolution.html - - name: SDLImageType - url: Classes/SDLImageType.html - - name: SDLInteractionMode - url: Classes/SDLInteractionMode.html - - name: SDLJingle - url: Classes/SDLJingle.html - - name: SDLKeyboardEvent - url: Classes/SDLKeyboardEvent.html - - name: SDLKeyboardLayout - url: Classes/SDLKeyboardLayout.html - name: SDLKeyboardProperties url: Classes/SDLKeyboardProperties.html - - name: SDLKeypressMode - url: Classes/SDLKeypressMode.html - - name: SDLLanguage - url: Classes/SDLLanguage.html - - name: SDLLayoutMode - url: Classes/SDLLayoutMode.html - name: SDLLifecycleConfiguration url: Classes/SDLLifecycleConfiguration.html - name: SDLListFiles - url: Classes/SDLListFiles.html + url: Classes.html#/c:objc(cs)SDLListFiles - name: SDLListFilesResponse url: Classes/SDLListFilesResponse.html - name: SDLLocationCoordinate @@ -230,22 +164,30 @@ url: Classes/SDLLocationDetails.html - name: SDLLockScreenConfiguration url: Classes/SDLLockScreenConfiguration.html - - name: SDLLockScreenStatus - url: Classes/SDLLockScreenStatus.html - name: SDLLockScreenViewController url: Classes/SDLLockScreenViewController.html - - name: SDLMaintenanceModeStatus - url: Classes/SDLMaintenanceModeStatus.html + - name: SDLLogConfiguration + url: Classes/SDLLogConfiguration.html + - name: SDLLogFileModule + url: Classes/SDLLogFileModule.html + - name: SDLLogFilter + url: Classes/SDLLogFilter.html + - name: SDLLogManager + url: Classes/SDLLogManager.html + - name: SDLLogTargetAppleSystemLog + url: Classes.html#/c:objc(cs)SDLLogTargetAppleSystemLog + - name: SDLLogTargetFile + url: Classes.html#/c:objc(cs)SDLLogTargetFile + - name: SDLLogTargetOSLog + url: Classes.html#/c:objc(cs)SDLLogTargetOSLog - name: SDLManager url: Classes/SDLManager.html - - name: SDLMediaClockFormat - url: Classes/SDLMediaClockFormat.html - name: SDLMenuParams url: Classes/SDLMenuParams.html - name: SDLMetadataTags url: Classes/SDLMetadataTags.html - - name: SDLMetadataType - url: Classes/SDLMetadataType.html + - name: SDLModuleData + url: Classes/SDLModuleData.html - name: SDLMyKey url: Classes/SDLMyKey.html - name: SDLNavigationCapability @@ -257,7 +199,7 @@ - name: SDLOnAppInterfaceUnregistered url: Classes/SDLOnAppInterfaceUnregistered.html - name: SDLOnAudioPassThru - url: Classes/SDLOnAudioPassThru.html + url: Classes.html#/c:objc(cs)SDLOnAudioPassThru - name: SDLOnButtonEvent url: Classes/SDLOnButtonEvent.html - name: SDLOnButtonPress @@ -272,6 +214,8 @@ url: Classes/SDLOnHMIStatus.html - name: SDLOnHashChange url: Classes/SDLOnHashChange.html + - name: SDLOnInteriorVehicleData + url: Classes/SDLOnInteriorVehicleData.html - name: SDLOnKeyboardInput url: Classes/SDLOnKeyboardInput.html - name: SDLOnLanguageChange @@ -292,16 +236,12 @@ url: Classes/SDLOnVehicleData.html - name: SDLOnWayPointChange url: Classes/SDLOnWayPointChange.html - - name: SDLOnWaypointChange - url: Classes.html#/c:objc(cs)SDLOnWaypointChange - - name: SDLPRNDL - url: Classes/SDLPRNDL.html - name: SDLParameterPermissions url: Classes/SDLParameterPermissions.html - name: SDLPerformAudioPassThru url: Classes/SDLPerformAudioPassThru.html - name: SDLPerformAudioPassThruResponse - url: Classes/SDLPerformAudioPassThruResponse.html + url: Classes.html#/c:objc(cs)SDLPerformAudioPassThruResponse - name: SDLPerformInteraction url: Classes/SDLPerformInteraction.html - name: SDLPerformInteractionResponse @@ -310,22 +250,12 @@ url: Classes/SDLPermissionItem.html - name: SDLPermissionManager url: Classes/SDLPermissionManager.html - - name: SDLPermissionStatus - url: Classes/SDLPermissionStatus.html - name: SDLPhoneCapability url: Classes/SDLPhoneCapability.html - - name: SDLPowerModeQualificationStatus - url: Classes/SDLPowerModeQualificationStatus.html - - name: SDLPowerModeStatus - url: Classes/SDLPowerModeStatus.html - - name: SDLPredefinedLayout - url: Classes/SDLPredefinedLayout.html - - name: SDLPrerecordedSpeech - url: Classes/SDLPrerecordedSpeech.html + - name: SDLPinchGesture + url: Classes/SDLPinchGesture.html - name: SDLPresetBankCapabilities url: Classes/SDLPresetBankCapabilities.html - - name: SDLPrimaryAudioSource - url: Classes/SDLPrimaryAudioSource.html - name: SDLProtocol url: Classes/SDLProtocol.html - name: SDLProtocolHeader @@ -340,22 +270,26 @@ url: Classes/SDLPutFile.html - name: SDLPutFileResponse url: Classes/SDLPutFileResponse.html + - name: SDLRDSData + url: Classes/SDLRDSData.html - name: SDLRPCMessage url: Classes/SDLRPCMessage.html - name: SDLRPCNotification - url: Classes/SDLRPCNotification.html + url: Classes.html#/c:objc(cs)SDLRPCNotification - name: SDLRPCNotificationNotification url: Classes/SDLRPCNotificationNotification.html - name: SDLRPCRequest url: Classes/SDLRPCRequest.html - - name: SDLRPCRequestFactory - url: Classes/SDLRPCRequestFactory.html - name: SDLRPCResponse url: Classes/SDLRPCResponse.html - name: SDLRPCResponseNotification url: Classes/SDLRPCResponseNotification.html - name: SDLRPCStruct url: Classes/SDLRPCStruct.html + - name: SDLRadioControlCapabilities + url: Classes/SDLRadioControlCapabilities.html + - name: SDLRadioControlData + url: Classes/SDLRadioControlData.html - name: SDLReadDID url: Classes/SDLReadDID.html - name: SDLReadDIDResponse @@ -366,34 +300,30 @@ url: Classes/SDLRegisterAppInterface.html - name: SDLRegisterAppInterfaceResponse url: Classes/SDLRegisterAppInterfaceResponse.html - - name: SDLRequestType - url: Classes/SDLRequestType.html + - name: SDLRemoteControlCapabilities + url: Classes/SDLRemoteControlCapabilities.html - name: SDLResetGlobalProperties url: Classes/SDLResetGlobalProperties.html - name: SDLResetGlobalPropertiesResponse - url: Classes/SDLResetGlobalPropertiesResponse.html - - name: SDLResult - url: Classes/SDLResult.html - - name: SDLSamplingRate - url: Classes/SDLSamplingRate.html + url: Classes.html#/c:objc(cs)SDLResetGlobalPropertiesResponse - name: SDLScreenParams url: Classes/SDLScreenParams.html - name: SDLScrollableMessage url: Classes/SDLScrollableMessage.html - name: SDLScrollableMessageResponse - url: Classes/SDLScrollableMessageResponse.html + url: Classes.html#/c:objc(cs)SDLScrollableMessageResponse - name: SDLSendHapticData url: Classes/SDLSendHapticData.html - name: SDLSendHapticDataResponse - url: Classes/SDLSendHapticDataResponse.html + url: Classes.html#/c:objc(cs)SDLSendHapticDataResponse - name: SDLSendLocation url: Classes/SDLSendLocation.html - name: SDLSendLocationResponse - url: Classes/SDLSendLocationResponse.html + url: Classes.html#/c:objc(cs)SDLSendLocationResponse - name: SDLSetAppIcon url: Classes/SDLSetAppIcon.html - name: SDLSetAppIconResponse - url: Classes/SDLSetAppIconResponse.html + url: Classes.html#/c:objc(cs)SDLSetAppIconResponse - name: SDLSetDisplayLayout url: Classes/SDLSetDisplayLayout.html - name: SDLSetDisplayLayoutResponse @@ -401,23 +331,25 @@ - name: SDLSetGlobalProperties url: Classes/SDLSetGlobalProperties.html - name: SDLSetGlobalPropertiesResponse - url: Classes/SDLSetGlobalPropertiesResponse.html + url: Classes.html#/c:objc(cs)SDLSetGlobalPropertiesResponse + - name: SDLSetInteriorVehicleData + url: Classes/SDLSetInteriorVehicleData.html + - name: SDLSetInteriorVehicleDataResponse + url: Classes/SDLSetInteriorVehicleDataResponse.html - name: SDLSetMediaClockTimer url: Classes/SDLSetMediaClockTimer.html - name: SDLSetMediaClockTimerResponse - url: Classes/SDLSetMediaClockTimerResponse.html + url: Classes.html#/c:objc(cs)SDLSetMediaClockTimerResponse - name: SDLShow url: Classes/SDLShow.html - name: SDLShowConstantTBT url: Classes/SDLShowConstantTBT.html - name: SDLShowConstantTBTResponse - url: Classes/SDLShowConstantTBTResponse.html + url: Classes.html#/c:objc(cs)SDLShowConstantTBTResponse - name: SDLShowResponse - url: Classes/SDLShowResponse.html + url: Classes.html#/c:objc(cs)SDLShowResponse - name: SDLSingleTireStatus url: Classes/SDLSingleTireStatus.html - - name: SDLSiphonServer - url: Classes/SDLSiphonServer.html - name: SDLSlider url: Classes/SDLSlider.html - name: SDLSliderResponse @@ -426,22 +358,20 @@ url: Classes/SDLSoftButton.html - name: SDLSoftButtonCapabilities url: Classes/SDLSoftButtonCapabilities.html - - name: SDLSoftButtonType - url: Classes/SDLSoftButtonType.html - name: SDLSpeak url: Classes/SDLSpeak.html - name: SDLSpeakResponse - url: Classes/SDLSpeakResponse.html - - name: SDLSpeechCapabilities - url: Classes/SDLSpeechCapabilities.html + url: Classes.html#/c:objc(cs)SDLSpeakResponse - name: SDLStartTime url: Classes/SDLStartTime.html + - name: SDLStreamingMediaConfiguration + url: Classes/SDLStreamingMediaConfiguration.html - name: SDLStreamingMediaManager url: Classes/SDLStreamingMediaManager.html - name: SDLSubscribeButton url: Classes/SDLSubscribeButton.html - name: SDLSubscribeButtonResponse - url: Classes/SDLSubscribeButtonResponse.html + url: Classes.html#/c:objc(cs)SDLSubscribeButtonResponse - name: SDLSubscribeVehicleData url: Classes/SDLSubscribeVehicleData.html - name: SDLSubscribeVehicleDataResponse @@ -450,42 +380,26 @@ url: Classes.html#/c:objc(cs)SDLSubscribeWayPoints - name: SDLSubscribeWayPointsResponse url: Classes.html#/c:objc(cs)SDLSubscribeWayPointsResponse - - name: SDLSubscribeWaypoints - url: Classes.html#/c:objc(cs)SDLSubscribeWaypoints - - name: SDLSubscribeWaypointsResponse - url: Classes.html#/c:objc(cs)SDLSubscribeWaypointsResponse - name: SDLSyncMsgVersion url: Classes/SDLSyncMsgVersion.html - name: SDLSyncPData - url: Classes/SDLSyncPData.html + url: Classes.html#/c:objc(cs)SDLSyncPData - name: SDLSyncPDataResponse - url: Classes/SDLSyncPDataResponse.html - - name: SDLSystemAction - url: Classes/SDLSystemAction.html + url: Classes.html#/c:objc(cs)SDLSyncPDataResponse - name: SDLSystemCapability url: Classes/SDLSystemCapability.html - - name: SDLSystemCapabilityType - url: Classes/SDLSystemCapabilityType.html - - name: SDLSystemContext - url: Classes/SDLSystemContext.html - - name: SDLTBTState - url: Classes/SDLTBTState.html - name: SDLTCPTransport url: Classes/SDLTCPTransport.html - name: SDLTTSChunk url: Classes/SDLTTSChunk.html - - name: SDLTTSChunkFactory - url: Classes/SDLTTSChunkFactory.html - - name: SDLTextAlignment - url: Classes/SDLTextAlignment.html + - name: SDLTemperature + url: Classes/SDLTemperature.html - name: SDLTextField url: Classes/SDLTextField.html - - name: SDLTextFieldName - url: Classes/SDLTextFieldName.html - - name: SDLTimerMode - url: Classes/SDLTimerMode.html - name: SDLTireStatus url: Classes/SDLTireStatus.html + - name: SDLTouch + url: Classes/SDLTouch.html - name: SDLTouchCoord url: Classes/SDLTouchCoord.html - name: SDLTouchEvent @@ -494,20 +408,16 @@ url: Classes/SDLTouchEventCapabilities.html - name: SDLTouchManager url: Classes/SDLTouchManager.html - - name: SDLTouchType - url: Classes/SDLTouchType.html - - name: SDLTriggerSource - url: Classes/SDLTriggerSource.html - name: SDLTurn url: Classes/SDLTurn.html - name: SDLUnregisterAppInterface - url: Classes/SDLUnregisterAppInterface.html + url: Classes.html#/c:objc(cs)SDLUnregisterAppInterface - name: SDLUnregisterAppInterfaceResponse - url: Classes/SDLUnregisterAppInterfaceResponse.html + url: Classes.html#/c:objc(cs)SDLUnregisterAppInterfaceResponse - name: SDLUnsubscribeButton url: Classes/SDLUnsubscribeButton.html - name: SDLUnsubscribeButtonResponse - url: Classes/SDLUnsubscribeButtonResponse.html + url: Classes.html#/c:objc(cs)SDLUnsubscribeButtonResponse - name: SDLUnsubscribeVehicleData url: Classes/SDLUnsubscribeVehicleData.html - name: SDLUnsubscribeVehicleDataResponse @@ -516,54 +426,248 @@ url: Classes.html#/c:objc(cs)SDLUnsubscribeWayPoints - name: SDLUnsubscribeWayPointsResponse url: Classes.html#/c:objc(cs)SDLUnsubscribeWayPointsResponse - - name: SDLUnsubscribeWaypoints - url: Classes.html#/c:objc(cs)SDLUnsubscribeWaypoints - - name: SDLUnsubscribeWaypointsResponse - url: Classes.html#/c:objc(cs)SDLUnsubscribeWaypointsResponse - - name: SDLUpdateMode - url: Classes/SDLUpdateMode.html - name: SDLUpdateTurnList url: Classes/SDLUpdateTurnList.html - name: SDLUpdateTurnListResponse - url: Classes/SDLUpdateTurnListResponse.html - - name: SDLVRCapabilities - url: Classes/SDLVRCapabilities.html + url: Classes.html#/c:objc(cs)SDLUpdateTurnListResponse - name: SDLVRHelpItem url: Classes/SDLVRHelpItem.html - - name: SDLVehicleDataActiveStatus - url: Classes/SDLVehicleDataActiveStatus.html - - name: SDLVehicleDataEventStatus - url: Classes/SDLVehicleDataEventStatus.html - - name: SDLVehicleDataNotificationStatus - url: Classes/SDLVehicleDataNotificationStatus.html - name: SDLVehicleDataResult url: Classes/SDLVehicleDataResult.html - - name: SDLVehicleDataResultCode - url: Classes/SDLVehicleDataResultCode.html - - name: SDLVehicleDataStatus - url: Classes/SDLVehicleDataStatus.html - - name: SDLVehicleDataType - url: Classes/SDLVehicleDataType.html - name: SDLVehicleType url: Classes/SDLVehicleType.html - name: SDLVideoStreamingCapability url: Classes/SDLVideoStreamingCapability.html - - name: SDLVideoStreamingCodec - url: Classes/SDLVideoStreamingCodec.html - name: SDLVideoStreamingFormat url: Classes/SDLVideoStreamingFormat.html - - name: SDLVideoStreamingProtocol - url: Classes/SDLVideoStreamingProtocol.html - - name: SDLWarningLightStatus - url: Classes/SDLWarningLightStatus.html - - name: SDLWaypointType - url: Classes/SDLWaypointType.html - - name: SDLWiperStatus - url: Classes/SDLWiperStatus.html - name: Constants sub_nav: + - name: SDLAmbientLightStatusDay + url: Constants.html#/c:@SDLAmbientLightStatusDay + - name: SDLAmbientLightStatusInvalid + url: Constants.html#/c:@SDLAmbientLightStatusInvalid + - name: SDLAmbientLightStatusNight + url: Constants.html#/c:@SDLAmbientLightStatusNight + - name: SDLAmbientLightStatusTwilight1 + url: Constants.html#/c:@SDLAmbientLightStatusTwilight1 + - name: SDLAmbientLightStatusTwilight2 + url: Constants.html#/c:@SDLAmbientLightStatusTwilight2 + - name: SDLAmbientLightStatusTwilight3 + url: Constants.html#/c:@SDLAmbientLightStatusTwilight3 + - name: SDLAmbientLightStatusTwilight4 + url: Constants.html#/c:@SDLAmbientLightStatusTwilight4 + - name: SDLAmbientLightStatusUnknown + url: Constants.html#/c:@SDLAmbientLightStatusUnknown + - name: SDLAppHMITypeBackgroundProcess + url: Constants.html#/c:@SDLAppHMITypeBackgroundProcess + - name: SDLAppHMITypeCommunication + url: Constants.html#/c:@SDLAppHMITypeCommunication + - name: SDLAppHMITypeDefault + url: Constants.html#/c:@SDLAppHMITypeDefault + - name: SDLAppHMITypeInformation + url: Constants.html#/c:@SDLAppHMITypeInformation + - name: SDLAppHMITypeMedia + url: Constants.html#/c:@SDLAppHMITypeMedia + - name: SDLAppHMITypeMessaging + url: Constants.html#/c:@SDLAppHMITypeMessaging + - name: SDLAppHMITypeNavigation + url: Constants.html#/c:@SDLAppHMITypeNavigation + - name: SDLAppHMITypeProjection + url: Constants.html#/c:@SDLAppHMITypeProjection + - name: SDLAppHMITypeRemoteControl + url: Constants.html#/c:@SDLAppHMITypeRemoteControl + - name: SDLAppHMITypeSocial + url: Constants.html#/c:@SDLAppHMITypeSocial + - name: SDLAppHMITypeSystem + url: Constants.html#/c:@SDLAppHMITypeSystem + - name: SDLAppHMITypeTesting + url: Constants.html#/c:@SDLAppHMITypeTesting + - name: SDLAppInterfaceUnregisteredReasonAppUnauthorized + url: Constants.html#/c:@SDLAppInterfaceUnregisteredReasonAppUnauthorized + - name: SDLAppInterfaceUnregisteredReasonBluetoothOff + url: Constants.html#/c:@SDLAppInterfaceUnregisteredReasonBluetoothOff + - name: SDLAppInterfaceUnregisteredReasonDriverDistractionViolation + url: Constants.html#/c:@SDLAppInterfaceUnregisteredReasonDriverDistractionViolation + - name: SDLAppInterfaceUnregisteredReasonFactoryDefaults + url: Constants.html#/c:@SDLAppInterfaceUnregisteredReasonFactoryDefaults + - name: SDLAppInterfaceUnregisteredReasonIgnitionOff + url: Constants.html#/c:@SDLAppInterfaceUnregisteredReasonIgnitionOff + - name: SDLAppInterfaceUnregisteredReasonLanguageChange + url: Constants.html#/c:@SDLAppInterfaceUnregisteredReasonLanguageChange + - name: SDLAppInterfaceUnregisteredReasonMasterReset + url: Constants.html#/c:@SDLAppInterfaceUnregisteredReasonMasterReset + - name: SDLAppInterfaceUnregisteredReasonRequestWhileInNoneHMILevel + url: Constants.html#/c:@SDLAppInterfaceUnregisteredReasonRequestWhileInNoneHMILevel + - name: SDLAppInterfaceUnregisteredReasonTooManyRequests + url: Constants.html#/c:@SDLAppInterfaceUnregisteredReasonTooManyRequests + - name: SDLAppInterfaceUnregisteredReasonUSBDisconnected + url: Constants.html#/c:@SDLAppInterfaceUnregisteredReasonUSBDisconnected + - name: SDLAudioStreamDidStartNotification + url: Constants.html#/c:@SDLAudioStreamDidStartNotification + - name: SDLAudioStreamDidStopNotification + url: Constants.html#/c:@SDLAudioStreamDidStopNotification + - name: SDLAudioStreamingStateAttenuated + url: Constants.html#/c:@SDLAudioStreamingStateAttenuated + - name: SDLAudioStreamingStateAudible + url: Constants.html#/c:@SDLAudioStreamingStateAudible + - name: SDLAudioStreamingStateNotAudible + url: Constants.html#/c:@SDLAudioStreamingStateNotAudible + - name: SDLAudioTypePCM + url: Constants.html#/c:@SDLAudioTypePCM + - name: SDLBitsPerSample16Bit + url: Constants.html#/c:@SDLBitsPerSample16Bit + - name: SDLBitsPerSample8Bit + url: Constants.html#/c:@SDLBitsPerSample8Bit + - name: SDLButtonEventModeButtonDown + url: Constants.html#/c:@SDLButtonEventModeButtonDown + - name: SDLButtonEventModeButtonUp + url: Constants.html#/c:@SDLButtonEventModeButtonUp + - name: SDLButtonNameAC + url: Constants.html#/c:@SDLButtonNameAC + - name: SDLButtonNameACMax + url: Constants.html#/c:@SDLButtonNameACMax + - name: SDLButtonNameCustomButton + url: Constants.html#/c:@SDLButtonNameCustomButton + - name: SDLButtonNameDefrost + url: Constants.html#/c:@SDLButtonNameDefrost + - name: SDLButtonNameDefrostMax + url: Constants.html#/c:@SDLButtonNameDefrostMax + - name: SDLButtonNameDefrostRear + url: Constants.html#/c:@SDLButtonNameDefrostRear + - name: SDLButtonNameEject + url: Constants.html#/c:@SDLButtonNameEject + - name: SDLButtonNameFanDown + url: Constants.html#/c:@SDLButtonNameFanDown + - name: SDLButtonNameFanUp + url: Constants.html#/c:@SDLButtonNameFanUp + - name: SDLButtonNameLowerVent + url: Constants.html#/c:@SDLButtonNameLowerVent + - name: SDLButtonNameOk + url: Constants.html#/c:@SDLButtonNameOk + - name: SDLButtonNamePreset0 + url: Constants.html#/c:@SDLButtonNamePreset0 + - name: SDLButtonNamePreset1 + url: Constants.html#/c:@SDLButtonNamePreset1 + - name: SDLButtonNamePreset2 + url: Constants.html#/c:@SDLButtonNamePreset2 + - name: SDLButtonNamePreset3 + url: Constants.html#/c:@SDLButtonNamePreset3 + - name: SDLButtonNamePreset4 + url: Constants.html#/c:@SDLButtonNamePreset4 + - name: SDLButtonNamePreset5 + url: Constants.html#/c:@SDLButtonNamePreset5 + - name: SDLButtonNamePreset6 + url: Constants.html#/c:@SDLButtonNamePreset6 + - name: SDLButtonNamePreset7 + url: Constants.html#/c:@SDLButtonNamePreset7 + - name: SDLButtonNamePreset8 + url: Constants.html#/c:@SDLButtonNamePreset8 + - name: SDLButtonNamePreset9 + url: Constants.html#/c:@SDLButtonNamePreset9 + - name: SDLButtonNameRecirculate + url: Constants.html#/c:@SDLButtonNameRecirculate + - name: SDLButtonNameRepeat + url: Constants.html#/c:@SDLButtonNameRepeat + - name: SDLButtonNameSearch + url: Constants.html#/c:@SDLButtonNameSearch + - name: SDLButtonNameSeekLeft + url: Constants.html#/c:@SDLButtonNameSeekLeft + - name: SDLButtonNameSeekRight + url: Constants.html#/c:@SDLButtonNameSeekRight + - name: SDLButtonNameShuffle + url: Constants.html#/c:@SDLButtonNameShuffle + - name: SDLButtonNameSource + url: Constants.html#/c:@SDLButtonNameSource + - name: SDLButtonNameTempDown + url: Constants.html#/c:@SDLButtonNameTempDown + - name: SDLButtonNameTempUp + url: Constants.html#/c:@SDLButtonNameTempUp + - name: SDLButtonNameTuneDown + url: Constants.html#/c:@SDLButtonNameTuneDown + - name: SDLButtonNameTuneUp + url: Constants.html#/c:@SDLButtonNameTuneUp + - name: SDLButtonNameUpperVent + url: Constants.html#/c:@SDLButtonNameUpperVent + - name: SDLButtonNameVolumeDown + url: Constants.html#/c:@SDLButtonNameVolumeDown + - name: SDLButtonNameVolumeUp + url: Constants.html#/c:@SDLButtonNameVolumeUp + - name: SDLButtonPressModeLong + url: Constants.html#/c:@SDLButtonPressModeLong + - name: SDLButtonPressModeShort + url: Constants.html#/c:@SDLButtonPressModeShort + - name: SDLCarModeStatusCrash + url: Constants.html#/c:@SDLCarModeStatusCrash + - name: SDLCarModeStatusFactory + url: Constants.html#/c:@SDLCarModeStatusFactory + - name: SDLCarModeStatusNormal + url: Constants.html#/c:@SDLCarModeStatusNormal + - name: SDLCarModeStatusTransport + url: Constants.html#/c:@SDLCarModeStatusTransport + - name: SDLCharacterSetCID1 + url: Constants.html#/c:@SDLCharacterSetCID1 + - name: SDLCharacterSetCID2 + url: Constants.html#/c:@SDLCharacterSetCID2 + - name: SDLCharacterSetType2 + url: Constants.html#/c:@SDLCharacterSetType2 + - name: SDLCharacterSetType5 + url: Constants.html#/c:@SDLCharacterSetType5 + - name: SDLCompassDirectionEast + url: Constants.html#/c:@SDLCompassDirectionEast + - name: SDLCompassDirectionNorth + url: Constants.html#/c:@SDLCompassDirectionNorth + - name: SDLCompassDirectionNortheast + url: Constants.html#/c:@SDLCompassDirectionNortheast + - name: SDLCompassDirectionNorthwest + url: Constants.html#/c:@SDLCompassDirectionNorthwest + - name: SDLCompassDirectionSouth + url: Constants.html#/c:@SDLCompassDirectionSouth + - name: SDLCompassDirectionSoutheast + url: Constants.html#/c:@SDLCompassDirectionSoutheast + - name: SDLCompassDirectionSouthwest + url: Constants.html#/c:@SDLCompassDirectionSouthwest + - name: SDLCompassDirectionWest + url: Constants.html#/c:@SDLCompassDirectionWest + - name: SDLComponentVolumeStatusAlert + url: Constants.html#/c:@SDLComponentVolumeStatusAlert + - name: SDLComponentVolumeStatusFault + url: Constants.html#/c:@SDLComponentVolumeStatusFault + - name: SDLComponentVolumeStatusLow + url: Constants.html#/c:@SDLComponentVolumeStatusLow + - name: SDLComponentVolumeStatusNormal + url: Constants.html#/c:@SDLComponentVolumeStatusNormal + - name: SDLComponentVolumeStatusNotSupported + url: Constants.html#/c:@SDLComponentVolumeStatusNotSupported + - name: SDLComponentVolumeStatusUnknown + url: Constants.html#/c:@SDLComponentVolumeStatusUnknown - name: SDLDefaultScreenSize url: Constants.html#/c:@SDLDefaultScreenSize + - name: SDLDefrostZoneAll + url: Constants.html#/c:@SDLDefrostZoneAll + - name: SDLDefrostZoneFront + url: Constants.html#/c:@SDLDefrostZoneFront + - name: SDLDefrostZoneNone + url: Constants.html#/c:@SDLDefrostZoneNone + - name: SDLDefrostZoneRear + url: Constants.html#/c:@SDLDefrostZoneRear + - name: SDLDeliveryModeDestination + url: Constants.html#/c:@SDLDeliveryModeDestination + - name: SDLDeliveryModePrompt + url: Constants.html#/c:@SDLDeliveryModePrompt + - name: SDLDeliveryModeQueue + url: Constants.html#/c:@SDLDeliveryModeQueue + - name: SDLDeviceLevelStatusFourBars + url: Constants.html#/c:@SDLDeviceLevelStatusFourBars + - name: SDLDeviceLevelStatusNotProvided + url: Constants.html#/c:@SDLDeviceLevelStatusNotProvided + - name: SDLDeviceLevelStatusOneBar + url: Constants.html#/c:@SDLDeviceLevelStatusOneBar + - name: SDLDeviceLevelStatusThreeBars + url: Constants.html#/c:@SDLDeviceLevelStatusThreeBars + - name: SDLDeviceLevelStatusTwoBars + url: Constants.html#/c:@SDLDeviceLevelStatusTwoBars + - name: SDLDeviceLevelStatusZeroBars + url: Constants.html#/c:@SDLDeviceLevelStatusZeroBars - name: SDLDidBecomeReady url: Constants.html#/c:@SDLDidBecomeReady - name: SDLDidChangeDriverDistractionStateNotification @@ -594,6 +698,8 @@ url: Constants.html#/c:@SDLDidReceiveButtonEventNotification - name: SDLDidReceiveButtonPressNotification url: Constants.html#/c:@SDLDidReceiveButtonPressNotification + - name: SDLDidReceiveButtonPressResponse + url: Constants.html#/c:@SDLDidReceiveButtonPressResponse - name: SDLDidReceiveChangeRegistrationResponse url: Constants.html#/c:@SDLDidReceiveChangeRegistrationResponse - name: SDLDidReceiveCommandNotification @@ -624,12 +730,16 @@ url: Constants.html#/c:@SDLDidReceiveGenericResponse - name: SDLDidReceiveGetDTCsResponse url: Constants.html#/c:@SDLDidReceiveGetDTCsResponse + - name: SDLDidReceiveGetInteriorVehicleDataResponse + url: Constants.html#/c:@SDLDidReceiveGetInteriorVehicleDataResponse - name: SDLDidReceiveGetSystemCapabilitiesResponse url: Constants.html#/c:@SDLDidReceiveGetSystemCapabilitiesResponse - name: SDLDidReceiveGetVehicleDataResponse url: Constants.html#/c:@SDLDidReceiveGetVehicleDataResponse - name: SDLDidReceiveGetWaypointsResponse url: Constants.html#/c:@SDLDidReceiveGetWaypointsResponse + - name: SDLDidReceiveInteriorVehicleDataNotification + url: Constants.html#/c:@SDLDidReceiveInteriorVehicleDataNotification - name: SDLDidReceiveKeyboardInputNotification url: Constants.html#/c:@SDLDidReceiveKeyboardInputNotification - name: SDLDidReceiveListFilesResponse @@ -662,6 +772,8 @@ url: Constants.html#/c:@SDLDidReceiveSetDisplayLayoutResponse - name: SDLDidReceiveSetGlobalPropertiesResponse url: Constants.html#/c:@SDLDidReceiveSetGlobalPropertiesResponse + - name: SDLDidReceiveSetInteriorVehicleDataResponse + url: Constants.html#/c:@SDLDidReceiveSetInteriorVehicleDataResponse - name: SDLDidReceiveSetMediaClockTimerResponse url: Constants.html#/c:@SDLDidReceiveSetMediaClockTimerResponse - name: SDLDidReceiveShowConstantTBTResponse @@ -700,18 +812,940 @@ url: Constants.html#/c:@SDLDidReceiveVehicleIconNotification - name: SDLDidReceiveWaypointNotification url: Constants.html#/c:@SDLDidReceiveWaypointNotification - - name: SDLErrorDomainStreamingMediaAudio - url: Constants.html#/c:@SDLErrorDomainStreamingMediaAudio - - name: SDLErrorDomainStreamingMediaVideo - url: Constants.html#/c:@SDLErrorDomainStreamingMediaVideo + - name: SDLDidUpdateProjectionView + url: Constants.html#/c:@SDLDidUpdateProjectionView + - name: SDLDimension2D + url: Constants.html#/c:@SDLDimension2D + - name: SDLDimension3D + url: Constants.html#/c:@SDLDimension3D + - name: SDLDimensionNoFix + url: Constants.html#/c:@SDLDimensionNoFix + - name: SDLDisplayTypeCID + url: Constants.html#/c:@SDLDisplayTypeCID + - name: SDLDisplayTypeGen26DMA + url: Constants.html#/c:@SDLDisplayTypeGen26DMA + - name: SDLDisplayTypeGen28DMA + url: Constants.html#/c:@SDLDisplayTypeGen28DMA + - name: SDLDisplayTypeGen38Inch + url: Constants.html#/c:@SDLDisplayTypeGen38Inch + - name: SDLDisplayTypeGeneric + url: Constants.html#/c:@SDLDisplayTypeGeneric + - name: SDLDisplayTypeMFD3 + url: Constants.html#/c:@SDLDisplayTypeMFD3 + - name: SDLDisplayTypeMFD4 + url: Constants.html#/c:@SDLDisplayTypeMFD4 + - name: SDLDisplayTypeMFD5 + url: Constants.html#/c:@SDLDisplayTypeMFD5 + - name: SDLDisplayTypeNGN + url: Constants.html#/c:@SDLDisplayTypeNGN + - name: SDLDisplayTypeType2 + url: Constants.html#/c:@SDLDisplayTypeType2 + - name: SDLDisplayTypeType5 + url: Constants.html#/c:@SDLDisplayTypeType5 + - name: SDLDriverDistractionStateOff + url: Constants.html#/c:@SDLDriverDistractionStateOff + - name: SDLDriverDistractionStateOn + url: Constants.html#/c:@SDLDriverDistractionStateOn + - name: SDLECallConfirmationStatusCancelled + url: Constants.html#/c:@SDLECallConfirmationStatusCancelled + - name: SDLECallConfirmationStatusCompleteDTMFTimeout + url: Constants.html#/c:@SDLECallConfirmationStatusCompleteDTMFTimeout + - name: SDLECallConfirmationStatusCompleted + url: Constants.html#/c:@SDLECallConfirmationStatusCompleted + - name: SDLECallConfirmationStatusConfiguredOff + url: Constants.html#/c:@SDLECallConfirmationStatusConfiguredOff + - name: SDLECallConfirmationStatusInProgress + url: Constants.html#/c:@SDLECallConfirmationStatusInProgress + - name: SDLECallConfirmationStatusNormal + url: Constants.html#/c:@SDLECallConfirmationStatusNormal + - name: SDLECallConfirmationStatusUnsuccessful + url: Constants.html#/c:@SDLECallConfirmationStatusUnsuccessful + - name: SDLEmergencyEventTypeFault + url: Constants.html#/c:@SDLEmergencyEventTypeFault + - name: SDLEmergencyEventTypeFrontal + url: Constants.html#/c:@SDLEmergencyEventTypeFrontal + - name: SDLEmergencyEventTypeNoEvent + url: Constants.html#/c:@SDLEmergencyEventTypeNoEvent + - name: SDLEmergencyEventTypeNotSupported + url: Constants.html#/c:@SDLEmergencyEventTypeNotSupported + - name: SDLEmergencyEventTypeRear + url: Constants.html#/c:@SDLEmergencyEventTypeRear + - name: SDLEmergencyEventTypeRollover + url: Constants.html#/c:@SDLEmergencyEventTypeRollover + - name: SDLEmergencyEventTypeSide + url: Constants.html#/c:@SDLEmergencyEventTypeSide + - name: SDLFileTypeAAC + url: Constants.html#/c:@SDLFileTypeAAC + - name: SDLFileTypeBMP + url: Constants.html#/c:@SDLFileTypeBMP + - name: SDLFileTypeBinary + url: Constants.html#/c:@SDLFileTypeBinary + - name: SDLFileTypeJPEG + url: Constants.html#/c:@SDLFileTypeJPEG + - name: SDLFileTypeJSON + url: Constants.html#/c:@SDLFileTypeJSON + - name: SDLFileTypeMP3 + url: Constants.html#/c:@SDLFileTypeMP3 + - name: SDLFileTypePNG + url: Constants.html#/c:@SDLFileTypePNG + - name: SDLFileTypeWAV + url: Constants.html#/c:@SDLFileTypeWAV + - name: SDLFuelCutoffStatusFault + url: Constants.html#/c:@SDLFuelCutoffStatusFault + - name: SDLFuelCutoffStatusNormalOperation + url: Constants.html#/c:@SDLFuelCutoffStatusNormalOperation + - name: SDLFuelCutoffStatusTerminateFuel + url: Constants.html#/c:@SDLFuelCutoffStatusTerminateFuel + - name: SDLGlobalPropertyHelpPrompt + url: Constants.html#/c:@SDLGlobalPropertyHelpPrompt + - name: SDLGlobalPropertyKeyboard + url: Constants.html#/c:@SDLGlobalPropertyKeyboard + - name: SDLGlobalPropertyMenuIcon + url: Constants.html#/c:@SDLGlobalPropertyMenuIcon + - name: SDLGlobalPropertyMenuName + url: Constants.html#/c:@SDLGlobalPropertyMenuName + - name: SDLGlobalPropertyTimeoutPrompt + url: Constants.html#/c:@SDLGlobalPropertyTimeoutPrompt + - name: SDLGlobalPropertyVoiceRecognitionHelpItems + url: Constants.html#/c:@SDLGlobalPropertyVoiceRecognitionHelpItems + - name: SDLGlobalPropertyVoiceRecognitionHelpTitle + url: Constants.html#/c:@SDLGlobalPropertyVoiceRecognitionHelpTitle + - name: SDLHMILevelBackground + url: Constants.html#/c:@SDLHMILevelBackground + - name: SDLHMILevelFull + url: Constants.html#/c:@SDLHMILevelFull + - name: SDLHMILevelLimited + url: Constants.html#/c:@SDLHMILevelLimited + - name: SDLHMILevelNone + url: Constants.html#/c:@SDLHMILevelNone + - name: SDLHMIZoneCapabilitiesBack + url: Constants.html#/c:@SDLHMIZoneCapabilitiesBack + - name: SDLHMIZoneCapabilitiesFront + url: Constants.html#/c:@SDLHMIZoneCapabilitiesFront + - name: SDLIgnitionStableStatusMissingFromTransmitter + url: Constants.html#/c:@SDLIgnitionStableStatusMissingFromTransmitter + - name: SDLIgnitionStableStatusNotStable + url: Constants.html#/c:@SDLIgnitionStableStatusNotStable + - name: SDLIgnitionStableStatusStable + url: Constants.html#/c:@SDLIgnitionStableStatusStable + - name: SDLIgnitionStatusAccessory + url: Constants.html#/c:@SDLIgnitionStatusAccessory + - name: SDLIgnitionStatusInvalid + url: Constants.html#/c:@SDLIgnitionStatusInvalid + - name: SDLIgnitionStatusOff + url: Constants.html#/c:@SDLIgnitionStatusOff + - name: SDLIgnitionStatusRun + url: Constants.html#/c:@SDLIgnitionStatusRun + - name: SDLIgnitionStatusStart + url: Constants.html#/c:@SDLIgnitionStatusStart + - name: SDLIgnitionStatusUnknown + url: Constants.html#/c:@SDLIgnitionStatusUnknown + - name: SDLImageFieldNameAppIcon + url: Constants.html#/c:@SDLImageFieldNameAppIcon + - name: SDLImageFieldNameChoiceImage + url: Constants.html#/c:@SDLImageFieldNameChoiceImage + - name: SDLImageFieldNameChoiceSecondaryImage + url: Constants.html#/c:@SDLImageFieldNameChoiceSecondaryImage + - name: SDLImageFieldNameCommandIcon + url: Constants.html#/c:@SDLImageFieldNameCommandIcon + - name: SDLImageFieldNameGraphic + url: Constants.html#/c:@SDLImageFieldNameGraphic + - name: SDLImageFieldNameLocationImage + url: Constants.html#/c:@SDLImageFieldNameLocationImage + - name: SDLImageFieldNameMenuIcon + url: Constants.html#/c:@SDLImageFieldNameMenuIcon + - name: SDLImageFieldNameShowConstantTBTIcon + url: Constants.html#/c:@SDLImageFieldNameShowConstantTBTIcon + - name: SDLImageFieldNameShowConstantTBTNextTurnIcon + url: Constants.html#/c:@SDLImageFieldNameShowConstantTBTNextTurnIcon + - name: SDLImageFieldNameSoftButtonImage + url: Constants.html#/c:@SDLImageFieldNameSoftButtonImage + - name: SDLImageFieldNameTurnIcon + url: Constants.html#/c:@SDLImageFieldNameTurnIcon + - name: SDLImageFieldNameVoiceRecognitionHelpItem + url: Constants.html#/c:@SDLImageFieldNameVoiceRecognitionHelpItem + - name: SDLImageTypeDynamic + url: Constants.html#/c:@SDLImageTypeDynamic + - name: SDLImageTypeStatic + url: Constants.html#/c:@SDLImageTypeStatic + - name: SDLInteractionModeBoth + url: Constants.html#/c:@SDLInteractionModeBoth + - name: SDLInteractionModeManualOnly + url: Constants.html#/c:@SDLInteractionModeManualOnly + - name: SDLInteractionModeVoiceRecognitionOnly + url: Constants.html#/c:@SDLInteractionModeVoiceRecognitionOnly + - name: SDLKeyboardEventAborted + url: Constants.html#/c:@SDLKeyboardEventAborted + - name: SDLKeyboardEventCancelled + url: Constants.html#/c:@SDLKeyboardEventCancelled + - name: SDLKeyboardEventKeypress + url: Constants.html#/c:@SDLKeyboardEventKeypress + - name: SDLKeyboardEventSubmitted + url: Constants.html#/c:@SDLKeyboardEventSubmitted + - name: SDLKeyboardEventVoice + url: Constants.html#/c:@SDLKeyboardEventVoice + - name: SDLKeyboardLayoutAZERTY + url: Constants.html#/c:@SDLKeyboardLayoutAZERTY + - name: SDLKeyboardLayoutQWERTY + url: Constants.html#/c:@SDLKeyboardLayoutQWERTY + - name: SDLKeyboardLayoutQWERTZ + url: Constants.html#/c:@SDLKeyboardLayoutQWERTZ + - name: SDLKeypressModeQueueKeypresses + url: Constants.html#/c:@SDLKeypressModeQueueKeypresses + - name: SDLKeypressModeResendCurrentEntry + url: Constants.html#/c:@SDLKeypressModeResendCurrentEntry + - name: SDLKeypressModeSingleKeypress + url: Constants.html#/c:@SDLKeypressModeSingleKeypress + - name: SDLLanguageArSa + url: Constants.html#/c:@SDLLanguageArSa + - name: SDLLanguageCsCz + url: Constants.html#/c:@SDLLanguageCsCz + - name: SDLLanguageDaDk + url: Constants.html#/c:@SDLLanguageDaDk + - name: SDLLanguageDeDe + url: Constants.html#/c:@SDLLanguageDeDe + - name: SDLLanguageElGr + url: Constants.html#/c:@SDLLanguageElGr + - name: SDLLanguageEnAu + url: Constants.html#/c:@SDLLanguageEnAu + - name: SDLLanguageEnGb + url: Constants.html#/c:@SDLLanguageEnGb + - name: SDLLanguageEnIn + url: Constants.html#/c:@SDLLanguageEnIn + - name: SDLLanguageEnSa + url: Constants.html#/c:@SDLLanguageEnSa + - name: SDLLanguageEnUs + url: Constants.html#/c:@SDLLanguageEnUs + - name: SDLLanguageEsEs + url: Constants.html#/c:@SDLLanguageEsEs + - name: SDLLanguageEsMx + url: Constants.html#/c:@SDLLanguageEsMx + - name: SDLLanguageFiFi + url: Constants.html#/c:@SDLLanguageFiFi + - name: SDLLanguageFrCa + url: Constants.html#/c:@SDLLanguageFrCa + - name: SDLLanguageFrFr + url: Constants.html#/c:@SDLLanguageFrFr + - name: SDLLanguageHeIl + url: Constants.html#/c:@SDLLanguageHeIl + - name: SDLLanguageHiIn + url: Constants.html#/c:@SDLLanguageHiIn + - name: SDLLanguageHuHu + url: Constants.html#/c:@SDLLanguageHuHu + - name: SDLLanguageIdId + url: Constants.html#/c:@SDLLanguageIdId + - name: SDLLanguageItIt + url: Constants.html#/c:@SDLLanguageItIt + - name: SDLLanguageJaJp + url: Constants.html#/c:@SDLLanguageJaJp + - name: SDLLanguageKoKr + url: Constants.html#/c:@SDLLanguageKoKr + - name: SDLLanguageMsMy + url: Constants.html#/c:@SDLLanguageMsMy + - name: SDLLanguageNlBe + url: Constants.html#/c:@SDLLanguageNlBe + - name: SDLLanguageNlNl + url: Constants.html#/c:@SDLLanguageNlNl + - name: SDLLanguageNoNo + url: Constants.html#/c:@SDLLanguageNoNo + - name: SDLLanguagePlPl + url: Constants.html#/c:@SDLLanguagePlPl + - name: SDLLanguagePtBr + url: Constants.html#/c:@SDLLanguagePtBr + - name: SDLLanguagePtPt + url: Constants.html#/c:@SDLLanguagePtPt + - name: SDLLanguageRoRo + url: Constants.html#/c:@SDLLanguageRoRo + - name: SDLLanguageRuRu + url: Constants.html#/c:@SDLLanguageRuRu + - name: SDLLanguageSkSk + url: Constants.html#/c:@SDLLanguageSkSk + - name: SDLLanguageSvSe + url: Constants.html#/c:@SDLLanguageSvSe + - name: SDLLanguageThTh + url: Constants.html#/c:@SDLLanguageThTh + - name: SDLLanguageTrTr + url: Constants.html#/c:@SDLLanguageTrTr + - name: SDLLanguageUkUa + url: Constants.html#/c:@SDLLanguageUkUa + - name: SDLLanguageViVn + url: Constants.html#/c:@SDLLanguageViVn + - name: SDLLanguageZhCn + url: Constants.html#/c:@SDLLanguageZhCn + - name: SDLLanguageZhTw + url: Constants.html#/c:@SDLLanguageZhTw + - name: SDLLayoutModeIconOnly + url: Constants.html#/c:@SDLLayoutModeIconOnly + - name: SDLLayoutModeIconWithSearch + url: Constants.html#/c:@SDLLayoutModeIconWithSearch + - name: SDLLayoutModeKeyboard + url: Constants.html#/c:@SDLLayoutModeKeyboard + - name: SDLLayoutModeListOnly + url: Constants.html#/c:@SDLLayoutModeListOnly + - name: SDLLayoutModeListWithSearch + url: Constants.html#/c:@SDLLayoutModeListWithSearch + - name: SDLLockScreenStatusOff + url: Constants.html#/c:@SDLLockScreenStatusOff + - name: SDLLockScreenStatusOptional + url: Constants.html#/c:@SDLLockScreenStatusOptional + - name: SDLLockScreenStatusRequired + url: Constants.html#/c:@SDLLockScreenStatusRequired + - name: SDLMaintenanceModeStatusActive + url: Constants.html#/c:@SDLMaintenanceModeStatusActive + - name: SDLMaintenanceModeStatusFeatureNotPresent + url: Constants.html#/c:@SDLMaintenanceModeStatusFeatureNotPresent + - name: SDLMaintenanceModeStatusNear + url: Constants.html#/c:@SDLMaintenanceModeStatusNear + - name: SDLMaintenanceModeStatusNormal + url: Constants.html#/c:@SDLMaintenanceModeStatusNormal + - name: SDLMediaClockFormatClock1 + url: Constants.html#/c:@SDLMediaClockFormatClock1 + - name: SDLMediaClockFormatClock2 + url: Constants.html#/c:@SDLMediaClockFormatClock2 + - name: SDLMediaClockFormatClock3 + url: Constants.html#/c:@SDLMediaClockFormatClock3 + - name: SDLMediaClockFormatClockText1 + url: Constants.html#/c:@SDLMediaClockFormatClockText1 + - name: SDLMediaClockFormatClockText2 + url: Constants.html#/c:@SDLMediaClockFormatClockText2 + - name: SDLMediaClockFormatClockText3 + url: Constants.html#/c:@SDLMediaClockFormatClockText3 + - name: SDLMediaClockFormatClockText4 + url: Constants.html#/c:@SDLMediaClockFormatClockText4 + - name: SDLMetadataTypeCurrentTemperature + url: Constants.html#/c:@SDLMetadataTypeCurrentTemperature + - name: SDLMetadataTypeHumidity + url: Constants.html#/c:@SDLMetadataTypeHumidity + - name: SDLMetadataTypeMaximumTemperature + url: Constants.html#/c:@SDLMetadataTypeMaximumTemperature + - name: SDLMetadataTypeMediaAlbum + url: Constants.html#/c:@SDLMetadataTypeMediaAlbum + - name: SDLMetadataTypeMediaArtist + url: Constants.html#/c:@SDLMetadataTypeMediaArtist + - name: SDLMetadataTypeMediaGenre + url: Constants.html#/c:@SDLMetadataTypeMediaGenre + - name: SDLMetadataTypeMediaStation + url: Constants.html#/c:@SDLMetadataTypeMediaStation + - name: SDLMetadataTypeMediaTitle + url: Constants.html#/c:@SDLMetadataTypeMediaTitle + - name: SDLMetadataTypeMediaYear + url: Constants.html#/c:@SDLMetadataTypeMediaYear + - name: SDLMetadataTypeMinimumTemperature + url: Constants.html#/c:@SDLMetadataTypeMinimumTemperature + - name: SDLMetadataTypeRating + url: Constants.html#/c:@SDLMetadataTypeRating + - name: SDLMetadataTypeWeatherTerm + url: Constants.html#/c:@SDLMetadataTypeWeatherTerm + - name: SDLModuleTypeClimate + url: Constants.html#/c:@SDLModuleTypeClimate + - name: SDLModuleTypeRadio + url: Constants.html#/c:@SDLModuleTypeRadio - name: SDLNotificationUserInfoObject url: Constants.html#/c:@SDLNotificationUserInfoObject + - name: SDLPRNDLDrive + url: Constants.html#/c:@SDLPRNDLDrive + - name: SDLPRNDLEighth + url: Constants.html#/c:@SDLPRNDLEighth + - name: SDLPRNDLFault + url: Constants.html#/c:@SDLPRNDLFault + - name: SDLPRNDLFifth + url: Constants.html#/c:@SDLPRNDLFifth + - name: SDLPRNDLFirst + url: Constants.html#/c:@SDLPRNDLFirst + - name: SDLPRNDLFourth + url: Constants.html#/c:@SDLPRNDLFourth + - name: SDLPRNDLLowGear + url: Constants.html#/c:@SDLPRNDLLowGear + - name: SDLPRNDLNeutral + url: Constants.html#/c:@SDLPRNDLNeutral + - name: SDLPRNDLPark + url: Constants.html#/c:@SDLPRNDLPark + - name: SDLPRNDLReverse + url: Constants.html#/c:@SDLPRNDLReverse + - name: SDLPRNDLSecond + url: Constants.html#/c:@SDLPRNDLSecond + - name: SDLPRNDLSeventh + url: Constants.html#/c:@SDLPRNDLSeventh + - name: SDLPRNDLSixth + url: Constants.html#/c:@SDLPRNDLSixth + - name: SDLPRNDLSport + url: Constants.html#/c:@SDLPRNDLSport + - name: SDLPRNDLThird + url: Constants.html#/c:@SDLPRNDLThird + - name: SDLPRNDLUnknown + url: Constants.html#/c:@SDLPRNDLUnknown + - name: SDLPermissionStatusAllowed + url: Constants.html#/c:@SDLPermissionStatusAllowed + - name: SDLPermissionStatusDisallowed + url: Constants.html#/c:@SDLPermissionStatusDisallowed + - name: SDLPermissionStatusUserConsentPending + url: Constants.html#/c:@SDLPermissionStatusUserConsentPending + - name: SDLPermissionStatusUserDisallowed + url: Constants.html#/c:@SDLPermissionStatusUserDisallowed + - name: SDLPowerModeQualificationStatusEvaluationInProgress + url: Constants.html#/c:@SDLPowerModeQualificationStatusEvaluationInProgress + - name: SDLPowerModeQualificationStatusNotDefined + url: Constants.html#/c:@SDLPowerModeQualificationStatusNotDefined + - name: SDLPowerModeQualificationStatusOk + url: Constants.html#/c:@SDLPowerModeQualificationStatusOk + - name: SDLPowerModeQualificationStatusUndefined + url: Constants.html#/c:@SDLPowerModeQualificationStatusUndefined + - name: SDLPowerModeStatusAccessory + url: Constants.html#/c:@SDLPowerModeStatusAccessory + - name: SDLPowerModeStatusCrank + url: Constants.html#/c:@SDLPowerModeStatusCrank + - name: SDLPowerModeStatusIgnitionOn + url: Constants.html#/c:@SDLPowerModeStatusIgnitionOn + - name: SDLPowerModeStatusKeyApproved + url: Constants.html#/c:@SDLPowerModeStatusKeyApproved + - name: SDLPowerModeStatusKeyOut + url: Constants.html#/c:@SDLPowerModeStatusKeyOut + - name: SDLPowerModeStatusKeyRecentlyOut + url: Constants.html#/c:@SDLPowerModeStatusKeyRecentlyOut + - name: SDLPowerModeStatusPostAccessory + url: Constants.html#/c:@SDLPowerModeStatusPostAccessory + - name: SDLPowerModeStatusPostIgnition + url: Constants.html#/c:@SDLPowerModeStatusPostIgnition + - name: SDLPowerModeStatusRunning + url: Constants.html#/c:@SDLPowerModeStatusRunning + - name: SDLPredefinedLayoutDefault + url: Constants.html#/c:@SDLPredefinedLayoutDefault + - name: SDLPredefinedLayoutDoubleGraphicWithSoftButtons + url: Constants.html#/c:@SDLPredefinedLayoutDoubleGraphicWithSoftButtons + - name: SDLPredefinedLayoutGraphicWithText + url: Constants.html#/c:@SDLPredefinedLayoutGraphicWithText + - name: SDLPredefinedLayoutGraphicWithTextAndSoftButtons + url: Constants.html#/c:@SDLPredefinedLayoutGraphicWithTextAndSoftButtons + - name: SDLPredefinedLayoutGraphicWithTextButtons + url: Constants.html#/c:@SDLPredefinedLayoutGraphicWithTextButtons + - name: SDLPredefinedLayoutGraphicWithTiles + url: Constants.html#/c:@SDLPredefinedLayoutGraphicWithTiles + - name: SDLPredefinedLayoutLargeGraphicOnly + url: Constants.html#/c:@SDLPredefinedLayoutLargeGraphicOnly + - name: SDLPredefinedLayoutLargeGraphicWithSoftButtons + url: Constants.html#/c:@SDLPredefinedLayoutLargeGraphicWithSoftButtons + - name: SDLPredefinedLayoutMedia + url: Constants.html#/c:@SDLPredefinedLayoutMedia + - name: SDLPredefinedLayoutNavigationFullscreenMap + url: Constants.html#/c:@SDLPredefinedLayoutNavigationFullscreenMap + - name: SDLPredefinedLayoutNavigationKeyboard + url: Constants.html#/c:@SDLPredefinedLayoutNavigationKeyboard + - name: SDLPredefinedLayoutNavigationList + url: Constants.html#/c:@SDLPredefinedLayoutNavigationList + - name: SDLPredefinedLayoutNonMedia + url: Constants.html#/c:@SDLPredefinedLayoutNonMedia + - name: SDLPredefinedLayoutOnscreenPresets + url: Constants.html#/c:@SDLPredefinedLayoutOnscreenPresets + - name: SDLPredefinedLayoutTextAndSoftButtonsWithGraphic + url: Constants.html#/c:@SDLPredefinedLayoutTextAndSoftButtonsWithGraphic + - name: SDLPredefinedLayoutTextButtonsOnly + url: Constants.html#/c:@SDLPredefinedLayoutTextButtonsOnly + - name: SDLPredefinedLayoutTextButtonsWithGraphic + url: Constants.html#/c:@SDLPredefinedLayoutTextButtonsWithGraphic + - name: SDLPredefinedLayoutTextWithGraphic + url: Constants.html#/c:@SDLPredefinedLayoutTextWithGraphic + - name: SDLPredefinedLayoutTilesOnly + url: Constants.html#/c:@SDLPredefinedLayoutTilesOnly + - name: SDLPredefinedLayoutTilesWithGraphic + url: Constants.html#/c:@SDLPredefinedLayoutTilesWithGraphic + - name: SDLPrerecordedSpeechHelp + url: Constants.html#/c:@SDLPrerecordedSpeechHelp + - name: SDLPrerecordedSpeechInitial + url: Constants.html#/c:@SDLPrerecordedSpeechInitial + - name: SDLPrerecordedSpeechListen + url: Constants.html#/c:@SDLPrerecordedSpeechListen + - name: SDLPrerecordedSpeechNegative + url: Constants.html#/c:@SDLPrerecordedSpeechNegative + - name: SDLPrerecordedSpeechPositive + url: Constants.html#/c:@SDLPrerecordedSpeechPositive + - name: SDLPrimaryAudioSourceBluetoothStereo + url: Constants.html#/c:@SDLPrimaryAudioSourceBluetoothStereo + - name: SDLPrimaryAudioSourceIpod + url: Constants.html#/c:@SDLPrimaryAudioSourceIpod + - name: SDLPrimaryAudioSourceLineIn + url: Constants.html#/c:@SDLPrimaryAudioSourceLineIn + - name: SDLPrimaryAudioSourceMobileApp + url: Constants.html#/c:@SDLPrimaryAudioSourceMobileApp + - name: SDLPrimaryAudioSourceNoSourceSelected + url: Constants.html#/c:@SDLPrimaryAudioSourceNoSourceSelected + - name: SDLPrimaryAudioSourceUSB + url: Constants.html#/c:@SDLPrimaryAudioSourceUSB + - name: SDLPrimaryAudioSourceUSB2 + url: Constants.html#/c:@SDLPrimaryAudioSourceUSB2 - name: SDLProtocolSecurityErrorDomain url: Constants.html#/c:@SDLProtocolSecurityErrorDomain + - name: SDLRadioBandAM + url: Constants.html#/c:@SDLRadioBandAM + - name: SDLRadioBandFM + url: Constants.html#/c:@SDLRadioBandFM + - name: SDLRadioBandXM + url: Constants.html#/c:@SDLRadioBandXM + - name: SDLRadioStateAcquired + url: Constants.html#/c:@SDLRadioStateAcquired + - name: SDLRadioStateAcquiring + url: Constants.html#/c:@SDLRadioStateAcquiring + - name: SDLRadioStateMulticast + url: Constants.html#/c:@SDLRadioStateMulticast + - name: SDLRadioStateNotFound + url: Constants.html#/c:@SDLRadioStateNotFound + - name: SDLRequestTypeAuthenticationAck + url: Constants.html#/c:@SDLRequestTypeAuthenticationAck + - name: SDLRequestTypeAuthenticationChallenge + url: Constants.html#/c:@SDLRequestTypeAuthenticationChallenge + - name: SDLRequestTypeAuthenticationRequest + url: Constants.html#/c:@SDLRequestTypeAuthenticationRequest + - name: SDLRequestTypeClimate + url: Constants.html#/c:@SDLRequestTypeClimate + - name: SDLRequestTypeDriverProfile + url: Constants.html#/c:@SDLRequestTypeDriverProfile + - name: SDLRequestTypeEmergency + url: Constants.html#/c:@SDLRequestTypeEmergency + - name: SDLRequestTypeFOTA + url: Constants.html#/c:@SDLRequestTypeFOTA + - name: SDLRequestTypeFileResume + url: Constants.html#/c:@SDLRequestTypeFileResume + - name: SDLRequestTypeHTTP + url: Constants.html#/c:@SDLRequestTypeHTTP + - name: SDLRequestTypeLaunchApp + url: Constants.html#/c:@SDLRequestTypeLaunchApp + - name: SDLRequestTypeLockScreenIconURL + url: Constants.html#/c:@SDLRequestTypeLockScreenIconURL + - name: SDLRequestTypeMedia + url: Constants.html#/c:@SDLRequestTypeMedia + - name: SDLRequestTypeNavigation + url: Constants.html#/c:@SDLRequestTypeNavigation + - name: SDLRequestTypePhone + url: Constants.html#/c:@SDLRequestTypePhone + - name: SDLRequestTypeProprietary + url: Constants.html#/c:@SDLRequestTypeProprietary + - name: SDLRequestTypeQueryApps + url: Constants.html#/c:@SDLRequestTypeQueryApps + - name: SDLRequestTypeSettings + url: Constants.html#/c:@SDLRequestTypeSettings + - name: SDLRequestTypeTrafficMessageChannel + url: Constants.html#/c:@SDLRequestTypeTrafficMessageChannel + - name: SDLRequestTypeVehicleDiagnostics + url: Constants.html#/c:@SDLRequestTypeVehicleDiagnostics + - name: SDLRequestTypeVoiceSearch + url: Constants.html#/c:@SDLRequestTypeVoiceSearch + - name: SDLResultAborted + url: Constants.html#/c:@SDLResultAborted + - name: SDLResultApplicationNotRegistered + url: Constants.html#/c:@SDLResultApplicationNotRegistered + - name: SDLResultApplicationRegisteredAlready + url: Constants.html#/c:@SDLResultApplicationRegisteredAlready + - name: SDLResultCancelRoute + url: Constants.html#/c:@SDLResultCancelRoute + - name: SDLResultCharacterLimitExceeded + url: Constants.html#/c:@SDLResultCharacterLimitExceeded + - name: SDLResultDataNotAvailable + url: Constants.html#/c:@SDLResultDataNotAvailable + - name: SDLResultDisallowed + url: Constants.html#/c:@SDLResultDisallowed + - name: SDLResultDuplicateName + url: Constants.html#/c:@SDLResultDuplicateName + - name: SDLResultExpiredCertificate + url: Constants.html#/c:@SDLResultExpiredCertificate + - name: SDLResultFileNotFound + url: Constants.html#/c:@SDLResultFileNotFound + - name: SDLResultGenericError + url: Constants.html#/c:@SDLResultGenericError + - name: SDLResultIgnored + url: Constants.html#/c:@SDLResultIgnored + - name: SDLResultInUse + url: Constants.html#/c:@SDLResultInUse + - name: SDLResultInvalidCertificate + url: Constants.html#/c:@SDLResultInvalidCertificate + - name: SDLResultInvalidData + url: Constants.html#/c:@SDLResultInvalidData + - name: SDLResultInvalidId + url: Constants.html#/c:@SDLResultInvalidId + - name: SDLResultOutOfMemory + url: Constants.html#/c:@SDLResultOutOfMemory + - name: SDLResultReadOnly + url: Constants.html#/c:@SDLResultReadOnly + - name: SDLResultRejected + url: Constants.html#/c:@SDLResultRejected + - name: SDLResultResumeFailed + url: Constants.html#/c:@SDLResultResumeFailed + - name: SDLResultRetry + url: Constants.html#/c:@SDLResultRetry + - name: SDLResultSaved + url: Constants.html#/c:@SDLResultSaved + - name: SDLResultSuccess + url: Constants.html#/c:@SDLResultSuccess + - name: SDLResultTimedOut + url: Constants.html#/c:@SDLResultTimedOut + - name: SDLResultTooManyApplications + url: Constants.html#/c:@SDLResultTooManyApplications + - name: SDLResultTooManyPendingRequests + url: Constants.html#/c:@SDLResultTooManyPendingRequests + - name: SDLResultTruncatedData + url: Constants.html#/c:@SDLResultTruncatedData + - name: SDLResultUnsupportedRequest + url: Constants.html#/c:@SDLResultUnsupportedRequest + - name: SDLResultUnsupportedResource + url: Constants.html#/c:@SDLResultUnsupportedResource + - name: SDLResultUnsupportedVersion + url: Constants.html#/c:@SDLResultUnsupportedVersion + - name: SDLResultUserDisallowed + url: Constants.html#/c:@SDLResultUserDisallowed + - name: SDLResultVehicleDataNotAllowed + url: Constants.html#/c:@SDLResultVehicleDataNotAllowed + - name: SDLResultVehicleDataNotAvailable + url: Constants.html#/c:@SDLResultVehicleDataNotAvailable + - name: SDLResultWarnings + url: Constants.html#/c:@SDLResultWarnings + - name: SDLResultWrongLanguage + url: Constants.html#/c:@SDLResultWrongLanguage + - name: SDLSamplingRate16KHZ + url: Constants.html#/c:@SDLSamplingRate16KHZ + - name: SDLSamplingRate22KHZ + url: Constants.html#/c:@SDLSamplingRate22KHZ + - name: SDLSamplingRate44KHZ + url: Constants.html#/c:@SDLSamplingRate44KHZ + - name: SDLSamplingRate8KHZ + url: Constants.html#/c:@SDLSamplingRate8KHZ + - name: SDLSoftButtonTypeBoth + url: Constants.html#/c:@SDLSoftButtonTypeBoth + - name: SDLSoftButtonTypeImage + url: Constants.html#/c:@SDLSoftButtonTypeImage + - name: SDLSoftButtonTypeText + url: Constants.html#/c:@SDLSoftButtonTypeText + - name: SDLSpeechCapabilitiesLHPlusPhonemes + url: Constants.html#/c:@SDLSpeechCapabilitiesLHPlusPhonemes + - name: SDLSpeechCapabilitiesPrerecorded + url: Constants.html#/c:@SDLSpeechCapabilitiesPrerecorded + - name: SDLSpeechCapabilitiesSAPIPhonemes + url: Constants.html#/c:@SDLSpeechCapabilitiesSAPIPhonemes + - name: SDLSpeechCapabilitiesSilence + url: Constants.html#/c:@SDLSpeechCapabilitiesSilence + - name: SDLSpeechCapabilitiesText + url: Constants.html#/c:@SDLSpeechCapabilitiesText + - name: SDLSystemActionDefaultAction + url: Constants.html#/c:@SDLSystemActionDefaultAction + - name: SDLSystemActionKeepContext + url: Constants.html#/c:@SDLSystemActionKeepContext + - name: SDLSystemActionStealFocus + url: Constants.html#/c:@SDLSystemActionStealFocus + - name: SDLSystemCapabilityTypeNavigation + url: Constants.html#/c:@SDLSystemCapabilityTypeNavigation + - name: SDLSystemCapabilityTypePhoneCall + url: Constants.html#/c:@SDLSystemCapabilityTypePhoneCall + - name: SDLSystemCapabilityTypeRemoteControl + url: Constants.html#/c:@SDLSystemCapabilityTypeRemoteControl + - name: SDLSystemCapabilityTypeVideoStreaming + url: Constants.html#/c:@SDLSystemCapabilityTypeVideoStreaming + - name: SDLSystemContextAlert + url: Constants.html#/c:@SDLSystemContextAlert + - name: SDLSystemContextHMIObscured + url: Constants.html#/c:@SDLSystemContextHMIObscured + - name: SDLSystemContextMain + url: Constants.html#/c:@SDLSystemContextMain + - name: SDLSystemContextMenu + url: Constants.html#/c:@SDLSystemContextMenu + - name: SDLSystemContextVoiceRecognitionSession + url: Constants.html#/c:@SDLSystemContextVoiceRecognitionSession + - name: SDLTBTStateETARequest + url: Constants.html#/c:@SDLTBTStateETARequest + - name: SDLTBTStateNextTurnRequest + url: Constants.html#/c:@SDLTBTStateNextTurnRequest + - name: SDLTBTStateRouteAccepted + url: Constants.html#/c:@SDLTBTStateRouteAccepted + - name: SDLTBTStateRouteCancelled + url: Constants.html#/c:@SDLTBTStateRouteCancelled + - name: SDLTBTStateRouteRefused + url: Constants.html#/c:@SDLTBTStateRouteRefused + - name: SDLTBTStateRouteStatusRequest + url: Constants.html#/c:@SDLTBTStateRouteStatusRequest + - name: SDLTBTStateRouteSummaryRequest + url: Constants.html#/c:@SDLTBTStateRouteSummaryRequest + - name: SDLTBTStateRouteUpdateRequest + url: Constants.html#/c:@SDLTBTStateRouteUpdateRequest + - name: SDLTBTStateRouteUpdateRequestTimeout + url: Constants.html#/c:@SDLTBTStateRouteUpdateRequestTimeout + - name: SDLTBTStateTripStatusRequest + url: Constants.html#/c:@SDLTBTStateTripStatusRequest + - name: SDLTemperatureUnitCelsius + url: Constants.html#/c:@SDLTemperatureUnitCelsius + - name: SDLTemperatureUnitFahrenheit + url: Constants.html#/c:@SDLTemperatureUnitFahrenheit + - name: SDLTextAlignmentCenter + url: Constants.html#/c:@SDLTextAlignmentCenter + - name: SDLTextAlignmentLeft + url: Constants.html#/c:@SDLTextAlignmentLeft + - name: SDLTextAlignmentRight + url: Constants.html#/c:@SDLTextAlignmentRight + - name: SDLTextFieldNameAddressLines + url: Constants.html#/c:@SDLTextFieldNameAddressLines + - name: SDLTextFieldNameAlertText1 + url: Constants.html#/c:@SDLTextFieldNameAlertText1 + - name: SDLTextFieldNameAlertText2 + url: Constants.html#/c:@SDLTextFieldNameAlertText2 + - name: SDLTextFieldNameAlertText3 + url: Constants.html#/c:@SDLTextFieldNameAlertText3 + - name: SDLTextFieldNameAudioPassThruDisplayText1 + url: Constants.html#/c:@SDLTextFieldNameAudioPassThruDisplayText1 + - name: SDLTextFieldNameAudioPassThruDisplayText2 + url: Constants.html#/c:@SDLTextFieldNameAudioPassThruDisplayText2 + - name: SDLTextFieldNameETA + url: Constants.html#/c:@SDLTextFieldNameETA + - name: SDLTextFieldNameInitialInteractionText + url: Constants.html#/c:@SDLTextFieldNameInitialInteractionText + - name: SDLTextFieldNameLocationDescription + url: Constants.html#/c:@SDLTextFieldNameLocationDescription + - name: SDLTextFieldNameLocationName + url: Constants.html#/c:@SDLTextFieldNameLocationName + - name: SDLTextFieldNameMainField1 + url: Constants.html#/c:@SDLTextFieldNameMainField1 + - name: SDLTextFieldNameMainField2 + url: Constants.html#/c:@SDLTextFieldNameMainField2 + - name: SDLTextFieldNameMainField3 + url: Constants.html#/c:@SDLTextFieldNameMainField3 + - name: SDLTextFieldNameMainField4 + url: Constants.html#/c:@SDLTextFieldNameMainField4 + - name: SDLTextFieldNameMediaClock + url: Constants.html#/c:@SDLTextFieldNameMediaClock + - name: SDLTextFieldNameMediaTrack + url: Constants.html#/c:@SDLTextFieldNameMediaTrack + - name: SDLTextFieldNameMenuName + url: Constants.html#/c:@SDLTextFieldNameMenuName + - name: SDLTextFieldNameMenuTitle + url: Constants.html#/c:@SDLTextFieldNameMenuTitle + - name: SDLTextFieldNameNavigationText1 + url: Constants.html#/c:@SDLTextFieldNameNavigationText1 + - name: SDLTextFieldNameNavigationText2 + url: Constants.html#/c:@SDLTextFieldNameNavigationText2 + - name: SDLTextFieldNamePhoneNumber + url: Constants.html#/c:@SDLTextFieldNamePhoneNumber + - name: SDLTextFieldNameScrollableMessageBody + url: Constants.html#/c:@SDLTextFieldNameScrollableMessageBody + - name: SDLTextFieldNameSecondaryText + url: Constants.html#/c:@SDLTextFieldNameSecondaryText + - name: SDLTextFieldNameSliderFooter + url: Constants.html#/c:@SDLTextFieldNameSliderFooter + - name: SDLTextFieldNameSliderHeader + url: Constants.html#/c:@SDLTextFieldNameSliderHeader + - name: SDLTextFieldNameStatusBar + url: Constants.html#/c:@SDLTextFieldNameStatusBar + - name: SDLTextFieldNameTertiaryText + url: Constants.html#/c:@SDLTextFieldNameTertiaryText + - name: SDLTextFieldNameTotalDistance + url: Constants.html#/c:@SDLTextFieldNameTotalDistance + - name: SDLTimerModeDown + url: Constants.html#/c:@SDLTimerModeDown + - name: SDLTimerModeNone + url: Constants.html#/c:@SDLTimerModeNone + - name: SDLTimerModeUp + url: Constants.html#/c:@SDLTimerModeUp + - name: SDLTouchTypeBegin + url: Constants.html#/c:@SDLTouchTypeBegin + - name: SDLTouchTypeCancel + url: Constants.html#/c:@SDLTouchTypeCancel + - name: SDLTouchTypeEnd + url: Constants.html#/c:@SDLTouchTypeEnd + - name: SDLTouchTypeMove + url: Constants.html#/c:@SDLTouchTypeMove - name: SDLTransportDidConnect url: Constants.html#/c:@SDLTransportDidConnect - name: SDLTransportDidDisconnect url: Constants.html#/c:@SDLTransportDidDisconnect + - name: SDLTriggerSourceKeyboard + url: Constants.html#/c:@SDLTriggerSourceKeyboard + - name: SDLTriggerSourceMenu + url: Constants.html#/c:@SDLTriggerSourceMenu + - name: SDLTriggerSourceVoiceRecognition + url: Constants.html#/c:@SDLTriggerSourceVoiceRecognition + - name: SDLUpdateModeClear + url: Constants.html#/c:@SDLUpdateModeClear + - name: SDLUpdateModeCountDown + url: Constants.html#/c:@SDLUpdateModeCountDown + - name: SDLUpdateModeCountUp + url: Constants.html#/c:@SDLUpdateModeCountUp + - name: SDLUpdateModePause + url: Constants.html#/c:@SDLUpdateModePause + - name: SDLUpdateModeResume + url: Constants.html#/c:@SDLUpdateModeResume + - name: SDLVRCapabilitiesText + url: Constants.html#/c:@SDLVRCapabilitiesText + - name: SDLVehicleDataActiveStatusActiveConfirmed + url: Constants.html#/c:@SDLVehicleDataActiveStatusActiveConfirmed + - name: SDLVehicleDataActiveStatusActiveNotConfirmed + url: Constants.html#/c:@SDLVehicleDataActiveStatusActiveNotConfirmed + - name: SDLVehicleDataActiveStatusFault + url: Constants.html#/c:@SDLVehicleDataActiveStatusFault + - name: SDLVehicleDataActiveStatusInactiveConfirmed + url: Constants.html#/c:@SDLVehicleDataActiveStatusInactiveConfirmed + - name: SDLVehicleDataActiveStatusInactiveNotConfirmed + url: Constants.html#/c:@SDLVehicleDataActiveStatusInactiveNotConfirmed + - name: SDLVehicleDataEventStatusFault + url: Constants.html#/c:@SDLVehicleDataEventStatusFault + - name: SDLVehicleDataEventStatusNo + url: Constants.html#/c:@SDLVehicleDataEventStatusNo + - name: SDLVehicleDataEventStatusNoEvent + url: Constants.html#/c:@SDLVehicleDataEventStatusNoEvent + - name: SDLVehicleDataEventStatusNotSupported + url: Constants.html#/c:@SDLVehicleDataEventStatusNotSupported + - name: SDLVehicleDataEventStatusYes + url: Constants.html#/c:@SDLVehicleDataEventStatusYes + - name: SDLVehicleDataNotificationStatusActive + url: Constants.html#/c:@SDLVehicleDataNotificationStatusActive + - name: SDLVehicleDataNotificationStatusNormal + url: Constants.html#/c:@SDLVehicleDataNotificationStatusNormal + - name: SDLVehicleDataNotificationStatusNotSupported + url: Constants.html#/c:@SDLVehicleDataNotificationStatusNotSupported + - name: SDLVehicleDataNotificationStatusNotUsed + url: Constants.html#/c:@SDLVehicleDataNotificationStatusNotUsed + - name: SDLVehicleDataResultCodeDataAlreadySubscribed + url: Constants.html#/c:@SDLVehicleDataResultCodeDataAlreadySubscribed + - name: SDLVehicleDataResultCodeDataNotSubscribed + url: Constants.html#/c:@SDLVehicleDataResultCodeDataNotSubscribed + - name: SDLVehicleDataResultCodeDisallowed + url: Constants.html#/c:@SDLVehicleDataResultCodeDisallowed + - name: SDLVehicleDataResultCodeIgnored + url: Constants.html#/c:@SDLVehicleDataResultCodeIgnored + - name: SDLVehicleDataResultCodeInvalidId + url: Constants.html#/c:@SDLVehicleDataResultCodeInvalidId + - name: SDLVehicleDataResultCodeSuccess + url: Constants.html#/c:@SDLVehicleDataResultCodeSuccess + - name: SDLVehicleDataResultCodeTruncatedData + url: Constants.html#/c:@SDLVehicleDataResultCodeTruncatedData + - name: SDLVehicleDataResultCodeUserDisallowed + url: Constants.html#/c:@SDLVehicleDataResultCodeUserDisallowed + - name: SDLVehicleDataResultCodeVehicleDataNotAvailable + url: Constants.html#/c:@SDLVehicleDataResultCodeVehicleDataNotAvailable + - name: SDLVehicleDataStatusNoDataExists + url: Constants.html#/c:@SDLVehicleDataStatusNoDataExists + - name: SDLVehicleDataStatusOff + url: Constants.html#/c:@SDLVehicleDataStatusOff + - name: SDLVehicleDataStatusOn + url: Constants.html#/c:@SDLVehicleDataStatusOn + - name: SDLVehicleDataTypeAccelerationPedal + url: Constants.html#/c:@SDLVehicleDataTypeAccelerationPedal + - name: SDLVehicleDataTypeAirbagStatus + url: Constants.html#/c:@SDLVehicleDataTypeAirbagStatus + - name: SDLVehicleDataTypeBatteryVoltage + url: Constants.html#/c:@SDLVehicleDataTypeBatteryVoltage + - name: SDLVehicleDataTypeBeltStatus + url: Constants.html#/c:@SDLVehicleDataTypeBeltStatus + - name: SDLVehicleDataTypeBodyInfo + url: Constants.html#/c:@SDLVehicleDataTypeBodyInfo + - name: SDLVehicleDataTypeBraking + url: Constants.html#/c:@SDLVehicleDataTypeBraking + - name: SDLVehicleDataTypeClusterModeStatus + url: Constants.html#/c:@SDLVehicleDataTypeClusterModeStatus + - name: SDLVehicleDataTypeDeviceStatus + url: Constants.html#/c:@SDLVehicleDataTypeDeviceStatus + - name: SDLVehicleDataTypeECallInfo + url: Constants.html#/c:@SDLVehicleDataTypeECallInfo + - name: SDLVehicleDataTypeEmergencyEvent + url: Constants.html#/c:@SDLVehicleDataTypeEmergencyEvent + - name: SDLVehicleDataTypeEngineTorque + url: Constants.html#/c:@SDLVehicleDataTypeEngineTorque + - name: SDLVehicleDataTypeExternalTemperature + url: Constants.html#/c:@SDLVehicleDataTypeExternalTemperature + - name: SDLVehicleDataTypeFuelConsumption + url: Constants.html#/c:@SDLVehicleDataTypeFuelConsumption + - name: SDLVehicleDataTypeFuelLevel + url: Constants.html#/c:@SDLVehicleDataTypeFuelLevel + - name: SDLVehicleDataTypeFuelLevelState + url: Constants.html#/c:@SDLVehicleDataTypeFuelLevelState + - name: SDLVehicleDataTypeGPS + url: Constants.html#/c:@SDLVehicleDataTypeGPS + - name: SDLVehicleDataTypeHeadlampStatus + url: Constants.html#/c:@SDLVehicleDataTypeHeadlampStatus + - name: SDLVehicleDataTypeMyKey + url: Constants.html#/c:@SDLVehicleDataTypeMyKey + - name: SDLVehicleDataTypeOdometer + url: Constants.html#/c:@SDLVehicleDataTypeOdometer + - name: SDLVehicleDataTypePRNDL + url: Constants.html#/c:@SDLVehicleDataTypePRNDL + - name: SDLVehicleDataTypeRPM + url: Constants.html#/c:@SDLVehicleDataTypeRPM + - name: SDLVehicleDataTypeSpeed + url: Constants.html#/c:@SDLVehicleDataTypeSpeed + - name: SDLVehicleDataTypeSteeringWheel + url: Constants.html#/c:@SDLVehicleDataTypeSteeringWheel + - name: SDLVehicleDataTypeTirePressure + url: Constants.html#/c:@SDLVehicleDataTypeTirePressure + - name: SDLVehicleDataTypeVIN + url: Constants.html#/c:@SDLVehicleDataTypeVIN + - name: SDLVehicleDataTypeWiperStatus + url: Constants.html#/c:@SDLVehicleDataTypeWiperStatus + - name: SDLVentilationModeBoth + url: Constants.html#/c:@SDLVentilationModeBoth + - name: SDLVentilationModeLower + url: Constants.html#/c:@SDLVentilationModeLower + - name: SDLVentilationModeNone + url: Constants.html#/c:@SDLVentilationModeNone + - name: SDLVentilationModeUpper + url: Constants.html#/c:@SDLVentilationModeUpper + - name: SDLVideoStreamDidStartNotification + url: Constants.html#/c:@SDLVideoStreamDidStartNotification + - name: SDLVideoStreamDidStopNotification + url: Constants.html#/c:@SDLVideoStreamDidStopNotification + - name: SDLVideoStreamingCodecH264 + url: Constants.html#/c:@SDLVideoStreamingCodecH264 + - name: SDLVideoStreamingCodecH265 + url: Constants.html#/c:@SDLVideoStreamingCodecH265 + - name: SDLVideoStreamingCodecTheora + url: Constants.html#/c:@SDLVideoStreamingCodecTheora + - name: SDLVideoStreamingCodecVP8 + url: Constants.html#/c:@SDLVideoStreamingCodecVP8 + - name: SDLVideoStreamingCodecVP9 + url: Constants.html#/c:@SDLVideoStreamingCodecVP9 + - name: SDLVideoStreamingProtocolRAW + url: Constants.html#/c:@SDLVideoStreamingProtocolRAW + - name: SDLVideoStreamingProtocolRTMP + url: Constants.html#/c:@SDLVideoStreamingProtocolRTMP + - name: SDLVideoStreamingProtocolRTP + url: Constants.html#/c:@SDLVideoStreamingProtocolRTP + - name: SDLVideoStreamingProtocolRTSP + url: Constants.html#/c:@SDLVideoStreamingProtocolRTSP + - name: SDLVideoStreamingProtocolWebM + url: Constants.html#/c:@SDLVideoStreamingProtocolWebM + - name: SDLWarningLightStatusFlash + url: Constants.html#/c:@SDLWarningLightStatusFlash + - name: SDLWarningLightStatusNotUsed + url: Constants.html#/c:@SDLWarningLightStatusNotUsed + - name: SDLWarningLightStatusOff + url: Constants.html#/c:@SDLWarningLightStatusOff + - name: SDLWarningLightStatusOn + url: Constants.html#/c:@SDLWarningLightStatusOn + - name: SDLWayPointTypeAll + url: Constants.html#/c:@SDLWayPointTypeAll + - name: SDLWayPointTypeDestination + url: Constants.html#/c:@SDLWayPointTypeDestination + - name: SDLWiperStatusAutomaticAdjust + url: Constants.html#/c:@SDLWiperStatusAutomaticAdjust + - name: SDLWiperStatusAutomaticHigh + url: Constants.html#/c:@SDLWiperStatusAutomaticHigh + - name: SDLWiperStatusAutomaticLow + url: Constants.html#/c:@SDLWiperStatusAutomaticLow + - name: SDLWiperStatusAutomaticOff + url: Constants.html#/c:@SDLWiperStatusAutomaticOff + - name: SDLWiperStatusCourtesyWipe + url: Constants.html#/c:@SDLWiperStatusCourtesyWipe + - name: SDLWiperStatusManualFlick + url: Constants.html#/c:@SDLWiperStatusManualFlick + - name: SDLWiperStatusManualHigh + url: Constants.html#/c:@SDLWiperStatusManualHigh + - name: SDLWiperStatusManualIntervalOff + url: Constants.html#/c:@SDLWiperStatusManualIntervalOff + - name: SDLWiperStatusManualIntervalOn + url: Constants.html#/c:@SDLWiperStatusManualIntervalOn + - name: SDLWiperStatusManualLow + url: Constants.html#/c:@SDLWiperStatusManualLow + - name: SDLWiperStatusNoDataExists + url: Constants.html#/c:@SDLWiperStatusNoDataExists + - name: SDLWiperStatusOff + url: Constants.html#/c:@SDLWiperStatusOff + - name: SDLWiperStatusOffMoving + url: Constants.html#/c:@SDLWiperStatusOffMoving + - name: SDLWiperStatusStalled + url: Constants.html#/c:@SDLWiperStatusStalled + - name: SDLWiperStatusWash + url: Constants.html#/c:@SDLWiperStatusWash - name: SmartDeviceLinkVersionNumber url: Constants.html#/c:@SmartDeviceLinkVersionNumber - name: SmartDeviceLinkVersionString @@ -720,20 +1754,20 @@ sub_nav: - name: SDLArtworkImageFormat url: Enums/SDLArtworkImageFormat.html - - name: SDLDebugOutput - url: Enums/SDLDebugOutput.html - - name: SDLDebugType - url: Enums/SDLDebugType.html - - name: SDLEncryptionFlag - url: Enums/SDLEncryptionFlag.html - name: SDLFileManagerError url: Enums/SDLFileManagerError.html - - name: SDLFrameData - url: Enums/SDLFrameData.html + - name: SDLFrameInfo + url: Enums/SDLFrameInfo.html - name: SDLFrameType url: Enums/SDLFrameType.html - - name: SDLLogOutput - url: Enums/SDLLogOutput.html + - name: SDLLogBytesDirection + url: Enums/SDLLogBytesDirection.html + - name: SDLLogFlag + url: Enums/SDLLogFlag.html + - name: SDLLogFormatType + url: Enums/SDLLogFormatType.html + - name: SDLLogLevel + url: Enums/SDLLogLevel.html - name: SDLManagerError url: Enums/SDLManagerError.html - name: SDLPermissionGroupStatus @@ -746,30 +1780,26 @@ url: Enums/SDLRPCMessageType.html - name: SDLServiceType url: Enums/SDLServiceType.html - - name: SDLStreamingAudioError - url: Enums/SDLStreamingAudioError.html - - name: SDLStreamingVideoError - url: Enums/SDLStreamingVideoError.html + - name: SDLStreamingEncryptionFlag + url: Enums/SDLStreamingEncryptionFlag.html - name: Protocols sub_nav: - name: SDLBool url: Protocols.html#/c:objc(pl)SDLBool - - name: SDLDebugToolConsole - url: Protocols/SDLDebugToolConsole.html - name: SDLFloat url: Protocols.html#/c:objc(pl)SDLFloat - name: SDLIAPSessionDelegate url: Protocols/SDLIAPSessionDelegate.html - name: SDLInt url: Protocols.html#/c:objc(pl)SDLInt + - name: SDLLogTarget + url: Protocols/SDLLogTarget.html - name: SDLManagerDelegate url: Protocols/SDLManagerDelegate.html - name: SDLProtocolListener url: Protocols/SDLProtocolListener.html - name: SDLProxyListener url: Protocols/SDLProxyListener.html - - name: SDLRequestHandler - url: Protocols/SDLRequestHandler.html - name: SDLSecurityType url: Protocols/SDLSecurityType.html - name: SDLTouchManagerDelegate @@ -780,33 +1810,205 @@ url: Protocols.html#/c:objc(pl)SDLUInt - name: Type Definitions sub_nav: + - name: SDLAmbientLightStatus + url: Type Definitions.html#/c:SDLAmbientLightStatus.h@T@SDLAmbientLightStatus + - name: SDLAppHMIType + url: Type Definitions.html#/c:SDLAppHMIType.h@T@SDLAppHMIType + - name: SDLAppInterfaceUnregisteredReason + url: Type Definitions.html#/c:SDLAppInterfaceUnregisteredReason.h@T@SDLAppInterfaceUnregisteredReason + - name: SDLAudioPassThruHandler + url: Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLAudioPassThruHandler + - name: SDLAudioStreamingState + url: Type Definitions.html#/c:SDLAudioStreamingState.h@T@SDLAudioStreamingState + - name: SDLAudioType + url: Type Definitions.html#/c:SDLAudioType.h@T@SDLAudioType + - name: SDLBitsPerSample + url: Type Definitions.html#/c:SDLBitsPerSample.h@T@SDLBitsPerSample + - name: SDLButtonEventMode + url: Type Definitions.html#/c:SDLButtonEventMode.h@T@SDLButtonEventMode + - name: SDLButtonName + url: Type Definitions.html#/c:SDLButtonName.h@T@SDLButtonName + - name: SDLButtonPressMode + url: Type Definitions.html#/c:SDLButtonPressMode.h@T@SDLButtonPressMode + - name: SDLCarModeStatus + url: Type Definitions.html#/c:SDLCarModeStatus.h@T@SDLCarModeStatus + - name: SDLCharacterSet + url: Type Definitions.html#/c:SDLCharacterSet.h@T@SDLCharacterSet + - name: SDLCompassDirection + url: Type Definitions.html#/c:SDLCompassDirection.h@T@SDLCompassDirection + - name: SDLComponentVolumeStatus + url: Type Definitions.html#/c:SDLComponentVolumeStatus.h@T@SDLComponentVolumeStatus + - name: SDLDefrostZone + url: Type Definitions.html#/c:SDLDefrostZone.h@T@SDLDefrostZone + - name: SDLDeliveryMode + url: Type Definitions.html#/c:SDLDeliveryMode.h@T@SDLDeliveryMode + - name: SDLDeviceLevelStatus + url: Type Definitions.html#/c:SDLDeviceLevelStatus.h@T@SDLDeviceLevelStatus + - name: SDLDimension + url: Type Definitions.html#/c:SDLDimension.h@T@SDLDimension + - name: SDLDisplayType + url: Type Definitions.html#/c:SDLDisplayType.h@T@SDLDisplayType + - name: SDLDriverDistractionState + url: Type Definitions.html#/c:SDLDriverDistractionState.h@T@SDLDriverDistractionState + - name: SDLECallConfirmationStatus + url: Type Definitions.html#/c:SDLECallConfirmationStatus.h@T@SDLECallConfirmationStatus + - name: SDLEmergencyEventType + url: Type Definitions.html#/c:SDLEmergencyEventType.h@T@SDLEmergencyEventType + - name: SDLEnum + url: Type Definitions.html#/c:SDLEnum.h@T@SDLEnum - name: SDLFileManagerDeleteCompletionHandler url: Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerDeleteCompletionHandler - name: SDLFileManagerListFilesCompletionHandler url: Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerListFilesCompletionHandler + - name: SDLFileManagerMultiDeleteCompletionHandler + url: Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerMultiDeleteCompletionHandler + - name: SDLFileManagerMultiUploadCompletionHandler + url: Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerMultiUploadCompletionHandler + - name: SDLFileManagerMultiUploadProgressHandler + url: Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerMultiUploadProgressHandler - name: SDLFileManagerStartupCompletionHandler url: Type Definitions.html#/c:SDLFileManager.h@T@SDLFileManagerStartupCompletionHandler - name: SDLFileManagerUploadCompletionHandler url: Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerUploadCompletionHandler - name: SDLFileName - url: Type Definitions.html#/c:SDLFileManager.h@T@SDLFileName + url: Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileName + - name: SDLFileType + url: Type Definitions.html#/c:SDLFileType.h@T@SDLFileType + - name: SDLFuelCutoffStatus + url: Type Definitions.html#/c:SDLFuelCutoffStatus.h@T@SDLFuelCutoffStatus + - name: SDLGlobalProperty + url: Type Definitions.html#/c:SDLGlobalProperty.h@T@SDLGlobalProperty + - name: SDLHMILevel + url: Type Definitions.html#/c:SDLHMILevel.h@T@SDLHMILevel + - name: SDLHMIZoneCapabilities + url: Type Definitions.html#/c:SDLHMIZoneCapabilities.h@T@SDLHMIZoneCapabilities + - name: SDLIgnitionStableStatus + url: Type Definitions.html#/c:SDLIgnitionStableStatus.h@T@SDLIgnitionStableStatus + - name: SDLIgnitionStatus + url: Type Definitions.html#/c:SDLIgnitionStatus.h@T@SDLIgnitionStatus + - name: SDLImageFieldName + url: Type Definitions.html#/c:SDLImageFieldName.h@T@SDLImageFieldName + - name: SDLImageType + url: Type Definitions.html#/c:SDLImageType.h@T@SDLImageType + - name: SDLInteractionMode + url: Type Definitions.html#/c:SDLInteractionMode.h@T@SDLInteractionMode + - name: SDLKeyboardEvent + url: Type Definitions.html#/c:SDLKeyboardEvent.h@T@SDLKeyboardEvent + - name: SDLKeyboardLayout + url: Type Definitions.html#/c:SDLKeyboardLayout.h@T@SDLKeyboardLayout + - name: SDLKeypressMode + url: Type Definitions.html#/c:SDLKeypressMode.h@T@SDLKeypressMode + - name: SDLLanguage + url: Type Definitions.html#/c:SDLLanguage.h@T@SDLLanguage + - name: SDLLayoutMode + url: Type Definitions.html#/c:SDLLayoutMode.h@T@SDLLayoutMode + - name: SDLLockScreenStatus + url: Type Definitions.html#/c:SDLLockScreenStatus.h@T@SDLLockScreenStatus + - name: SDLLogFilterBlock + url: Type Definitions.html#/c:SDLLogConstants.h@T@SDLLogFilterBlock + - name: SDLMaintenanceModeStatus + url: Type Definitions.html#/c:SDLMaintenanceModeStatus.h@T@SDLMaintenanceModeStatus - name: SDLManagerReadyBlock url: Type Definitions.html#/c:SDLManager.h@T@SDLManagerReadyBlock + - name: SDLMediaClockFormat + url: Type Definitions.html#/c:SDLMediaClockFormat.h@T@SDLMediaClockFormat + - name: SDLMetadataType + url: Type Definitions.html#/c:SDLMetadataType.h@T@SDLMetadataType + - name: SDLModuleType + url: Type Definitions.html#/c:SDLModuleType.h@T@SDLModuleType - name: SDLNotificationName url: Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName - name: SDLNotificationUserInfoKey url: Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationUserInfoKey + - name: SDLPRNDL + url: Type Definitions.html#/c:SDLPRNDL.h@T@SDLPRNDL - name: SDLPermissionObserverIdentifier url: Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionObserverIdentifier - name: SDLPermissionRPCName url: Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionRPCName + - name: SDLPermissionStatus + url: Type Definitions.html#/c:SDLPermissionStatus.h@T@SDLPermissionStatus - name: SDLPermissionsChangedHandler url: Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionsChangedHandler - - name: SDLRPCNotificationHandler - url: Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCNotificationHandler + - name: SDLPowerModeQualificationStatus + url: Type Definitions.html#/c:SDLPowerModeQualificationStatus.h@T@SDLPowerModeQualificationStatus + - name: SDLPowerModeStatus + url: Type Definitions.html#/c:SDLPowerModeStatus.h@T@SDLPowerModeStatus + - name: SDLPredefinedLayout + url: Type Definitions.html#/c:SDLPredefinedLayout.h@T@SDLPredefinedLayout + - name: SDLPrerecordedSpeech + url: Type Definitions.html#/c:SDLPrerecordedSpeech.h@T@SDLPrerecordedSpeech + - name: SDLPrimaryAudioSource + url: Type Definitions.html#/c:SDLPrimaryAudioSource.h@T@SDLPrimaryAudioSource + - name: SDLRPCButtonNotificationHandler + url: Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCButtonNotificationHandler + - name: SDLRPCCommandNotificationHandler + url: Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCCommandNotificationHandler + - name: SDLRadioBand + url: Type Definitions.html#/c:SDLRadioBand.h@T@SDLRadioBand + - name: SDLRadioState + url: Type Definitions.html#/c:SDLRadioState.h@T@SDLRadioState + - name: SDLRequestType + url: Type Definitions.html#/c:SDLRequestType.h@T@SDLRequestType - name: SDLResponseHandler url: Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLResponseHandler - - name: SDLStreamingEncryptionStartBlock - url: Type Definitions.html#/c:SDLStreamingMediaManager.h@T@SDLStreamingEncryptionStartBlock - - name: SDLStreamingStartBlock - url: Type Definitions.html#/c:SDLStreamingMediaManager.h@T@SDLStreamingStartBlock + - name: SDLResult + url: Type Definitions.html#/c:SDLResult.h@T@SDLResult + - name: SDLSamplingRate + url: Type Definitions.html#/c:SDLSamplingRate.h@T@SDLSamplingRate + - name: SDLSoftButtonType + url: Type Definitions.html#/c:SDLSoftButtonType.h@T@SDLSoftButtonType + - name: SDLSpeechCapabilities + url: Type Definitions.html#/c:SDLSpeechCapabilities.h@T@SDLSpeechCapabilities + - name: SDLSystemAction + url: Type Definitions.html#/c:SDLSystemAction.h@T@SDLSystemAction + - name: SDLSystemCapabilityType + url: Type Definitions.html#/c:SDLSystemCapabilityType.h@T@SDLSystemCapabilityType + - name: SDLSystemContext + url: Type Definitions.html#/c:SDLSystemContext.h@T@SDLSystemContext + - name: SDLTBTState + url: Type Definitions.html#/c:SDLTBTState.h@T@SDLTBTState + - name: SDLTemperatureUnit + url: Type Definitions.html#/c:SDLTemperatureUnit.h@T@SDLTemperatureUnit + - name: SDLTextAlignment + url: Type Definitions.html#/c:SDLTextAlignment.h@T@SDLTextAlignment + - name: SDLTextFieldName + url: Type Definitions.html#/c:SDLTextFieldName.h@T@SDLTextFieldName + - name: SDLTimerMode + url: Type Definitions.html#/c:SDLTimerMode.h@T@SDLTimerMode + - name: SDLTouchEventHandler + url: Type Definitions.html#/c:SDLTouchManager.h@T@SDLTouchEventHandler + - name: SDLTouchIdentifier + url: Type Definitions/SDLTouchIdentifier.html + - name: SDLTouchType + url: Type Definitions.html#/c:SDLTouchType.h@T@SDLTouchType + - name: SDLTriggerSource + url: Type Definitions.html#/c:SDLTriggerSource.h@T@SDLTriggerSource + - name: SDLUpdateMode + url: Type Definitions.html#/c:SDLUpdateMode.h@T@SDLUpdateMode + - name: SDLVRCapabilities + url: Type Definitions.html#/c:SDLVrCapabilities.h@T@SDLVRCapabilities + - name: SDLVehicleDataActiveStatus + url: Type Definitions.html#/c:SDLVehicleDataActiveStatus.h@T@SDLVehicleDataActiveStatus + - name: SDLVehicleDataEventStatus + url: Type Definitions.html#/c:SDLVehicleDataEventStatus.h@T@SDLVehicleDataEventStatus + - name: SDLVehicleDataNotificationStatus + url: Type Definitions.html#/c:SDLVehicleDataNotificationStatus.h@T@SDLVehicleDataNotificationStatus + - name: SDLVehicleDataResultCode + url: Type Definitions.html#/c:SDLVehicleDataResultCode.h@T@SDLVehicleDataResultCode + - name: SDLVehicleDataStatus + url: Type Definitions.html#/c:SDLVehicleDataStatus.h@T@SDLVehicleDataStatus + - name: SDLVehicleDataType + url: Type Definitions.html#/c:SDLVehicleDataType.h@T@SDLVehicleDataType + - name: SDLVentilationMode + url: Type Definitions.html#/c:SDLVentilationMode.h@T@SDLVentilationMode + - name: SDLVideoStreamingCodec + url: Type Definitions.html#/c:SDLVideoStreamingCodec.h@T@SDLVideoStreamingCodec + - name: SDLVideoStreamingProtocol + url: Type Definitions.html#/c:SDLVideoStreamingProtocol.h@T@SDLVideoStreamingProtocol + - name: SDLWarningLightStatus + url: Type Definitions.html#/c:SDLWarningLightStatus.h@T@SDLWarningLightStatus + - name: SDLWayPointType + url: Type Definitions.html#/c:SDLWayPointType.h@T@SDLWayPointType + - name: SDLWiperStatus + url: Type Definitions.html#/c:SDLWiperStatus.h@T@SDLWiperStatus diff --git a/docs/search.json b/docs/search.json index 2c6e6006a..1ae6c7fc9 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"Type Definitions.html#/c:SDLFileManager.h@T@SDLFileName":{"name":"SDLFileName","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLFileManager.h@T@SDLFileManagerStartupCompletionHandler":{"name":"SDLFileManagerStartupCompletionHandler","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerUploadCompletionHandler":{"name":"SDLFileManagerUploadCompletionHandler","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerDeleteCompletionHandler":{"name":"SDLFileManagerDeleteCompletionHandler","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerListFilesCompletionHandler":{"name":"SDLFileManagerListFilesCompletionHandler","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLManager.h@T@SDLManagerReadyBlock":{"name":"SDLManagerReadyBlock","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName":{"name":"SDLNotificationName","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationUserInfoKey":{"name":"SDLNotificationUserInfoKey","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCNotificationHandler":{"name":"SDLRPCNotificationHandler","abstract":"

                                A handler used on certain RPCs, primarily buttons or commands, when an event occurs.

                                "},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLResponseHandler":{"name":"SDLResponseHandler","abstract":"

                                A handler used on all RPC requests which fires when the response is received.

                                "},"Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionRPCName":{"name":"SDLPermissionRPCName","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionObserverIdentifier":{"name":"SDLPermissionObserverIdentifier","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionsChangedHandler":{"name":"SDLPermissionsChangedHandler","abstract":"

                                The PermissionObserver is a block that is passed in to some methods that will be stored and called when specified permissions change.

                                "},"Type Definitions.html#/c:SDLStreamingMediaManager.h@T@SDLStreamingStartBlock":{"name":"SDLStreamingStartBlock","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLStreamingMediaManager.h@T@SDLStreamingEncryptionStartBlock":{"name":"SDLStreamingEncryptionStartBlock","abstract":"

                                Undocumented

                                "},"Protocols/SDLTransportDelegate.html#/c:objc(pl)SDLTransportDelegate(im)onTransportConnected":{"name":"-onTransportConnected","abstract":"

                                Undocumented

                                ","parent_name":"SDLTransportDelegate"},"Protocols/SDLTransportDelegate.html#/c:objc(pl)SDLTransportDelegate(im)onTransportDisconnected":{"name":"-onTransportDisconnected","abstract":"

                                Undocumented

                                ","parent_name":"SDLTransportDelegate"},"Protocols/SDLTransportDelegate.html#/c:objc(pl)SDLTransportDelegate(im)onDataReceived:":{"name":"-onDataReceived:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTransportDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:didReceiveSingleTapAtPoint:":{"name":"-touchManager:didReceiveSingleTapAtPoint:","abstract":"

                                @abstract","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:didReceiveDoubleTapAtPoint:":{"name":"-touchManager:didReceiveDoubleTapAtPoint:","abstract":"

                                @abstract","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:panningDidStartAtPoint:":{"name":"-touchManager:panningDidStartAtPoint:","abstract":"

                                @abstract","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:didReceivePanningFromPoint:toPoint:":{"name":"-touchManager:didReceivePanningFromPoint:toPoint:","abstract":"

                                @abstract","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:panningDidEndAtPoint:":{"name":"-touchManager:panningDidEndAtPoint:","abstract":"

                                @abstract","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:pinchDidStartAtCenterPoint:":{"name":"-touchManager:pinchDidStartAtCenterPoint:","abstract":"

                                @abstract","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:didReceivePinchAtCenterPoint:withScale:":{"name":"-touchManager:didReceivePinchAtCenterPoint:withScale:","abstract":"

                                @abstract","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:pinchDidEndAtCenterPoint:":{"name":"-touchManager:pinchDidEndAtCenterPoint:","abstract":"

                                @abstract","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(py)appId":{"name":"appId","abstract":"

                                Undocumented

                                ","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(im)initializeWithAppId:completionHandler:":{"name":"-initializeWithAppId:completionHandler:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(im)stop":{"name":"-stop","abstract":"

                                Undocumented

                                ","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(im)runHandshakeWithClientData:error:":{"name":"-runHandshakeWithClientData:error:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(im)encryptData:withError:":{"name":"-encryptData:withError:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(im)decryptData:withError:":{"name":"-decryptData:withError:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(cm)availableMakes":{"name":"+availableMakes","abstract":"

                                Undocumented

                                ","parent_name":"SDLSecurityType"},"Protocols/SDLRequestHandler.html#/c:objc(pl)SDLRequestHandler(py)handler":{"name":"handler","abstract":"

                                The handler that is added to any RPC implementing this protocol.

                                ","parent_name":"SDLRequestHandler"},"Protocols/SDLRequestHandler.html#/c:objc(pl)SDLRequestHandler(im)initWithHandler:":{"name":"-initWithHandler:","abstract":"

                                A special init function on any RPC implementing this protocol.

                                ","parent_name":"SDLRequestHandler"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnDriverDistraction:":{"name":"-onOnDriverDistraction:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnHMIStatus:":{"name":"-onOnHMIStatus:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onProxyClosed":{"name":"-onProxyClosed","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onProxyOpened":{"name":"-onProxyOpened","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onAddCommandResponse:":{"name":"-onAddCommandResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onAddSubMenuResponse:":{"name":"-onAddSubMenuResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onAlertManeuverResponse:":{"name":"-onAlertManeuverResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onAlertResponse:":{"name":"-onAlertResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onChangeRegistrationResponse:":{"name":"-onChangeRegistrationResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onCreateInteractionChoiceSetResponse:":{"name":"-onCreateInteractionChoiceSetResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onDeleteCommandResponse:":{"name":"-onDeleteCommandResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onDeleteFileResponse:":{"name":"-onDeleteFileResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onDeleteInteractionChoiceSetResponse:":{"name":"-onDeleteInteractionChoiceSetResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onDeleteSubMenuResponse:":{"name":"-onDeleteSubMenuResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onDiagnosticMessageResponse:":{"name":"-onDiagnosticMessageResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onDialNumberResponse:":{"name":"-onDialNumberResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onEncodedSyncPDataResponse:":{"name":"-onEncodedSyncPDataResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onEndAudioPassThruResponse:":{"name":"-onEndAudioPassThruResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onError:":{"name":"-onError:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onGenericResponse:":{"name":"-onGenericResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onGetDTCsResponse:":{"name":"-onGetDTCsResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onGetSystemCapabilityResponse:":{"name":"-onGetSystemCapabilityResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onGetVehicleDataResponse:":{"name":"-onGetVehicleDataResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onGetWayPointsResponse:":{"name":"-onGetWayPointsResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onListFilesResponse:":{"name":"-onListFilesResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onReceivedLockScreenIcon:":{"name":"-onReceivedLockScreenIcon:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnAppInterfaceUnregistered:":{"name":"-onOnAppInterfaceUnregistered:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnAudioPassThru:":{"name":"-onOnAudioPassThru:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnButtonEvent:":{"name":"-onOnButtonEvent:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnButtonPress:":{"name":"-onOnButtonPress:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnCommand:":{"name":"-onOnCommand:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnEncodedSyncPData:":{"name":"-onOnEncodedSyncPData:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnHashChange:":{"name":"-onOnHashChange:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnKeyboardInput:":{"name":"-onOnKeyboardInput:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnLanguageChange:":{"name":"-onOnLanguageChange:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnLockScreenNotification:":{"name":"-onOnLockScreenNotification:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnPermissionsChange:":{"name":"-onOnPermissionsChange:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnSyncPData:":{"name":"-onOnSyncPData:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnSystemRequest:":{"name":"-onOnSystemRequest:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnTBTClientState:":{"name":"-onOnTBTClientState:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnTouchEvent:":{"name":"-onOnTouchEvent:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnVehicleData:":{"name":"-onOnVehicleData:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnWayPointChange:":{"name":"-onOnWayPointChange:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onPerformAudioPassThruResponse:":{"name":"-onPerformAudioPassThruResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onPerformInteractionResponse:":{"name":"-onPerformInteractionResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onPutFileResponse:":{"name":"-onPutFileResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onReadDIDResponse:":{"name":"-onReadDIDResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onRegisterAppInterfaceResponse:":{"name":"-onRegisterAppInterfaceResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onResetGlobalPropertiesResponse:":{"name":"-onResetGlobalPropertiesResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onScrollableMessageResponse:":{"name":"-onScrollableMessageResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSendHapticDataResponse:":{"name":"-onSendHapticDataResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSendLocationResponse:":{"name":"-onSendLocationResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSetAppIconResponse:":{"name":"-onSetAppIconResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSetDisplayLayoutResponse:":{"name":"-onSetDisplayLayoutResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSetGlobalPropertiesResponse:":{"name":"-onSetGlobalPropertiesResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSetMediaClockTimerResponse:":{"name":"-onSetMediaClockTimerResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onShowConstantTBTResponse:":{"name":"-onShowConstantTBTResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onShowResponse:":{"name":"-onShowResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSliderResponse:":{"name":"-onSliderResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSpeakResponse:":{"name":"-onSpeakResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSubscribeButtonResponse:":{"name":"-onSubscribeButtonResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSubscribeVehicleDataResponse:":{"name":"-onSubscribeVehicleDataResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSubscribeWayPointsResponse:":{"name":"-onSubscribeWayPointsResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSyncPDataResponse:":{"name":"-onSyncPDataResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onUpdateTurnListResponse:":{"name":"-onUpdateTurnListResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onUnregisterAppInterfaceResponse:":{"name":"-onUnregisterAppInterfaceResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onUnsubscribeButtonResponse:":{"name":"-onUnsubscribeButtonResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onUnsubscribeVehicleDataResponse:":{"name":"-onUnsubscribeVehicleDataResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onUnsubscribeWayPointsResponse:":{"name":"-onUnsubscribeWayPointsResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)handleProtocolStartServiceACKMessage:":{"name":"-handleProtocolStartServiceACKMessage:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)handleProtocolStartServiceNAKMessage:":{"name":"-handleProtocolStartServiceNAKMessage:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)handleProtocolEndServiceACKMessage:":{"name":"-handleProtocolEndServiceACKMessage:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)handleProtocolEndServiceNAKMessage:":{"name":"-handleProtocolEndServiceNAKMessage:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)handleProtocolStartSessionACK:sessionID:version:":{"name":"-handleProtocolStartSessionACK:sessionID:version:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)handleProtocolStartSessionACK:":{"name":"-handleProtocolStartSessionACK:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)handleProtocolStartSessionNACK:":{"name":"-handleProtocolStartSessionNACK:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)handleProtocolEndSessionACK:":{"name":"-handleProtocolEndSessionACK:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)handleProtocolEndSessionNACK:":{"name":"-handleProtocolEndSessionNACK:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)handleHeartbeatForSession:":{"name":"-handleHeartbeatForSession:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)handleHeartbeatACK":{"name":"-handleHeartbeatACK","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)onProtocolMessageReceived:":{"name":"-onProtocolMessageReceived:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)onProtocolOpened":{"name":"-onProtocolOpened","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)onProtocolClosed":{"name":"-onProtocolClosed","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)onError:exception:":{"name":"-onError:exception:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLManagerDelegate.html#/c:objc(pl)SDLManagerDelegate(im)managerDidDisconnect":{"name":"-managerDidDisconnect","abstract":"

                                Called upon a disconnection from the remote system.

                                ","parent_name":"SDLManagerDelegate"},"Protocols/SDLManagerDelegate.html#/c:objc(pl)SDLManagerDelegate(im)hmiLevel:didChangeToLevel:":{"name":"-hmiLevel:didChangeToLevel:","abstract":"

                                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.

                                ","parent_name":"SDLManagerDelegate"},"Protocols/SDLIAPSessionDelegate.html#/c:objc(pl)SDLIAPSessionDelegate(im)onSessionInitializationCompleteForSession:":{"name":"-onSessionInitializationCompleteForSession:","abstract":"

                                Undocumented

                                ","parent_name":"SDLIAPSessionDelegate"},"Protocols/SDLIAPSessionDelegate.html#/c:objc(pl)SDLIAPSessionDelegate(im)onSessionStreamsEnded:":{"name":"-onSessionStreamsEnded:","abstract":"

                                Undocumented

                                ","parent_name":"SDLIAPSessionDelegate"},"Protocols/SDLDebugToolConsole.html#/c:objc(pl)SDLDebugToolConsole(im)logInfo:":{"name":"-logInfo:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugToolConsole"},"Protocols.html#/c:objc(pl)SDLInt":{"name":"SDLInt","abstract":"

                                A decleration that this NSNumber contains an NSInteger.

                                "},"Protocols.html#/c:objc(pl)SDLUInt":{"name":"SDLUInt","abstract":"

                                A declaration that this NSNumber contains an NSUInteger.

                                "},"Protocols.html#/c:objc(pl)SDLBool":{"name":"SDLBool","abstract":"

                                A declaration that this NSNumber contains a BOOL.

                                "},"Protocols.html#/c:objc(pl)SDLFloat":{"name":"SDLFloat","abstract":"

                                A declaration that this NSNumber contains a float.

                                "},"Protocols/SDLDebugToolConsole.html":{"name":"SDLDebugToolConsole","abstract":"

                                Undocumented

                                "},"Protocols/SDLIAPSessionDelegate.html":{"name":"SDLIAPSessionDelegate","abstract":"

                                Undocumented

                                "},"Protocols/SDLManagerDelegate.html":{"name":"SDLManagerDelegate","abstract":"

                                Undocumented

                                "},"Protocols/SDLProtocolListener.html":{"name":"SDLProtocolListener","abstract":"

                                Undocumented

                                "},"Protocols/SDLProxyListener.html":{"name":"SDLProxyListener","abstract":"

                                Undocumented

                                "},"Protocols/SDLRequestHandler.html":{"name":"SDLRequestHandler","abstract":"

                                Undocumented

                                "},"Protocols/SDLSecurityType.html":{"name":"SDLSecurityType","abstract":"

                                Undocumented

                                "},"Protocols/SDLTouchManagerDelegate.html":{"name":"SDLTouchManagerDelegate","abstract":"

                                Undocumented

                                "},"Protocols/SDLTransportDelegate.html":{"name":"SDLTransportDelegate","abstract":"

                                Undocumented

                                "},"Enums/SDLStreamingAudioError.html#/c:@E@SDLStreamingAudioError@SDLStreamingAudioErrorHeadUnitNACK":{"name":"SDLStreamingAudioErrorHeadUnitNACK","abstract":"

                                Undocumented

                                ","parent_name":"SDLStreamingAudioError"},"Enums/SDLEncryptionFlag.html#/c:@E@SDLEncryptionFlag@SDLEncryptionFlagNone":{"name":"SDLEncryptionFlagNone","abstract":"

                                Undocumented

                                ","parent_name":"SDLEncryptionFlag"},"Enums/SDLEncryptionFlag.html#/c:@E@SDLEncryptionFlag@SDLEncryptionFlagAuthenticateOnly":{"name":"SDLEncryptionFlagAuthenticateOnly","abstract":"

                                Undocumented

                                ","parent_name":"SDLEncryptionFlag"},"Enums/SDLEncryptionFlag.html#/c:@E@SDLEncryptionFlag@SDLEncryptionFlagAuthenticateAndEncrypt":{"name":"SDLEncryptionFlagAuthenticateAndEncrypt","abstract":"

                                Undocumented

                                ","parent_name":"SDLEncryptionFlag"},"Enums/SDLStreamingVideoError.html#/c:@E@SDLStreamingVideoError@SDLStreamingVideoErrorHeadUnitNACK":{"name":"SDLStreamingVideoErrorHeadUnitNACK","abstract":"

                                Undocumented

                                ","parent_name":"SDLStreamingVideoError"},"Enums/SDLStreamingVideoError.html#/c:@E@SDLStreamingVideoError@SDLSTreamingVideoErrorInvalidOperatingSystemVersion":{"name":"SDLSTreamingVideoErrorInvalidOperatingSystemVersion","abstract":"

                                Undocumented

                                ","parent_name":"SDLStreamingVideoError"},"Enums/SDLStreamingVideoError.html#/c:@E@SDLStreamingVideoError@SDLStreamingVideoErrorInvalidOperatingSystemVersion":{"name":"SDLStreamingVideoErrorInvalidOperatingSystemVersion","abstract":"

                                Undocumented

                                ","parent_name":"SDLStreamingVideoError"},"Enums/SDLStreamingVideoError.html#/c:@E@SDLStreamingVideoError@SDLStreamingVideoErrorConfigurationCompressionSessionCreationFailure":{"name":"SDLStreamingVideoErrorConfigurationCompressionSessionCreationFailure","abstract":"

                                Undocumented

                                ","parent_name":"SDLStreamingVideoError"},"Enums/SDLStreamingVideoError.html#/c:@E@SDLStreamingVideoError@SDLStreamingVideoErrorConfigurationAllocationFailure":{"name":"SDLStreamingVideoErrorConfigurationAllocationFailure","abstract":"

                                Undocumented

                                ","parent_name":"SDLStreamingVideoError"},"Enums/SDLStreamingVideoError.html#/c:@E@SDLStreamingVideoError@SDLStreamingVideoErrorConfigurationCompressionSessionSetPropertyFailure":{"name":"SDLStreamingVideoErrorConfigurationCompressionSessionSetPropertyFailure","abstract":"

                                Undocumented

                                ","parent_name":"SDLStreamingVideoError"},"Enums/SDLRPCMessageType.html#/c:@E@SDLRPCMessageType@SDLRPCMessageTypeRequest":{"name":"SDLRPCMessageTypeRequest","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessageType"},"Enums/SDLRPCMessageType.html#/c:@E@SDLRPCMessageType@SDLRPCMessageTypeResponse":{"name":"SDLRPCMessageTypeResponse","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessageType"},"Enums/SDLRPCMessageType.html#/c:@E@SDLRPCMessageType@SDLRPCMessageTypeNotification":{"name":"SDLRPCMessageTypeNotification","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessageType"},"Enums/SDLFrameData.html#/c:@E@SDLFrameData@SDLFrameData_Heartbeat":{"name":"SDLFrameData_Heartbeat","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameData"},"Enums/SDLFrameData.html#/c:@E@SDLFrameData@SDLFrameData_StartSession":{"name":"SDLFrameData_StartSession","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameData"},"Enums/SDLFrameData.html#/c:@E@SDLFrameData@SDLFrameData_StartSessionACK":{"name":"SDLFrameData_StartSessionACK","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameData"},"Enums/SDLFrameData.html#/c:@E@SDLFrameData@SDLFrameData_StartSessionNACK":{"name":"SDLFrameData_StartSessionNACK","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameData"},"Enums/SDLFrameData.html#/c:@E@SDLFrameData@SDLFrameData_EndSession":{"name":"SDLFrameData_EndSession","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameData"},"Enums/SDLFrameData.html#/c:@E@SDLFrameData@SDLFrameData_EndSessionACK":{"name":"SDLFrameData_EndSessionACK","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameData"},"Enums/SDLFrameData.html#/c:@E@SDLFrameData@SDLFrameData_EndSessionNACK":{"name":"SDLFrameData_EndSessionNACK","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameData"},"Enums/SDLFrameData.html#/c:@E@SDLFrameData@SDLFrameData_ServiceDataACK":{"name":"SDLFrameData_ServiceDataACK","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameData"},"Enums/SDLFrameData.html#/c:@E@SDLFrameData@SDLFrameData_HeartbeatACK":{"name":"SDLFrameData_HeartbeatACK","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameData"},"Enums/SDLFrameData.html#/c:@E@SDLFrameData@SDLFrameData_SingleFrame":{"name":"SDLFrameData_SingleFrame","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameData"},"Enums/SDLFrameData.html#/c:@E@SDLFrameData@SDLFrameData_FirstFrame":{"name":"SDLFrameData_FirstFrame","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameData"},"Enums/SDLFrameData.html#/c:@E@SDLFrameData@SDLFrameData_ConsecutiveLastFrame":{"name":"SDLFrameData_ConsecutiveLastFrame","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameData"},"Enums/SDLServiceType.html#/c:@E@SDLServiceType@SDLServiceType_Control":{"name":"SDLServiceType_Control","abstract":"

                                Undocumented

                                ","parent_name":"SDLServiceType"},"Enums/SDLServiceType.html#/c:@E@SDLServiceType@SDLServiceType_RPC":{"name":"SDLServiceType_RPC","abstract":"

                                Undocumented

                                ","parent_name":"SDLServiceType"},"Enums/SDLServiceType.html#/c:@E@SDLServiceType@SDLServiceType_Audio":{"name":"SDLServiceType_Audio","abstract":"

                                Undocumented

                                ","parent_name":"SDLServiceType"},"Enums/SDLServiceType.html#/c:@E@SDLServiceType@SDLServiceType_Video":{"name":"SDLServiceType_Video","abstract":"

                                Undocumented

                                ","parent_name":"SDLServiceType"},"Enums/SDLServiceType.html#/c:@E@SDLServiceType@SDLServiceType_BulkData":{"name":"SDLServiceType_BulkData","abstract":"

                                Undocumented

                                ","parent_name":"SDLServiceType"},"Enums/SDLFrameType.html#/c:@E@SDLFrameType@SDLFrameType_Control":{"name":"SDLFrameType_Control","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameType"},"Enums/SDLFrameType.html#/c:@E@SDLFrameType@SDLFrameType_Single":{"name":"SDLFrameType_Single","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameType"},"Enums/SDLFrameType.html#/c:@E@SDLFrameType@SDLFrameType_First":{"name":"SDLFrameType_First","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameType"},"Enums/SDLFrameType.html#/c:@E@SDLFrameType@SDLFrameType_Consecutive":{"name":"SDLFrameType_Consecutive","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameType"},"Enums/SDLProtocolError.html#/c:@E@SDLProtocolError@SDLProtocolErrorNoSecurityManager":{"name":"SDLProtocolErrorNoSecurityManager","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolError"},"Enums/SDLPermissionGroupStatus.html#/c:@E@SDLPermissionGroupStatus@SDLPermissionGroupStatusAllowed":{"name":"SDLPermissionGroupStatusAllowed","abstract":"

                                Every RPC in the group is currently allowed.

                                ","parent_name":"SDLPermissionGroupStatus"},"Enums/SDLPermissionGroupStatus.html#/c:@E@SDLPermissionGroupStatus@SDLPermissionGroupStatusDisallowed":{"name":"SDLPermissionGroupStatusDisallowed","abstract":"

                                Every RPC in the group is currently disallowed.

                                ","parent_name":"SDLPermissionGroupStatus"},"Enums/SDLPermissionGroupStatus.html#/c:@E@SDLPermissionGroupStatus@SDLPermissionGroupStatusMixed":{"name":"SDLPermissionGroupStatusMixed","abstract":"

                                Some RPCs in the group are allowed and some disallowed.

                                ","parent_name":"SDLPermissionGroupStatus"},"Enums/SDLPermissionGroupStatus.html#/c:@E@SDLPermissionGroupStatus@SDLPermissionGroupStatusUnknown":{"name":"SDLPermissionGroupStatusUnknown","abstract":"

                                The current status of the group is unknown.

                                ","parent_name":"SDLPermissionGroupStatus"},"Enums/SDLPermissionGroupType.html#/c:@E@SDLPermissionGroupType@SDLPermissionGroupTypeAllAllowed":{"name":"SDLPermissionGroupTypeAllAllowed","abstract":"

                                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.

                                ","parent_name":"SDLPermissionGroupType"},"Enums/SDLPermissionGroupType.html#/c:@E@SDLPermissionGroupType@SDLPermissionGroupTypeAny":{"name":"SDLPermissionGroupTypeAny","abstract":"

                                Be notified when any change in availability occurs among the group.

                                ","parent_name":"SDLPermissionGroupType"},"Enums/SDLLogOutput.html#/c:@E@SDLLogOutput@SDLLogOutputNone":{"name":"SDLLogOutputNone","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogOutput"},"Enums/SDLLogOutput.html#/c:@E@SDLLogOutput@SDLLogOutputConsole":{"name":"SDLLogOutputConsole","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogOutput"},"Enums/SDLLogOutput.html#/c:@E@SDLLogOutput@SDLLogOutputFile":{"name":"SDLLogOutputFile","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogOutput"},"Enums/SDLLogOutput.html#/c:@E@SDLLogOutput@SDLLogOutputSiphon":{"name":"SDLLogOutputSiphon","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogOutput"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorCannotOverwrite":{"name":"SDLFileManagerErrorCannotOverwrite","abstract":"

                                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.

                                ","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorNoKnownFile":{"name":"SDLFileManagerErrorNoKnownFile","abstract":"

                                A file was attempted to be accessed but it does not exist.

                                ","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorUnableToStart":{"name":"SDLFileManagerErrorUnableToStart","abstract":"

                                The file manager attempted to start but encountered an error.

                                ","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorUnableToUpload":{"name":"SDLFileManagerErrorUnableToUpload","abstract":"

                                The file manager was unable to send this file.

                                ","parent_name":"SDLFileManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorRPCRequestFailed":{"name":"SDLManagerErrorRPCRequestFailed","abstract":"

                                An RPC request failed to send.

                                ","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorNotConnected":{"name":"SDLManagerErrorNotConnected","abstract":"

                                Some action was attempted that requires a connection to the remote head unit.

                                ","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorNotReady":{"name":"SDLManagerErrorNotReady","abstract":"

                                Some action was attempted before the ready state was reached.

                                ","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorUnknownRemoteError":{"name":"SDLManagerErrorUnknownRemoteError","abstract":"

                                The remote system encountered an unknown error.

                                ","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorManagersFailedToStart":{"name":"SDLManagerErrorManagersFailedToStart","abstract":"

                                One or more of the sub-managers failed to start.

                                ","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorRegistrationFailed":{"name":"SDLManagerErrorRegistrationFailed","abstract":"

                                Registering with the remote system failed.

                                ","parent_name":"SDLManagerError"},"Enums/SDLDebugOutput.html#/c:@E@SDLDebugOutput@SDLDebugOutput_All":{"name":"SDLDebugOutput_All","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugOutput"},"Enums/SDLDebugOutput.html#/c:@E@SDLDebugOutput@SDLDebugOutput_DeviceConsole":{"name":"SDLDebugOutput_DeviceConsole","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugOutput"},"Enums/SDLDebugOutput.html#/c:@E@SDLDebugOutput@SDLDebugOutput_DebugToolConsole":{"name":"SDLDebugOutput_DebugToolConsole","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugOutput"},"Enums/SDLDebugOutput.html#/c:@E@SDLDebugOutput@SDLDebugOutput_File":{"name":"SDLDebugOutput_File","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugOutput"},"Enums/SDLDebugType.html#/c:@E@SDLDebugType@SDLDebugType_Debug":{"name":"SDLDebugType_Debug","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugType"},"Enums/SDLDebugType.html#/c:@E@SDLDebugType@SDLDebugType_Transport_iAP":{"name":"SDLDebugType_Transport_iAP","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugType"},"Enums/SDLDebugType.html#/c:@E@SDLDebugType@SDLDebugType_Transport_TCP":{"name":"SDLDebugType_Transport_TCP","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugType"},"Enums/SDLDebugType.html#/c:@E@SDLDebugType@SDLDebugType_Protocol":{"name":"SDLDebugType_Protocol","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugType"},"Enums/SDLDebugType.html#/c:@E@SDLDebugType@SDLDebugType_RPC":{"name":"SDLDebugType_RPC","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugType"},"Enums/SDLDebugType.html#/c:@E@SDLDebugType@SDLDebugType_APP":{"name":"SDLDebugType_APP","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugType"},"Enums/SDLArtworkImageFormat.html#/c:@E@SDLArtworkImageFormat@SDLArtworkImageFormatPNG":{"name":"SDLArtworkImageFormatPNG","abstract":"

                                Undocumented

                                ","parent_name":"SDLArtworkImageFormat"},"Enums/SDLArtworkImageFormat.html#/c:@E@SDLArtworkImageFormat@SDLArtworkImageFormatJPG":{"name":"SDLArtworkImageFormatJPG","abstract":"

                                Undocumented

                                ","parent_name":"SDLArtworkImageFormat"},"Enums/SDLArtworkImageFormat.html":{"name":"SDLArtworkImageFormat","abstract":"

                                Undocumented

                                "},"Enums/SDLDebugType.html":{"name":"SDLDebugType","abstract":"

                                Undocumented

                                "},"Enums/SDLDebugOutput.html":{"name":"SDLDebugOutput","abstract":"

                                Undocumented

                                "},"Enums/SDLManagerError.html":{"name":"SDLManagerError","abstract":"

                                Errors associated with the SDLManager class.

                                "},"Enums/SDLFileManagerError.html":{"name":"SDLFileManagerError","abstract":"

                                Errors associated with the SDLFileManager class.

                                "},"Enums/SDLLogOutput.html":{"name":"SDLLogOutput","abstract":"

                                Undocumented

                                "},"Enums/SDLPermissionGroupType.html":{"name":"SDLPermissionGroupType","abstract":"

                                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.

                                "},"Enums/SDLPermissionGroupStatus.html":{"name":"SDLPermissionGroupStatus","abstract":"

                                The status of the group of RPCs permissions.

                                "},"Enums/SDLProtocolError.html":{"name":"SDLProtocolError","abstract":"

                                Undocumented

                                "},"Enums/SDLFrameType.html":{"name":"SDLFrameType","abstract":"

                                Undocumented

                                "},"Enums/SDLServiceType.html":{"name":"SDLServiceType","abstract":"

                                Undocumented

                                "},"Enums/SDLFrameData.html":{"name":"SDLFrameData","abstract":"

                                Undocumented

                                "},"Enums/SDLRPCMessageType.html":{"name":"SDLRPCMessageType","abstract":"

                                Undocumented

                                "},"Enums/SDLStreamingVideoError.html":{"name":"SDLStreamingVideoError","abstract":"

                                Undocumented

                                "},"Enums/SDLEncryptionFlag.html":{"name":"SDLEncryptionFlag","abstract":"

                                Undocumented

                                "},"Enums/SDLStreamingAudioError.html":{"name":"SDLStreamingAudioError","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLNotificationUserInfoObject":{"name":"SDLNotificationUserInfoObject","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTransportDidDisconnect":{"name":"SDLTransportDidDisconnect","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTransportDidConnect":{"name":"SDLTransportDidConnect","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveError":{"name":"SDLDidReceiveError","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveLockScreenIcon":{"name":"SDLDidReceiveLockScreenIcon","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidBecomeReady":{"name":"SDLDidBecomeReady","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveAddCommandResponse":{"name":"SDLDidReceiveAddCommandResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveAddSubMenuResponse":{"name":"SDLDidReceiveAddSubMenuResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveAlertResponse":{"name":"SDLDidReceiveAlertResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveAlertManeuverResponse":{"name":"SDLDidReceiveAlertManeuverResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveChangeRegistrationResponse":{"name":"SDLDidReceiveChangeRegistrationResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveCreateInteractionChoiceSetResponse":{"name":"SDLDidReceiveCreateInteractionChoiceSetResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveDeleteCommandResponse":{"name":"SDLDidReceiveDeleteCommandResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveDeleteFileResponse":{"name":"SDLDidReceiveDeleteFileResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveDeleteInteractionChoiceSetResponse":{"name":"SDLDidReceiveDeleteInteractionChoiceSetResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveDeleteSubmenuResponse":{"name":"SDLDidReceiveDeleteSubmenuResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveDiagnosticMessageResponse":{"name":"SDLDidReceiveDiagnosticMessageResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveDialNumberResponse":{"name":"SDLDidReceiveDialNumberResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveEncodedSyncPDataResponse":{"name":"SDLDidReceiveEncodedSyncPDataResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveEndAudioPassThruResponse":{"name":"SDLDidReceiveEndAudioPassThruResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveGenericResponse":{"name":"SDLDidReceiveGenericResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveGetDTCsResponse":{"name":"SDLDidReceiveGetDTCsResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveGetSystemCapabilitiesResponse":{"name":"SDLDidReceiveGetSystemCapabilitiesResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveGetVehicleDataResponse":{"name":"SDLDidReceiveGetVehicleDataResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveGetWaypointsResponse":{"name":"SDLDidReceiveGetWaypointsResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveListFilesResponse":{"name":"SDLDidReceiveListFilesResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceivePerformAudioPassThruResponse":{"name":"SDLDidReceivePerformAudioPassThruResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceivePerformInteractionResponse":{"name":"SDLDidReceivePerformInteractionResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceivePutFileResponse":{"name":"SDLDidReceivePutFileResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveReadDIDResponse":{"name":"SDLDidReceiveReadDIDResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveRegisterAppInterfaceResponse":{"name":"SDLDidReceiveRegisterAppInterfaceResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveResetGlobalPropertiesResponse":{"name":"SDLDidReceiveResetGlobalPropertiesResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveScrollableMessageResponse":{"name":"SDLDidReceiveScrollableMessageResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSendHapticDataResponse":{"name":"SDLDidReceiveSendHapticDataResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSendLocationResponse":{"name":"SDLDidReceiveSendLocationResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSetAppIconResponse":{"name":"SDLDidReceiveSetAppIconResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSetDisplayLayoutResponse":{"name":"SDLDidReceiveSetDisplayLayoutResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSetGlobalPropertiesResponse":{"name":"SDLDidReceiveSetGlobalPropertiesResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSetMediaClockTimerResponse":{"name":"SDLDidReceiveSetMediaClockTimerResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveShowConstantTBTResponse":{"name":"SDLDidReceiveShowConstantTBTResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveShowResponse":{"name":"SDLDidReceiveShowResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSliderResponse":{"name":"SDLDidReceiveSliderResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSpeakResponse":{"name":"SDLDidReceiveSpeakResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSubscribeButtonResponse":{"name":"SDLDidReceiveSubscribeButtonResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSubscribeVehicleDataResponse":{"name":"SDLDidReceiveSubscribeVehicleDataResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSubscribeWaypointsResponse":{"name":"SDLDidReceiveSubscribeWaypointsResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSyncPDataResponse":{"name":"SDLDidReceiveSyncPDataResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveUpdateTurnListResponse":{"name":"SDLDidReceiveUpdateTurnListResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveUnregisterAppInterfaceResponse":{"name":"SDLDidReceiveUnregisterAppInterfaceResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveUnsubscribeButtonResponse":{"name":"SDLDidReceiveUnsubscribeButtonResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveUnsubscribeVehicleDataResponse":{"name":"SDLDidReceiveUnsubscribeVehicleDataResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveUnsubscribeWaypointsResponse":{"name":"SDLDidReceiveUnsubscribeWaypointsResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidChangeDriverDistractionStateNotification":{"name":"SDLDidChangeDriverDistractionStateNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidChangeHMIStatusNotification":{"name":"SDLDidChangeHMIStatusNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveAudioPassThruNotification":{"name":"SDLDidReceiveAudioPassThruNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveAppUnregisteredNotification":{"name":"SDLDidReceiveAppUnregisteredNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveButtonEventNotification":{"name":"SDLDidReceiveButtonEventNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveButtonPressNotification":{"name":"SDLDidReceiveButtonPressNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveCommandNotification":{"name":"SDLDidReceiveCommandNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveEncodedDataNotification":{"name":"SDLDidReceiveEncodedDataNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveKeyboardInputNotification":{"name":"SDLDidReceiveKeyboardInputNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidChangeLanguageNotification":{"name":"SDLDidChangeLanguageNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidChangeLockScreenStatusNotification":{"name":"SDLDidChangeLockScreenStatusNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveNewHashNotification":{"name":"SDLDidReceiveNewHashNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveVehicleIconNotification":{"name":"SDLDidReceiveVehicleIconNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidChangePermissionsNotification":{"name":"SDLDidChangePermissionsNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSystemRequestNotification":{"name":"SDLDidReceiveSystemRequestNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidChangeTurnByTurnStateNotification":{"name":"SDLDidChangeTurnByTurnStateNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveTouchEventNotification":{"name":"SDLDidReceiveTouchEventNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveVehicleDataNotification":{"name":"SDLDidReceiveVehicleDataNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveWaypointNotification":{"name":"SDLDidReceiveWaypointNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLProtocolSecurityErrorDomain":{"name":"SDLProtocolSecurityErrorDomain","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLErrorDomainStreamingMediaVideo":{"name":"SDLErrorDomainStreamingMediaVideo","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLErrorDomainStreamingMediaAudio":{"name":"SDLErrorDomainStreamingMediaAudio","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDefaultScreenSize":{"name":"SDLDefaultScreenSize","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SmartDeviceLinkVersionNumber":{"name":"SmartDeviceLinkVersionNumber","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SmartDeviceLinkVersionString":{"name":"SmartDeviceLinkVersionString","abstract":"

                                Undocumented

                                "},"Classes/SDLWiperStatus.html#/c:objc(cs)SDLWiperStatus(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLWiperStatus

                                ","parent_name":"SDLWiperStatus"},"Classes/SDLWiperStatus.html#/c:objc(cs)SDLWiperStatus(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLWiperStatus

                                ","parent_name":"SDLWiperStatus"},"Classes/SDLWiperStatus.html#/c:objc(cs)SDLWiperStatus(cm)OFF":{"name":"+OFF","abstract":"

                                @abstract SDLWiperStatus: OFF

                                ","parent_name":"SDLWiperStatus"},"Classes/SDLWiperStatus.html#/c:objc(cs)SDLWiperStatus(cm)AUTO_OFF":{"name":"+AUTO_OFF","abstract":"

                                @abstract SDLWiperStatus: AUTO_OFF

                                ","parent_name":"SDLWiperStatus"},"Classes/SDLWiperStatus.html#/c:objc(cs)SDLWiperStatus(cm)OFF_MOVING":{"name":"+OFF_MOVING","abstract":"

                                @abstract SDLWiperStatus: OFF_MOVING

                                ","parent_name":"SDLWiperStatus"},"Classes/SDLWiperStatus.html#/c:objc(cs)SDLWiperStatus(cm)MAN_INT_OFF":{"name":"+MAN_INT_OFF","abstract":"

                                @abstract SDLWiperStatus: MAN_INT_OFF

                                ","parent_name":"SDLWiperStatus"},"Classes/SDLWiperStatus.html#/c:objc(cs)SDLWiperStatus(cm)MAN_INT_ON":{"name":"+MAN_INT_ON","abstract":"

                                @abstract SDLWiperStatus: MAN_INT_ON

                                ","parent_name":"SDLWiperStatus"},"Classes/SDLWiperStatus.html#/c:objc(cs)SDLWiperStatus(cm)MAN_LOW":{"name":"+MAN_LOW","abstract":"

                                @abstract SDLWiperStatus: MAN_LOW

                                ","parent_name":"SDLWiperStatus"},"Classes/SDLWiperStatus.html#/c:objc(cs)SDLWiperStatus(cm)MAN_HIGH":{"name":"+MAN_HIGH","abstract":"

                                @abstract SDLWiperStatus: MAN_HIGH

                                ","parent_name":"SDLWiperStatus"},"Classes/SDLWiperStatus.html#/c:objc(cs)SDLWiperStatus(cm)MAN_FLICK":{"name":"+MAN_FLICK","abstract":"

                                @abstract SDLWiperStatus: MAN_FLICK

                                ","parent_name":"SDLWiperStatus"},"Classes/SDLWiperStatus.html#/c:objc(cs)SDLWiperStatus(cm)WASH":{"name":"+WASH","abstract":"

                                @abstract SDLWiperStatus: WASH

                                ","parent_name":"SDLWiperStatus"},"Classes/SDLWiperStatus.html#/c:objc(cs)SDLWiperStatus(cm)AUTO_LOW":{"name":"+AUTO_LOW","abstract":"

                                @abstract SDLWiperStatus: AUTO_LOW

                                ","parent_name":"SDLWiperStatus"},"Classes/SDLWiperStatus.html#/c:objc(cs)SDLWiperStatus(cm)AUTO_HIGH":{"name":"+AUTO_HIGH","abstract":"

                                @abstract SDLWiperStatus: AUTO_HIGH

                                ","parent_name":"SDLWiperStatus"},"Classes/SDLWiperStatus.html#/c:objc(cs)SDLWiperStatus(cm)COURTESYWIPE":{"name":"+COURTESYWIPE","abstract":"

                                @abstract SDLWiperStatus: COURTESYWIPE

                                ","parent_name":"SDLWiperStatus"},"Classes/SDLWiperStatus.html#/c:objc(cs)SDLWiperStatus(cm)AUTO_ADJUST":{"name":"+AUTO_ADJUST","abstract":"

                                @abstract SDLWiperStatus: AUTO_ADJUST

                                ","parent_name":"SDLWiperStatus"},"Classes/SDLWiperStatus.html#/c:objc(cs)SDLWiperStatus(cm)STALLED":{"name":"+STALLED","abstract":"

                                @abstract SDLWiperStatus: STALLED

                                ","parent_name":"SDLWiperStatus"},"Classes/SDLWiperStatus.html#/c:objc(cs)SDLWiperStatus(cm)NO_DATA_EXISTS":{"name":"+NO_DATA_EXISTS","abstract":"

                                @abstract SDLWiperStatus: NO_DATA_EXISTS

                                ","parent_name":"SDLWiperStatus"},"Classes/SDLWaypointType.html#/c:objc(cs)SDLWaypointType(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract Convert String to SDLWayPointType

                                ","parent_name":"SDLWaypointType"},"Classes/SDLWaypointType.html#/c:objc(cs)SDLWaypointType(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLWayPointType

                                ","parent_name":"SDLWaypointType"},"Classes/SDLWaypointType.html#/c:objc(cs)SDLWaypointType(cm)ALL":{"name":"+ALL","parent_name":"SDLWaypointType"},"Classes/SDLWaypointType.html#/c:objc(cs)SDLWaypointType(cm)DESTINATION":{"name":"+DESTINATION","parent_name":"SDLWaypointType"},"Classes/SDLWarningLightStatus.html#/c:objc(cs)SDLWarningLightStatus(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLWarningLightStatus

                                ","parent_name":"SDLWarningLightStatus"},"Classes/SDLWarningLightStatus.html#/c:objc(cs)SDLWarningLightStatus(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLWarningLightStatus

                                ","parent_name":"SDLWarningLightStatus"},"Classes/SDLWarningLightStatus.html#/c:objc(cs)SDLWarningLightStatus(cm)OFF":{"name":"+OFF","abstract":"

                                @abstract Warninglight Off

                                ","parent_name":"SDLWarningLightStatus"},"Classes/SDLWarningLightStatus.html#/c:objc(cs)SDLWarningLightStatus(cm)ON":{"name":"+ON","abstract":"

                                @abstract Warninglight On

                                ","parent_name":"SDLWarningLightStatus"},"Classes/SDLWarningLightStatus.html#/c:objc(cs)SDLWarningLightStatus(cm)FLASH":{"name":"+FLASH","abstract":"

                                @abstract Warninglight is flashing

                                ","parent_name":"SDLWarningLightStatus"},"Classes/SDLWarningLightStatus.html#/c:objc(cs)SDLWarningLightStatus(cm)NOT_USED":{"name":"+NOT_USED","abstract":"

                                @abstract Not used

                                ","parent_name":"SDLWarningLightStatus"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLVRHelpItem"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLVRHelpItem"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(im)initWithText:image:":{"name":"-initWithText:image:","abstract":"

                                Undocumented

                                ","parent_name":"SDLVRHelpItem"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(im)initWithText:image:position:":{"name":"-initWithText:image:position:","abstract":"

                                Undocumented

                                ","parent_name":"SDLVRHelpItem"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(py)text":{"name":"text","abstract":"

                                Undocumented

                                ","parent_name":"SDLVRHelpItem"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(py)image":{"name":"image","abstract":"

                                Undocumented

                                ","parent_name":"SDLVRHelpItem"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(py)position":{"name":"position","abstract":"

                                Undocumented

                                ","parent_name":"SDLVRHelpItem"},"Classes/SDLVRCapabilities.html#/c:objc(cs)SDLVRCapabilities(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLVRCapabilities

                                ","parent_name":"SDLVRCapabilities"},"Classes/SDLVRCapabilities.html#/c:objc(cs)SDLVRCapabilities(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLVRCapabilities

                                ","parent_name":"SDLVRCapabilities"},"Classes/SDLVRCapabilities.html#/c:objc(cs)SDLVRCapabilities(cm)TEXT":{"name":"+TEXT","abstract":"

                                @abstract The SDL platform is capable of recognizing spoken text in the current language.

                                ","parent_name":"SDLVRCapabilities"},"Classes/SDLVideoStreamingProtocol.html#/c:objc(cs)SDLVideoStreamingProtocol(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLVideoStreamingProtocol

                                ","parent_name":"SDLVideoStreamingProtocol"},"Classes/SDLVideoStreamingProtocol.html#/c:objc(cs)SDLVideoStreamingProtocol(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLVideoStreamingProtocol

                                ","parent_name":"SDLVideoStreamingProtocol"},"Classes/SDLVideoStreamingProtocol.html#/c:objc(cs)SDLVideoStreamingProtocol(cm)RAW":{"name":"+RAW","abstract":"

                                @abstract SDLVideoStreamingProtocol : RAW

                                ","parent_name":"SDLVideoStreamingProtocol"},"Classes/SDLVideoStreamingProtocol.html#/c:objc(cs)SDLVideoStreamingProtocol(cm)RTP":{"name":"+RTP","abstract":"

                                @abstract SDLVideoStreamingProtocol : RTP

                                ","parent_name":"SDLVideoStreamingProtocol"},"Classes/SDLVideoStreamingProtocol.html#/c:objc(cs)SDLVideoStreamingProtocol(cm)RTSP":{"name":"+RTSP","abstract":"

                                @abstract SDLVideoStreamingProtocol : RTSP

                                ","parent_name":"SDLVideoStreamingProtocol"},"Classes/SDLVideoStreamingProtocol.html#/c:objc(cs)SDLVideoStreamingProtocol(cm)RTMP":{"name":"+RTMP","abstract":"

                                @abstract SDLVideoStreamingProtocol : RTMP

                                ","parent_name":"SDLVideoStreamingProtocol"},"Classes/SDLVideoStreamingProtocol.html#/c:objc(cs)SDLVideoStreamingProtocol(cm)WEBM":{"name":"+WEBM","abstract":"

                                @abstract SDLVideoStreamingProtocol : WEBM

                                ","parent_name":"SDLVideoStreamingProtocol"},"Classes/SDLVideoStreamingFormat.html#/c:objc(cs)SDLVideoStreamingFormat(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a newly allocated SDLVideoStreamingFormat object

                                ","parent_name":"SDLVideoStreamingFormat"},"Classes/SDLVideoStreamingFormat.html#/c:objc(cs)SDLVideoStreamingFormat(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a newly allocated SDLVideoStreamingFormat object indicated by the dictionary parameter

                                ","parent_name":"SDLVideoStreamingFormat"},"Classes/SDLVideoStreamingFormat.html#/c:objc(cs)SDLVideoStreamingFormat(py)protocol":{"name":"protocol","abstract":"

                                @abstract Protocol type, see VideoStreamingProtocol, mandatory

                                ","parent_name":"SDLVideoStreamingFormat"},"Classes/SDLVideoStreamingFormat.html#/c:objc(cs)SDLVideoStreamingFormat(py)codec":{"name":"codec","abstract":"

                                @abstract Codec type, see VideoStreamingCodec, mandatory

                                ","parent_name":"SDLVideoStreamingFormat"},"Classes/SDLVideoStreamingCodec.html#/c:objc(cs)SDLVideoStreamingCodec(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLVideoStreamingCodec

                                ","parent_name":"SDLVideoStreamingCodec"},"Classes/SDLVideoStreamingCodec.html#/c:objc(cs)SDLVideoStreamingCodec(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLVideoStreamingCodec

                                ","parent_name":"SDLVideoStreamingCodec"},"Classes/SDLVideoStreamingCodec.html#/c:objc(cs)SDLVideoStreamingCodec(cm)H264":{"name":"+H264","abstract":"

                                @abstract SDLVideoStreamingCodec : H264

                                ","parent_name":"SDLVideoStreamingCodec"},"Classes/SDLVideoStreamingCodec.html#/c:objc(cs)SDLVideoStreamingCodec(cm)H265":{"name":"+H265","abstract":"

                                @abstract SDLVideoStreamingCodec : H265

                                ","parent_name":"SDLVideoStreamingCodec"},"Classes/SDLVideoStreamingCodec.html#/c:objc(cs)SDLVideoStreamingCodec(cm)THEORA":{"name":"+THEORA","abstract":"

                                @abstract SDLVideoStreamingCodec : Theora

                                ","parent_name":"SDLVideoStreamingCodec"},"Classes/SDLVideoStreamingCodec.html#/c:objc(cs)SDLVideoStreamingCodec(cm)VP8":{"name":"+VP8","abstract":"

                                @abstract SDLVideoStreamingCodec : VP8

                                ","parent_name":"SDLVideoStreamingCodec"},"Classes/SDLVideoStreamingCodec.html#/c:objc(cs)SDLVideoStreamingCodec(cm)VP9":{"name":"+VP9","abstract":"

                                @abstract SDLVideoStreamingCodec : VP9

                                ","parent_name":"SDLVideoStreamingCodec"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a newly allocated SDLVideoStreamingCapability object

                                ","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a newly allocated SDLVideoStreamingCapability object indicated by the dictionary parameter

                                ","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(im)initWithVideoStreaming:maxBitrate:supportedFormats:hapticDataSupported:":{"name":"-initWithVideoStreaming:maxBitrate:supportedFormats:hapticDataSupported:","abstract":"

                                Undocumented

                                ","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(py)preferredResolution":{"name":"preferredResolution","abstract":"

                                @abstract The preferred resolution of a video stream for decoding and rendering on HMI, optional

                                ","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(py)maxBitrate":{"name":"maxBitrate","abstract":"

                                @abstract The maximum bitrate of video stream that is supported, in kbps, optional","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(py)supportedFormats":{"name":"supportedFormats","abstract":"

                                @abstract Detailed information on each format supported by this system, in its preferred order, optional

                                ","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(py)hapticSpatialDataSupported":{"name":"hapticSpatialDataSupported","abstract":"

                                True if the system can utilize the haptic spatial data from the source being streamed.

                                ","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVehicleType.html#/c:objc(cs)SDLVehicleType(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a newly allocated SDLVehicleType object

                                ","parent_name":"SDLVehicleType"},"Classes/SDLVehicleType.html#/c:objc(cs)SDLVehicleType(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a newly allocated SDLVehicleType object indicated by the dictionary parameter

                                ","parent_name":"SDLVehicleType"},"Classes/SDLVehicleType.html#/c:objc(cs)SDLVehicleType(py)make":{"name":"make","abstract":"

                                @abstract The make of the vehicle

                                ","parent_name":"SDLVehicleType"},"Classes/SDLVehicleType.html#/c:objc(cs)SDLVehicleType(py)model":{"name":"model","abstract":"

                                @abstract The model of the vehicle

                                ","parent_name":"SDLVehicleType"},"Classes/SDLVehicleType.html#/c:objc(cs)SDLVehicleType(py)modelYear":{"name":"modelYear","abstract":"

                                @abstract The model year of the vehicle

                                ","parent_name":"SDLVehicleType"},"Classes/SDLVehicleType.html#/c:objc(cs)SDLVehicleType(py)trim":{"name":"trim","abstract":"

                                @abstract The trim of the vehicle

                                ","parent_name":"SDLVehicleType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLVehicleDataType

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLVehicleDataType

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_GPS":{"name":"+VEHICLEDATA_GPS","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_GPS

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_SPEED":{"name":"+VEHICLEDATA_SPEED","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_SPEED

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_RPM":{"name":"+VEHICLEDATA_RPM","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_RPM

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_FUELLEVEL":{"name":"+VEHICLEDATA_FUELLEVEL","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_FUELLEVEL

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_FUELLEVEL_STATE":{"name":"+VEHICLEDATA_FUELLEVEL_STATE","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_FUELLEVEL_STATE

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_FUELCONSUMPTION":{"name":"+VEHICLEDATA_FUELCONSUMPTION","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_FUELCONSUMPTION

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_EXTERNTEMP":{"name":"+VEHICLEDATA_EXTERNTEMP","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_EXTERNTEMP

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_VIN":{"name":"+VEHICLEDATA_VIN","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_VIN

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_PRNDL":{"name":"+VEHICLEDATA_PRNDL","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_PRNDL

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_TIREPRESSURE":{"name":"+VEHICLEDATA_TIREPRESSURE","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_TIREPRESSURE

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_ODOMETER":{"name":"+VEHICLEDATA_ODOMETER","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_ODOMETER

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_BELTSTATUS":{"name":"+VEHICLEDATA_BELTSTATUS","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_BELTSTATUS

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_BODYINFO":{"name":"+VEHICLEDATA_BODYINFO","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_BODYINFO

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_DEVICESTATUS":{"name":"+VEHICLEDATA_DEVICESTATUS","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_DEVICESTATUS

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_ECALLINFO":{"name":"+VEHICLEDATA_ECALLINFO","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_ECALLINFO

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_AIRBAGSTATUS":{"name":"+VEHICLEDATA_AIRBAGSTATUS","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_AIRBAGSTATUS

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_EMERGENCYEVENT":{"name":"+VEHICLEDATA_EMERGENCYEVENT","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_EMERGENCYEVENT

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_CLUSTERMODESTATUS":{"name":"+VEHICLEDATA_CLUSTERMODESTATUS","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_CLUSTERMODESTATUS

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_MYKEY":{"name":"+VEHICLEDATA_MYKEY","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_MYKEY

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_BRAKING":{"name":"+VEHICLEDATA_BRAKING","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_BRAKING

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_WIPERSTATUS":{"name":"+VEHICLEDATA_WIPERSTATUS","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_WIPERSTATUS

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_HEADLAMPSTATUS":{"name":"+VEHICLEDATA_HEADLAMPSTATUS","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_HEADLAMPSTATUS

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_BATTVOLTAGE":{"name":"+VEHICLEDATA_BATTVOLTAGE","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_BATTVOLTAGE

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_ENGINETORQUE":{"name":"+VEHICLEDATA_ENGINETORQUE","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_ENGINETORQUE

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_ACCPEDAL":{"name":"+VEHICLEDATA_ACCPEDAL","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_ACCPEDAL

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataType.html#/c:objc(cs)SDLVehicleDataType(cm)VEHICLEDATA_STEERINGWHEEL":{"name":"+VEHICLEDATA_STEERINGWHEEL","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_STEERINGWHEEL

                                ","parent_name":"SDLVehicleDataType"},"Classes/SDLVehicleDataStatus.html#/c:objc(cs)SDLVehicleDataStatus(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLVehicleDataStatus

                                ","parent_name":"SDLVehicleDataStatus"},"Classes/SDLVehicleDataStatus.html#/c:objc(cs)SDLVehicleDataStatus(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLVehicleDataStatus

                                ","parent_name":"SDLVehicleDataStatus"},"Classes/SDLVehicleDataStatus.html#/c:objc(cs)SDLVehicleDataStatus(cm)NO_DATA_EXISTS":{"name":"+NO_DATA_EXISTS","abstract":"

                                @abstract No data avaliable

                                ","parent_name":"SDLVehicleDataStatus"},"Classes/SDLVehicleDataStatus.html#/c:objc(cs)SDLVehicleDataStatus(cm)OFF":{"name":"+OFF","abstract":"

                                @abstract return SDLVehicleDataStatus: OFF

                                ","parent_name":"SDLVehicleDataStatus"},"Classes/SDLVehicleDataStatus.html#/c:objc(cs)SDLVehicleDataStatus(cm)ON":{"name":"+ON","abstract":"

                                @abstract return SDLVehicleDataStatus: ON

                                ","parent_name":"SDLVehicleDataStatus"},"Classes/SDLVehicleDataResultCode.html#/c:objc(cs)SDLVehicleDataResultCode(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLVehicleDataResultCode

                                ","parent_name":"SDLVehicleDataResultCode"},"Classes/SDLVehicleDataResultCode.html#/c:objc(cs)SDLVehicleDataResultCode(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLVehicleDataResultCode

                                ","parent_name":"SDLVehicleDataResultCode"},"Classes/SDLVehicleDataResultCode.html#/c:objc(cs)SDLVehicleDataResultCode(cm)SUCCESS":{"name":"+SUCCESS","abstract":"

                                Individual vehicle data item / DTC / DID request or subscription successful

                                ","parent_name":"SDLVehicleDataResultCode"},"Classes/SDLVehicleDataResultCode.html#/c:objc(cs)SDLVehicleDataResultCode(cm)TRUNCATED_DATA":{"name":"+TRUNCATED_DATA","abstract":"

                                DTC / DID request successful, however, not all active DTCs or full contents of DID location available

                                ","parent_name":"SDLVehicleDataResultCode"},"Classes/SDLVehicleDataResultCode.html#/c:objc(cs)SDLVehicleDataResultCode(cm)DISALLOWED":{"name":"+DISALLOWED","abstract":"

                                This vehicle data item is not allowed for this app by SDL

                                ","parent_name":"SDLVehicleDataResultCode"},"Classes/SDLVehicleDataResultCode.html#/c:objc(cs)SDLVehicleDataResultCode(cm)USER_DISALLOWED":{"name":"+USER_DISALLOWED","abstract":"

                                The user has not granted access to this type of vehicle data item at this time

                                ","parent_name":"SDLVehicleDataResultCode"},"Classes/SDLVehicleDataResultCode.html#/c:objc(cs)SDLVehicleDataResultCode(cm)INVALID_ID":{"name":"+INVALID_ID","abstract":"

                                The ECU ID referenced is not a valid ID on the bus / system

                                ","parent_name":"SDLVehicleDataResultCode"},"Classes/SDLVehicleDataResultCode.html#/c:objc(cs)SDLVehicleDataResultCode(cm)VEHICLE_DATA_NOT_AVAILABLE":{"name":"+VEHICLE_DATA_NOT_AVAILABLE","abstract":"

                                The requested vehicle data item / DTC / DID is not currently available or responding on the bus / system

                                ","parent_name":"SDLVehicleDataResultCode"},"Classes/SDLVehicleDataResultCode.html#/c:objc(cs)SDLVehicleDataResultCode(cm)DATA_ALREADY_SUBSCRIBED":{"name":"+DATA_ALREADY_SUBSCRIBED","abstract":"

                                The vehicle data item is already subscribed

                                ","parent_name":"SDLVehicleDataResultCode"},"Classes/SDLVehicleDataResultCode.html#/c:objc(cs)SDLVehicleDataResultCode(cm)DATA_NOT_SUBSCRIBED":{"name":"+DATA_NOT_SUBSCRIBED","abstract":"

                                The vehicle data item cannot be unsubscribed because it is not currently subscribed

                                ","parent_name":"SDLVehicleDataResultCode"},"Classes/SDLVehicleDataResultCode.html#/c:objc(cs)SDLVehicleDataResultCode(cm)IGNORED":{"name":"+IGNORED","abstract":"

                                The request for this item is ignored because it is already in progress

                                ","parent_name":"SDLVehicleDataResultCode"},"Classes/SDLVehicleDataResult.html#/c:objc(cs)SDLVehicleDataResult(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLVehicleDataResult"},"Classes/SDLVehicleDataResult.html#/c:objc(cs)SDLVehicleDataResult(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLVehicleDataResult"},"Classes/SDLVehicleDataResult.html#/c:objc(cs)SDLVehicleDataResult(py)dataType":{"name":"dataType","abstract":"

                                Undocumented

                                ","parent_name":"SDLVehicleDataResult"},"Classes/SDLVehicleDataResult.html#/c:objc(cs)SDLVehicleDataResult(py)resultCode":{"name":"resultCode","abstract":"

                                Undocumented

                                ","parent_name":"SDLVehicleDataResult"},"Classes/SDLVehicleDataNotificationStatus.html#/c:objc(cs)SDLVehicleDataNotificationStatus(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLVehicleDataNotificationStatus

                                ","parent_name":"SDLVehicleDataNotificationStatus"},"Classes/SDLVehicleDataNotificationStatus.html#/c:objc(cs)SDLVehicleDataNotificationStatus(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLVehicleDataNotificationStatus

                                ","parent_name":"SDLVehicleDataNotificationStatus"},"Classes/SDLVehicleDataNotificationStatus.html#/c:objc(cs)SDLVehicleDataNotificationStatus(cm)NOT_SUPPORTED":{"name":"+NOT_SUPPORTED","abstract":"

                                @abstract SDLVehicleDataNotificationStatus: NOT_SUPPORTED

                                ","parent_name":"SDLVehicleDataNotificationStatus"},"Classes/SDLVehicleDataNotificationStatus.html#/c:objc(cs)SDLVehicleDataNotificationStatus(cm)NORMAL":{"name":"+NORMAL","abstract":"

                                @abstract SDLVehicleDataNotificationStatus: NORMAL

                                ","parent_name":"SDLVehicleDataNotificationStatus"},"Classes/SDLVehicleDataNotificationStatus.html#/c:objc(cs)SDLVehicleDataNotificationStatus(cm)ACTIVE":{"name":"+ACTIVE","abstract":"

                                @abstract SDLVehicleDataNotificationStatus: ACTIVE

                                ","parent_name":"SDLVehicleDataNotificationStatus"},"Classes/SDLVehicleDataNotificationStatus.html#/c:objc(cs)SDLVehicleDataNotificationStatus(cm)NOT_USED":{"name":"+NOT_USED","abstract":"

                                @abstract SDLVehicleDataNotificationStatus: NOT_USED

                                ","parent_name":"SDLVehicleDataNotificationStatus"},"Classes/SDLVehicleDataEventStatus.html#/c:objc(cs)SDLVehicleDataEventStatus(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLVehicleDataEventStatus

                                ","parent_name":"SDLVehicleDataEventStatus"},"Classes/SDLVehicleDataEventStatus.html#/c:objc(cs)SDLVehicleDataEventStatus(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLVehicleDataEventStatus

                                ","parent_name":"SDLVehicleDataEventStatus"},"Classes/SDLVehicleDataEventStatus.html#/c:objc(cs)SDLVehicleDataEventStatus(cm)NO_EVENT":{"name":"+NO_EVENT","parent_name":"SDLVehicleDataEventStatus"},"Classes/SDLVehicleDataEventStatus.html#/c:objc(cs)SDLVehicleDataEventStatus(cm)_NO":{"name":"+_NO","parent_name":"SDLVehicleDataEventStatus"},"Classes/SDLVehicleDataEventStatus.html#/c:objc(cs)SDLVehicleDataEventStatus(cm)_YES":{"name":"+_YES","parent_name":"SDLVehicleDataEventStatus"},"Classes/SDLVehicleDataEventStatus.html#/c:objc(cs)SDLVehicleDataEventStatus(cm)NOT_SUPPORTED":{"name":"+NOT_SUPPORTED","abstract":"

                                @abstract Vehicle data event is not supported

                                ","parent_name":"SDLVehicleDataEventStatus"},"Classes/SDLVehicleDataEventStatus.html#/c:objc(cs)SDLVehicleDataEventStatus(cm)FAULT":{"name":"+FAULT","abstract":"

                                @abstract The SDLVehicleDataEventStatus instance with value of FAULT

                                ","parent_name":"SDLVehicleDataEventStatus"},"Classes/SDLVehicleDataActiveStatus.html#/c:objc(cs)SDLVehicleDataActiveStatus(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract Convert String to SDLVehicleDataActiveStatus

                                ","parent_name":"SDLVehicleDataActiveStatus"},"Classes/SDLVehicleDataActiveStatus.html#/c:objc(cs)SDLVehicleDataActiveStatus(cm)values":{"name":"+values","abstract":"

                                @abstract return the array that store all possible SDLVehicleDataActiveStatus values

                                ","parent_name":"SDLVehicleDataActiveStatus"},"Classes/SDLVehicleDataActiveStatus.html#/c:objc(cs)SDLVehicleDataActiveStatus(cm)INACTIVE_NOT_CONFIRMED":{"name":"+INACTIVE_NOT_CONFIRMED","abstract":"

                                @abstract SDLVehicleDataActiveStatus : Inactive not confirmed

                                ","parent_name":"SDLVehicleDataActiveStatus"},"Classes/SDLVehicleDataActiveStatus.html#/c:objc(cs)SDLVehicleDataActiveStatus(cm)INACTIVE_CONFIRMED":{"name":"+INACTIVE_CONFIRMED","abstract":"

                                @abstract SDLVehicleDataActiveStatus : Inactive confirmed

                                ","parent_name":"SDLVehicleDataActiveStatus"},"Classes/SDLVehicleDataActiveStatus.html#/c:objc(cs)SDLVehicleDataActiveStatus(cm)ACTIVE_NOT_CONFIRMED":{"name":"+ACTIVE_NOT_CONFIRMED","abstract":"

                                @abstract SDLVehicleDataActiveStatus : Active not confirmed

                                ","parent_name":"SDLVehicleDataActiveStatus"},"Classes/SDLVehicleDataActiveStatus.html#/c:objc(cs)SDLVehicleDataActiveStatus(cm)ACTIVE_CONFIRMED":{"name":"+ACTIVE_CONFIRMED","abstract":"

                                @abstract SDLVehicleDataActiveStatus : Active confirmed

                                ","parent_name":"SDLVehicleDataActiveStatus"},"Classes/SDLVehicleDataActiveStatus.html#/c:objc(cs)SDLVehicleDataActiveStatus(cm)FAULT":{"name":"+FAULT","abstract":"

                                @abstract SDLVehicleDataActiveStatus : Fault

                                ","parent_name":"SDLVehicleDataActiveStatus"},"Classes/SDLUpdateTurnListResponse.html#/c:objc(cs)SDLUpdateTurnListResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLUpdateTurnListResponse"},"Classes/SDLUpdateTurnListResponse.html#/c:objc(cs)SDLUpdateTurnListResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLUpdateTurnListResponse"},"Classes/SDLUpdateTurnList.html#/c:objc(cs)SDLUpdateTurnList(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLUpdateTurnList"},"Classes/SDLUpdateTurnList.html#/c:objc(cs)SDLUpdateTurnList(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLUpdateTurnList"},"Classes/SDLUpdateTurnList.html#/c:objc(cs)SDLUpdateTurnList(im)initWithTurnList:softButtons:":{"name":"-initWithTurnList:softButtons:","abstract":"

                                Undocumented

                                ","parent_name":"SDLUpdateTurnList"},"Classes/SDLUpdateTurnList.html#/c:objc(cs)SDLUpdateTurnList(py)turnList":{"name":"turnList","abstract":"

                                Optional, SDLTurn, 1 - 100 entries

                                ","parent_name":"SDLUpdateTurnList"},"Classes/SDLUpdateTurnList.html#/c:objc(cs)SDLUpdateTurnList(py)softButtons":{"name":"softButtons","abstract":"

                                Required, SDLSoftButton, 0 - 1 Entries

                                ","parent_name":"SDLUpdateTurnList"},"Classes/SDLUpdateMode.html#/c:objc(cs)SDLUpdateMode(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLUpdateMode

                                ","parent_name":"SDLUpdateMode"},"Classes/SDLUpdateMode.html#/c:objc(cs)SDLUpdateMode(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLUpdateMode

                                ","parent_name":"SDLUpdateMode"},"Classes/SDLUpdateMode.html#/c:objc(cs)SDLUpdateMode(cm)COUNTUP":{"name":"+COUNTUP","abstract":"

                                @abstract Starts the media clock timer counting upward, in increments of 1 second.

                                ","parent_name":"SDLUpdateMode"},"Classes/SDLUpdateMode.html#/c:objc(cs)SDLUpdateMode(cm)COUNTDOWN":{"name":"+COUNTDOWN","abstract":"

                                @abstract Starts the media clock timer counting downward, in increments of 1 second.

                                ","parent_name":"SDLUpdateMode"},"Classes/SDLUpdateMode.html#/c:objc(cs)SDLUpdateMode(cm)PAUSE":{"name":"+PAUSE","abstract":"

                                @abstract Pauses the media clock timer.

                                ","parent_name":"SDLUpdateMode"},"Classes/SDLUpdateMode.html#/c:objc(cs)SDLUpdateMode(cm)RESUME":{"name":"+RESUME","abstract":"

                                @abstract Resumes the media clock timer. The timer resumes counting in whatever mode was in effect before pausing (i.e. COUNTUP or COUNTDOWN).

                                ","parent_name":"SDLUpdateMode"},"Classes/SDLUpdateMode.html#/c:objc(cs)SDLUpdateMode(cm)CLEAR":{"name":"+CLEAR","abstract":"

                                @abstract Clear the media clock timer.

                                ","parent_name":"SDLUpdateMode"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLUnsubscribeVehicleDataResponse object

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLUnsubscribeVehicleDataResponse object indicated by the NSMutableDictionary","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)gps":{"name":"gps","abstract":"

                                @abstract A SDLVehicleDataResult* value. See GPSData.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)speed":{"name":"speed","abstract":"

                                @abstract A SDLVehicleDataResult* value. The vehicle speed in kilometers per hour.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)rpm":{"name":"rpm","abstract":"

                                @abstract A SDLVehicleDataResult* value. The number of revolutions per minute of the engine.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)fuelLevel":{"name":"fuelLevel","abstract":"

                                @abstract A SDLVehicleDataResult* value. The fuel level in the tank (percentage)

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"

                                @abstract A SDLVehicleDataResult* value. The fuel level state.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"

                                @abstract A SDLVehicleDataResult* value. The instantaneous fuel consumption in microlitres.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)externalTemperature":{"name":"externalTemperature","abstract":"

                                @abstract A SDLVehicleDataResult* value. The external temperature in degrees celsius.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)prndl":{"name":"prndl","abstract":"

                                @abstract A SDLVehicleDataResult* value. See PRNDL.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)tirePressure":{"name":"tirePressure","abstract":"

                                @abstract A SDLVehicleDataResult* value. See TireStatus.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)odometer":{"name":"odometer","abstract":"

                                @abstract A SDLVehicleDataResult* value. Odometer in km.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)beltStatus":{"name":"beltStatus","abstract":"

                                @abstract A SDLVehicleDataResult* value. The status of the seat belts.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)bodyInformation":{"name":"bodyInformation","abstract":"

                                @abstract A SDLVehicleDataResult* value. The body information including power modes.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)deviceStatus":{"name":"deviceStatus","abstract":"

                                @abstract A SDLVehicleDataResult* value. The device status including signal and battery strength.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)driverBraking":{"name":"driverBraking","abstract":"

                                @abstract A SDLVehicleDataResult* value. The status of the brake pedal.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)wiperStatus":{"name":"wiperStatus","abstract":"

                                @abstract A SDLVehicleDataResult* value. The status of the wipers.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)headLampStatus":{"name":"headLampStatus","abstract":"

                                @abstract A SDLVehicleDataResult* value. Status of the head lamps.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)engineTorque":{"name":"engineTorque","abstract":"

                                @abstract A SDLVehicleDataResult* value. Torque value for engine (in Nm) on non-diesel variants.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)accPedalPosition":{"name":"accPedalPosition","abstract":"

                                @abstract A SDLVehicleDataResult* value. Accelerator pedal position (percentage depressed)

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"

                                @abstract A SDLVehicleDataResult* value. Current angle of the steering wheel (in deg)

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)eCallInfo":{"name":"eCallInfo","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)airbagStatus":{"name":"airbagStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)emergencyEvent":{"name":"emergencyEvent","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)clusterModes":{"name":"clusterModes","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)myKey":{"name":"myKey","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLUnsubscribeVehicleData object

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLUnsubscribeVehicleData object indicated by the NSMutableDictionary","parent_name":"SDLUnsubscribeVehicleData"},"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":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)gps":{"name":"gps","abstract":"

                                @abstract A boolean value. If true, unsubscribes Gps data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)speed":{"name":"speed","abstract":"

                                @abstract A boolean value. If true, unsubscribes speed data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)rpm":{"name":"rpm","abstract":"

                                @abstract A boolean value. If true, unsubscribe data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)fuelLevel":{"name":"fuelLevel","abstract":"

                                @abstract A boolean value. If true, unsubscribes FuelLevel data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"

                                @abstract A boolean value. If true, unsubscribes fuelLevel_State data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"

                                @abstract A boolean value. If true, unsubscribes instantFuelConsumption data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)externalTemperature":{"name":"externalTemperature","abstract":"

                                @abstract A boolean value. If true, unsubscribes externalTemperature data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)prndl":{"name":"prndl","abstract":"

                                @abstract A boolean value. If true, unsubscribes Currently selected gear data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)tirePressure":{"name":"tirePressure","abstract":"

                                @abstract A boolean value. If true, unsubscribes tire pressure status data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)odometer":{"name":"odometer","abstract":"

                                @abstract A boolean value. If true, unsubscribes odometer data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)beltStatus":{"name":"beltStatus","abstract":"

                                @abstract A boolean value. If true, unsubscribes belt Status data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)bodyInformation":{"name":"bodyInformation","abstract":"

                                @abstract A boolean value. If true, unsubscribes body Information data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)deviceStatus":{"name":"deviceStatus","abstract":"

                                @abstract A boolean value. If true, unsubscribes device Status data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)driverBraking":{"name":"driverBraking","abstract":"

                                @abstract A boolean value. If true, unsubscribes driver Braking data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)wiperStatus":{"name":"wiperStatus","abstract":"

                                @abstract A boolean value. If true, unsubscribes wiper Status data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)headLampStatus":{"name":"headLampStatus","abstract":"

                                @abstract A boolean value. If true, unsubscribes Head Lamp Status data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)engineTorque":{"name":"engineTorque","abstract":"

                                @abstract A boolean value. If true, unsubscribes Engine Torque data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)accPedalPosition":{"name":"accPedalPosition","abstract":"

                                @abstract A boolean value. If true, unsubscribes accPedalPosition data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)eCallInfo":{"name":"eCallInfo","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)airbagStatus":{"name":"airbagStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)emergencyEvent":{"name":"emergencyEvent","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)clusterModeStatus":{"name":"clusterModeStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)myKey":{"name":"myKey","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeButtonResponse.html#/c:objc(cs)SDLUnsubscribeButtonResponse(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLUnsubscribeButtonResponse object

                                ","parent_name":"SDLUnsubscribeButtonResponse"},"Classes/SDLUnsubscribeButtonResponse.html#/c:objc(cs)SDLUnsubscribeButtonResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLUnsubscribeButtonResponse object indicated by the NSMutableDictionary","parent_name":"SDLUnsubscribeButtonResponse"},"Classes/SDLUnsubscribeButton.html#/c:objc(cs)SDLUnsubscribeButton(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLUnsubscribeButton object

                                ","parent_name":"SDLUnsubscribeButton"},"Classes/SDLUnsubscribeButton.html#/c:objc(cs)SDLUnsubscribeButton(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLUnsubscribeButton object indicated by the NSMutableDictionary","parent_name":"SDLUnsubscribeButton"},"Classes/SDLUnsubscribeButton.html#/c:objc(cs)SDLUnsubscribeButton(im)initWithButtonName:":{"name":"-initWithButtonName:","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeButton"},"Classes/SDLUnsubscribeButton.html#/c:objc(cs)SDLUnsubscribeButton(py)buttonName":{"name":"buttonName","abstract":"

                                @abstract A name of the button to unsubscribe from","parent_name":"SDLUnsubscribeButton"},"Classes/SDLUnregisterAppInterfaceResponse.html#/c:objc(cs)SDLUnregisterAppInterfaceResponse(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLUnregisterAppInterfaceResponse object

                                ","parent_name":"SDLUnregisterAppInterfaceResponse"},"Classes/SDLUnregisterAppInterfaceResponse.html#/c:objc(cs)SDLUnregisterAppInterfaceResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLUnregisterAppInterfaceResponse object indicated by the NSMutableDictionary","parent_name":"SDLUnregisterAppInterfaceResponse"},"Classes/SDLUnregisterAppInterface.html#/c:objc(cs)SDLUnregisterAppInterface(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLUnregisterAppInterface object

                                ","parent_name":"SDLUnregisterAppInterface"},"Classes/SDLUnregisterAppInterface.html#/c:objc(cs)SDLUnregisterAppInterface(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLUnregisterAppInterface object indicated by the NSMutableDictionary","parent_name":"SDLUnregisterAppInterface"},"Classes/SDLTurn.html#/c:objc(cs)SDLTurn(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLTurn"},"Classes/SDLTurn.html#/c:objc(cs)SDLTurn(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTurn"},"Classes/SDLTurn.html#/c:objc(cs)SDLTurn(im)initWithNavigationText:turnIcon:":{"name":"-initWithNavigationText:turnIcon:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTurn"},"Classes/SDLTurn.html#/c:objc(cs)SDLTurn(py)navigationText":{"name":"navigationText","abstract":"

                                Undocumented

                                ","parent_name":"SDLTurn"},"Classes/SDLTurn.html#/c:objc(cs)SDLTurn(py)turnIcon":{"name":"turnIcon","abstract":"

                                Undocumented

                                ","parent_name":"SDLTurn"},"Classes/SDLTriggerSource.html#/c:objc(cs)SDLTriggerSource(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLTriggerSource

                                ","parent_name":"SDLTriggerSource"},"Classes/SDLTriggerSource.html#/c:objc(cs)SDLTriggerSource(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLTriggerSource

                                ","parent_name":"SDLTriggerSource"},"Classes/SDLTriggerSource.html#/c:objc(cs)SDLTriggerSource(cm)MENU":{"name":"+MENU","abstract":"

                                @abstract Selection made via menu

                                ","parent_name":"SDLTriggerSource"},"Classes/SDLTriggerSource.html#/c:objc(cs)SDLTriggerSource(cm)VR":{"name":"+VR","abstract":"

                                @abstract Selection made via Voice session

                                ","parent_name":"SDLTriggerSource"},"Classes/SDLTriggerSource.html#/c:objc(cs)SDLTriggerSource(cm)KEYBOARD":{"name":"+KEYBOARD","abstract":"

                                @abstract Selection made via Keyboard

                                ","parent_name":"SDLTriggerSource"},"Classes/SDLTouchType.html#/c:objc(cs)SDLTouchType(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchType"},"Classes/SDLTouchType.html#/c:objc(cs)SDLTouchType(cm)values":{"name":"+values","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchType"},"Classes/SDLTouchType.html#/c:objc(cs)SDLTouchType(cm)BEGIN":{"name":"+BEGIN","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchType"},"Classes/SDLTouchType.html#/c:objc(cs)SDLTouchType(cm)MOVE":{"name":"+MOVE","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchType"},"Classes/SDLTouchType.html#/c:objc(cs)SDLTouchType(cm)END":{"name":"+END","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchType"},"Classes/SDLTouchType.html#/c:objc(cs)SDLTouchType(cm)CANCEL":{"name":"+CANCEL","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchType"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)touchEventDelegate":{"name":"touchEventDelegate","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)tapDistanceThreshold":{"name":"tapDistanceThreshold","abstract":"

                                @abstract","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)tapTimeThreshold":{"name":"tapTimeThreshold","abstract":"

                                @abstract","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)movementTimeThreshold":{"name":"movementTimeThreshold","abstract":"

                                @abstract","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)touchEnabled":{"name":"touchEnabled","abstract":"

                                @abstract","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(im)cancelPendingTouches":{"name":"-cancelPendingTouches","abstract":"

                                @abstract","parent_name":"SDLTouchManager"},"Classes/SDLTouchEventCapabilities.html#/c:objc(cs)SDLTouchEventCapabilities(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchEventCapabilities"},"Classes/SDLTouchEventCapabilities.html#/c:objc(cs)SDLTouchEventCapabilities(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchEventCapabilities"},"Classes/SDLTouchEventCapabilities.html#/c:objc(cs)SDLTouchEventCapabilities(py)pressAvailable":{"name":"pressAvailable","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchEventCapabilities"},"Classes/SDLTouchEventCapabilities.html#/c:objc(cs)SDLTouchEventCapabilities(py)multiTouchAvailable":{"name":"multiTouchAvailable","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchEventCapabilities"},"Classes/SDLTouchEventCapabilities.html#/c:objc(cs)SDLTouchEventCapabilities(py)doublePressAvailable":{"name":"doublePressAvailable","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchEventCapabilities"},"Classes/SDLTouchEvent.html#/c:objc(cs)SDLTouchEvent(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchEvent"},"Classes/SDLTouchEvent.html#/c:objc(cs)SDLTouchEvent(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchEvent"},"Classes/SDLTouchEvent.html#/c:objc(cs)SDLTouchEvent(py)touchEventId":{"name":"touchEventId","abstract":"

                                A touch’s unique identifier. The application can track the current touch events by id.","parent_name":"SDLTouchEvent"},"Classes/SDLTouchEvent.html#/c:objc(cs)SDLTouchEvent(py)timeStamp":{"name":"timeStamp","abstract":"

                                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.

                                ","parent_name":"SDLTouchEvent"},"Classes/SDLTouchEvent.html#/c:objc(cs)SDLTouchEvent(py)coord":{"name":"coord","abstract":"

                                Mandatory, array size 1-1000, contains SDLTouchCoord

                                ","parent_name":"SDLTouchEvent"},"Classes/SDLTouchCoord.html#/c:objc(cs)SDLTouchCoord(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchCoord"},"Classes/SDLTouchCoord.html#/c:objc(cs)SDLTouchCoord(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchCoord"},"Classes/SDLTouchCoord.html#/c:objc(cs)SDLTouchCoord(py)x":{"name":"x","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchCoord"},"Classes/SDLTouchCoord.html#/c:objc(cs)SDLTouchCoord(py)y":{"name":"y","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchCoord"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)pressureTelltale":{"name":"pressureTelltale","abstract":"

                                Undocumented

                                ","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)leftFront":{"name":"leftFront","abstract":"

                                Undocumented

                                ","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)rightFront":{"name":"rightFront","abstract":"

                                Undocumented

                                ","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)leftRear":{"name":"leftRear","abstract":"

                                Undocumented

                                ","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)rightRear":{"name":"rightRear","abstract":"

                                Undocumented

                                ","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)innerLeftRear":{"name":"innerLeftRear","abstract":"

                                Undocumented

                                ","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)innerRightRear":{"name":"innerRightRear","abstract":"

                                Undocumented

                                ","parent_name":"SDLTireStatus"},"Classes/SDLTimerMode.html#/c:objc(cs)SDLTimerMode(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTimerMode"},"Classes/SDLTimerMode.html#/c:objc(cs)SDLTimerMode(cm)values":{"name":"+values","abstract":"

                                Undocumented

                                ","parent_name":"SDLTimerMode"},"Classes/SDLTimerMode.html#/c:objc(cs)SDLTimerMode(cm)UP":{"name":"+UP","abstract":"

                                Undocumented

                                ","parent_name":"SDLTimerMode"},"Classes/SDLTimerMode.html#/c:objc(cs)SDLTimerMode(cm)DOWN":{"name":"+DOWN","abstract":"

                                Undocumented

                                ","parent_name":"SDLTimerMode"},"Classes/SDLTimerMode.html#/c:objc(cs)SDLTimerMode(cm)NONE":{"name":"+NONE","abstract":"

                                Undocumented

                                ","parent_name":"SDLTimerMode"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLTextFieldName

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLTextFieldName

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)mainField1":{"name":"+mainField1","abstract":"

                                @abstract The first line of the first set of main fields of the persistent display. Applies to SDLShow.

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)mainField2":{"name":"+mainField2","abstract":"

                                @abstract The second line of the first set of main fields of the persistent display. Applies to SDLShow.

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)mainField3":{"name":"+mainField3","abstract":"

                                @abstract The first line of the second set of main fields of the persistent display. Applies to SDLShow.

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)mainField4":{"name":"+mainField4","abstract":"

                                @abstract The second line of the second set of main fields of the persistent display. Applies to SDLShow.

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)statusBar":{"name":"+statusBar","abstract":"

                                @abstract The status bar on the NGN display. Applies to SDLShow.

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)mediaClock":{"name":"+mediaClock","abstract":"

                                @abstract Text value for MediaClock field. Must be properly formatted according to MediaClockFormat. Applies to SDLShow.

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)mediaTrack":{"name":"+mediaTrack","abstract":"

                                @abstract The track field of NGN type ACMs. This field is only available for media applications on a NGN display. Applies to SDLShow.

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)alertText1":{"name":"+alertText1","abstract":"

                                @abstract The first line of the alert text field. Applies to SDLAlert.

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)alertText2":{"name":"+alertText2","abstract":"

                                @abstract The second line of the alert text field. Applies to SDLAlert.

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)alertText3":{"name":"+alertText3","abstract":"

                                @abstract The third line of the alert text field. Applies to SDLAlert.

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)scrollableMessageBody":{"name":"+scrollableMessageBody","abstract":"

                                @abstract Long form body of text that can include newlines and tabs. Applies to SDLScrollableMessage.

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)initialInteractionText":{"name":"+initialInteractionText","abstract":"

                                @abstract First line suggestion for a user response (in the case of VR enabled interaction).

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)navigationText1":{"name":"+navigationText1","abstract":"

                                @abstract First line of navigation text.

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)navigationText2":{"name":"+navigationText2","abstract":"

                                @abstract Second line of navigation text.

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)ETA":{"name":"+ETA","abstract":"

                                @abstract Estimated Time of Arrival time for navigation.

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)totalDistance":{"name":"+totalDistance","abstract":"

                                @abstract Total distance to destination for navigation.

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)audioPassThruDisplayText1":{"name":"+audioPassThruDisplayText1","abstract":"

                                @abstract First line of text for audio pass thru.

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)audioPassThruDisplayText2":{"name":"+audioPassThruDisplayText2","abstract":"

                                @abstract Second line of text for audio pass thru.

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)sliderHeader":{"name":"+sliderHeader","abstract":"

                                @abstract Header text for slider.

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)sliderFooter":{"name":"+sliderFooter","abstract":"

                                @abstract Footer text for slider

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)menuName":{"name":"+menuName","abstract":"

                                Primary text for SDLChoice

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)secondaryText":{"name":"+secondaryText","abstract":"

                                Secondary text for SDLChoice

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)tertiaryText":{"name":"+tertiaryText","abstract":"

                                Tertiary text for SDLChoice

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)menuTitle":{"name":"+menuTitle","abstract":"

                                Optional text to label an app menu button (for certain touchscreen platforms)

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)locationName":{"name":"+locationName","abstract":"

                                Optional name / title of intended location for SDLSendLocation

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)locationDescription":{"name":"+locationDescription","abstract":"

                                Optional description of intended location / establishment (if applicable) for SDLSendLocation

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)addressLines":{"name":"+addressLines","abstract":"

                                Optional location address (if applicable) for SDLSendLocation

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextFieldName.html#/c:objc(cs)SDLTextFieldName(cm)phoneNumber":{"name":"+phoneNumber","abstract":"

                                Optional hone number of intended location / establishment (if applicable) for SDLSendLocation

                                ","parent_name":"SDLTextFieldName"},"Classes/SDLTextField.html#/c:objc(cs)SDLTextField(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a newly allocated SDLTextField object

                                ","parent_name":"SDLTextField"},"Classes/SDLTextField.html#/c:objc(cs)SDLTextField(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a newly allocated SDLTextField object indicated by the dictionary parameter

                                ","parent_name":"SDLTextField"},"Classes/SDLTextField.html#/c:objc(cs)SDLTextField(py)name":{"name":"name","abstract":"

                                @abstract The enumeration identifying the field.

                                ","parent_name":"SDLTextField"},"Classes/SDLTextField.html#/c:objc(cs)SDLTextField(py)characterSet":{"name":"characterSet","abstract":"

                                @abstract The character set that is supported in this field.

                                ","parent_name":"SDLTextField"},"Classes/SDLTextField.html#/c:objc(cs)SDLTextField(py)width":{"name":"width","abstract":"

                                @abstract The number of characters in one row of this field.

                                ","parent_name":"SDLTextField"},"Classes/SDLTextField.html#/c:objc(cs)SDLTextField(py)rows":{"name":"rows","abstract":"

                                @abstract The number of rows for this text field.

                                ","parent_name":"SDLTextField"},"Classes/SDLTextAlignment.html#/c:objc(cs)SDLTextAlignment(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLTextAlignment

                                ","parent_name":"SDLTextAlignment"},"Classes/SDLTextAlignment.html#/c:objc(cs)SDLTextAlignment(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLTextAlignment

                                ","parent_name":"SDLTextAlignment"},"Classes/SDLTextAlignment.html#/c:objc(cs)SDLTextAlignment(cm)LEFT_ALIGNED":{"name":"+LEFT_ALIGNED","abstract":"

                                @abstract Text aligned left.

                                ","parent_name":"SDLTextAlignment"},"Classes/SDLTextAlignment.html#/c:objc(cs)SDLTextAlignment(cm)RIGHT_ALIGNED":{"name":"+RIGHT_ALIGNED","abstract":"

                                @abstract Text aligned right.

                                ","parent_name":"SDLTextAlignment"},"Classes/SDLTextAlignment.html#/c:objc(cs)SDLTextAlignment(cm)CENTERED":{"name":"+CENTERED","abstract":"

                                @abstract Text aligned centered.

                                ","parent_name":"SDLTextAlignment"},"Classes/SDLTTSChunkFactory.html#/c:objc(cs)SDLTTSChunkFactory(cm)buildTTSChunkForString:type:":{"name":"+buildTTSChunkForString:type:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTTSChunkFactory"},"Classes/SDLTTSChunkFactory.html#/c:objc(cs)SDLTTSChunkFactory(cm)buildTTSChunksFromSimple:":{"name":"+buildTTSChunksFromSimple:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTTSChunkFactory"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a newly allocated SDLTTSChunk object

                                ","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a newly allocated SDLTTSChunk object indicated by the dictionary parameter

                                ","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(im)initWithText:type:":{"name":"-initWithText:type:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)textChunksFromString:":{"name":"+textChunksFromString:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)sapiChunksFromString:":{"name":"+sapiChunksFromString:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)lhPlusChunksFromString:":{"name":"+lhPlusChunksFromString:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)prerecordedChunksFromString:":{"name":"+prerecordedChunksFromString:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)silenceChunks":{"name":"+silenceChunks","abstract":"

                                Undocumented

                                ","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(py)text":{"name":"text","abstract":"

                                @abstract Text to be spoken, or a phoneme specification, or the name of a pre-recorded sound. The contents of this field are indicated by the type field.

                                ","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(py)type":{"name":"type","abstract":"

                                @abstract The type of information in the text field (e.g. phrase to be spoken, phoneme specification, name of pre-recorded sound).

                                ","parent_name":"SDLTTSChunk"},"Classes/SDLTCPTransport.html#/c:objc(cs)SDLTCPTransport@socket":{"name":"socket","abstract":"

                                Undocumented

                                ","parent_name":"SDLTCPTransport"},"Classes/SDLTCPTransport.html#/c:objc(cs)SDLTCPTransport(py)hostName":{"name":"hostName","abstract":"

                                Undocumented

                                ","parent_name":"SDLTCPTransport"},"Classes/SDLTCPTransport.html#/c:objc(cs)SDLTCPTransport(py)portNumber":{"name":"portNumber","abstract":"

                                Undocumented

                                ","parent_name":"SDLTCPTransport"},"Classes/SDLTBTState.html#/c:objc(cs)SDLTBTState(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTBTState"},"Classes/SDLTBTState.html#/c:objc(cs)SDLTBTState(cm)values":{"name":"+values","abstract":"

                                Undocumented

                                ","parent_name":"SDLTBTState"},"Classes/SDLTBTState.html#/c:objc(cs)SDLTBTState(cm)ROUTE_UPDATE_REQUEST":{"name":"+ROUTE_UPDATE_REQUEST","abstract":"

                                Undocumented

                                ","parent_name":"SDLTBTState"},"Classes/SDLTBTState.html#/c:objc(cs)SDLTBTState(cm)ROUTE_ACCEPTED":{"name":"+ROUTE_ACCEPTED","abstract":"

                                Undocumented

                                ","parent_name":"SDLTBTState"},"Classes/SDLTBTState.html#/c:objc(cs)SDLTBTState(cm)ROUTE_REFUSED":{"name":"+ROUTE_REFUSED","abstract":"

                                Undocumented

                                ","parent_name":"SDLTBTState"},"Classes/SDLTBTState.html#/c:objc(cs)SDLTBTState(cm)ROUTE_CANCELLED":{"name":"+ROUTE_CANCELLED","abstract":"

                                Undocumented

                                ","parent_name":"SDLTBTState"},"Classes/SDLTBTState.html#/c:objc(cs)SDLTBTState(cm)ETA_REQUEST":{"name":"+ETA_REQUEST","abstract":"

                                Undocumented

                                ","parent_name":"SDLTBTState"},"Classes/SDLTBTState.html#/c:objc(cs)SDLTBTState(cm)NEXT_TURN_REQUEST":{"name":"+NEXT_TURN_REQUEST","abstract":"

                                Undocumented

                                ","parent_name":"SDLTBTState"},"Classes/SDLTBTState.html#/c:objc(cs)SDLTBTState(cm)ROUTE_STATUS_REQUEST":{"name":"+ROUTE_STATUS_REQUEST","abstract":"

                                Undocumented

                                ","parent_name":"SDLTBTState"},"Classes/SDLTBTState.html#/c:objc(cs)SDLTBTState(cm)ROUTE_SUMMARY_REQUEST":{"name":"+ROUTE_SUMMARY_REQUEST","abstract":"

                                Undocumented

                                ","parent_name":"SDLTBTState"},"Classes/SDLTBTState.html#/c:objc(cs)SDLTBTState(cm)TRIP_STATUS_REQUEST":{"name":"+TRIP_STATUS_REQUEST","abstract":"

                                Undocumented

                                ","parent_name":"SDLTBTState"},"Classes/SDLTBTState.html#/c:objc(cs)SDLTBTState(cm)ROUTE_UPDATE_REQUEST_TIMEOUT":{"name":"+ROUTE_UPDATE_REQUEST_TIMEOUT","abstract":"

                                Undocumented

                                ","parent_name":"SDLTBTState"},"Classes/SDLSystemContext.html#/c:objc(cs)SDLSystemContext(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLSystemContext

                                ","parent_name":"SDLSystemContext"},"Classes/SDLSystemContext.html#/c:objc(cs)SDLSystemContext(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLSystemContext

                                ","parent_name":"SDLSystemContext"},"Classes/SDLSystemContext.html#/c:objc(cs)SDLSystemContext(cm)MAIN":{"name":"+MAIN","abstract":"

                                @abstract No user interaction (user-initiated or app-initiated) is in progress.

                                ","parent_name":"SDLSystemContext"},"Classes/SDLSystemContext.html#/c:objc(cs)SDLSystemContext(cm)VRSESSION":{"name":"+VRSESSION","abstract":"

                                @abstract VR-oriented, user-initiated or app-initiated interaction is in-progress.

                                ","parent_name":"SDLSystemContext"},"Classes/SDLSystemContext.html#/c:objc(cs)SDLSystemContext(cm)MENU":{"name":"+MENU","abstract":"

                                @abstract Menu-oriented, user-initiated or app-initiated interaction is in-progress.

                                ","parent_name":"SDLSystemContext"},"Classes/SDLSystemContext.html#/c:objc(cs)SDLSystemContext(cm)HMI_OBSCURED":{"name":"+HMI_OBSCURED","abstract":"

                                @abstract The app’s display HMI is currently being obscured by either a system or other app’s overlay.

                                ","parent_name":"SDLSystemContext"},"Classes/SDLSystemContext.html#/c:objc(cs)SDLSystemContext(cm)ALERT":{"name":"+ALERT","abstract":"

                                @abstract Broadcast only to whichever app has an alert currently being displayed.

                                ","parent_name":"SDLSystemContext"},"Classes/SDLSystemCapabilityType.html#/c:objc(cs)SDLSystemCapabilityType(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLSystemCapabilityType

                                ","parent_name":"SDLSystemCapabilityType"},"Classes/SDLSystemCapabilityType.html#/c:objc(cs)SDLSystemCapabilityType(cm)values":{"name":"+values","abstract":"

                                Returns an array of all possible SDLSystemCapabilityType values

                                ","parent_name":"SDLSystemCapabilityType"},"Classes/SDLSystemCapabilityType.html#/c:objc(cs)SDLSystemCapabilityType(cm)NAVIGATION":{"name":"+NAVIGATION","abstract":"

                                @abstract NAVIGATION

                                ","parent_name":"SDLSystemCapabilityType"},"Classes/SDLSystemCapabilityType.html#/c:objc(cs)SDLSystemCapabilityType(cm)PHONE_CALL":{"name":"+PHONE_CALL","abstract":"

                                @abstract PHONE_CALL

                                ","parent_name":"SDLSystemCapabilityType"},"Classes/SDLSystemCapabilityType.html#/c:objc(cs)SDLSystemCapabilityType(cm)VIDEO_STREAMING":{"name":"+VIDEO_STREAMING","abstract":"

                                @abstract VIDEO_STREAMING

                                ","parent_name":"SDLSystemCapabilityType"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a newly allocated SDLSystemCapability object

                                ","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a newly allocated SDLSystemCapability object indicated by the dictionary parameter

                                ","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(im)initWithNavigationCapability:":{"name":"-initWithNavigationCapability:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(im)initWithPhoneCapability:":{"name":"-initWithPhoneCapability:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(im)initWithVideoStreamingCapability:":{"name":"-initWithVideoStreamingCapability:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)systemCapabilityType":{"name":"systemCapabilityType","abstract":"

                                Undocumented

                                ","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)navigationCapability":{"name":"navigationCapability","abstract":"

                                Undocumented

                                ","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)phoneCapability":{"name":"phoneCapability","abstract":"

                                Undocumented

                                ","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)videoStreamingCapability":{"name":"videoStreamingCapability","abstract":"

                                Undocumented

                                ","parent_name":"SDLSystemCapability"},"Classes/SDLSystemAction.html#/c:objc(cs)SDLSystemAction(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLSystemAction

                                ","parent_name":"SDLSystemAction"},"Classes/SDLSystemAction.html#/c:objc(cs)SDLSystemAction(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLSystemAction

                                ","parent_name":"SDLSystemAction"},"Classes/SDLSystemAction.html#/c:objc(cs)SDLSystemAction(cm)DEFAULT_ACTION":{"name":"+DEFAULT_ACTION","abstract":"

                                @abstract Default_Action

                                ","parent_name":"SDLSystemAction"},"Classes/SDLSystemAction.html#/c:objc(cs)SDLSystemAction(cm)STEAL_FOCUS":{"name":"+STEAL_FOCUS","abstract":"

                                @abstract Steal_Focus

                                ","parent_name":"SDLSystemAction"},"Classes/SDLSystemAction.html#/c:objc(cs)SDLSystemAction(cm)KEEP_CONTEXT":{"name":"+KEEP_CONTEXT","abstract":"

                                @abstract Keep_Context

                                ","parent_name":"SDLSystemAction"},"Classes/SDLSyncPDataResponse.html#/c:objc(cs)SDLSyncPDataResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLSyncPDataResponse"},"Classes/SDLSyncPDataResponse.html#/c:objc(cs)SDLSyncPDataResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSyncPDataResponse"},"Classes/SDLSyncPData.html#/c:objc(cs)SDLSyncPData(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLSyncPData"},"Classes/SDLSyncPData.html#/c:objc(cs)SDLSyncPData(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSyncPData"},"Classes/SDLSyncMsgVersion.html#/c:objc(cs)SDLSyncMsgVersion(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a newly allocated SDLSyncMsgVersion object

                                ","parent_name":"SDLSyncMsgVersion"},"Classes/SDLSyncMsgVersion.html#/c:objc(cs)SDLSyncMsgVersion(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a newly allocated SDLSyncMsgVersion object indicated by the dictionary parameter

                                ","parent_name":"SDLSyncMsgVersion"},"Classes/SDLSyncMsgVersion.html#/c:objc(cs)SDLSyncMsgVersion(im)initWithMajorVersion:minorVersion:":{"name":"-initWithMajorVersion:minorVersion:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSyncMsgVersion"},"Classes/SDLSyncMsgVersion.html#/c:objc(cs)SDLSyncMsgVersion(im)initWithMajorVersion:minorVersion:patchVersion:":{"name":"-initWithMajorVersion:minorVersion:patchVersion:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSyncMsgVersion"},"Classes/SDLSyncMsgVersion.html#/c:objc(cs)SDLSyncMsgVersion(py)majorVersion":{"name":"majorVersion","abstract":"

                                @abstract The major version indicates versions that is not-compatible to previous versions

                                ","parent_name":"SDLSyncMsgVersion"},"Classes/SDLSyncMsgVersion.html#/c:objc(cs)SDLSyncMsgVersion(py)minorVersion":{"name":"minorVersion","abstract":"

                                @abstract The minor version indicates a change to a previous version that should still allow to be run on an older version (with limited functionality)

                                ","parent_name":"SDLSyncMsgVersion"},"Classes/SDLSyncMsgVersion.html#/c:objc(cs)SDLSyncMsgVersion(py)patchVersion":{"name":"patchVersion","abstract":"

                                @abstract Optional, allows backward-compatible fixes to the API without increasing the minor version of the interface

                                ","parent_name":"SDLSyncMsgVersion"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLSubscribeVehicleDataResponse object

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLSubscribeVehicleDataResponse object indicated by the NSMutableDictionary","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)gps":{"name":"gps","abstract":"

                                @abstract A SDLVehicleDataResult* value. See GPSData.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)speed":{"name":"speed","abstract":"

                                @abstract A SDLVehicleDataResult* value. The vehicle speed in kilometers per hour.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)rpm":{"name":"rpm","abstract":"

                                @abstract A SDLVehicleDataResult* value. The number of revolutions per minute of the engine.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)fuelLevel":{"name":"fuelLevel","abstract":"

                                @abstract A SDLVehicleDataResult* value. The fuel level in the tank (percentage)

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"

                                @abstract A SDLVehicleDataResult* value. The fuel level state.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"

                                @abstract A SDLVehicleDataResult* value. The instantaneous fuel consumption in microlitres.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)externalTemperature":{"name":"externalTemperature","abstract":"

                                @abstract A SDLVehicleDataResult* value. The external temperature in degrees celsius.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)prndl":{"name":"prndl","abstract":"

                                @abstract A SDLVehicleDataResult* value. See PRNDL.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)tirePressure":{"name":"tirePressure","abstract":"

                                @abstract A SDLVehicleDataResult* value. See TireStatus.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)odometer":{"name":"odometer","abstract":"

                                @abstract A SDLVehicleDataResult* value. Odometer in km.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)beltStatus":{"name":"beltStatus","abstract":"

                                @abstract A SDLVehicleDataResult* value. The status of the seat belts.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)bodyInformation":{"name":"bodyInformation","abstract":"

                                @abstract A SDLVehicleDataResult* value. The body information including power modes.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)deviceStatus":{"name":"deviceStatus","abstract":"

                                @abstract A SDLVehicleDataResult* value. The device status including signal and battery strength.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)driverBraking":{"name":"driverBraking","abstract":"

                                @abstract A SDLVehicleDataResult* value. The status of the brake pedal.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)wiperStatus":{"name":"wiperStatus","abstract":"

                                @abstract A SDLVehicleDataResult* value. The status of the wipers.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)headLampStatus":{"name":"headLampStatus","abstract":"

                                @abstract A SDLVehicleDataResult* value. Status of the head lamps.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)engineTorque":{"name":"engineTorque","abstract":"

                                @abstract A SDLVehicleDataResult* value. Torque value for engine (in Nm) on non-diesel variants.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)accPedalPosition":{"name":"accPedalPosition","abstract":"

                                @abstract A SDLVehicleDataResult* value. Accelerator pedal position (percentage depressed)

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"

                                @abstract A SDLVehicleDataResult* value. Current angle of the steering wheel (in deg)

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)eCallInfo":{"name":"eCallInfo","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)airbagStatus":{"name":"airbagStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)emergencyEvent":{"name":"emergencyEvent","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)clusterModes":{"name":"clusterModes","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)myKey":{"name":"myKey","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLSubscribeVehicleData object

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLSubscribeVehicleData object indicated by the NSMutableDictionary","parent_name":"SDLSubscribeVehicleData"},"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":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)gps":{"name":"gps","abstract":"

                                @abstract A boolean value. If true, subscribes Gps data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)speed":{"name":"speed","abstract":"

                                @abstract A boolean value. If true, subscribes speed data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)rpm":{"name":"rpm","abstract":"

                                @abstract A boolean value. If true, subscribes rpm data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)fuelLevel":{"name":"fuelLevel","abstract":"

                                @abstract A boolean value. If true, subscribes FuelLevel data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"

                                @abstract A boolean value. If true, subscribes fuelLevel_State data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"

                                @abstract A boolean value. If true, subscribes instantFuelConsumption data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)externalTemperature":{"name":"externalTemperature","abstract":"

                                @abstract A boolean value. If true, subscribes externalTemperature data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)prndl":{"name":"prndl","abstract":"

                                @abstract A boolean value. If true, subscribes Currently selected gear data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)tirePressure":{"name":"tirePressure","abstract":"

                                @abstract A boolean value. If true, subscribes tire pressure status data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)odometer":{"name":"odometer","abstract":"

                                @abstract A boolean value. If true, subscribes odometer data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)beltStatus":{"name":"beltStatus","abstract":"

                                @abstract A boolean value. If true, subscribes belt Status data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)bodyInformation":{"name":"bodyInformation","abstract":"

                                @abstract A boolean value. If true, subscribes body Information data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)deviceStatus":{"name":"deviceStatus","abstract":"

                                @abstract A boolean value. If true, subscribes device Status data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)driverBraking":{"name":"driverBraking","abstract":"

                                @abstract A boolean value. If true, subscribes driver Braking data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)wiperStatus":{"name":"wiperStatus","abstract":"

                                @abstract A boolean value. If true, subscribes wiper Status data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)headLampStatus":{"name":"headLampStatus","abstract":"

                                @abstract A boolean value. If true, subscribes Head Lamp Status data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)engineTorque":{"name":"engineTorque","abstract":"

                                @abstract A boolean value. If true, subscribes Engine Torque data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)accPedalPosition":{"name":"accPedalPosition","abstract":"

                                @abstract A boolean value. If true, means the accPedalPosition data has been","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"

                                @abstract A boolean value. If true, means the steeringWheelAngle data has been","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)eCallInfo":{"name":"eCallInfo","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)airbagStatus":{"name":"airbagStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)emergencyEvent":{"name":"emergencyEvent","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)clusterModeStatus":{"name":"clusterModeStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)myKey":{"name":"myKey","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeButtonResponse.html#/c:objc(cs)SDLSubscribeButtonResponse(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLSubscribeButtonResponse object

                                ","parent_name":"SDLSubscribeButtonResponse"},"Classes/SDLSubscribeButtonResponse.html#/c:objc(cs)SDLSubscribeButtonResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLSubscribeButtonResponse object indicated by the NSMutableDictionary","parent_name":"SDLSubscribeButtonResponse"},"Classes/SDLSubscribeButton.html#/c:objc(cs)SDLSubscribeButton(im)init":{"name":"-init","abstract":"

                                Construct an SDLSubscribeButton

                                ","parent_name":"SDLSubscribeButton"},"Classes/SDLSubscribeButton.html#/c:objc(cs)SDLSubscribeButton(im)initWithHandler:":{"name":"-initWithHandler:","abstract":"

                                Construct a SDLSubscribeButton with a handler callback when an event occurs.

                                ","parent_name":"SDLSubscribeButton"},"Classes/SDLSubscribeButton.html#/c:objc(cs)SDLSubscribeButton(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLSubscribeButton object indicated by the NSMutableDictionary","parent_name":"SDLSubscribeButton"},"Classes/SDLSubscribeButton.html#/c:objc(cs)SDLSubscribeButton(im)initWithButtonName:handler:":{"name":"-initWithButtonName:handler:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeButton"},"Classes/SDLSubscribeButton.html#/c:objc(cs)SDLSubscribeButton(py)handler":{"name":"handler","abstract":"

                                A handler that will let you know when the button you subscribed to is selected.

                                ","parent_name":"SDLSubscribeButton"},"Classes/SDLSubscribeButton.html#/c:objc(cs)SDLSubscribeButton(py)buttonName":{"name":"buttonName","abstract":"

                                @abstract The name of the button to subscribe to","parent_name":"SDLSubscribeButton"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)videoSessionConnected":{"name":"videoSessionConnected","abstract":"

                                Undocumented

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)audioSessionConnected":{"name":"audioSessionConnected","abstract":"

                                Undocumented

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)videoSessionEncrypted":{"name":"videoSessionEncrypted","abstract":"

                                Undocumented

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)audioSessionEncrypted":{"name":"audioSessionEncrypted","abstract":"

                                Undocumented

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)touchManager":{"name":"touchManager","abstract":"

                                Touch Manager responsible for providing touch event notifications.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)videoEncoderSettings":{"name":"videoEncoderSettings","abstract":"

                                The settings used in a VTCompressionSessionRef encoder. These will be verified when the video stream is started. Acceptable properties for this are located in VTCompressionProperties. If set to nil, the defaultVideoEncoderSettings will be used.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)displayCapabilties":{"name":"displayCapabilties","abstract":"

                                Display capabilties that will set the screenSize property. If set to nil, the SDLDefaultScreenSize will be used.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)defaultVideoEncoderSettings":{"name":"defaultVideoEncoderSettings","abstract":"

                                Provides default video encoder settings used.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)screenSize":{"name":"screenSize","abstract":"

                                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.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)pixelBufferPool":{"name":"pixelBufferPool","abstract":"

                                The pixel buffer pool reference returned back from an active VTCompressionSessionRef encoder.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)initWithProtocol:":{"name":"-initWithProtocol:","abstract":"

                                Undocumented

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)initWithProtocol:displayCapabilities:":{"name":"-initWithProtocol:displayCapabilities:","abstract":"

                                Undocumented

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)startVideoSessionWithStartBlock:":{"name":"-startVideoSessionWithStartBlock:","abstract":"

                                This method will attempt to start a streaming video session. It will set up iOS’s video encoder, and call out to the head unit asking if it will start a video session. This will not use encryption.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)startVideoSessionWithHeight:width:startBlock:":{"name":"-startVideoSessionWithHeight:width:startBlock:","abstract":"

                                This method will attempt to start a streaming video session. It will set up iOS’s video encoder, and call out to the head unit asking if it will start a video session. This will not use encryption. To get proper values for height and width. If the remote system does not support GetSystemCapabilities, then call startVideoSessionWithStartBlock: instead.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)startVideoSessionWithTLS:startBlock:":{"name":"-startVideoSessionWithTLS:startBlock:","abstract":"

                                Start a video session either with with no encryption (the default), with authentication but no encryption (this will attempt a TLS authentication with the other side, but will not physically encrypt the data after that), or authentication and encryption, which will encrypt all video data being sent.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)startVideoSessionWithTLS:height:width:startBlock:":{"name":"-startVideoSessionWithTLS:height:width:startBlock:","abstract":"

                                Start a video session either with with no encryption (the default), with authentication but no encryption (this will attempt a TLS authentication with the other side, but will not physically encrypt the data after that), or authentication and encryption, which will encrypt all video data being sent. To get proper values for height, width, protocol, and codec, call GetSystemCapabilities. If the remote system does not support GetSystemCapabilities, then call startVideoSessionWithStartBlock: instead.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)stopVideoSession":{"name":"-stopVideoSession","abstract":"

                                This method will stop a running video session if there is one running.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)sendVideoData:":{"name":"-sendVideoData:","abstract":"

                                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.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)startAudioSessionWithStartBlock:":{"name":"-startAudioSessionWithStartBlock:","abstract":"

                                This method will attempt to start an audio session

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)startAudioSessionWithTLS:startBlock:":{"name":"-startAudioSessionWithTLS:startBlock:","abstract":"

                                Undocumented

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)stopAudioSession":{"name":"-stopAudioSession","abstract":"

                                This method will stop a running audio session if there is one running.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)sendAudioData:":{"name":"-sendAudioData:","abstract":"

                                This method receives PCM audio data and will attempt to send that data across to the head unit for immediate playback

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStartTime.html#/c:objc(cs)SDLStartTime(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a newly allocated SDLStartTime object

                                ","parent_name":"SDLStartTime"},"Classes/SDLStartTime.html#/c:objc(cs)SDLStartTime(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a newly allocated SDLStartTime object indicated by the dictionary parameter

                                ","parent_name":"SDLStartTime"},"Classes/SDLStartTime.html#/c:objc(cs)SDLStartTime(im)initWithHours:minutes:seconds:":{"name":"-initWithHours:minutes:seconds:","abstract":"

                                Undocumented

                                ","parent_name":"SDLStartTime"},"Classes/SDLStartTime.html#/c:objc(cs)SDLStartTime(py)hours":{"name":"hours","abstract":"

                                @abstract The hour of the media clock

                                ","parent_name":"SDLStartTime"},"Classes/SDLStartTime.html#/c:objc(cs)SDLStartTime(py)minutes":{"name":"minutes","abstract":"

                                @abstract The minute of the media clock

                                ","parent_name":"SDLStartTime"},"Classes/SDLStartTime.html#/c:objc(cs)SDLStartTime(py)seconds":{"name":"seconds","abstract":"

                                @abstract The second of the media clock

                                ","parent_name":"SDLStartTime"},"Classes/SDLSpeechCapabilities.html#/c:objc(cs)SDLSpeechCapabilities(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract get SDLSpeechCapabilities according value string

                                ","parent_name":"SDLSpeechCapabilities"},"Classes/SDLSpeechCapabilities.html#/c:objc(cs)SDLSpeechCapabilities(cm)values":{"name":"+values","abstract":"

                                @abstract declare an array to store all possible SDLSpeechCapabilities values

                                ","parent_name":"SDLSpeechCapabilities"},"Classes/SDLSpeechCapabilities.html#/c:objc(cs)SDLSpeechCapabilities(cm)TEXT":{"name":"+TEXT","abstract":"

                                @abstract The SDL platform can speak text phrases.

                                ","parent_name":"SDLSpeechCapabilities"},"Classes/SDLSpeechCapabilities.html#/c:objc(cs)SDLSpeechCapabilities(cm)SAPI_PHONEMES":{"name":"+SAPI_PHONEMES","abstract":"

                                Undocumented

                                ","parent_name":"SDLSpeechCapabilities"},"Classes/SDLSpeechCapabilities.html#/c:objc(cs)SDLSpeechCapabilities(cm)LHPLUS_PHONEMES":{"name":"+LHPLUS_PHONEMES","abstract":"

                                Undocumented

                                ","parent_name":"SDLSpeechCapabilities"},"Classes/SDLSpeechCapabilities.html#/c:objc(cs)SDLSpeechCapabilities(cm)PRE_RECORDED":{"name":"+PRE_RECORDED","abstract":"

                                Undocumented

                                ","parent_name":"SDLSpeechCapabilities"},"Classes/SDLSpeechCapabilities.html#/c:objc(cs)SDLSpeechCapabilities(cm)SILENCE":{"name":"+SILENCE","abstract":"

                                Undocumented

                                ","parent_name":"SDLSpeechCapabilities"},"Classes/SDLSpeakResponse.html#/c:objc(cs)SDLSpeakResponse(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLSpeakResponse object

                                ","parent_name":"SDLSpeakResponse"},"Classes/SDLSpeakResponse.html#/c:objc(cs)SDLSpeakResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLSpeakResponse object indicated by the NSMutableDictionary","parent_name":"SDLSpeakResponse"},"Classes/SDLSpeak.html#/c:objc(cs)SDLSpeak(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLSpeak object

                                ","parent_name":"SDLSpeak"},"Classes/SDLSpeak.html#/c:objc(cs)SDLSpeak(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLSpeak object indicated by the dictionary parameter

                                ","parent_name":"SDLSpeak"},"Classes/SDLSpeak.html#/c:objc(cs)SDLSpeak(im)initWithTTS:":{"name":"-initWithTTS:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSpeak"},"Classes/SDLSpeak.html#/c:objc(cs)SDLSpeak(im)initWithTTSChunks:":{"name":"-initWithTTSChunks:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSpeak"},"Classes/SDLSpeak.html#/c:objc(cs)SDLSpeak(py)ttsChunks":{"name":"ttsChunks","abstract":"

                                @abstract An array of TTSChunk structs which, taken together, specify the phrase to be spoken

                                ","parent_name":"SDLSpeak"},"Classes/SDLSoftButtonType.html#/c:objc(cs)SDLSoftButtonType(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract get SDLSoftButtonType according value string

                                ","parent_name":"SDLSoftButtonType"},"Classes/SDLSoftButtonType.html#/c:objc(cs)SDLSoftButtonType(cm)values":{"name":"+values","abstract":"

                                @abstract declare an array to store all possible SDLSoftButtonType values

                                ","parent_name":"SDLSoftButtonType"},"Classes/SDLSoftButtonType.html#/c:objc(cs)SDLSoftButtonType(cm)TEXT":{"name":"+TEXT","abstract":"

                                @abstract Text kind Softbutton

                                ","parent_name":"SDLSoftButtonType"},"Classes/SDLSoftButtonType.html#/c:objc(cs)SDLSoftButtonType(cm)IMAGE":{"name":"+IMAGE","abstract":"

                                @abstract Image kind Softbutton

                                ","parent_name":"SDLSoftButtonType"},"Classes/SDLSoftButtonType.html#/c:objc(cs)SDLSoftButtonType(cm)BOTH":{"name":"+BOTH","abstract":"

                                @abstract Both (Text & Image) kind Softbutton

                                ","parent_name":"SDLSoftButtonType"},"Classes/SDLSoftButtonCapabilities.html#/c:objc(cs)SDLSoftButtonCapabilities(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a newly allocated SDLSoftButtonCapabilities object

                                ","parent_name":"SDLSoftButtonCapabilities"},"Classes/SDLSoftButtonCapabilities.html#/c:objc(cs)SDLSoftButtonCapabilities(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a newly allocated SDLSoftButtonCapabilities object indicated by the dictionary parameter

                                ","parent_name":"SDLSoftButtonCapabilities"},"Classes/SDLSoftButtonCapabilities.html#/c:objc(cs)SDLSoftButtonCapabilities(py)shortPressAvailable":{"name":"shortPressAvailable","abstract":"

                                @abstract The button supports a short press.

                                ","parent_name":"SDLSoftButtonCapabilities"},"Classes/SDLSoftButtonCapabilities.html#/c:objc(cs)SDLSoftButtonCapabilities(py)longPressAvailable":{"name":"longPressAvailable","abstract":"

                                @abstract The button supports a LONG press.

                                ","parent_name":"SDLSoftButtonCapabilities"},"Classes/SDLSoftButtonCapabilities.html#/c:objc(cs)SDLSoftButtonCapabilities(py)upDownAvailable":{"name":"upDownAvailable","abstract":"

                                @abstract The button supports button down and button up.

                                ","parent_name":"SDLSoftButtonCapabilities"},"Classes/SDLSoftButtonCapabilities.html#/c:objc(cs)SDLSoftButtonCapabilities(py)imageSupported":{"name":"imageSupported","abstract":"

                                @abstract The button supports referencing a static or dynamic image.

                                ","parent_name":"SDLSoftButtonCapabilities"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(im)initWithHandler:":{"name":"-initWithHandler:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)handler":{"name":"handler","abstract":"

                                Undocumented

                                ","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)type":{"name":"type","abstract":"

                                Undocumented

                                ","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)text":{"name":"text","abstract":"

                                Undocumented

                                ","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)image":{"name":"image","abstract":"

                                Undocumented

                                ","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)isHighlighted":{"name":"isHighlighted","abstract":"

                                Undocumented

                                ","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)softButtonID":{"name":"softButtonID","abstract":"

                                Undocumented

                                ","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)systemAction":{"name":"systemAction","abstract":"

                                Undocumented

                                ","parent_name":"SDLSoftButton"},"Classes/SDLSliderResponse.html#/c:objc(cs)SDLSliderResponse(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLSliderResponse object

                                ","parent_name":"SDLSliderResponse"},"Classes/SDLSliderResponse.html#/c:objc(cs)SDLSliderResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLSliderResponse object indicated by the NSMutableDictionary","parent_name":"SDLSliderResponse"},"Classes/SDLSliderResponse.html#/c:objc(cs)SDLSliderResponse(py)sliderPosition":{"name":"sliderPosition","abstract":"

                                @abstract The selected position of the slider.

                                ","parent_name":"SDLSliderResponse"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLSlider object

                                ","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLSlider object indicated by the dictionary parameter

                                ","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(im)initWithNumTicks:position:":{"name":"-initWithNumTicks:position:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(im)initWithNumTicks:position:sliderHeader:sliderFooter:timeout:":{"name":"-initWithNumTicks:position:sliderHeader:sliderFooter:timeout:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(im)initWithNumTicks:position:sliderHeader:sliderFooters:timeout:":{"name":"-initWithNumTicks:position:sliderHeader:sliderFooters:timeout:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(py)numTicks":{"name":"numTicks","abstract":"

                                @abstract Represents a number of selectable items on a horizontal axis

                                ","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(py)position":{"name":"position","abstract":"

                                @abstract An Initial position of slider control

                                ","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(py)sliderHeader":{"name":"sliderHeader","abstract":"

                                @abstract A text header to display

                                ","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(py)sliderFooter":{"name":"sliderFooter","abstract":"

                                @abstract A text footer to display

                                ","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(py)timeout":{"name":"timeout","abstract":"

                                @abstract An App defined timeout

                                ","parent_name":"SDLSlider"},"Classes/SDLSiphonServer.html#/c:objc(cs)SDLSiphonServer(cm)enableSiphonDebug":{"name":"+enableSiphonDebug","abstract":"

                                Undocumented

                                ","parent_name":"SDLSiphonServer"},"Classes/SDLSiphonServer.html#/c:objc(cs)SDLSiphonServer(cm)disableSiphonDebug":{"name":"+disableSiphonDebug","abstract":"

                                Undocumented

                                ","parent_name":"SDLSiphonServer"},"Classes/SDLSiphonServer.html#/c:objc(cs)SDLSiphonServer(cm)_siphonRawTransportDataFromApp:msgBytesLength:":{"name":"+_siphonRawTransportDataFromApp:msgBytesLength:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSiphonServer"},"Classes/SDLSiphonServer.html#/c:objc(cs)SDLSiphonServer(cm)_siphonRawTransportDataFromSDL:msgBytesLength:":{"name":"+_siphonRawTransportDataFromSDL:msgBytesLength:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSiphonServer"},"Classes/SDLSiphonServer.html#/c:objc(cs)SDLSiphonServer(cm)_siphonNSLogData:":{"name":"+_siphonNSLogData:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSiphonServer"},"Classes/SDLSiphonServer.html#/c:objc(cs)SDLSiphonServer(cm)_siphonFormattedTraceData:":{"name":"+_siphonFormattedTraceData:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSiphonServer"},"Classes/SDLSiphonServer.html#/c:objc(cs)SDLSiphonServer(cm)_siphonIsActive":{"name":"+_siphonIsActive","abstract":"

                                Undocumented

                                ","parent_name":"SDLSiphonServer"},"Classes/SDLSiphonServer.html#/c:objc(cs)SDLSiphonServer(cm)init":{"name":"+init","abstract":"

                                Undocumented

                                ","parent_name":"SDLSiphonServer"},"Classes/SDLSiphonServer.html#/c:objc(cs)SDLSiphonServer(cm)dealloc":{"name":"+dealloc","abstract":"

                                Undocumented

                                ","parent_name":"SDLSiphonServer"},"Classes/SDLSingleTireStatus.html#/c:objc(cs)SDLSingleTireStatus(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a newly allocated SDLSingleTireStatus object

                                ","parent_name":"SDLSingleTireStatus"},"Classes/SDLSingleTireStatus.html#/c:objc(cs)SDLSingleTireStatus(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a newly allocated SDLSingleTireStatus object indicated by the dictionary parameter

                                ","parent_name":"SDLSingleTireStatus"},"Classes/SDLSingleTireStatus.html#/c:objc(cs)SDLSingleTireStatus(py)status":{"name":"status","abstract":"

                                @abstract The volume status of a single tire

                                ","parent_name":"SDLSingleTireStatus"},"Classes/SDLShowResponse.html#/c:objc(cs)SDLShowResponse(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLShowResponse object

                                ","parent_name":"SDLShowResponse"},"Classes/SDLShowResponse.html#/c:objc(cs)SDLShowResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLShowResponse object indicated by the NSMutableDictionary","parent_name":"SDLShowResponse"},"Classes/SDLShowConstantTBTResponse.html#/c:objc(cs)SDLShowConstantTBTResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBTResponse"},"Classes/SDLShowConstantTBTResponse.html#/c:objc(cs)SDLShowConstantTBTResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBTResponse"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"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":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)navigationText1":{"name":"navigationText1","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)navigationText2":{"name":"navigationText2","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)eta":{"name":"eta","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)timeToDestination":{"name":"timeToDestination","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)totalDistance":{"name":"totalDistance","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)turnIcon":{"name":"turnIcon","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)nextTurnIcon":{"name":"nextTurnIcon","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)distanceToManeuver":{"name":"distanceToManeuver","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)distanceToManeuverScale":{"name":"distanceToManeuverScale","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)maneuverComplete":{"name":"maneuverComplete","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)softButtons":{"name":"softButtons","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLShow object

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLShow object indicated by the dictionary parameter

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)initWithMainField1:mainField2:alignment:":{"name":"-initWithMainField1:mainField2:alignment:","abstract":"

                                Undocumented

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)initWithMainField1:mainField1Type:mainField2:mainField2Type:alignment:":{"name":"-initWithMainField1:mainField1Type:mainField2:mainField2Type:alignment:","abstract":"

                                Undocumented

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)initWithMainField1:mainField2:mainField3:mainField4:alignment:":{"name":"-initWithMainField1:mainField2:mainField3:mainField4:alignment:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)initWithMainField1:mainField2:mainField3:mainField4:alignment:statusBar:mediaClock:mediaTrack:graphic:softButtons:customPresets:":{"name":"-initWithMainField1:mainField2:mainField3:mainField4:alignment:statusBar:mediaClock:mediaTrack:graphic:softButtons:customPresets:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mainField1":{"name":"mainField1","abstract":"

                                @abstract 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":"

                                @abstract The text displayed on the second display line of a two-line display

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mainField3":{"name":"mainField3","abstract":"

                                @abstract The text displayed on the first display line of the second page

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mainField4":{"name":"mainField4","abstract":"

                                @abstract The text displayed on the second display line of the second page

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)alignment":{"name":"alignment","abstract":"

                                @abstract The alignment that Specifies how mainField1 and mainField2 text","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)statusBar":{"name":"statusBar","abstract":"

                                @abstract Text in the Status Bar

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mediaClock":{"name":"mediaClock","abstract":"

                                @abstract This property is deprecated use SetMediaClockTimer instead.","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mediaTrack":{"name":"mediaTrack","abstract":"

                                @abstract The text in the track field

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)graphic":{"name":"graphic","abstract":"

                                @abstract An image to be shown on supported displays

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)secondaryGraphic":{"name":"secondaryGraphic","abstract":"

                                @abstract An image to be shown on supported displays

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)softButtons":{"name":"softButtons","abstract":"

                                @abstract The the Soft buttons defined by the App

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)customPresets":{"name":"customPresets","abstract":"

                                @abstract The Custom Presets defined by the App

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)metadataTags":{"name":"metadataTags","abstract":"

                                @abstract Text Field Metadata

                                ","parent_name":"SDLShow"},"Classes/SDLSetMediaClockTimerResponse.html#/c:objc(cs)SDLSetMediaClockTimerResponse(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLSetMediaClockTimerResponse object

                                ","parent_name":"SDLSetMediaClockTimerResponse"},"Classes/SDLSetMediaClockTimerResponse.html#/c:objc(cs)SDLSetMediaClockTimerResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLSetMediaClockTimerResponse object indicated by the NSMutableDictionary","parent_name":"SDLSetMediaClockTimerResponse"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLSetMediaClockTimer object

                                ","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLSetMediaClockTimer object indicated by the NSMutableDictionary","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(im)initWithUpdateMode:hours:minutes:seconds:":{"name":"-initWithUpdateMode:hours:minutes:seconds:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(im)initWithUpdateMode:":{"name":"-initWithUpdateMode:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(py)startTime":{"name":"startTime","abstract":"

                                @abstract A Start Time with specifying hour, minute, second values

                                ","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(py)endTime":{"name":"endTime","abstract":"

                                @abstract An END time of type SDLStartTime, specifying hour, minute, second values

                                ","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(py)updateMode":{"name":"updateMode","abstract":"

                                @abstract The media clock/timer update mode (COUNTUP/COUNTDOWN/PAUSE/RESUME)

                                ","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetGlobalPropertiesResponse.html#/c:objc(cs)SDLSetGlobalPropertiesResponse(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLSetGlobalPropertiesResponse object

                                ","parent_name":"SDLSetGlobalPropertiesResponse"},"Classes/SDLSetGlobalPropertiesResponse.html#/c:objc(cs)SDLSetGlobalPropertiesResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLSetGlobalPropertiesResponse object indicated by the NSMutableDictionary","parent_name":"SDLSetGlobalPropertiesResponse"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLSetGlobalProperties object

                                ","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLSetGlobalProperties object indicated by the NSMutableDictionary","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(im)initWithHelpText:timeoutText:":{"name":"-initWithHelpText:timeoutText:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(im)initWithHelpText:timeoutText:vrHelpTitle:vrHelp:":{"name":"-initWithHelpText:timeoutText:vrHelpTitle:vrHelp:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)helpPrompt":{"name":"helpPrompt","abstract":"

                                @abstract Sets a Vector for Help Prompt that Array of one or more","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)timeoutPrompt":{"name":"timeoutPrompt","abstract":"

                                @abstract A Vector for Timeout Prompt representing Array of one or","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)vrHelpTitle":{"name":"vrHelpTitle","abstract":"

                                @abstract Sets a voice recognition Help Title

                                ","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)vrHelp":{"name":"vrHelp","abstract":"

                                @abstract Sets the items listed in the VR help screen used in an interaction","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)menuTitle":{"name":"menuTitle","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)menuIcon":{"name":"menuIcon","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)keyboardProperties":{"name":"keyboardProperties","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetDisplayLayoutResponse.html#/c:objc(cs)SDLSetDisplayLayoutResponse(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLSetDisplayLayoutResponse object

                                ","parent_name":"SDLSetDisplayLayoutResponse"},"Classes/SDLSetDisplayLayoutResponse.html#/c:objc(cs)SDLSetDisplayLayoutResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetDisplayLayoutResponse"},"Classes/SDLSetDisplayLayoutResponse.html#/c:objc(cs)SDLSetDisplayLayoutResponse(py)displayCapabilities":{"name":"displayCapabilities","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetDisplayLayoutResponse"},"Classes/SDLSetDisplayLayoutResponse.html#/c:objc(cs)SDLSetDisplayLayoutResponse(py)buttonCapabilities":{"name":"buttonCapabilities","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetDisplayLayoutResponse"},"Classes/SDLSetDisplayLayoutResponse.html#/c:objc(cs)SDLSetDisplayLayoutResponse(py)softButtonCapabilities":{"name":"softButtonCapabilities","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetDisplayLayoutResponse"},"Classes/SDLSetDisplayLayoutResponse.html#/c:objc(cs)SDLSetDisplayLayoutResponse(py)presetBankCapabilities":{"name":"presetBankCapabilities","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetDisplayLayoutResponse"},"Classes/SDLSetDisplayLayout.html#/c:objc(cs)SDLSetDisplayLayout(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLSetDisplayLayout object

                                ","parent_name":"SDLSetDisplayLayout"},"Classes/SDLSetDisplayLayout.html#/c:objc(cs)SDLSetDisplayLayout(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLSetDisplayLayout object indicated by the NSMutableDictionary","parent_name":"SDLSetDisplayLayout"},"Classes/SDLSetDisplayLayout.html#/c:objc(cs)SDLSetDisplayLayout(im)initWithPredefinedLayout:":{"name":"-initWithPredefinedLayout:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetDisplayLayout"},"Classes/SDLSetDisplayLayout.html#/c:objc(cs)SDLSetDisplayLayout(im)initWithLayout:":{"name":"-initWithLayout:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetDisplayLayout"},"Classes/SDLSetDisplayLayout.html#/c:objc(cs)SDLSetDisplayLayout(py)displayLayout":{"name":"displayLayout","abstract":"

                                @abstract A display layout. Predefined or dynamically created screen layout.","parent_name":"SDLSetDisplayLayout"},"Classes/SDLSetAppIconResponse.html#/c:objc(cs)SDLSetAppIconResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetAppIconResponse"},"Classes/SDLSetAppIconResponse.html#/c:objc(cs)SDLSetAppIconResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetAppIconResponse"},"Classes/SDLSetAppIcon.html#/c:objc(cs)SDLSetAppIcon(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLSetAppIcon object

                                ","parent_name":"SDLSetAppIcon"},"Classes/SDLSetAppIcon.html#/c:objc(cs)SDLSetAppIcon(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLSetAppIcon object indicated by the dictionary parameter

                                ","parent_name":"SDLSetAppIcon"},"Classes/SDLSetAppIcon.html#/c:objc(cs)SDLSetAppIcon(im)initWithFileName:":{"name":"-initWithFileName:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetAppIcon"},"Classes/SDLSetAppIcon.html#/c:objc(cs)SDLSetAppIcon(py)syncFileName":{"name":"syncFileName","abstract":"

                                @abstract A file reference name","parent_name":"SDLSetAppIcon"},"Classes/SDLSendLocationResponse.html#/c:objc(cs)SDLSendLocationResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLSendLocationResponse"},"Classes/SDLSendLocationResponse.html#/c:objc(cs)SDLSendLocationResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSendLocationResponse"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(im)initWithLongitude:latitude:locationName:locationDescription:address:phoneNumber:image:":{"name":"-initWithLongitude:latitude:locationName:locationDescription:address:phoneNumber:image:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)longitudeDegrees":{"name":"longitudeDegrees","abstract":"

                                The longitudinal coordinate of the location.

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)latitudeDegrees":{"name":"latitudeDegrees","abstract":"

                                The latitudinal coordinate of the location.

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)locationName":{"name":"locationName","abstract":"

                                Name / title of intended location

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)locationDescription":{"name":"locationDescription","abstract":"

                                Description of the intended location / establishment

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)addressLines":{"name":"addressLines","abstract":"

                                Location address for display purposes only

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)phoneNumber":{"name":"phoneNumber","abstract":"

                                Phone number of intended location / establishment

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)locationImage":{"name":"locationImage","abstract":"

                                Image / icon of intended location

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)deliveryMode":{"name":"deliveryMode","abstract":"

                                Mode in which the sendLocation request is sent

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)timeStamp":{"name":"timeStamp","abstract":"

                                Arrival time of Location. If multiple SendLocations are sent, this will be used for sorting as well.

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)address":{"name":"address","abstract":"

                                Address to be used for setting destination

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendHapticDataResponse.html#/c:objc(cs)SDLSendHapticDataResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLSendHapticDataResponse"},"Classes/SDLSendHapticDataResponse.html#/c:objc(cs)SDLSendHapticDataResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSendHapticDataResponse"},"Classes/SDLSendHapticData.html#/c:objc(cs)SDLSendHapticData(im)init":{"name":"-init","abstract":"

                                Constructs a new SDLSendHapticData object

                                ","parent_name":"SDLSendHapticData"},"Classes/SDLSendHapticData.html#/c:objc(cs)SDLSendHapticData(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a new SDLSendHapticData object indicated by the dictionary parameter

                                ","parent_name":"SDLSendHapticData"},"Classes/SDLSendHapticData.html#/c:objc(cs)SDLSendHapticData(im)initWithHapticRectData:":{"name":"-initWithHapticRectData:","abstract":"

                                Constructs a new SDLSendHapticData object indicated by the hapticSpatialData parameter

                                ","parent_name":"SDLSendHapticData"},"Classes/SDLSendHapticData.html#/c:objc(cs)SDLSendHapticData(py)hapticRectData":{"name":"hapticRectData","abstract":"

                                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

                                ","parent_name":"SDLSendHapticData"},"Classes/SDLScrollableMessageResponse.html#/c:objc(cs)SDLScrollableMessageResponse(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLScrollableMessageResponse object

                                ","parent_name":"SDLScrollableMessageResponse"},"Classes/SDLScrollableMessageResponse.html#/c:objc(cs)SDLScrollableMessageResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLScrollableMessageResponse object indicated by the NSMutableDictionary","parent_name":"SDLScrollableMessageResponse"},"Classes/SDLScrollableMessage.html#/c:objc(cs)SDLScrollableMessage(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLScrollableMessage object

                                ","parent_name":"SDLScrollableMessage"},"Classes/SDLScrollableMessage.html#/c:objc(cs)SDLScrollableMessage(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLScrollableMessage object indicated by the NSMutableDictionary","parent_name":"SDLScrollableMessage"},"Classes/SDLScrollableMessage.html#/c:objc(cs)SDLScrollableMessage(im)initWithMessage:":{"name":"-initWithMessage:","abstract":"

                                Undocumented

                                ","parent_name":"SDLScrollableMessage"},"Classes/SDLScrollableMessage.html#/c:objc(cs)SDLScrollableMessage(im)initWithMessage:timeout:softButtons:":{"name":"-initWithMessage:timeout:softButtons:","abstract":"

                                Undocumented

                                ","parent_name":"SDLScrollableMessage"},"Classes/SDLScrollableMessage.html#/c:objc(cs)SDLScrollableMessage(py)scrollableMessageBody":{"name":"scrollableMessageBody","abstract":"

                                @abstract 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":"

                                @abstract 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":"

                                @abstract Gets/Sets App defined SoftButtons.If omitted on supported displays, only the","parent_name":"SDLScrollableMessage"},"Classes/SDLScreenParams.html#/c:objc(cs)SDLScreenParams(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLScreenParams"},"Classes/SDLScreenParams.html#/c:objc(cs)SDLScreenParams(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLScreenParams"},"Classes/SDLScreenParams.html#/c:objc(cs)SDLScreenParams(py)resolution":{"name":"resolution","abstract":"

                                Undocumented

                                ","parent_name":"SDLScreenParams"},"Classes/SDLScreenParams.html#/c:objc(cs)SDLScreenParams(py)touchEventAvailable":{"name":"touchEventAvailable","abstract":"

                                Undocumented

                                ","parent_name":"SDLScreenParams"},"Classes/SDLSamplingRate.html#/c:objc(cs)SDLSamplingRate(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract get SDLSamplingRate according value string

                                ","parent_name":"SDLSamplingRate"},"Classes/SDLSamplingRate.html#/c:objc(cs)SDLSamplingRate(cm)values":{"name":"+values","abstract":"

                                @abstract declare an array to store all possible SDLSamplingRate values

                                ","parent_name":"SDLSamplingRate"},"Classes/SDLSamplingRate.html#/c:objc(cs)SDLSamplingRate(cm)_8KHZ":{"name":"+_8KHZ","abstract":"

                                @abstract Sampling rate of 8 kHz

                                ","parent_name":"SDLSamplingRate"},"Classes/SDLSamplingRate.html#/c:objc(cs)SDLSamplingRate(cm)_16KHZ":{"name":"+_16KHZ","abstract":"

                                @abstract Sampling rate of 16 kHz

                                ","parent_name":"SDLSamplingRate"},"Classes/SDLSamplingRate.html#/c:objc(cs)SDLSamplingRate(cm)_22KHZ":{"name":"+_22KHZ","abstract":"

                                @abstract Sampling rate of 22 kHz

                                ","parent_name":"SDLSamplingRate"},"Classes/SDLSamplingRate.html#/c:objc(cs)SDLSamplingRate(cm)_44KHZ":{"name":"+_44KHZ","abstract":"

                                @abstract Sampling rate of 44 kHz

                                ","parent_name":"SDLSamplingRate"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract get SDLResult according value string

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)values":{"name":"+values","abstract":"

                                @abstract declare an array to store all possible SDLResult values

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)SUCCESS":{"name":"+SUCCESS","abstract":"

                                @abstract The request succeeded

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)INVALID_DATA":{"name":"+INVALID_DATA","abstract":"

                                @abstract Result code : Invalid Data

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)CHAR_LIMIT_EXCEEDED":{"name":"+CHAR_LIMIT_EXCEEDED","abstract":"

                                Undocumented

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)UNSUPPORTED_REQUEST":{"name":"+UNSUPPORTED_REQUEST","abstract":"

                                @abstract The request is not supported by SDL

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)OUT_OF_MEMORY":{"name":"+OUT_OF_MEMORY","abstract":"

                                @abstract The system could not process the request because the necessary memory couldn’t be allocated

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)TOO_MANY_PENDING_REQUESTS":{"name":"+TOO_MANY_PENDING_REQUESTS","abstract":"

                                @abstract There are too many requests pending (means that the response has not been delivered yet).

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)INVALID_ID":{"name":"+INVALID_ID","abstract":"

                                @abstract One of the provided IDs is not valid.","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)DUPLICATE_NAME":{"name":"+DUPLICATE_NAME","abstract":"

                                @abstract The provided name or synonym is a duplicate of some already-defined name or synonym.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)TOO_MANY_APPLICATIONS":{"name":"+TOO_MANY_APPLICATIONS","abstract":"

                                There are already too many registered applications.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)APPLICATION_REGISTERED_ALREADY":{"name":"+APPLICATION_REGISTERED_ALREADY","abstract":"

                                RegisterApplication has been called again, after a RegisterApplication was successful before.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)UNSUPPORTED_VERSION":{"name":"+UNSUPPORTED_VERSION","abstract":"

                                The Head Unit doesn’t support the protocol that is requested by the mobile application.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)WRONG_LANGUAGE":{"name":"+WRONG_LANGUAGE","abstract":"

                                The requested language is currently not supported. Might be because of a mismatch of the currently active language on the head unit and the requested language.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)APPLICATION_NOT_REGISTERED":{"name":"+APPLICATION_NOT_REGISTERED","abstract":"

                                A command can not be executed because no application has been registered with RegisterApplication.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)IN_USE":{"name":"+IN_USE","abstract":"

                                The data may not be changed, because it is currently in use. For example when trying to delete a command set that is currently involved in an interaction.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)VEHICLE_DATA_NOT_ALLOWED":{"name":"+VEHICLE_DATA_NOT_ALLOWED","abstract":"

                                The user has turned off access to vehicle data, and it is globally unavailable to mobile applications.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)VEHICLE_DATA_NOT_AVAILABLE":{"name":"+VEHICLE_DATA_NOT_AVAILABLE","abstract":"

                                The requested vehicle data is not available on this vehicle or is not published.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)REJECTED":{"name":"+REJECTED","abstract":"

                                The requested command was rejected, e.g. because 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.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)ABORTED":{"name":"+ABORTED","abstract":"

                                A command was aborted, for example due to user interaction (e.g. user pressed button). Or an HMI command (e.g. Speak) is aborted because a higher priority HMI command (e.g. Alert) was requested.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)IGNORED":{"name":"+IGNORED","abstract":"

                                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.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)UNSUPPORTED_RESOURCE":{"name":"+UNSUPPORTED_RESOURCE","abstract":"

                                A button that was requested for subscription is not supported under the current system.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)FILE_NOT_FOUND":{"name":"+FILE_NOT_FOUND","abstract":"

                                A specified file could not be found on the head unit.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)GENERIC_ERROR":{"name":"+GENERIC_ERROR","abstract":"

                                Provided data is valid but something went wrong in the lower layers.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)DISALLOWED":{"name":"+DISALLOWED","abstract":"

                                RPC is not authorized in local policy table.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)USER_DISALLOWED":{"name":"+USER_DISALLOWED","abstract":"

                                RPC is included in a functional group explicitly blocked by the user.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)TIMED_OUT":{"name":"+TIMED_OUT","abstract":"

                                Overlay reached the maximum timeout and closed.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)CANCEL_ROUTE":{"name":"+CANCEL_ROUTE","abstract":"

                                User selected to Cancel Route.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)TRUNCATED_DATA":{"name":"+TRUNCATED_DATA","abstract":"

                                The RPC (e.g. ReadDID) executed successfully but the data exceeded the platform maximum threshold and thus, only part of the data is available.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)RETRY":{"name":"+RETRY","abstract":"

                                The user interrupted the RPC (e.g. PerformAudioPassThru) and indicated to start over. Note, the app must issue the new RPC.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)WARNINGS":{"name":"+WARNINGS","abstract":"

                                The RPC (e.g. SubscribeVehicleData) executed successfully but one or more items have a warning or failure.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)SAVED":{"name":"+SAVED","abstract":"

                                The RPC (e.g. Slider) executed successfully and the user elected to save the current position / value.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)INVALID_CERT":{"name":"+INVALID_CERT","abstract":"

                                The certificate provided during authentication is invalid.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)EXPIRED_CERT":{"name":"+EXPIRED_CERT","abstract":"

                                The certificate provided during authentication is expired.

                                ","parent_name":"SDLResult"},"Classes/SDLResult.html#/c:objc(cs)SDLResult(cm)RESUME_FAILED":{"name":"+RESUME_FAILED","abstract":"

                                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.

                                ","parent_name":"SDLResult"},"Classes/SDLResetGlobalPropertiesResponse.html#/c:objc(cs)SDLResetGlobalPropertiesResponse(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLResetGlobalPropertiesResponse object

                                ","parent_name":"SDLResetGlobalPropertiesResponse"},"Classes/SDLResetGlobalPropertiesResponse.html#/c:objc(cs)SDLResetGlobalPropertiesResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLResetGlobalPropertiesResponse object indicated by the NSMutableDictionary","parent_name":"SDLResetGlobalPropertiesResponse"},"Classes/SDLResetGlobalProperties.html#/c:objc(cs)SDLResetGlobalProperties(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLResetGlobalProperties object

                                ","parent_name":"SDLResetGlobalProperties"},"Classes/SDLResetGlobalProperties.html#/c:objc(cs)SDLResetGlobalProperties(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLResetGlobalProperties object indicated by the NSMutableDictionary","parent_name":"SDLResetGlobalProperties"},"Classes/SDLResetGlobalProperties.html#/c:objc(cs)SDLResetGlobalProperties(im)initWithProperties:":{"name":"-initWithProperties:","abstract":"

                                Undocumented

                                ","parent_name":"SDLResetGlobalProperties"},"Classes/SDLResetGlobalProperties.html#/c:objc(cs)SDLResetGlobalProperties(py)properties":{"name":"properties","abstract":"

                                @abstract An array of one or more GlobalProperty enumeration elements","parent_name":"SDLResetGlobalProperties"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)values":{"name":"+values","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)HTTP":{"name":"+HTTP","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)FILE_RESUME":{"name":"+FILE_RESUME","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)AUTH_REQUEST":{"name":"+AUTH_REQUEST","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)AUTH_CHALLENGE":{"name":"+AUTH_CHALLENGE","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)AUTH_ACK":{"name":"+AUTH_ACK","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)PROPRIETARY":{"name":"+PROPRIETARY","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)QUERY_APPS":{"name":"+QUERY_APPS","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)LAUNCH_APP":{"name":"+LAUNCH_APP","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)LOCK_SCREEN_ICON_URL":{"name":"+LOCK_SCREEN_ICON_URL","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)TRAFFIC_MESSAGE_CHANNEL":{"name":"+TRAFFIC_MESSAGE_CHANNEL","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)DRIVER_PROFILE":{"name":"+DRIVER_PROFILE","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)VOICE_SEARCH":{"name":"+VOICE_SEARCH","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)NAVIGATION":{"name":"+NAVIGATION","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)PHONE":{"name":"+PHONE","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)CLIMATE":{"name":"+CLIMATE","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)SETTINGS":{"name":"+SETTINGS","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)VEHICLE_DIAGNOSTICS":{"name":"+VEHICLE_DIAGNOSTICS","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)EMERGENCY":{"name":"+EMERGENCY","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)MEDIA":{"name":"+MEDIA","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRequestType.html#/c:objc(cs)SDLRequestType(cm)FOTA":{"name":"+FOTA","abstract":"

                                Undocumented

                                ","parent_name":"SDLRequestType"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLRegisterAppInterfaceResponse object

                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a new SDLRegisterAppInterfaceResponse object indicated by the NSMutableDictionary","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)syncMsgVersion":{"name":"syncMsgVersion","abstract":"

                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)language":{"name":"language","abstract":"

                                The currently active VR+TTS language on Sync.

                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)hmiDisplayLanguage":{"name":"hmiDisplayLanguage","abstract":"

                                The currently active display language on Sync

                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)displayCapabilities":{"name":"displayCapabilities","abstract":"
                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)buttonCapabilities":{"name":"buttonCapabilities","abstract":"
                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)softButtonCapabilities":{"name":"softButtonCapabilities","abstract":"

                                If returned, the platform supports on-screen SoftButtons

                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)presetBankCapabilities":{"name":"presetBankCapabilities","abstract":"

                                If returned, the platform supports custom on-screen Presets

                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)hmiZoneCapabilities":{"name":"hmiZoneCapabilities","abstract":"
                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)speechCapabilities":{"name":"speechCapabilities","abstract":"
                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)prerecordedSpeech":{"name":"prerecordedSpeech","abstract":"
                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)vrCapabilities":{"name":"vrCapabilities","abstract":"
                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)audioPassThruCapabilities":{"name":"audioPassThruCapabilities","abstract":"
                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)vehicleType":{"name":"vehicleType","abstract":"

                                Specifies the vehicle’s type

                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)supportedDiagModes":{"name":"supportedDiagModes","abstract":"

                                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.

                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)hmiCapabilities":{"name":"hmiCapabilities","abstract":"
                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)sdlVersion":{"name":"sdlVersion","abstract":"

                                The SmartDeviceLink version

                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)systemSoftwareVersion":{"name":"systemSoftwareVersion","abstract":"

                                The software version of the system that implements the SmartDeviceLink core

                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLRegisterAppInterface object

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLRegisterAppInterface object indicated by the dictionary parameter

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(im)initWithLifecycleConfiguration:":{"name":"-initWithLifecycleConfiguration:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(im)initWithAppName:appId:languageDesired:":{"name":"-initWithAppName:appId:languageDesired:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(im)initWithAppName:appId:languageDesired:isMediaApp:appType:shortAppName:":{"name":"-initWithAppName:appId:languageDesired:isMediaApp:appType:shortAppName:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(im)initWithAppName:appId:languageDesired:isMediaApp:appType:shortAppName:ttsName:vrSynonyms:hmiDisplayLanguageDesired:resumeHash:":{"name":"-initWithAppName:appId:languageDesired:isMediaApp:appType:shortAppName:ttsName:vrSynonyms:hmiDisplayLanguageDesired:resumeHash:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)syncMsgVersion":{"name":"syncMsgVersion","abstract":"

                                @abstract The version of the SDL interface

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)appName":{"name":"appName","abstract":"

                                @abstract 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

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)ttsName":{"name":"ttsName","abstract":"

                                @abstract TTS string for VR recognition of the mobile application name.

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)ngnMediaScreenAppName":{"name":"ngnMediaScreenAppName","abstract":"

                                @abstract A String representing an abbreviated version of the mobile application’s name (if necessary) that will be displayed on the media screen

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)vrSynonyms":{"name":"vrSynonyms","abstract":"

                                @abstract Defines a additional voice recognition commands

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)isMediaApplication":{"name":"isMediaApplication","abstract":"

                                @abstract Indicates if the application is a media or a non-media application.

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)languageDesired":{"name":"languageDesired","abstract":"

                                @abstract A Language enumeration indicating what language the application intends to use for user interaction (TTS and VR).

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)hmiDisplayLanguageDesired":{"name":"hmiDisplayLanguageDesired","abstract":"

                                @abstract An enumeration indicating what language the application intends to use for user interaction (Display).

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)appHMIType":{"name":"appHMIType","abstract":"

                                @abstract A list of all applicable app types stating which classifications to be given to the app.

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)hashID":{"name":"hashID","abstract":"

                                @abstract ID used to uniquely identify current state of all app data that can persist through connection cycles (e.g. ignition cycles).

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)deviceInfo":{"name":"deviceInfo","abstract":"

                                @abstract Information about the connecting device

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)appID":{"name":"appID","abstract":"

                                @abstract ID used to validate app with policy table entries

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)appInfo":{"name":"appInfo","abstract":"

                                @abstract Information about the application running

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a newly allocated SDLRectangle object

                                ","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a newly allocated SDLRectangle object indicated by the dictionary parameter

                                ","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(im)initWithX:y:width:height:":{"name":"-initWithX:y:width:height:","abstract":"

                                Create a Rectangle

                                ","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(im)initWithCGRect:":{"name":"-initWithCGRect:","abstract":"

                                Create a Rectangle from a CGRect

                                ","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(py)x":{"name":"x","abstract":"

                                The upper left X-coordinate of the rectangle","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(py)y":{"name":"y","abstract":"

                                The upper left Y-coordinate of the rectangle","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(py)width":{"name":"width","abstract":"

                                The width of the rectangle","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(py)height":{"name":"height","abstract":"

                                The height of the rectangle","parent_name":"SDLRectangle"},"Classes/SDLReadDIDResponse.html#/c:objc(cs)SDLReadDIDResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLReadDIDResponse"},"Classes/SDLReadDIDResponse.html#/c:objc(cs)SDLReadDIDResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLReadDIDResponse"},"Classes/SDLReadDIDResponse.html#/c:objc(cs)SDLReadDIDResponse(py)didResult":{"name":"didResult","abstract":"

                                Undocumented

                                ","parent_name":"SDLReadDIDResponse"},"Classes/SDLReadDID.html#/c:objc(cs)SDLReadDID(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLReadDID object

                                ","parent_name":"SDLReadDID"},"Classes/SDLReadDID.html#/c:objc(cs)SDLReadDID(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLReadDID object indicated by the dictionary parameter

                                ","parent_name":"SDLReadDID"},"Classes/SDLReadDID.html#/c:objc(cs)SDLReadDID(im)initWithECUName:didLocation:":{"name":"-initWithECUName:didLocation:","abstract":"

                                Undocumented

                                ","parent_name":"SDLReadDID"},"Classes/SDLReadDID.html#/c:objc(cs)SDLReadDID(py)ecuName":{"name":"ecuName","abstract":"

                                @abstract An ID of the vehicle module","parent_name":"SDLReadDID"},"Classes/SDLReadDID.html#/c:objc(cs)SDLReadDID(py)didLocation":{"name":"didLocation","abstract":"

                                @abstract Raw data from vehicle data DID location(s)","parent_name":"SDLReadDID"},"Classes/SDLRPCStruct.html#/c:objc(cs)SDLRPCStruct@store":{"name":"store","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCStruct"},"Classes/SDLRPCStruct.html#/c:objc(cs)SDLRPCStruct(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCStruct"},"Classes/SDLRPCStruct.html#/c:objc(cs)SDLRPCStruct(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCStruct"},"Classes/SDLRPCStruct.html#/c:objc(cs)SDLRPCStruct(im)serializeAsDictionary:":{"name":"-serializeAsDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCStruct"},"Classes/SDLRPCResponseNotification.html#/c:objc(cs)SDLRPCResponseNotification(py)response":{"name":"response","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCResponseNotification"},"Classes/SDLRPCResponseNotification.html#/c:objc(cs)SDLRPCResponseNotification(im)initWithName:object:rpcResponse:":{"name":"-initWithName:object:rpcResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCResponseNotification"},"Classes/SDLRPCResponse.html#/c:objc(cs)SDLRPCResponse(py)correlationID":{"name":"correlationID","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCResponse"},"Classes/SDLRPCResponse.html#/c:objc(cs)SDLRPCResponse(py)success":{"name":"success","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCResponse"},"Classes/SDLRPCResponse.html#/c:objc(cs)SDLRPCResponse(py)resultCode":{"name":"resultCode","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCResponse"},"Classes/SDLRPCResponse.html#/c:objc(cs)SDLRPCResponse(py)info":{"name":"info","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCResponse"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildAddCommandWithID:menuName:parentID:position:vrCommands:iconValue:iconType:correlationID:":{"name":"+buildAddCommandWithID:menuName:parentID:position:vrCommands:iconValue:iconType:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildAddCommandWithID:menuName:vrCommands:correlationID:":{"name":"+buildAddCommandWithID:menuName:vrCommands:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildAddCommandWithID:vrCommands:correlationID:":{"name":"+buildAddCommandWithID:vrCommands:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildAddCommandWithID:menuName:parentID:position:vrCommands:iconValue:iconType:handler:":{"name":"+buildAddCommandWithID:menuName:parentID:position:vrCommands:iconValue:iconType:handler:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildAddCommandWithID:menuName:vrCommands:handler:":{"name":"+buildAddCommandWithID:menuName:vrCommands:handler:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildAddCommandWithID:vrCommands:handler:":{"name":"+buildAddCommandWithID:vrCommands:handler:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildAddSubMenuWithID:menuName:position:correlationID:":{"name":"+buildAddSubMenuWithID:menuName:position:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildAddSubMenuWithID:menuName:correlationID:":{"name":"+buildAddSubMenuWithID:menuName:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildAlertWithTTS:alertText1:alertText2:alertText3:playTone:duration:correlationID:":{"name":"+buildAlertWithTTS:alertText1:alertText2:alertText3:playTone:duration:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildAlertWithTTS:alertText1:alertText2:playTone:duration:correlationID:":{"name":"+buildAlertWithTTS:alertText1:alertText2:playTone:duration:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildAlertWithTTS:playTone:correlationID:":{"name":"+buildAlertWithTTS:playTone:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildAlertWithTTSChunks:alertText1:alertText2:alertText3:playTone:duration:softButtons:correlationID:":{"name":"+buildAlertWithTTSChunks:alertText1:alertText2:alertText3:playTone:duration:softButtons:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildAlertWithTTSChunks:playTone:correlationID:":{"name":"+buildAlertWithTTSChunks:playTone:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildAlertWithAlertText1:alertText2:alertText3:duration:softButtons:correlationID:":{"name":"+buildAlertWithAlertText1:alertText2:alertText3:duration:softButtons:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildAlertWithAlertText1:alertText2:alertText3:duration:correlationID:":{"name":"+buildAlertWithAlertText1:alertText2:alertText3:duration:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildAlertWithAlertText1:alertText2:duration:correlationID:":{"name":"+buildAlertWithAlertText1:alertText2:duration:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildAlertManeuverwithTTSchunks:softButtons:correlationID:":{"name":"+buildAlertManeuverwithTTSchunks:softButtons:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildChangeRegistrationWithLanguage:hmiDisplayLanguage:correlationID:":{"name":"+buildChangeRegistrationWithLanguage:hmiDisplayLanguage:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildCreateInteractionChoiceSetWithID:choiceSet:correlationID:":{"name":"+buildCreateInteractionChoiceSetWithID:choiceSet:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildDeleteCommandWithID:correlationID:":{"name":"+buildDeleteCommandWithID:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildDeleteFileWithName:correlationID:":{"name":"+buildDeleteFileWithName:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildDialNumberWithNumber:":{"name":"+buildDialNumberWithNumber:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildListFilesWithCorrelationID:":{"name":"+buildListFilesWithCorrelationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildDeleteInteractionChoiceSetWithID:correlationID:":{"name":"+buildDeleteInteractionChoiceSetWithID:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildDeleteSubMenuWithID:correlationID:":{"name":"+buildDeleteSubMenuWithID:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildEndAudioPassThruWithCorrelationID:":{"name":"+buildEndAudioPassThruWithCorrelationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildGetDTCsWithECUName:correlationID:":{"name":"+buildGetDTCsWithECUName:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildGetVehicleDataWithGPS:speed:rpm:fuelLevel:fuelLevelState:instantFuelConsumption:externalTemperature:vin:prndl:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:correlationID:":{"name":"+buildGetVehicleDataWithGPS:speed:rpm:fuelLevel:fuelLevelState:instantFuelConsumption:externalTemperature:vin:prndl:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildPerformAudioPassThruWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:maxDuration:bitsPerSample:audioType:muteAudio:correlationID:":{"name":"+buildPerformAudioPassThruWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:maxDuration:bitsPerSample:audioType:muteAudio:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildPerformInteractionWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeoutChunks:interactionMode:timeout:vrHelp:correlationID:":{"name":"+buildPerformInteractionWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeoutChunks:interactionMode:timeout:vrHelp:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildPerformInteractionWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:vrHelp:correlationID:":{"name":"+buildPerformInteractionWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:vrHelp:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildPerformInteractionWithInitialPrompt:initialText:interactionChoiceSetID:vrHelp:correlationID:":{"name":"+buildPerformInteractionWithInitialPrompt:initialText:interactionChoiceSetID:vrHelp:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildPerformInteractionWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:correlationID:":{"name":"+buildPerformInteractionWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildPerformInteractionWithInitialPrompt:initialText:interactionChoiceSetID:correlationID:":{"name":"+buildPerformInteractionWithInitialPrompt:initialText:interactionChoiceSetID:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildPutFileWithFileName:fileType:persistentFile:correlationId:":{"name":"+buildPutFileWithFileName:fileType:persistentFile:correlationId:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildPutFileWithFileName:fileType:persisistentFile:correlationID:":{"name":"+buildPutFileWithFileName:fileType:persisistentFile:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildReadDIDWithECUName:didLocation:correlationID:":{"name":"+buildReadDIDWithECUName:didLocation:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildRegisterAppInterfaceWithAppName:ttsName:vrSynonyms:isMediaApp:languageDesired:hmiDisplayLanguageDesired:appID:":{"name":"+buildRegisterAppInterfaceWithAppName:ttsName:vrSynonyms:isMediaApp:languageDesired:hmiDisplayLanguageDesired:appID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildRegisterAppInterfaceWithAppName:isMediaApp:languageDesired:appID:":{"name":"+buildRegisterAppInterfaceWithAppName:isMediaApp:languageDesired:appID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildRegisterAppInterfaceWithAppName:languageDesired:appID:":{"name":"+buildRegisterAppInterfaceWithAppName:languageDesired:appID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildResetGlobalPropertiesWithProperties:correlationID:":{"name":"+buildResetGlobalPropertiesWithProperties:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildSendLocationWithLongitude:latitude:locationName:locationDescription:address:phoneNumber:image:":{"name":"+buildSendLocationWithLongitude:latitude:locationName:locationDescription:address:phoneNumber:image:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildScrollableMessage:timeout:softButtons:correlationID:":{"name":"+buildScrollableMessage:timeout:softButtons:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildSetAppIconWithFileName:correlationID:":{"name":"+buildSetAppIconWithFileName:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildSetDisplayLayout:correlationID:":{"name":"+buildSetDisplayLayout:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildSetGlobalPropertiesWithHelpText:timeoutText:vrHelpTitle:vrHelp:correlationID:":{"name":"+buildSetGlobalPropertiesWithHelpText:timeoutText:vrHelpTitle:vrHelp:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildSetGlobalPropertiesWithHelpText:timeoutText:correlationID:":{"name":"+buildSetGlobalPropertiesWithHelpText:timeoutText:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildSetMediaClockTimerWithHours:minutes:seconds:updateMode:correlationID:":{"name":"+buildSetMediaClockTimerWithHours:minutes:seconds:updateMode:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildSetMediaClockTimerWithUpdateMode:correlationID:":{"name":"+buildSetMediaClockTimerWithUpdateMode:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildShowWithMainField1:mainField2:mainField3:mainField4:statusBar:mediaClock:mediaTrack:alignment:graphic:softButtons:customPresets:correlationID:":{"name":"+buildShowWithMainField1:mainField2:mainField3:mainField4:statusBar:mediaClock:mediaTrack:alignment:graphic:softButtons:customPresets:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildShowWithMainField1:mainField2:statusBar:mediaClock:mediaTrack:alignment:correlationID:":{"name":"+buildShowWithMainField1:mainField2:statusBar:mediaClock:mediaTrack:alignment:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildShowWithMainField1:mainField2:alignment:correlationID:":{"name":"+buildShowWithMainField1:mainField2:alignment:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildSliderDynamicFooterWithNumTicks:position:sliderHeader:sliderFooter:timeout:correlationID:":{"name":"+buildSliderDynamicFooterWithNumTicks:position:sliderHeader:sliderFooter:timeout:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildSliderStaticFooterWithNumTicks:position:sliderHeader:sliderFooter:timeout:correlationID:":{"name":"+buildSliderStaticFooterWithNumTicks:position:sliderHeader:sliderFooter:timeout:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildSoftButtonWithType:text:image:highlighted:buttonID:systemAction:handler:":{"name":"+buildSoftButtonWithType:text:image:highlighted:buttonID:systemAction:handler:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildSpeakWithTTSChunks:correlationID:":{"name":"+buildSpeakWithTTSChunks:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildSpeakWithTTS:correlationID:":{"name":"+buildSpeakWithTTS:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildSubscribeButtonWithName:correlationID:":{"name":"+buildSubscribeButtonWithName:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildSubscribeButtonWithName:handler:":{"name":"+buildSubscribeButtonWithName:handler:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildSubscribeVehicleDataWithGPS:speed:rpm:fuelLevel:fuelLevelState:instantFuelConsumption:externalTemperature:prndl:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:correlationID:":{"name":"+buildSubscribeVehicleDataWithGPS:speed:rpm:fuelLevel:fuelLevelState:instantFuelConsumption:externalTemperature:prndl:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildShowConstantTBTWithString:navigationText2:eta:timeToDestination:totalDistance:turnIcon:nextTurnIcon:distanceToManeuver:distanceToManeuverScale:maneuverComplete:softButtons:correlationID:":{"name":"+buildShowConstantTBTWithString:navigationText2:eta:timeToDestination:totalDistance:turnIcon:nextTurnIcon:distanceToManeuver:distanceToManeuverScale:maneuverComplete:softButtons:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildUnregisterAppInterfaceWithCorrelationID:":{"name":"+buildUnregisterAppInterfaceWithCorrelationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildUnsubscribeButtonWithName:correlationID:":{"name":"+buildUnsubscribeButtonWithName:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildUnsubscribeVehicleDataWithGPS:speed:rpm:fuelLevel:fuelLevelState:instantFuelConsumption:externalTemperature:prndl:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:correlationID:":{"name":"+buildUnsubscribeVehicleDataWithGPS:speed:rpm:fuelLevel:fuelLevelState:instantFuelConsumption:externalTemperature:prndl:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequestFactory.html#/c:objc(cs)SDLRPCRequestFactory(cm)buildUpdateTurnListWithTurnList:softButtons:correlationID:":{"name":"+buildUpdateTurnListWithTurnList:softButtons:correlationID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequestFactory"},"Classes/SDLRPCRequest.html#/c:objc(cs)SDLRPCRequest(py)correlationID":{"name":"correlationID","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequest"},"Classes/SDLRPCNotificationNotification.html#/c:objc(cs)SDLRPCNotificationNotification(py)notification":{"name":"notification","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCNotificationNotification"},"Classes/SDLRPCNotificationNotification.html#/c:objc(cs)SDLRPCNotificationNotification(im)initWithName:object:rpcNotification:":{"name":"-initWithName:object:rpcNotification:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCNotificationNotification"},"Classes/SDLRPCNotification.html#/c:objc(cs)SDLRPCNotification(im)initWithName:":{"name":"-initWithName:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCNotification"},"Classes/SDLRPCNotification.html#/c:objc(cs)SDLRPCNotification(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCNotification"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage@function":{"name":"function","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage@parameters":{"name":"parameters","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage@messageType":{"name":"messageType","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)initWithName:":{"name":"-initWithName:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)getFunctionName":{"name":"-getFunctionName","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)setFunctionName:":{"name":"-setFunctionName:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)getParameters:":{"name":"-getParameters:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)setParameters:value:":{"name":"-setParameters:value:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(py)bulkData":{"name":"bulkData","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(py)name":{"name":"name","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(py)messageType":{"name":"messageType","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLPutFileResponse.html#/c:objc(cs)SDLPutFileResponse(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLPutFileResponse object

                                ","parent_name":"SDLPutFileResponse"},"Classes/SDLPutFileResponse.html#/c:objc(cs)SDLPutFileResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLPutFileResponse object indicated by the dictionary parameter

                                ","parent_name":"SDLPutFileResponse"},"Classes/SDLPutFileResponse.html#/c:objc(cs)SDLPutFileResponse(py)spaceAvailable":{"name":"spaceAvailable","abstract":"

                                Undocumented

                                ","parent_name":"SDLPutFileResponse"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(im)init":{"name":"-init","abstract":"

                                Constructs a new SDLPutFile object

                                ","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a new SDLPutFile object indicated by the dictionary parameter

                                ","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(im)initWithFileName:fileType:":{"name":"-initWithFileName:fileType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(im)initWithFileName:fileType:persistentFile:":{"name":"-initWithFileName:fileType:persistentFile:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)syncFileName":{"name":"syncFileName","abstract":"

                                A file reference name

                                ","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)fileType":{"name":"fileType","abstract":"

                                A FileType value representing a selected file type

                                ","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)persistentFile":{"name":"persistentFile","abstract":"

                                A value to indicates if the file is meant to persist between","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)systemFile":{"name":"systemFile","abstract":"

                                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.

                                ","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)offset":{"name":"offset","abstract":"

                                Offset in bytes for resuming partial data chunks.

                                ","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)length":{"name":"length","abstract":"

                                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

                                ","parent_name":"SDLPutFile"},"Classes/SDLProxyFactory.html#/c:objc(cs)SDLProxyFactory(cm)buildSDLProxyWithListener:":{"name":"+buildSDLProxyWithListener:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyFactory"},"Classes/SDLProxyFactory.html#/c:objc(cs)SDLProxyFactory(cm)buildSDLProxyWithListener:tcpIPAddress:tcpPort:":{"name":"+buildSDLProxyWithListener:tcpIPAddress:tcpPort:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyFactory"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy@_version":{"name":"_version","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy@_bulkSessionID":{"name":"_bulkSessionID","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy@_isConnected":{"name":"_isConnected","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy@_alreadyDestructed":{"name":"_alreadyDestructed","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(py)protocol":{"name":"protocol","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(py)transport":{"name":"transport","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(py)proxyListeners":{"name":"proxyListeners","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(py)startSessionTimer":{"name":"startSessionTimer","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(py)debugConsoleGroupName":{"name":"debugConsoleGroupName","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(py)proxyVersion":{"name":"proxyVersion","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(py)streamingMediaManager":{"name":"streamingMediaManager","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(im)initWithTransport:protocol:delegate:":{"name":"-initWithTransport:protocol:delegate:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(im)dispose":{"name":"-dispose","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(im)addDelegate:":{"name":"-addDelegate:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(im)removeDelegate:":{"name":"-removeDelegate:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(im)sendRPC:":{"name":"-sendRPC:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(im)sendRPCRequest:":{"name":"-sendRPCRequest:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(im)handleRPCDictionary:":{"name":"-handleRPCDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(im)handleRpcMessage:":{"name":"-handleRpcMessage:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(im)handleProtocolMessage:":{"name":"-handleProtocolMessage:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(im)addSecurityManagers:forAppId:":{"name":"-addSecurityManagers:forAppId:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(cm)enableSiphonDebug":{"name":"+enableSiphonDebug","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(cm)disableSiphonDebug":{"name":"+disableSiphonDebug","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(im)putFileStream:withRequest:":{"name":"-putFileStream:withRequest:","abstract":"

                                Puts data into a file on the module","parent_name":"SDLProxy"},"Classes/SDLProtocolMessage.html#/c:objc(cs)SDLProtocolMessage(py)header":{"name":"header","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolMessage"},"Classes/SDLProtocolMessage.html#/c:objc(cs)SDLProtocolMessage(py)payload":{"name":"payload","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolMessage"},"Classes/SDLProtocolMessage.html#/c:objc(cs)SDLProtocolMessage(py)data":{"name":"data","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolMessage"},"Classes/SDLProtocolMessage.html#/c:objc(cs)SDLProtocolMessage(cm)messageWithHeader:andPayload:":{"name":"+messageWithHeader:andPayload:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolMessage"},"Classes/SDLProtocolMessage.html#/c:objc(cs)SDLProtocolMessage(im)size":{"name":"-size","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolMessage"},"Classes/SDLProtocolMessage.html#/c:objc(cs)SDLProtocolMessage(im)description":{"name":"-description","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolMessage"},"Classes/SDLProtocolMessage.html#/c:objc(cs)SDLProtocolMessage(im)rpcDictionary":{"name":"-rpcDictionary","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolMessage"},"Classes/SDLProtocolMessage.html#/c:objc(cs)SDLProtocolMessage(cm)determineVersion:":{"name":"+determineVersion:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolMessage"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader@_version":{"name":"_version","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader@_size":{"name":"_size","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(py)version":{"name":"version","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(py)size":{"name":"size","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(py)compressed":{"name":"compressed","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(py)encrypted":{"name":"encrypted","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(py)frameType":{"name":"frameType","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(py)serviceType":{"name":"serviceType","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(py)frameData":{"name":"frameData","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(py)sessionID":{"name":"sessionID","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(py)bytesInPayload":{"name":"bytesInPayload","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(im)data":{"name":"-data","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(im)parse:":{"name":"-parse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(im)description":{"name":"-description","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(cm)headerForVersion:":{"name":"+headerForVersion:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(cm)determineVersion:":{"name":"+determineVersion:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)sendStartSessionWithType:":{"name":"-sendStartSessionWithType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)startServiceWithType:":{"name":"-startServiceWithType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)startServiceWithType:payload:":{"name":"-startServiceWithType:payload:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)startSecureServiceWithType:completionHandler:":{"name":"-startSecureServiceWithType:completionHandler:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)startSecureServiceWithType:payload:completionHandler:":{"name":"-startSecureServiceWithType:payload:completionHandler:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)sendEndSessionWithType:":{"name":"-sendEndSessionWithType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)endServiceWithType:":{"name":"-endServiceWithType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)sendRPC:":{"name":"-sendRPC:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)sendRPC:encrypted:error:":{"name":"-sendRPC:encrypted:error:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)sendRPCRequest:":{"name":"-sendRPCRequest:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)sendRawData:withServiceType:":{"name":"-sendRawData:withServiceType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)sendEncryptedRawData:onService:":{"name":"-sendEncryptedRawData:onService:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)handleBytesFromTransport:":{"name":"-handleBytesFromTransport:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLPrimaryAudioSource.html#/c:objc(cs)SDLPrimaryAudioSource(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract get SDLPrimaryAudioSource according value string

                                ","parent_name":"SDLPrimaryAudioSource"},"Classes/SDLPrimaryAudioSource.html#/c:objc(cs)SDLPrimaryAudioSource(cm)values":{"name":"+values","abstract":"

                                @abstract declare an array to store all possible SDLPrimaryAudioSource values

                                ","parent_name":"SDLPrimaryAudioSource"},"Classes/SDLPrimaryAudioSource.html#/c:objc(cs)SDLPrimaryAudioSource(cm)NO_SOURCE_SELECTED":{"name":"+NO_SOURCE_SELECTED","abstract":"

                                @abstract Currently no source selected

                                ","parent_name":"SDLPrimaryAudioSource"},"Classes/SDLPrimaryAudioSource.html#/c:objc(cs)SDLPrimaryAudioSource(cm)USB":{"name":"+USB","abstract":"

                                @abstract USB is current source

                                ","parent_name":"SDLPrimaryAudioSource"},"Classes/SDLPrimaryAudioSource.html#/c:objc(cs)SDLPrimaryAudioSource(cm)USB2":{"name":"+USB2","abstract":"

                                @abstract USB2 is current source

                                ","parent_name":"SDLPrimaryAudioSource"},"Classes/SDLPrimaryAudioSource.html#/c:objc(cs)SDLPrimaryAudioSource(cm)BLUETOOTH_STEREO_BTST":{"name":"+BLUETOOTH_STEREO_BTST","abstract":"

                                @abstract Bluetooth Stereo is current source

                                ","parent_name":"SDLPrimaryAudioSource"},"Classes/SDLPrimaryAudioSource.html#/c:objc(cs)SDLPrimaryAudioSource(cm)LINE_IN":{"name":"+LINE_IN","abstract":"

                                @abstract Line in is current source

                                ","parent_name":"SDLPrimaryAudioSource"},"Classes/SDLPrimaryAudioSource.html#/c:objc(cs)SDLPrimaryAudioSource(cm)IPOD":{"name":"+IPOD","abstract":"

                                @abstract iPod is current source

                                ","parent_name":"SDLPrimaryAudioSource"},"Classes/SDLPrimaryAudioSource.html#/c:objc(cs)SDLPrimaryAudioSource(cm)MOBILE_APP":{"name":"+MOBILE_APP","abstract":"

                                @abstract Mobile app is current source

                                ","parent_name":"SDLPrimaryAudioSource"},"Classes/SDLPresetBankCapabilities.html#/c:objc(cs)SDLPresetBankCapabilities(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a newly allocated SDLPresetBankCapabilities object

                                ","parent_name":"SDLPresetBankCapabilities"},"Classes/SDLPresetBankCapabilities.html#/c:objc(cs)SDLPresetBankCapabilities(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a newly allocated SDLPresetBankCapabilities object indicated by the dictionary parameter

                                ","parent_name":"SDLPresetBankCapabilities"},"Classes/SDLPresetBankCapabilities.html#/c:objc(cs)SDLPresetBankCapabilities(py)onScreenPresetsAvailable":{"name":"onScreenPresetsAvailable","abstract":"

                                @abstract If Onscreen custom presets are available.

                                ","parent_name":"SDLPresetBankCapabilities"},"Classes/SDLPrerecordedSpeech.html#/c:objc(cs)SDLPrerecordedSpeech(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Undocumented

                                ","parent_name":"SDLPrerecordedSpeech"},"Classes/SDLPrerecordedSpeech.html#/c:objc(cs)SDLPrerecordedSpeech(cm)values":{"name":"+values","abstract":"

                                Undocumented

                                ","parent_name":"SDLPrerecordedSpeech"},"Classes/SDLPrerecordedSpeech.html#/c:objc(cs)SDLPrerecordedSpeech(cm)HELP_JINGLE":{"name":"+HELP_JINGLE","abstract":"

                                Undocumented

                                ","parent_name":"SDLPrerecordedSpeech"},"Classes/SDLPrerecordedSpeech.html#/c:objc(cs)SDLPrerecordedSpeech(cm)INITIAL_JINGLE":{"name":"+INITIAL_JINGLE","abstract":"

                                Undocumented

                                ","parent_name":"SDLPrerecordedSpeech"},"Classes/SDLPrerecordedSpeech.html#/c:objc(cs)SDLPrerecordedSpeech(cm)LISTEN_JINGLE":{"name":"+LISTEN_JINGLE","abstract":"

                                Undocumented

                                ","parent_name":"SDLPrerecordedSpeech"},"Classes/SDLPrerecordedSpeech.html#/c:objc(cs)SDLPrerecordedSpeech(cm)POSITIVE_JINGLE":{"name":"+POSITIVE_JINGLE","abstract":"

                                Undocumented

                                ","parent_name":"SDLPrerecordedSpeech"},"Classes/SDLPrerecordedSpeech.html#/c:objc(cs)SDLPrerecordedSpeech(cm)NEGATIVE_JINGLE":{"name":"+NEGATIVE_JINGLE","abstract":"

                                Undocumented

                                ","parent_name":"SDLPrerecordedSpeech"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)values":{"name":"+values","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)DEFAULT":{"name":"+DEFAULT","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)MEDIA":{"name":"+MEDIA","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)NON_MEDIA":{"name":"+NON_MEDIA","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)ONSCREEN_PRESETS":{"name":"+ONSCREEN_PRESETS","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)NAV_FULLSCREEN_MAP":{"name":"+NAV_FULLSCREEN_MAP","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)NAV_LIST":{"name":"+NAV_LIST","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)NAV_KEYBOARD":{"name":"+NAV_KEYBOARD","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)GRAPHIC_WITH_TEXT":{"name":"+GRAPHIC_WITH_TEXT","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)TEXT_WITH_GRAPHIC":{"name":"+TEXT_WITH_GRAPHIC","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)TILES_ONLY":{"name":"+TILES_ONLY","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)TEXTBUTTONS_ONLY":{"name":"+TEXTBUTTONS_ONLY","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)GRAPHIC_WITH_TILES":{"name":"+GRAPHIC_WITH_TILES","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)TILES_WITH_GRAPHIC":{"name":"+TILES_WITH_GRAPHIC","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS":{"name":"+GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC":{"name":"+TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)GRAPHIC_WITH_TEXTBUTTONS":{"name":"+GRAPHIC_WITH_TEXTBUTTONS","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)TEXTBUTTONS_WITH_GRAPHIC":{"name":"+TEXTBUTTONS_WITH_GRAPHIC","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)LARGE_GRAPHIC_WITH_SOFTBUTTONS":{"name":"+LARGE_GRAPHIC_WITH_SOFTBUTTONS","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)DOUBLE_GRAPHIC_WITH_SOFTBUTTONS":{"name":"+DOUBLE_GRAPHIC_WITH_SOFTBUTTONS","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPredefinedLayout.html#/c:objc(cs)SDLPredefinedLayout(cm)LARGE_GRAPHIC_ONLY":{"name":"+LARGE_GRAPHIC_ONLY","abstract":"

                                Undocumented

                                ","parent_name":"SDLPredefinedLayout"},"Classes/SDLPowerModeStatus.html#/c:objc(cs)SDLPowerModeStatus(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Undocumented

                                ","parent_name":"SDLPowerModeStatus"},"Classes/SDLPowerModeStatus.html#/c:objc(cs)SDLPowerModeStatus(cm)values":{"name":"+values","abstract":"

                                Undocumented

                                ","parent_name":"SDLPowerModeStatus"},"Classes/SDLPowerModeStatus.html#/c:objc(cs)SDLPowerModeStatus(cm)KEY_OUT":{"name":"+KEY_OUT","abstract":"

                                Undocumented

                                ","parent_name":"SDLPowerModeStatus"},"Classes/SDLPowerModeStatus.html#/c:objc(cs)SDLPowerModeStatus(cm)KEY_RECENTLY_OUT":{"name":"+KEY_RECENTLY_OUT","abstract":"

                                Undocumented

                                ","parent_name":"SDLPowerModeStatus"},"Classes/SDLPowerModeStatus.html#/c:objc(cs)SDLPowerModeStatus(cm)KEY_APPROVED_0":{"name":"+KEY_APPROVED_0","abstract":"

                                Undocumented

                                ","parent_name":"SDLPowerModeStatus"},"Classes/SDLPowerModeStatus.html#/c:objc(cs)SDLPowerModeStatus(cm)POST_ACCESORY_0":{"name":"+POST_ACCESORY_0","abstract":"

                                Undocumented

                                ","parent_name":"SDLPowerModeStatus"},"Classes/SDLPowerModeStatus.html#/c:objc(cs)SDLPowerModeStatus(cm)ACCESORY_1":{"name":"+ACCESORY_1","abstract":"

                                Undocumented

                                ","parent_name":"SDLPowerModeStatus"},"Classes/SDLPowerModeStatus.html#/c:objc(cs)SDLPowerModeStatus(cm)POST_IGNITION_1":{"name":"+POST_IGNITION_1","abstract":"

                                Undocumented

                                ","parent_name":"SDLPowerModeStatus"},"Classes/SDLPowerModeStatus.html#/c:objc(cs)SDLPowerModeStatus(cm)IGNITION_ON_2":{"name":"+IGNITION_ON_2","abstract":"

                                Undocumented

                                ","parent_name":"SDLPowerModeStatus"},"Classes/SDLPowerModeStatus.html#/c:objc(cs)SDLPowerModeStatus(cm)RUNNING_2":{"name":"+RUNNING_2","abstract":"

                                Undocumented

                                ","parent_name":"SDLPowerModeStatus"},"Classes/SDLPowerModeStatus.html#/c:objc(cs)SDLPowerModeStatus(cm)CRANK_3":{"name":"+CRANK_3","abstract":"

                                Undocumented

                                ","parent_name":"SDLPowerModeStatus"},"Classes/SDLPowerModeQualificationStatus.html#/c:objc(cs)SDLPowerModeQualificationStatus(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Undocumented

                                ","parent_name":"SDLPowerModeQualificationStatus"},"Classes/SDLPowerModeQualificationStatus.html#/c:objc(cs)SDLPowerModeQualificationStatus(cm)values":{"name":"+values","abstract":"

                                Undocumented

                                ","parent_name":"SDLPowerModeQualificationStatus"},"Classes/SDLPowerModeQualificationStatus.html#/c:objc(cs)SDLPowerModeQualificationStatus(cm)POWER_MODE_UNDEFINED":{"name":"+POWER_MODE_UNDEFINED","abstract":"

                                Undocumented

                                ","parent_name":"SDLPowerModeQualificationStatus"},"Classes/SDLPowerModeQualificationStatus.html#/c:objc(cs)SDLPowerModeQualificationStatus(cm)POWER_MODE_EVALUATION_IN_PROGRESS":{"name":"+POWER_MODE_EVALUATION_IN_PROGRESS","abstract":"

                                Undocumented

                                ","parent_name":"SDLPowerModeQualificationStatus"},"Classes/SDLPowerModeQualificationStatus.html#/c:objc(cs)SDLPowerModeQualificationStatus(cm)NOT_DEFINED":{"name":"+NOT_DEFINED","abstract":"

                                Undocumented

                                ","parent_name":"SDLPowerModeQualificationStatus"},"Classes/SDLPowerModeQualificationStatus.html#/c:objc(cs)SDLPowerModeQualificationStatus(cm)POWER_MODE_OK":{"name":"+POWER_MODE_OK","abstract":"

                                Undocumented

                                ","parent_name":"SDLPowerModeQualificationStatus"},"Classes/SDLPhoneCapability.html#/c:objc(cs)SDLPhoneCapability(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a newly allocated SDLPhoneCapability struct

                                ","parent_name":"SDLPhoneCapability"},"Classes/SDLPhoneCapability.html#/c:objc(cs)SDLPhoneCapability(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a newly allocated SDLPhoneCapability struct indicated by the dictionary parameter

                                ","parent_name":"SDLPhoneCapability"},"Classes/SDLPhoneCapability.html#/c:objc(cs)SDLPhoneCapability(im)initWithDialNumber:":{"name":"-initWithDialNumber:","abstract":"

                                Undocumented

                                ","parent_name":"SDLPhoneCapability"},"Classes/SDLPhoneCapability.html#/c:objc(cs)SDLPhoneCapability(py)dialNumberEnabled":{"name":"dialNumberEnabled","abstract":"

                                Whether or not the DialNumber RPC is enabled.","parent_name":"SDLPhoneCapability"},"Classes/SDLPermissionStatus.html#/c:objc(cs)SDLPermissionStatus(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract SDLPermissionStatus

                                ","parent_name":"SDLPermissionStatus"},"Classes/SDLPermissionStatus.html#/c:objc(cs)SDLPermissionStatus(cm)values":{"name":"+values","abstract":"

                                @abstract declare an array to store all possible SDLPermissionStatus values

                                ","parent_name":"SDLPermissionStatus"},"Classes/SDLPermissionStatus.html#/c:objc(cs)SDLPermissionStatus(cm)ALLOWED":{"name":"+ALLOWED","abstract":"

                                @abstract permission: allowed

                                ","parent_name":"SDLPermissionStatus"},"Classes/SDLPermissionStatus.html#/c:objc(cs)SDLPermissionStatus(cm)DISALLOWED":{"name":"+DISALLOWED","abstract":"

                                @abstract permission: disallowed

                                ","parent_name":"SDLPermissionStatus"},"Classes/SDLPermissionStatus.html#/c:objc(cs)SDLPermissionStatus(cm)USER_DISALLOWED":{"name":"+USER_DISALLOWED","abstract":"

                                @abstract permission: user disallowed

                                ","parent_name":"SDLPermissionStatus"},"Classes/SDLPermissionStatus.html#/c:objc(cs)SDLPermissionStatus(cm)USER_CONSENT_PENDING":{"name":"+USER_CONSENT_PENDING","abstract":"

                                @abstract permission: user consent pending

                                ","parent_name":"SDLPermissionStatus"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)startWithCompletionHandler:":{"name":"-startWithCompletionHandler:","abstract":"

                                Start the manager with a completion block that will be called when startup completes. This is used internally. To use an SDLPermissionManager, you should use the manager found on SDLManager.

                                ","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)stop":{"name":"-stop","abstract":"

                                Stop the manager. This method is used internally.

                                ","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)isRPCAllowed:":{"name":"-isRPCAllowed:","abstract":"

                                Determine if an individual RPC is allowed for the current HMI level

                                ","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)groupStatusOfRPCs:":{"name":"-groupStatusOfRPCs:","abstract":"

                                Determine if all RPCs are allowed for the current HMI level

                                ","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)statusOfRPCs:":{"name":"-statusOfRPCs:","abstract":"

                                Retrieve a dictionary with keys that are the passed in RPC names, and objects of an NSNumber specifying if that RPC is currently allowed

                                ","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)addObserverForRPCs:groupType:withHandler:":{"name":"-addObserverForRPCs:groupType:withHandler:","abstract":"

                                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.

                                ","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)removeAllObservers":{"name":"-removeAllObservers","abstract":"

                                Remove every current observer

                                ","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)removeObserverForIdentifier:":{"name":"-removeObserverForIdentifier:","abstract":"

                                Remove block observers for the specified RPC

                                ","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionItem.html#/c:objc(cs)SDLPermissionItem(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLPermissionItem"},"Classes/SDLPermissionItem.html#/c:objc(cs)SDLPermissionItem(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLPermissionItem"},"Classes/SDLPermissionItem.html#/c:objc(cs)SDLPermissionItem(py)rpcName":{"name":"rpcName","abstract":"

                                Undocumented

                                ","parent_name":"SDLPermissionItem"},"Classes/SDLPermissionItem.html#/c:objc(cs)SDLPermissionItem(py)hmiPermissions":{"name":"hmiPermissions","abstract":"

                                Undocumented

                                ","parent_name":"SDLPermissionItem"},"Classes/SDLPermissionItem.html#/c:objc(cs)SDLPermissionItem(py)parameterPermissions":{"name":"parameterPermissions","abstract":"

                                Undocumented

                                ","parent_name":"SDLPermissionItem"},"Classes/SDLPerformInteractionResponse.html#/c:objc(cs)SDLPerformInteractionResponse(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLPerformInteractionResponse object

                                ","parent_name":"SDLPerformInteractionResponse"},"Classes/SDLPerformInteractionResponse.html#/c:objc(cs)SDLPerformInteractionResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLPerformInteractionResponse object indicated by the dictionary parameter

                                ","parent_name":"SDLPerformInteractionResponse"},"Classes/SDLPerformInteractionResponse.html#/c:objc(cs)SDLPerformInteractionResponse(py)choiceID":{"name":"choiceID","abstract":"

                                @abstract ID of the choice that was selected in response to PerformInteraction.

                                ","parent_name":"SDLPerformInteractionResponse"},"Classes/SDLPerformInteractionResponse.html#/c:objc(cs)SDLPerformInteractionResponse(py)manualTextEntry":{"name":"manualTextEntry","abstract":"

                                @abstract Manually entered text selection, e.g. through keyboard

                                ","parent_name":"SDLPerformInteractionResponse"},"Classes/SDLPerformInteractionResponse.html#/c:objc(cs)SDLPerformInteractionResponse(py)triggerSource":{"name":"triggerSource","abstract":"

                                @abstract A SDLTriggerSource object which will be shown in the HMI

                                ","parent_name":"SDLPerformInteractionResponse"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLPerformInteraction object

                                ","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLPerformInteraction object indicated by the NSMutableDictionary

                                ","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInteractionChoiceSetId:":{"name":"-initWithInteractionChoiceSetId:","abstract":"

                                Undocumented

                                ","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInteractionChoiceSetIdList:":{"name":"-initWithInteractionChoiceSetIdList:","abstract":"

                                Undocumented

                                ","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInitialPrompt:initialText:interactionChoiceSetID:":{"name":"-initWithInitialPrompt:initialText:interactionChoiceSetID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInitialPrompt:initialText:interactionChoiceSetID:vrHelp:":{"name":"-initWithInitialPrompt:initialText:interactionChoiceSetID:vrHelp:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)initialText":{"name":"initialText","abstract":"

                                @abstract 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":"

                                @abstract 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":"

                                @abstract The Indicates mode that indicate how user selects interaction","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)interactionChoiceSetIDList":{"name":"interactionChoiceSetIDList","abstract":"

                                @abstract A Vector value representing an Array of one or more Choice","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)helpPrompt":{"name":"helpPrompt","abstract":"

                                @abstract A Vector which taken together, specify the help phrase to","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)timeoutPrompt":{"name":"timeoutPrompt","abstract":"

                                @abstract 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":"

                                @abstract 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":"

                                @abstract 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":"

                                Undocumented

                                ","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformAudioPassThruResponse.html#/c:objc(cs)SDLPerformAudioPassThruResponse(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLPerformAudioPassThruResponse object

                                ","parent_name":"SDLPerformAudioPassThruResponse"},"Classes/SDLPerformAudioPassThruResponse.html#/c:objc(cs)SDLPerformAudioPassThruResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLPerformAudioPassThruResponse object indicated by the dictionary parameter

                                ","parent_name":"SDLPerformAudioPassThruResponse"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLPerformAudioPassThru object

                                ","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLPerformAudioPassThru object indicated by the NSMutableDictionary

                                ","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(im)initWithSamplingRate:bitsPerSample:audioType:maxDuration:":{"name":"-initWithSamplingRate:bitsPerSample:audioType:maxDuration:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)initialPrompt":{"name":"initialPrompt","abstract":"

                                @abstract 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":"

                                @abstract a line of text displayed during audio capture","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)audioPassThruDisplayText2":{"name":"audioPassThruDisplayText2","abstract":"

                                @abstract A line of text displayed during audio capture","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)samplingRate":{"name":"samplingRate","abstract":"

                                @abstract A samplingRate

                                ","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)maxDuration":{"name":"maxDuration","abstract":"

                                @abstract the maximum duration of audio recording in milliseconds

                                ","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)bitsPerSample":{"name":"bitsPerSample","abstract":"

                                @abstract the quality the audio is recorded - 8 bit or 16 bit

                                ","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)audioType":{"name":"audioType","abstract":"

                                @abstract an audioType

                                ","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)muteAudio":{"name":"muteAudio","abstract":"

                                @abstract a Boolean value representing if the current audio source should be","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLParameterPermissions.html#/c:objc(cs)SDLParameterPermissions(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a newly allocated SDLParameterPermissions object

                                ","parent_name":"SDLParameterPermissions"},"Classes/SDLParameterPermissions.html#/c:objc(cs)SDLParameterPermissions(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a newly allocated SDLParameterPermissions object indicated by the dictionary parameter

                                ","parent_name":"SDLParameterPermissions"},"Classes/SDLParameterPermissions.html#/c:objc(cs)SDLParameterPermissions(py)allowed":{"name":"allowed","abstract":"

                                @abstract A set of all parameters that are permitted for this given RPC.

                                ","parent_name":"SDLParameterPermissions"},"Classes/SDLParameterPermissions.html#/c:objc(cs)SDLParameterPermissions(py)userDisallowed":{"name":"userDisallowed","abstract":"

                                @abstract A set of all parameters that are prohibited for this given RPC.

                                ","parent_name":"SDLParameterPermissions"},"Classes/SDLPRNDL.html#/c:objc(cs)SDLPRNDL(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract get SDLPRNDL according value string

                                ","parent_name":"SDLPRNDL"},"Classes/SDLPRNDL.html#/c:objc(cs)SDLPRNDL(cm)values":{"name":"+values","abstract":"

                                @abstract declare an array to store all possible SDLPRNDL values

                                ","parent_name":"SDLPRNDL"},"Classes/SDLPRNDL.html#/c:objc(cs)SDLPRNDL(cm)PARK":{"name":"+PARK","abstract":"

                                @abstract Park

                                ","parent_name":"SDLPRNDL"},"Classes/SDLPRNDL.html#/c:objc(cs)SDLPRNDL(cm)REVERSE":{"name":"+REVERSE","abstract":"

                                @abstract Reverse gear

                                ","parent_name":"SDLPRNDL"},"Classes/SDLPRNDL.html#/c:objc(cs)SDLPRNDL(cm)NEUTRAL":{"name":"+NEUTRAL","abstract":"

                                @abstract No gear

                                ","parent_name":"SDLPRNDL"},"Classes/SDLPRNDL.html#/c:objc(cs)SDLPRNDL(cm)DRIVE":{"name":"+DRIVE","abstract":"

                                @abstract: Drive gear

                                ","parent_name":"SDLPRNDL"},"Classes/SDLPRNDL.html#/c:objc(cs)SDLPRNDL(cm)SPORT":{"name":"+SPORT","abstract":"

                                @abstract Drive Sport mode

                                ","parent_name":"SDLPRNDL"},"Classes/SDLPRNDL.html#/c:objc(cs)SDLPRNDL(cm)LOWGEAR":{"name":"+LOWGEAR","abstract":"

                                @abstract 1st gear hold

                                ","parent_name":"SDLPRNDL"},"Classes/SDLPRNDL.html#/c:objc(cs)SDLPRNDL(cm)FIRST":{"name":"+FIRST","abstract":"

                                @abstract First gear

                                ","parent_name":"SDLPRNDL"},"Classes/SDLPRNDL.html#/c:objc(cs)SDLPRNDL(cm)SECOND":{"name":"+SECOND","abstract":"

                                @abstract Second gear

                                ","parent_name":"SDLPRNDL"},"Classes/SDLPRNDL.html#/c:objc(cs)SDLPRNDL(cm)THIRD":{"name":"+THIRD","abstract":"

                                @abstract Third gear

                                ","parent_name":"SDLPRNDL"},"Classes/SDLPRNDL.html#/c:objc(cs)SDLPRNDL(cm)FOURTH":{"name":"+FOURTH","abstract":"

                                @abstract Fourth gear

                                ","parent_name":"SDLPRNDL"},"Classes/SDLPRNDL.html#/c:objc(cs)SDLPRNDL(cm)FIFTH":{"name":"+FIFTH","abstract":"

                                @abstract Fifth gear

                                ","parent_name":"SDLPRNDL"},"Classes/SDLPRNDL.html#/c:objc(cs)SDLPRNDL(cm)SIXTH":{"name":"+SIXTH","abstract":"

                                @abstract Sixth gear

                                ","parent_name":"SDLPRNDL"},"Classes/SDLPRNDL.html#/c:objc(cs)SDLPRNDL(cm)SEVENTH":{"name":"+SEVENTH","abstract":"

                                @abstract Seventh gear

                                ","parent_name":"SDLPRNDL"},"Classes/SDLPRNDL.html#/c:objc(cs)SDLPRNDL(cm)EIGHTH":{"name":"+EIGHTH","abstract":"

                                @abstract Eighth gear

                                ","parent_name":"SDLPRNDL"},"Classes/SDLPRNDL.html#/c:objc(cs)SDLPRNDL(cm)UNKNOWN":{"name":"+UNKNOWN","abstract":"

                                @abstract Unknown

                                ","parent_name":"SDLPRNDL"},"Classes/SDLPRNDL.html#/c:objc(cs)SDLPRNDL(cm)FAULT":{"name":"+FAULT","abstract":"

                                @abstract Fault

                                ","parent_name":"SDLPRNDL"},"Classes/SDLOnWayPointChange.html#/c:objc(cs)SDLOnWayPointChange(py)waypoints":{"name":"waypoints","abstract":"

                                @abstract Location address for display purposes only.

                                ","parent_name":"SDLOnWayPointChange"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLOnVehicleData object

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLOnVehicleData object indicated by the NSMutableDictionary","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)gps":{"name":"gps","abstract":"

                                @abstract A SDLGPSData* value. See GPSData.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)speed":{"name":"speed","abstract":"

                                @abstract The vehicle speed in kilometers per hour.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)rpm":{"name":"rpm","abstract":"

                                @abstract The number of revolutions per minute of the engine.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)fuelLevel":{"name":"fuelLevel","abstract":"

                                @abstract The fuel level in the tank (percentage)

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"

                                @abstract A SDLComponentVolumeStatus* value. The fuel level state.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"

                                @abstract The instantaneous fuel consumption in microlitres.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)externalTemperature":{"name":"externalTemperature","abstract":"

                                @abstract The external temperature in degrees celsius.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)vin":{"name":"vin","abstract":"

                                @abstract The Vehicle Identification Number

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)prndl":{"name":"prndl","abstract":"

                                @abstract See PRNDL.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)tirePressure":{"name":"tirePressure","abstract":"

                                @abstract A SDLTireStatus* value. See TireStatus.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)odometer":{"name":"odometer","abstract":"

                                @abstract Odometer reading in km.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)beltStatus":{"name":"beltStatus","abstract":"

                                @abstract A SDLBeltStatus* value. The status of the seat belts.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)bodyInformation":{"name":"bodyInformation","abstract":"

                                @abstract A SDLBodyInformation* value. The body information including power modes.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)deviceStatus":{"name":"deviceStatus","abstract":"

                                @abstract A SDLDeviceStatus* value. The device status including signal and battery strength.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)driverBraking":{"name":"driverBraking","abstract":"

                                @abstract A SDLVehicleDataResult* value. The status of the brake pedal.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)wiperStatus":{"name":"wiperStatus","abstract":"

                                @abstract A SDLWiperStatus* value. The status of the wipers.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)headLampStatus":{"name":"headLampStatus","abstract":"

                                @abstract A SDLHeadLampStatus* value. Status of the head lamps.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)engineTorque":{"name":"engineTorque","abstract":"

                                @abstract Torque value for engine (in Nm) on non-diesel variants.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)accPedalPosition":{"name":"accPedalPosition","abstract":"

                                @abstract Accelerator pedal position (percentage depressed)

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"

                                @abstract Current angle of the steering wheel (in deg)

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)eCallInfo":{"name":"eCallInfo","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)airbagStatus":{"name":"airbagStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)emergencyEvent":{"name":"emergencyEvent","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)clusterModeStatus":{"name":"clusterModeStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)myKey":{"name":"myKey","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnTouchEvent.html#/c:objc(cs)SDLOnTouchEvent(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnTouchEvent"},"Classes/SDLOnTouchEvent.html#/c:objc(cs)SDLOnTouchEvent(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnTouchEvent"},"Classes/SDLOnTouchEvent.html#/c:objc(cs)SDLOnTouchEvent(py)type":{"name":"type","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnTouchEvent"},"Classes/SDLOnTouchEvent.html#/c:objc(cs)SDLOnTouchEvent(py)event":{"name":"event","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnTouchEvent"},"Classes/SDLOnTBTClientState.html#/c:objc(cs)SDLOnTBTClientState(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnTBTClientState"},"Classes/SDLOnTBTClientState.html#/c:objc(cs)SDLOnTBTClientState(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnTBTClientState"},"Classes/SDLOnTBTClientState.html#/c:objc(cs)SDLOnTBTClientState(py)state":{"name":"state","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnTBTClientState"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)requestType":{"name":"requestType","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)url":{"name":"url","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)timeout":{"name":"timeout","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)fileType":{"name":"fileType","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)offset":{"name":"offset","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)length":{"name":"length","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSyncPData.html#/c:objc(cs)SDLOnSyncPData(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnSyncPData"},"Classes/SDLOnSyncPData.html#/c:objc(cs)SDLOnSyncPData(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnSyncPData"},"Classes/SDLOnSyncPData.html#/c:objc(cs)SDLOnSyncPData(py)URL":{"name":"URL","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnSyncPData"},"Classes/SDLOnSyncPData.html#/c:objc(cs)SDLOnSyncPData(py)Timeout":{"name":"Timeout","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnSyncPData"},"Classes/SDLOnPermissionsChange.html#/c:objc(cs)SDLOnPermissionsChange(im)init":{"name":"-init","abstract":"

                                Constructs a newly allocated SDLOnPermissionsChange object

                                ","parent_name":"SDLOnPermissionsChange"},"Classes/SDLOnPermissionsChange.html#/c:objc(cs)SDLOnPermissionsChange(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a newly allocated SDLOnPermissionsChange object indicated by the dictionary parameter

                                ","parent_name":"SDLOnPermissionsChange"},"Classes/SDLOnPermissionsChange.html#/c:objc(cs)SDLOnPermissionsChange(py)permissionItem":{"name":"permissionItem","abstract":"

                                @abstract Describes change in permissions for a given set of RPCs

                                ","parent_name":"SDLOnPermissionsChange"},"Classes/SDLOnLockScreenStatus.html#/c:objc(cs)SDLOnLockScreenStatus(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnLockScreenStatus"},"Classes/SDLOnLockScreenStatus.html#/c:objc(cs)SDLOnLockScreenStatus(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnLockScreenStatus"},"Classes/SDLOnLockScreenStatus.html#/c:objc(cs)SDLOnLockScreenStatus(py)driverDistractionStatus":{"name":"driverDistractionStatus","abstract":"

                                Get the current driver distraction status(i.e. whether driver distraction rules are in effect, or not)

                                ","parent_name":"SDLOnLockScreenStatus"},"Classes/SDLOnLockScreenStatus.html#/c:objc(cs)SDLOnLockScreenStatus(py)userSelected":{"name":"userSelected","abstract":"

                                Get user selection status for the application (has the app been selected via hmi or voice command)

                                ","parent_name":"SDLOnLockScreenStatus"},"Classes/SDLOnLockScreenStatus.html#/c:objc(cs)SDLOnLockScreenStatus(py)lockScreenStatus":{"name":"lockScreenStatus","abstract":"

                                Get the {@linkplain LockScreenStatus} enumeration, indicating if the lockscreen should be required, optional or off

                                ","parent_name":"SDLOnLockScreenStatus"},"Classes/SDLOnLockScreenStatus.html#/c:objc(cs)SDLOnLockScreenStatus(py)hmiLevel":{"name":"hmiLevel","abstract":"

                                Get HMILevel in effect for the application

                                ","parent_name":"SDLOnLockScreenStatus"},"Classes/SDLOnLanguageChange.html#/c:objc(cs)SDLOnLanguageChange(im)init":{"name":"-init","abstract":"

                                Constructs a newly allocated SDLOnLanguageChange object

                                ","parent_name":"SDLOnLanguageChange"},"Classes/SDLOnLanguageChange.html#/c:objc(cs)SDLOnLanguageChange(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a newly allocated SDLOnLanguageChange object indicated by the dictionary parameter

                                ","parent_name":"SDLOnLanguageChange"},"Classes/SDLOnLanguageChange.html#/c:objc(cs)SDLOnLanguageChange(py)language":{"name":"language","abstract":"

                                @abstract Current SDL voice engine (VR+TTS) language

                                ","parent_name":"SDLOnLanguageChange"},"Classes/SDLOnLanguageChange.html#/c:objc(cs)SDLOnLanguageChange(py)hmiDisplayLanguage":{"name":"hmiDisplayLanguage","abstract":"

                                @abstract Current display language

                                ","parent_name":"SDLOnLanguageChange"},"Classes/SDLOnKeyboardInput.html#/c:objc(cs)SDLOnKeyboardInput(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnKeyboardInput"},"Classes/SDLOnKeyboardInput.html#/c:objc(cs)SDLOnKeyboardInput(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnKeyboardInput"},"Classes/SDLOnKeyboardInput.html#/c:objc(cs)SDLOnKeyboardInput(py)event":{"name":"event","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnKeyboardInput"},"Classes/SDLOnKeyboardInput.html#/c:objc(cs)SDLOnKeyboardInput(py)data":{"name":"data","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnKeyboardInput"},"Classes/SDLOnHashChange.html#/c:objc(cs)SDLOnHashChange(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnHashChange"},"Classes/SDLOnHashChange.html#/c:objc(cs)SDLOnHashChange(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnHashChange"},"Classes/SDLOnHashChange.html#/c:objc(cs)SDLOnHashChange(py)hashID":{"name":"hashID","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnHashChange"},"Classes/SDLOnHMIStatus.html#/c:objc(cs)SDLOnHMIStatus(im)init":{"name":"-init","abstract":"

                                Constructs a newly allocated SDLOnHMIStatus object

                                ","parent_name":"SDLOnHMIStatus"},"Classes/SDLOnHMIStatus.html#/c:objc(cs)SDLOnHMIStatus(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a newly allocated SDLOnHMIStatus object indicated by the dictionary parameter

                                ","parent_name":"SDLOnHMIStatus"},"Classes/SDLOnHMIStatus.html#/c:objc(cs)SDLOnHMIStatus(py)hmiLevel":{"name":"hmiLevel","abstract":"

                                @abstract SDLHMILevel in effect for the application

                                ","parent_name":"SDLOnHMIStatus"},"Classes/SDLOnHMIStatus.html#/c:objc(cs)SDLOnHMIStatus(py)audioStreamingState":{"name":"audioStreamingState","abstract":"

                                @abstract 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.

                                ","parent_name":"SDLOnHMIStatus"},"Classes/SDLOnHMIStatus.html#/c:objc(cs)SDLOnHMIStatus(py)systemContext":{"name":"systemContext","abstract":"

                                @abstract the System Context","parent_name":"SDLOnHMIStatus"},"Classes/SDLOnEncodedSyncPData.html#/c:objc(cs)SDLOnEncodedSyncPData(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnEncodedSyncPData"},"Classes/SDLOnEncodedSyncPData.html#/c:objc(cs)SDLOnEncodedSyncPData(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnEncodedSyncPData"},"Classes/SDLOnEncodedSyncPData.html#/c:objc(cs)SDLOnEncodedSyncPData(py)data":{"name":"data","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnEncodedSyncPData"},"Classes/SDLOnEncodedSyncPData.html#/c:objc(cs)SDLOnEncodedSyncPData(py)URL":{"name":"URL","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnEncodedSyncPData"},"Classes/SDLOnEncodedSyncPData.html#/c:objc(cs)SDLOnEncodedSyncPData(py)Timeout":{"name":"Timeout","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnEncodedSyncPData"},"Classes/SDLOnDriverDistraction.html#/c:objc(cs)SDLOnDriverDistraction(im)init":{"name":"-init","abstract":"

                                Constructs a newly allocated SDLOnDriverDistraction object

                                ","parent_name":"SDLOnDriverDistraction"},"Classes/SDLOnDriverDistraction.html#/c:objc(cs)SDLOnDriverDistraction(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a newly allocated SDLOnDriverDistraction object indicated by the dictionary parameter

                                ","parent_name":"SDLOnDriverDistraction"},"Classes/SDLOnDriverDistraction.html#/c:objc(cs)SDLOnDriverDistraction(py)state":{"name":"state","abstract":"

                                @abstract The driver distraction state (i.e. whether driver distraction rules are in effect, or not)

                                ","parent_name":"SDLOnDriverDistraction"},"Classes/SDLOnCommand.html#/c:objc(cs)SDLOnCommand(im)init":{"name":"-init","abstract":"

                                Constructs a newly allocated SDLRPCNotification object

                                ","parent_name":"SDLOnCommand"},"Classes/SDLOnCommand.html#/c:objc(cs)SDLOnCommand(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a newly allocated SDLRPCNotification object indicated by the dictionary parameter

                                ","parent_name":"SDLOnCommand"},"Classes/SDLOnCommand.html#/c:objc(cs)SDLOnCommand(py)cmdID":{"name":"cmdID","abstract":"

                                @abstract 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.

                                ","parent_name":"SDLOnCommand"},"Classes/SDLOnCommand.html#/c:objc(cs)SDLOnCommand(py)triggerSource":{"name":"triggerSource","abstract":"

                                @abstract Indicates whether command was selected via voice or via a menu selection (using the OK button).

                                ","parent_name":"SDLOnCommand"},"Classes/SDLOnButtonPress.html#/c:objc(cs)SDLOnButtonPress(im)init":{"name":"-init","abstract":"

                                Constructs a newly allocated SDLOnButtonPress object

                                ","parent_name":"SDLOnButtonPress"},"Classes/SDLOnButtonPress.html#/c:objc(cs)SDLOnButtonPress(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a newly allocated SDLOnButtonPress object indicated by the dictionary parameter

                                ","parent_name":"SDLOnButtonPress"},"Classes/SDLOnButtonPress.html#/c:objc(cs)SDLOnButtonPress(py)buttonName":{"name":"buttonName","abstract":"

                                @abstract the button’s name

                                ","parent_name":"SDLOnButtonPress"},"Classes/SDLOnButtonPress.html#/c:objc(cs)SDLOnButtonPress(py)buttonPressMode":{"name":"buttonPressMode","abstract":"

                                @abstract Indicates whether this is a LONG or SHORT button press event

                                ","parent_name":"SDLOnButtonPress"},"Classes/SDLOnButtonPress.html#/c:objc(cs)SDLOnButtonPress(py)customButtonID":{"name":"customButtonID","abstract":"

                                @abstract If ButtonName is CUSTOM_BUTTON, this references the integer ID passed by a custom button. (e.g. softButton ID)

                                ","parent_name":"SDLOnButtonPress"},"Classes/SDLOnButtonEvent.html#/c:objc(cs)SDLOnButtonEvent(im)init":{"name":"-init","abstract":"

                                Constructs a newly allocated SDLOnButtonEvent object

                                ","parent_name":"SDLOnButtonEvent"},"Classes/SDLOnButtonEvent.html#/c:objc(cs)SDLOnButtonEvent(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a newly allocated SDLOnButtonEvent object indicated by the dictionary parameter

                                ","parent_name":"SDLOnButtonEvent"},"Classes/SDLOnButtonEvent.html#/c:objc(cs)SDLOnButtonEvent(py)buttonName":{"name":"buttonName","abstract":"

                                @abstract The name of the button

                                ","parent_name":"SDLOnButtonEvent"},"Classes/SDLOnButtonEvent.html#/c:objc(cs)SDLOnButtonEvent(py)buttonEventMode":{"name":"buttonEventMode","abstract":"

                                @abstract Indicates whether this is an UP or DOWN event

                                ","parent_name":"SDLOnButtonEvent"},"Classes/SDLOnButtonEvent.html#/c:objc(cs)SDLOnButtonEvent(py)customButtonID":{"name":"customButtonID","abstract":"

                                @abstract If ButtonName is CUSTOM_BUTTON, this references the integer ID passed by a custom button. (e.g. softButton ID)

                                ","parent_name":"SDLOnButtonEvent"},"Classes/SDLOnAudioPassThru.html#/c:objc(cs)SDLOnAudioPassThru(im)init":{"name":"-init","abstract":"

                                Constructs a newly allocated SDLOnAudioPassThru object

                                ","parent_name":"SDLOnAudioPassThru"},"Classes/SDLOnAudioPassThru.html#/c:objc(cs)SDLOnAudioPassThru(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a newly allocated SDLOnAudioPassThru object indicated by the dictionary parameter

                                ","parent_name":"SDLOnAudioPassThru"},"Classes/SDLOnAppInterfaceUnregistered.html#/c:objc(cs)SDLOnAppInterfaceUnregistered(im)init":{"name":"-init","abstract":"

                                Constructs a newly allocated SDLOnAppInterfaceUnregistered object

                                ","parent_name":"SDLOnAppInterfaceUnregistered"},"Classes/SDLOnAppInterfaceUnregistered.html#/c:objc(cs)SDLOnAppInterfaceUnregistered(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a newly allocated SDLOnAppInterfaceUnregistered object indicated by the dictionary parameter

                                ","parent_name":"SDLOnAppInterfaceUnregistered"},"Classes/SDLOnAppInterfaceUnregistered.html#/c:objc(cs)SDLOnAppInterfaceUnregistered(py)reason":{"name":"reason","abstract":"

                                @abstract The reason application’s interface was terminated

                                ","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":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)countryName":{"name":"countryName","abstract":"

                                @abstract Name of the country (localized)

                                ","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)countryCode":{"name":"countryCode","abstract":"

                                @abstract countryCode of the country(ISO 3166-2)

                                ","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)postalCode":{"name":"postalCode","abstract":"

                                @abstract postalCode of location (PLZ, ZIP, PIN, CAP etc.)

                                ","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)administrativeArea":{"name":"administrativeArea","abstract":"

                                @abstract Portion of country (e.g. state)

                                ","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)subAdministrativeArea":{"name":"subAdministrativeArea","abstract":"

                                @abstract Portion of administrativeArea (e.g. county)

                                ","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)locality":{"name":"locality","abstract":"

                                @abstract Hypernym for city/village

                                ","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)subLocality":{"name":"subLocality","abstract":"

                                @abstract Hypernym for district

                                ","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)thoroughfare":{"name":"thoroughfare","abstract":"

                                @abstract Hypernym for street, road etc.

                                ","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)subThoroughfare":{"name":"subThoroughfare","abstract":"

                                @abstract Portion of thoroughfare (e.g. house number)

                                ","parent_name":"SDLOasisAddress"},"Classes/SDLNotificationConstants.html#/c:objc(cs)SDLNotificationConstants(cm)allResponseNames":{"name":"+allResponseNames","abstract":"

                                Undocumented

                                ","parent_name":"SDLNotificationConstants"},"Classes/SDLNotificationConstants.html#/c:objc(cs)SDLNotificationConstants(cm)allButtonEventNotifications":{"name":"+allButtonEventNotifications","abstract":"

                                Undocumented

                                ","parent_name":"SDLNotificationConstants"},"Classes/SDLNavigationCapability.html#/c:objc(cs)SDLNavigationCapability(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a newly allocated SDLNavigationCapability struct

                                ","parent_name":"SDLNavigationCapability"},"Classes/SDLNavigationCapability.html#/c:objc(cs)SDLNavigationCapability(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a newly allocated SDLNavigationCapability struct indicated by the dictionary parameter

                                ","parent_name":"SDLNavigationCapability"},"Classes/SDLNavigationCapability.html#/c:objc(cs)SDLNavigationCapability(im)initWithSendLocation:waypoints:":{"name":"-initWithSendLocation:waypoints:","abstract":"

                                Undocumented

                                ","parent_name":"SDLNavigationCapability"},"Classes/SDLNavigationCapability.html#/c:objc(cs)SDLNavigationCapability(py)sendLocationEnabled":{"name":"sendLocationEnabled","abstract":"

                                Whether or not the SendLocation RPC is enabled.","parent_name":"SDLNavigationCapability"},"Classes/SDLNavigationCapability.html#/c:objc(cs)SDLNavigationCapability(py)getWayPointsEnabled":{"name":"getWayPointsEnabled","abstract":"

                                Whether or not Waypoint related RPCs are enabled.","parent_name":"SDLNavigationCapability"},"Classes/SDLMyKey.html#/c:objc(cs)SDLMyKey(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLMyKey"},"Classes/SDLMyKey.html#/c:objc(cs)SDLMyKey(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLMyKey"},"Classes/SDLMyKey.html#/c:objc(cs)SDLMyKey(py)e911Override":{"name":"e911Override","abstract":"

                                Undocumented

                                ","parent_name":"SDLMyKey"},"Classes/SDLMetadataType.html#/c:objc(cs)SDLMetadataType(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLTextAlignment

                                ","parent_name":"SDLMetadataType"},"Classes/SDLMetadataType.html#/c:objc(cs)SDLMetadataType(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLTextFieldType

                                ","parent_name":"SDLMetadataType"},"Classes/SDLMetadataType.html#/c:objc(cs)SDLMetadataType(cm)MEDIA_TITLE":{"name":"+MEDIA_TITLE","abstract":"

                                @abstract The data in this field contains the title of the currently playing audio track.

                                ","parent_name":"SDLMetadataType"},"Classes/SDLMetadataType.html#/c:objc(cs)SDLMetadataType(cm)MEDIA_ARTIST":{"name":"+MEDIA_ARTIST","abstract":"

                                @abstract The data in this field contains the artist or creator of the currently playing audio track.

                                ","parent_name":"SDLMetadataType"},"Classes/SDLMetadataType.html#/c:objc(cs)SDLMetadataType(cm)MEDIA_ALBUM":{"name":"+MEDIA_ALBUM","abstract":"

                                @abstract The data in this field contains the album title of the currently playing audio track.

                                ","parent_name":"SDLMetadataType"},"Classes/SDLMetadataType.html#/c:objc(cs)SDLMetadataType(cm)MEDIA_YEAR":{"name":"+MEDIA_YEAR","abstract":"

                                @abstract The data in this field contains the creation year of the currently playing audio track.

                                ","parent_name":"SDLMetadataType"},"Classes/SDLMetadataType.html#/c:objc(cs)SDLMetadataType(cm)MEDIA_GENRE":{"name":"+MEDIA_GENRE","abstract":"

                                @abstract The data in this field contains the genre of the currently playing audio track.

                                ","parent_name":"SDLMetadataType"},"Classes/SDLMetadataType.html#/c:objc(cs)SDLMetadataType(cm)MEDIA_STATION":{"name":"+MEDIA_STATION","abstract":"

                                @abstract The data in this field contains the name of the current source for the media.

                                ","parent_name":"SDLMetadataType"},"Classes/SDLMetadataType.html#/c:objc(cs)SDLMetadataType(cm)RATING":{"name":"+RATING","abstract":"

                                @abstract The data in this field is a rating.

                                ","parent_name":"SDLMetadataType"},"Classes/SDLMetadataType.html#/c:objc(cs)SDLMetadataType(cm)CURRENT_TEMPERATURE":{"name":"+CURRENT_TEMPERATURE","abstract":"

                                @abstract The data in this field is the current temperature.

                                ","parent_name":"SDLMetadataType"},"Classes/SDLMetadataType.html#/c:objc(cs)SDLMetadataType(cm)MAXIMUM_TEMPERATURE":{"name":"+MAXIMUM_TEMPERATURE","abstract":"

                                @abstract The data in this field is the maximum temperature for the day.

                                ","parent_name":"SDLMetadataType"},"Classes/SDLMetadataType.html#/c:objc(cs)SDLMetadataType(cm)MINIMUM_TEMPERATURE":{"name":"+MINIMUM_TEMPERATURE","abstract":"

                                @abstract The data in this field is the minimum temperature for the day.

                                ","parent_name":"SDLMetadataType"},"Classes/SDLMetadataType.html#/c:objc(cs)SDLMetadataType(cm)WEATHER_TERM":{"name":"+WEATHER_TERM","abstract":"

                                @abstract The data in this field describes the current weather (ex. cloudy, clear, etc.).

                                ","parent_name":"SDLMetadataType"},"Classes/SDLMetadataType.html#/c:objc(cs)SDLMetadataType(cm)HUMIDITY":{"name":"+HUMIDITY","abstract":"

                                @abstract The data in this field describes the current humidity value.

                                ","parent_name":"SDLMetadataType"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a newly allocated SDLMetadataTags object

                                ","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a newly allocated SDLMetadataTags object indicated by the dictionary parameter

                                ","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(im)initWithTextFieldTypes:mainField2:":{"name":"-initWithTextFieldTypes:mainField2:","abstract":"

                                @abstract Constructs a newly allocated SDLMetadataTags object with NSArrays

                                ","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(im)initWithTextFieldTypes:mainField2:mainField3:mainField4:":{"name":"-initWithTextFieldTypes:mainField2:mainField3:mainField4:","abstract":"

                                Undocumented

                                ","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(py)mainField1":{"name":"mainField1","abstract":"

                                @abstract The type of data contained in the mainField1 text field, Optional.

                                ","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(py)mainField2":{"name":"mainField2","abstract":"

                                @abstract The type of data contained in the mainField2 text field, Optional.

                                ","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(py)mainField3":{"name":"mainField3","abstract":"

                                @abstract The type of data contained in the mainField3 text field, Optional.

                                ","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(py)mainField4":{"name":"mainField4","abstract":"

                                @abstract The type of data contained in the mainField4 text field, Optional.

                                ","parent_name":"SDLMetadataTags"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(im)init":{"name":"-init","abstract":"

                                Constructs a newly allocated SDLMenuParams object

                                ","parent_name":"SDLMenuParams"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a newly allocated SDLMenuParams object indicated by the dictionary parameter

                                ","parent_name":"SDLMenuParams"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(im)initWithMenuName:":{"name":"-initWithMenuName:","abstract":"

                                Undocumented

                                ","parent_name":"SDLMenuParams"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(im)initWithMenuName:parentId:position:":{"name":"-initWithMenuName:parentId:position:","abstract":"

                                Undocumented

                                ","parent_name":"SDLMenuParams"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(py)parentID":{"name":"parentID","abstract":"

                                @abstract the unique ID of an existing submenu to which a command will be added","parent_name":"SDLMenuParams"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(py)position":{"name":"position","abstract":"

                                @abstract The position within the items of the parent Command Menu","parent_name":"SDLMenuParams"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(py)menuName":{"name":"menuName","abstract":"

                                @abstract the menu name which appears in menu, representing this command

                                ","parent_name":"SDLMenuParams"},"Classes/SDLMediaClockFormat.html#/c:objc(cs)SDLMediaClockFormat(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract Media Clock Format

                                ","parent_name":"SDLMediaClockFormat"},"Classes/SDLMediaClockFormat.html#/c:objc(cs)SDLMediaClockFormat(cm)values":{"name":"+values","abstract":"

                                @abstract declare an array that store all possible Media clock formats inside

                                ","parent_name":"SDLMediaClockFormat"},"Classes/SDLMediaClockFormat.html#/c:objc(cs)SDLMediaClockFormat(cm)CLOCK1":{"name":"+CLOCK1","abstract":"

                                @abstract Media clock format: Clock1

                                ","parent_name":"SDLMediaClockFormat"},"Classes/SDLMediaClockFormat.html#/c:objc(cs)SDLMediaClockFormat(cm)CLOCK2":{"name":"+CLOCK2","abstract":"

                                @abstract Media clock format: Clock2

                                ","parent_name":"SDLMediaClockFormat"},"Classes/SDLMediaClockFormat.html#/c:objc(cs)SDLMediaClockFormat(cm)CLOCK3":{"name":"+CLOCK3","abstract":"

                                @abstract Media clock format: Clock3

                                ","parent_name":"SDLMediaClockFormat"},"Classes/SDLMediaClockFormat.html#/c:objc(cs)SDLMediaClockFormat(cm)CLOCKTEXT1":{"name":"+CLOCKTEXT1","abstract":"

                                @abstract Media clock format: ClockText1

                                ","parent_name":"SDLMediaClockFormat"},"Classes/SDLMediaClockFormat.html#/c:objc(cs)SDLMediaClockFormat(cm)CLOCKTEXT2":{"name":"+CLOCKTEXT2","abstract":"

                                @abstract Media clock format: ClockText2

                                ","parent_name":"SDLMediaClockFormat"},"Classes/SDLMediaClockFormat.html#/c:objc(cs)SDLMediaClockFormat(cm)CLOCKTEXT3":{"name":"+CLOCKTEXT3","abstract":"

                                @abstract Media clock format: ClockText3

                                ","parent_name":"SDLMediaClockFormat"},"Classes/SDLMediaClockFormat.html#/c:objc(cs)SDLMediaClockFormat(cm)CLOCKTEXT4":{"name":"+CLOCKTEXT4","abstract":"

                                @abstract Media clock format: ClockText4

                                ","parent_name":"SDLMediaClockFormat"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)configuration":{"name":"configuration","abstract":"

                                The configuration the manager was set up with.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)hmiLevel":{"name":"hmiLevel","abstract":"

                                The current HMI level of the running app.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)fileManager":{"name":"fileManager","abstract":"

                                The file manager to be used by the running app.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)permissionManager":{"name":"permissionManager","abstract":"

                                The permission manager monitoring RPC permissions.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)streamManager":{"name":"streamManager","abstract":"

                                The streaming media manager to be used for starting video sessions.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)registerResponse":{"name":"registerResponse","abstract":"

                                The response of a register call after it has been received.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)delegate":{"name":"delegate","abstract":"

                                The manager’s delegate.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)proxy":{"name":"proxy","abstract":"

                                Undocumented

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)initWithConfiguration:delegate:":{"name":"-initWithConfiguration:delegate:","abstract":"

                                Initialize the manager with a configuration. Call startWithHandler to begin waiting for a connection.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)startWithReadyHandler:":{"name":"-startWithReadyHandler:","abstract":"

                                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.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)stop":{"name":"-stop","abstract":"

                                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.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)sendRequest:":{"name":"-sendRequest:","abstract":"

                                Send an RPC request and don’t bother with the response or error. If you need the response or error, call sendRequest:withCompletionHandler: instead.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)sendRequest:withResponseHandler:":{"name":"-sendRequest:withResponseHandler:","abstract":"

                                Send an RPC request and set a completion handler that will be called with the response when the response returns.

                                ","parent_name":"SDLManager"},"Classes/SDLMaintenanceModeStatus.html#/c:objc(cs)SDLMaintenanceModeStatus(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract Maintenance Mode Status

                                ","parent_name":"SDLMaintenanceModeStatus"},"Classes/SDLMaintenanceModeStatus.html#/c:objc(cs)SDLMaintenanceModeStatus(cm)values":{"name":"+values","abstract":"

                                @abstract declare an array that store all possible Maintenance Mode Status inside

                                ","parent_name":"SDLMaintenanceModeStatus"},"Classes/SDLMaintenanceModeStatus.html#/c:objc(cs)SDLMaintenanceModeStatus(cm)NORMAL":{"name":"+NORMAL","abstract":"

                                @abstract Maintenance Mode Status : Normal

                                ","parent_name":"SDLMaintenanceModeStatus"},"Classes/SDLMaintenanceModeStatus.html#/c:objc(cs)SDLMaintenanceModeStatus(cm)NEAR":{"name":"+NEAR","abstract":"

                                @abstract Maintenance Mode Status : Near

                                ","parent_name":"SDLMaintenanceModeStatus"},"Classes/SDLMaintenanceModeStatus.html#/c:objc(cs)SDLMaintenanceModeStatus(cm)ACTIVE":{"name":"+ACTIVE","abstract":"

                                @abstract Maintenance Mode Status : Active

                                ","parent_name":"SDLMaintenanceModeStatus"},"Classes/SDLMaintenanceModeStatus.html#/c:objc(cs)SDLMaintenanceModeStatus(cm)FEATURE_NOT_PRESENT":{"name":"+FEATURE_NOT_PRESENT","abstract":"

                                @abstract Maintenance Mode Status : Feature not present

                                ","parent_name":"SDLMaintenanceModeStatus"},"Classes/SDLLockScreenViewController.html#/c:objc(cs)SDLLockScreenViewController(py)appIcon":{"name":"appIcon","abstract":"

                                The app’s icon. This will be set by the lock screen configuration.

                                ","parent_name":"SDLLockScreenViewController"},"Classes/SDLLockScreenViewController.html#/c:objc(cs)SDLLockScreenViewController(py)vehicleIcon":{"name":"vehicleIcon","abstract":"

                                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.

                                ","parent_name":"SDLLockScreenViewController"},"Classes/SDLLockScreenViewController.html#/c:objc(cs)SDLLockScreenViewController(py)backgroundColor":{"name":"backgroundColor","abstract":"

                                The designated background color set in the lock screen configuration, or the default SDL gray-blue.

                                ","parent_name":"SDLLockScreenViewController"},"Classes/SDLLockScreenStatus.html#/c:objc(cs)SDLLockScreenStatus(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Undocumented

                                ","parent_name":"SDLLockScreenStatus"},"Classes/SDLLockScreenStatus.html#/c:objc(cs)SDLLockScreenStatus(cm)values":{"name":"+values","abstract":"

                                Undocumented

                                ","parent_name":"SDLLockScreenStatus"},"Classes/SDLLockScreenStatus.html#/c:objc(cs)SDLLockScreenStatus(cm)OFF":{"name":"+OFF","abstract":"

                                LockScreen is Not Required

                                ","parent_name":"SDLLockScreenStatus"},"Classes/SDLLockScreenStatus.html#/c:objc(cs)SDLLockScreenStatus(cm)OPTIONAL":{"name":"+OPTIONAL","abstract":"

                                LockScreen is Optional

                                ","parent_name":"SDLLockScreenStatus"},"Classes/SDLLockScreenStatus.html#/c:objc(cs)SDLLockScreenStatus(cm)REQUIRED":{"name":"+REQUIRED","abstract":"

                                LockScreen is Not Required

                                ","parent_name":"SDLLockScreenStatus"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(py)showInOptionalState":{"name":"showInOptionalState","abstract":"

                                Whether or not the lock screen should be shown in the lock screen optional state. Defaults to ‘NO’.

                                ","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(py)enableAutomaticLockScreen":{"name":"enableAutomaticLockScreen","abstract":"

                                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.

                                ","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(py)backgroundColor":{"name":"backgroundColor","abstract":"

                                The background color of the lock screen. This could be a branding color, or leave at the default for a dark blue-gray.

                                ","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(py)appIcon":{"name":"appIcon","abstract":"

                                Your app icon as it will appear on the lock screen.

                                ","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(py)customViewController":{"name":"customViewController","abstract":"

                                A custom view controller that the lock screen will manage the presentation of.

                                ","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(cm)disabledConfiguration":{"name":"+disabledConfiguration","abstract":"

                                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.

                                ","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(cm)enabledConfiguration":{"name":"+enabledConfiguration","abstract":"

                                Use this configuration for the basic default lock screen. A custom app icon will not be used.

                                ","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(cm)enabledConfigurationWithAppIcon:backgroundColor:":{"name":"+enabledConfigurationWithAppIcon:backgroundColor:","abstract":"

                                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.

                                ","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(cm)enabledConfigurationWithViewController:":{"name":"+enabledConfigurationWithViewController:","abstract":"

                                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.

                                ","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)coordinate":{"name":"coordinate","abstract":"

                                @abstract Latitude/Longitude of the location

                                ","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)locationName":{"name":"locationName","abstract":"

                                @abstract Name of location.

                                ","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)addressLines":{"name":"addressLines","abstract":"

                                @abstract Location address for display purposes only.

                                ","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)locationDescription":{"name":"locationDescription","abstract":"

                                @abstract Description intended location / establishment.

                                ","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)phoneNumber":{"name":"phoneNumber","abstract":"

                                @abstract Phone number of location / establishment.

                                ","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)locationImage":{"name":"locationImage","abstract":"

                                @abstract Image / icon of intended location.

                                ","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)searchAddress":{"name":"searchAddress","abstract":"

                                @abstract Address to be used by navigation engines for search.

                                ","parent_name":"SDLLocationDetails"},"Classes/SDLLocationCoordinate.html#/c:objc(cs)SDLLocationCoordinate(py)latitudeDegrees":{"name":"latitudeDegrees","abstract":"

                                @abstract Latitude of the location

                                ","parent_name":"SDLLocationCoordinate"},"Classes/SDLLocationCoordinate.html#/c:objc(cs)SDLLocationCoordinate(py)longitudeDegrees":{"name":"longitudeDegrees","abstract":"

                                @abstract Longitude of the location

                                ","parent_name":"SDLLocationCoordinate"},"Classes/SDLListFilesResponse.html#/c:objc(cs)SDLListFilesResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLListFilesResponse"},"Classes/SDLListFilesResponse.html#/c:objc(cs)SDLListFilesResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLListFilesResponse"},"Classes/SDLListFilesResponse.html#/c:objc(cs)SDLListFilesResponse(py)filenames":{"name":"filenames","abstract":"

                                Undocumented

                                ","parent_name":"SDLListFilesResponse"},"Classes/SDLListFilesResponse.html#/c:objc(cs)SDLListFilesResponse(py)spaceAvailable":{"name":"spaceAvailable","abstract":"

                                Undocumented

                                ","parent_name":"SDLListFilesResponse"},"Classes/SDLListFiles.html#/c:objc(cs)SDLListFiles(im)init":{"name":"-init","abstract":"

                                Constructs a new SDLListFiles object

                                ","parent_name":"SDLListFiles"},"Classes/SDLListFiles.html#/c:objc(cs)SDLListFiles(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a new SDLListFiles object indicated by the dictionary parameter","parent_name":"SDLListFiles"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(cm)defaultConfigurationWithAppName:appId:":{"name":"+defaultConfigurationWithAppName:appId:","abstract":"

                                A production configuration that runs using IAP. Additional functionality should be customized on the properties.

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(cm)debugConfigurationWithAppName:appId:ipAddress:port:":{"name":"+debugConfigurationWithAppName:appId:ipAddress:port:","abstract":"

                                A debug configuration that runs using TCP. Additional functionality should be customized on the properties.

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)tcpDebugMode":{"name":"tcpDebugMode","abstract":"

                                Whether or not debug mode is enabled

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)tcpDebugIPAddress":{"name":"tcpDebugIPAddress","abstract":"

                                The ip address at which the library will look for a server

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)tcpDebugPort":{"name":"tcpDebugPort","abstract":"

                                The port at which the library will look for a server

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)appName":{"name":"appName","abstract":"

                                The full name of the app

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)appId":{"name":"appId","abstract":"

                                The app id. This must be the same as the app id received from the SDL developer portal or OEM.

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)resumeHash":{"name":"resumeHash","abstract":"

                                A hash id which should be passed to the remote system in the RegisterAppInterface

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)isMedia":{"name":"isMedia","abstract":"

                                This is an automatically set based on the app type

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)appType":{"name":"appType","abstract":"

                                The application type

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)language":{"name":"language","abstract":"

                                The default language to use

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)languagesSupported":{"name":"languagesSupported","abstract":"

                                An array of all the supported languages

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)appIcon":{"name":"appIcon","abstract":"

                                The application icon to be used on an app launching screen

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)shortAppName":{"name":"shortAppName","abstract":"

                                An abbrevited application name that will be used on the app launching screen if the full one would be truncated

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)ttsName":{"name":"ttsName","abstract":"

                                A Text to Speech String for voice recognition of the mobile application name.

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)voiceRecognitionCommandNames":{"name":"voiceRecognitionCommandNames","abstract":"

                                Additional voice recognition commands. May not interfere with any other app name or global commands.

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)securityManagers":{"name":"securityManagers","abstract":"

                                Set security managers which could be used. This is primarily used with video streaming applications to authenticate and perhaps encrypt traffic data.

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)logFlags":{"name":"logFlags","abstract":"

                                Which logging capabilities are currently enabled. The default is Console logging only.

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLayoutMode.html#/c:objc(cs)SDLLayoutMode(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Undocumented

                                ","parent_name":"SDLLayoutMode"},"Classes/SDLLayoutMode.html#/c:objc(cs)SDLLayoutMode(cm)values":{"name":"+values","abstract":"

                                Undocumented

                                ","parent_name":"SDLLayoutMode"},"Classes/SDLLayoutMode.html#/c:objc(cs)SDLLayoutMode(cm)ICON_ONLY":{"name":"+ICON_ONLY","abstract":"

                                This mode causes the interaction to display the previous set of choices as icons.

                                ","parent_name":"SDLLayoutMode"},"Classes/SDLLayoutMode.html#/c:objc(cs)SDLLayoutMode(cm)ICON_WITH_SEARCH":{"name":"+ICON_WITH_SEARCH","abstract":"

                                This mode causes the interaction to display the previous set of choices as icons along with a search field in the HMI.

                                ","parent_name":"SDLLayoutMode"},"Classes/SDLLayoutMode.html#/c:objc(cs)SDLLayoutMode(cm)LIST_ONLY":{"name":"+LIST_ONLY","abstract":"

                                This mode causes the interaction to display the previous set of choices as a list.

                                ","parent_name":"SDLLayoutMode"},"Classes/SDLLayoutMode.html#/c:objc(cs)SDLLayoutMode(cm)LIST_WITH_SEARCH":{"name":"+LIST_WITH_SEARCH","abstract":"

                                This mode causes the interaction to display the previous set of choices as a list along with a search field in the HMI.

                                ","parent_name":"SDLLayoutMode"},"Classes/SDLLayoutMode.html#/c:objc(cs)SDLLayoutMode(cm)KEYBOARD":{"name":"+KEYBOARD","abstract":"

                                This mode causes the interaction to immediately display a keyboard entry through the HMI.

                                ","parent_name":"SDLLayoutMode"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract Get a Langusge according to a String

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)values":{"name":"+values","abstract":"

                                @abstract store all possible Language values

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)EN_SA":{"name":"+EN_SA","abstract":"

                                Undocumented

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)HE_IL":{"name":"+HE_IL","abstract":"

                                Undocumented

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)RO_RO":{"name":"+RO_RO","abstract":"

                                Undocumented

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)UK_UA":{"name":"+UK_UA","abstract":"

                                Undocumented

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)ID_ID":{"name":"+ID_ID","abstract":"

                                Undocumented

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)VI_VN":{"name":"+VI_VN","abstract":"

                                Undocumented

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)MS_MY":{"name":"+MS_MY","abstract":"

                                Undocumented

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)HI_IN":{"name":"+HI_IN","abstract":"

                                Undocumented

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)NL_BE":{"name":"+NL_BE","abstract":"

                                Undocumented

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)EL_GR":{"name":"+EL_GR","abstract":"

                                Undocumented

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)HU_HU":{"name":"+HU_HU","abstract":"

                                Undocumented

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)FI_FI":{"name":"+FI_FI","abstract":"

                                Undocumented

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)SK_SK":{"name":"+SK_SK","abstract":"

                                Undocumented

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)EN_US":{"name":"+EN_US","abstract":"

                                Undocumented

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)EN_IN":{"name":"+EN_IN","abstract":"

                                Undocumented

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)TH_TH":{"name":"+TH_TH","abstract":"

                                Undocumented

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)ES_MX":{"name":"+ES_MX","abstract":"

                                @abstract Spanish - Mexico

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)FR_CA":{"name":"+FR_CA","abstract":"

                                @abstract French - Canada

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)DE_DE":{"name":"+DE_DE","abstract":"

                                @abstract German - Germany

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)ES_ES":{"name":"+ES_ES","abstract":"

                                @abstract Spanish - Spain

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)EN_GB":{"name":"+EN_GB","abstract":"

                                @abstract English - Great Britain

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)RU_RU":{"name":"+RU_RU","abstract":"

                                @abstract Russian - Russia

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)TR_TR":{"name":"+TR_TR","abstract":"

                                @abstract Turkish - Turkey

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)PL_PL":{"name":"+PL_PL","abstract":"

                                @abstract Polish - Poland

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)FR_FR":{"name":"+FR_FR","abstract":"

                                @abstract French - France

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)IT_IT":{"name":"+IT_IT","abstract":"

                                @abstract Italian - Italy

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)SV_SE":{"name":"+SV_SE","abstract":"

                                @abstract Swedish - Sweden

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)PT_PT":{"name":"+PT_PT","abstract":"

                                @abstract Portuguese - Portugal

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)NL_NL":{"name":"+NL_NL","abstract":"

                                @abstract Dutch (Standard) - Netherlands

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)EN_AU":{"name":"+EN_AU","abstract":"

                                @abstract English - Australia

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)ZH_CN":{"name":"+ZH_CN","abstract":"

                                @abstract Mandarin - China

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)ZH_TW":{"name":"+ZH_TW","abstract":"

                                @abstract Mandarin - Taiwan

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)JA_JP":{"name":"+JA_JP","abstract":"

                                @abstract Japanese - Japan

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)AR_SA":{"name":"+AR_SA","abstract":"

                                @abstract Arabic - Saudi Arabia

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)KO_KR":{"name":"+KO_KR","abstract":"

                                @abstract Korean - South Korea

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)PT_BR":{"name":"+PT_BR","abstract":"

                                @abstract Portuguese - Brazil

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)CS_CZ":{"name":"+CS_CZ","abstract":"

                                @abstract Czech - Czech Republic

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)DA_DK":{"name":"+DA_DK","abstract":"

                                @abstract Danish - Denmark

                                ","parent_name":"SDLLanguage"},"Classes/SDLLanguage.html#/c:objc(cs)SDLLanguage(cm)NO_NO":{"name":"+NO_NO","abstract":"

                                @abstract Norwegian - Norway

                                ","parent_name":"SDLLanguage"},"Classes/SDLKeypressMode.html#/c:objc(cs)SDLKeypressMode(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Undocumented

                                ","parent_name":"SDLKeypressMode"},"Classes/SDLKeypressMode.html#/c:objc(cs)SDLKeypressMode(cm)values":{"name":"+values","abstract":"

                                Undocumented

                                ","parent_name":"SDLKeypressMode"},"Classes/SDLKeypressMode.html#/c:objc(cs)SDLKeypressMode(cm)SINGLE_KEYPRESS":{"name":"+SINGLE_KEYPRESS","abstract":"

                                SINGLE_KEYPRESS:
                                Each and every User`s keypress must be reported (new notification for every newly entered single symbol).","parent_name":"SDLKeypressMode"},"Classes/SDLKeypressMode.html#/c:objc(cs)SDLKeypressMode(cm)QUEUE_KEYPRESSES":{"name":"+QUEUE_KEYPRESSES","abstract":"

                                QUEUE_KEYPRESSES:
                                The whole entry is reported only after the User submits it (by ‘Search’ button click displayed on touchscreen keyboard)","parent_name":"SDLKeypressMode"},"Classes/SDLKeypressMode.html#/c:objc(cs)SDLKeypressMode(cm)RESEND_CURRENT_ENTRY":{"name":"+RESEND_CURRENT_ENTRY","abstract":"

                                RESEND_CURRENT_ENTRY:
                                The whole entry must be reported each and every time the User makes a new keypress
                                (new notification with all previously entered symbols and a newly entered one appended).","parent_name":"SDLKeypressMode"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(im)initWithLanguage:layout:keypressMode:limitedCharacterList:autoCompleteText:":{"name":"-initWithLanguage:layout:keypressMode:limitedCharacterList:autoCompleteText:","abstract":"

                                Undocumented

                                ","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(py)language":{"name":"language","abstract":"

                                Undocumented

                                ","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(py)keyboardLayout":{"name":"keyboardLayout","abstract":"

                                Undocumented

                                ","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(py)keypressMode":{"name":"keypressMode","abstract":"

                                Undocumented

                                ","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(py)limitedCharacterList":{"name":"limitedCharacterList","abstract":"

                                Undocumented

                                ","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(py)autoCompleteText":{"name":"autoCompleteText","abstract":"

                                Undocumented

                                ","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardLayout.html#/c:objc(cs)SDLKeyboardLayout(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Undocumented

                                ","parent_name":"SDLKeyboardLayout"},"Classes/SDLKeyboardLayout.html#/c:objc(cs)SDLKeyboardLayout(cm)values":{"name":"+values","abstract":"

                                Undocumented

                                ","parent_name":"SDLKeyboardLayout"},"Classes/SDLKeyboardLayout.html#/c:objc(cs)SDLKeyboardLayout(cm)QWERTY":{"name":"+QWERTY","abstract":"

                                QWERTY layout (the name comes from the first six keys
                                appearing on the top left letter row of the keyboard and read from left to right)","parent_name":"SDLKeyboardLayout"},"Classes/SDLKeyboardLayout.html#/c:objc(cs)SDLKeyboardLayout(cm)QWERTZ":{"name":"+QWERTZ","abstract":"

                                QWERTZ layout (the name comes from the first six keys
                                appearing on the top left letter row of the keyboard and read from left to right)","parent_name":"SDLKeyboardLayout"},"Classes/SDLKeyboardLayout.html#/c:objc(cs)SDLKeyboardLayout(cm)AZERTY":{"name":"+AZERTY","abstract":"

                                AZERTY layout (the name comes from the first six keys
                                appearing on the top left letter row of the keyboard and read from left to right)","parent_name":"SDLKeyboardLayout"},"Classes/SDLKeyboardEvent.html#/c:objc(cs)SDLKeyboardEvent(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Undocumented

                                ","parent_name":"SDLKeyboardEvent"},"Classes/SDLKeyboardEvent.html#/c:objc(cs)SDLKeyboardEvent(cm)values":{"name":"+values","abstract":"

                                Undocumented

                                ","parent_name":"SDLKeyboardEvent"},"Classes/SDLKeyboardEvent.html#/c:objc(cs)SDLKeyboardEvent(cm)KEYPRESS":{"name":"+KEYPRESS","abstract":"

                                The use has pressed the keyboard key (applies to both SINGLE_KEYPRESS and RESEND_CURRENT_ENTRY modes).","parent_name":"SDLKeyboardEvent"},"Classes/SDLKeyboardEvent.html#/c:objc(cs)SDLKeyboardEvent(cm)ENTRY_SUBMITTED":{"name":"+ENTRY_SUBMITTED","abstract":"

                                The User has finished entering text from the keyboard and submitted the entry.","parent_name":"SDLKeyboardEvent"},"Classes/SDLKeyboardEvent.html#/c:objc(cs)SDLKeyboardEvent(cm)ENTRY_CANCELLED":{"name":"+ENTRY_CANCELLED","abstract":"

                                The User has pressed the HMI-defined Cancel button.","parent_name":"SDLKeyboardEvent"},"Classes/SDLKeyboardEvent.html#/c:objc(cs)SDLKeyboardEvent(cm)ENTRY_ABORTED":{"name":"+ENTRY_ABORTED","abstract":"

                                The User has not finished entering text and the keyboard is aborted with the event of higher priority.","parent_name":"SDLKeyboardEvent"},"Classes/SDLKeyboardEvent.html#/c:objc(cs)SDLKeyboardEvent(cm)ENTRY_VOICE":{"name":"+ENTRY_VOICE","abstract":"

                                @since SDL 4.0

                                ","parent_name":"SDLKeyboardEvent"},"Classes/SDLJingle.html#/c:objc(cs)SDLJingle(cm)NEGATIVE_JINGLE":{"name":"+NEGATIVE_JINGLE","abstract":"

                                Undocumented

                                ","parent_name":"SDLJingle"},"Classes/SDLJingle.html#/c:objc(cs)SDLJingle(cm)POSITIVE_JINGLE":{"name":"+POSITIVE_JINGLE","abstract":"

                                Undocumented

                                ","parent_name":"SDLJingle"},"Classes/SDLJingle.html#/c:objc(cs)SDLJingle(cm)LISTEN_JINGLE":{"name":"+LISTEN_JINGLE","abstract":"

                                Undocumented

                                ","parent_name":"SDLJingle"},"Classes/SDLJingle.html#/c:objc(cs)SDLJingle(cm)INITIAL_JINGLE":{"name":"+INITIAL_JINGLE","abstract":"

                                Undocumented

                                ","parent_name":"SDLJingle"},"Classes/SDLJingle.html#/c:objc(cs)SDLJingle(cm)HELP_JINGLE":{"name":"+HELP_JINGLE","abstract":"

                                Undocumented

                                ","parent_name":"SDLJingle"},"Classes/SDLInteractionMode.html#/c:objc(cs)SDLInteractionMode(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract SDLInteractionMode

                                ","parent_name":"SDLInteractionMode"},"Classes/SDLInteractionMode.html#/c:objc(cs)SDLInteractionMode(cm)values":{"name":"+values","abstract":"

                                @abstract store all possible SDLInteractionMode values

                                ","parent_name":"SDLInteractionMode"},"Classes/SDLInteractionMode.html#/c:objc(cs)SDLInteractionMode(cm)MANUAL_ONLY":{"name":"+MANUAL_ONLY","abstract":"

                                @abstract Interaction Mode : Manual Only","parent_name":"SDLInteractionMode"},"Classes/SDLInteractionMode.html#/c:objc(cs)SDLInteractionMode(cm)VR_ONLY":{"name":"+VR_ONLY","abstract":"

                                @abstract Interaction Mode : VR Only","parent_name":"SDLInteractionMode"},"Classes/SDLInteractionMode.html#/c:objc(cs)SDLInteractionMode(cm)BOTH":{"name":"+BOTH","abstract":"

                                @abstract Interaction Mode : Manual & VR","parent_name":"SDLInteractionMode"},"Classes/SDLImageType.html#/c:objc(cs)SDLImageType(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract return SDLImageType (STATIC / DYNAMIC)

                                ","parent_name":"SDLImageType"},"Classes/SDLImageType.html#/c:objc(cs)SDLImageType(cm)values":{"name":"+values","abstract":"

                                @abstract store all possible SDLImageType values

                                ","parent_name":"SDLImageType"},"Classes/SDLImageType.html#/c:objc(cs)SDLImageType(cm)STATIC":{"name":"+STATIC","abstract":"

                                @abstract Just the static hex icon value to be used

                                ","parent_name":"SDLImageType"},"Classes/SDLImageType.html#/c:objc(cs)SDLImageType(cm)DYNAMIC":{"name":"+DYNAMIC","abstract":"

                                @abstract Binary image file to be used (identifier to be sent by SDLPutFile)

                                ","parent_name":"SDLImageType"},"Classes/SDLImageResolution.html#/c:objc(cs)SDLImageResolution(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLImageResolution"},"Classes/SDLImageResolution.html#/c:objc(cs)SDLImageResolution(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLImageResolution"},"Classes/SDLImageResolution.html#/c:objc(cs)SDLImageResolution(py)resolutionWidth":{"name":"resolutionWidth","abstract":"

                                Undocumented

                                ","parent_name":"SDLImageResolution"},"Classes/SDLImageResolution.html#/c:objc(cs)SDLImageResolution(py)resolutionHeight":{"name":"resolutionHeight","abstract":"

                                Undocumented

                                ","parent_name":"SDLImageResolution"},"Classes/SDLImageFieldName.html#/c:objc(cs)SDLImageFieldName(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Undocumented

                                ","parent_name":"SDLImageFieldName"},"Classes/SDLImageFieldName.html#/c:objc(cs)SDLImageFieldName(cm)values":{"name":"+values","abstract":"

                                Undocumented

                                ","parent_name":"SDLImageFieldName"},"Classes/SDLImageFieldName.html#/c:objc(cs)SDLImageFieldName(cm)softButtonImage":{"name":"+softButtonImage","abstract":"

                                The image field for SoftButton","parent_name":"SDLImageFieldName"},"Classes/SDLImageFieldName.html#/c:objc(cs)SDLImageFieldName(cm)choiceImage":{"name":"+choiceImage","abstract":"

                                The first image field for Choice.","parent_name":"SDLImageFieldName"},"Classes/SDLImageFieldName.html#/c:objc(cs)SDLImageFieldName(cm)choiceSecondaryImage":{"name":"+choiceSecondaryImage","abstract":"

                                The scondary image field for Choice.","parent_name":"SDLImageFieldName"},"Classes/SDLImageFieldName.html#/c:objc(cs)SDLImageFieldName(cm)vrHelpItem":{"name":"+vrHelpItem","abstract":"

                                The image field for vrHelpItem.","parent_name":"SDLImageFieldName"},"Classes/SDLImageFieldName.html#/c:objc(cs)SDLImageFieldName(cm)turnIcon":{"name":"+turnIcon","abstract":"

                                The image field for Turn.","parent_name":"SDLImageFieldName"},"Classes/SDLImageFieldName.html#/c:objc(cs)SDLImageFieldName(cm)menuIcon":{"name":"+menuIcon","abstract":"

                                The image field for the menu icon in SetGlobalProperties.","parent_name":"SDLImageFieldName"},"Classes/SDLImageFieldName.html#/c:objc(cs)SDLImageFieldName(cm)cmdIcon":{"name":"+cmdIcon","abstract":"

                                The image filed for AddCommand.","parent_name":"SDLImageFieldName"},"Classes/SDLImageFieldName.html#/c:objc(cs)SDLImageFieldName(cm)appIcon":{"name":"+appIcon","abstract":"

                                The iamage field for the app icon ( set by setAppIcon).","parent_name":"SDLImageFieldName"},"Classes/SDLImageFieldName.html#/c:objc(cs)SDLImageFieldName(cm)graphic":{"name":"+graphic","abstract":"

                                The image filed for Show.","parent_name":"SDLImageFieldName"},"Classes/SDLImageFieldName.html#/c:objc(cs)SDLImageFieldName(cm)showConstantTBTIcon":{"name":"+showConstantTBTIcon","abstract":"

                                The primary image field for ShowConstant TBT.","parent_name":"SDLImageFieldName"},"Classes/SDLImageFieldName.html#/c:objc(cs)SDLImageFieldName(cm)showConstantTBTNextTurnIcon":{"name":"+showConstantTBTNextTurnIcon","abstract":"

                                The secondary image field for ShowConstant TBT.","parent_name":"SDLImageFieldName"},"Classes/SDLImageFieldName.html#/c:objc(cs)SDLImageFieldName(cm)locationImage":{"name":"+locationImage","abstract":"

                                The optional image of a destination / location","parent_name":"SDLImageFieldName"},"Classes/SDLImageField.html#/c:objc(cs)SDLImageField(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLImageField"},"Classes/SDLImageField.html#/c:objc(cs)SDLImageField(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLImageField"},"Classes/SDLImageField.html#/c:objc(cs)SDLImageField(py)name":{"name":"name","abstract":"

                                Undocumented

                                ","parent_name":"SDLImageField"},"Classes/SDLImageField.html#/c:objc(cs)SDLImageField(py)imageTypeSupported":{"name":"imageTypeSupported","abstract":"

                                Undocumented

                                ","parent_name":"SDLImageField"},"Classes/SDLImageField.html#/c:objc(cs)SDLImageField(py)imageResolution":{"name":"imageResolution","abstract":"

                                Undocumented

                                ","parent_name":"SDLImageField"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(im)init":{"name":"-init","abstract":"

                                Constructs a newly allocated SDLImage object

                                ","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a newly allocated SDLImage object indicated by the dictionary parameter

                                ","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(im)initWithName:ofType:":{"name":"-initWithName:ofType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(py)value":{"name":"value","abstract":"

                                @abstract The static hex icon value or the binary image file name identifier (sent by SDLPutFile)

                                ","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(py)imageType":{"name":"imageType","abstract":"

                                @abstract Describes, whether it is a static or dynamic image

                                ","parent_name":"SDLImage"},"Classes/SDLIgnitionStatus.html#/c:objc(cs)SDLIgnitionStatus(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract return SDLIgnitionStatus

                                ","parent_name":"SDLIgnitionStatus"},"Classes/SDLIgnitionStatus.html#/c:objc(cs)SDLIgnitionStatus(cm)values":{"name":"+values","abstract":"

                                @abstract store all possible SDLIgnitionStatus values

                                ","parent_name":"SDLIgnitionStatus"},"Classes/SDLIgnitionStatus.html#/c:objc(cs)SDLIgnitionStatus(cm)UNKNOWN":{"name":"+UNKNOWN","abstract":"

                                @abstract Ignition status currently unknown

                                ","parent_name":"SDLIgnitionStatus"},"Classes/SDLIgnitionStatus.html#/c:objc(cs)SDLIgnitionStatus(cm)OFF":{"name":"+OFF","abstract":"

                                @abstract Ignition is off

                                ","parent_name":"SDLIgnitionStatus"},"Classes/SDLIgnitionStatus.html#/c:objc(cs)SDLIgnitionStatus(cm)ACCESSORY":{"name":"+ACCESSORY","abstract":"

                                @abstract Ignition is in mode accessory

                                ","parent_name":"SDLIgnitionStatus"},"Classes/SDLIgnitionStatus.html#/c:objc(cs)SDLIgnitionStatus(cm)RUN":{"name":"+RUN","abstract":"

                                @abstract Ignition is in mode run

                                ","parent_name":"SDLIgnitionStatus"},"Classes/SDLIgnitionStatus.html#/c:objc(cs)SDLIgnitionStatus(cm)START":{"name":"+START","abstract":"

                                @abstract Ignition is in mode start

                                ","parent_name":"SDLIgnitionStatus"},"Classes/SDLIgnitionStatus.html#/c:objc(cs)SDLIgnitionStatus(cm)INVALID":{"name":"+INVALID","abstract":"

                                @abstract Signal is invalid

                                ","parent_name":"SDLIgnitionStatus"},"Classes/SDLIgnitionStableStatus.html#/c:objc(cs)SDLIgnitionStableStatus(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract return SDLIgnitionStableStatus

                                ","parent_name":"SDLIgnitionStableStatus"},"Classes/SDLIgnitionStableStatus.html#/c:objc(cs)SDLIgnitionStableStatus(cm)values":{"name":"+values","abstract":"

                                @abstract store all possible SDLIgnitionStableStatus values

                                ","parent_name":"SDLIgnitionStableStatus"},"Classes/SDLIgnitionStableStatus.html#/c:objc(cs)SDLIgnitionStableStatus(cm)IGNITION_SWITCH_NOT_STABLE":{"name":"+IGNITION_SWITCH_NOT_STABLE","abstract":"

                                @abstract The current ignition switch status is considered not to be stable.

                                ","parent_name":"SDLIgnitionStableStatus"},"Classes/SDLIgnitionStableStatus.html#/c:objc(cs)SDLIgnitionStableStatus(cm)IGNITION_SWITCH_STABLE":{"name":"+IGNITION_SWITCH_STABLE","abstract":"

                                @abstract The current ignition switch status is considered to be stable.

                                ","parent_name":"SDLIgnitionStableStatus"},"Classes/SDLIgnitionStableStatus.html#/c:objc(cs)SDLIgnitionStableStatus(cm)MISSING_FROM_TRANSMITTER":{"name":"+MISSING_FROM_TRANSMITTER","abstract":"

                                Undocumented

                                ","parent_name":"SDLIgnitionStableStatus"},"Classes/SDLIAPTransport.html#/c:objc(cs)SDLIAPTransport(py)controlSession":{"name":"controlSession","abstract":"

                                Undocumented

                                ","parent_name":"SDLIAPTransport"},"Classes/SDLIAPTransport.html#/c:objc(cs)SDLIAPTransport(py)session":{"name":"session","abstract":"

                                Undocumented

                                ","parent_name":"SDLIAPTransport"},"Classes/SDLHeadLampStatus.html#/c:objc(cs)SDLHeadLampStatus(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLHeadLampStatus object

                                ","parent_name":"SDLHeadLampStatus"},"Classes/SDLHeadLampStatus.html#/c:objc(cs)SDLHeadLampStatus(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLHeadLampStatus object indicated by the NSMutableDictionary","parent_name":"SDLHeadLampStatus"},"Classes/SDLHeadLampStatus.html#/c:objc(cs)SDLHeadLampStatus(py)lowBeamsOn":{"name":"lowBeamsOn","abstract":"

                                @abstract A boolean value. Status of the low beam lamps.

                                ","parent_name":"SDLHeadLampStatus"},"Classes/SDLHeadLampStatus.html#/c:objc(cs)SDLHeadLampStatus(py)highBeamsOn":{"name":"highBeamsOn","abstract":"

                                @abstract A boolean value. Status of the high beam lamps.

                                ","parent_name":"SDLHeadLampStatus"},"Classes/SDLHeadLampStatus.html#/c:objc(cs)SDLHeadLampStatus(py)ambientLightSensorStatus":{"name":"ambientLightSensorStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLHeadLampStatus"},"Classes/SDLHapticRect.html#/c:objc(cs)SDLHapticRect(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a newly allocated SDLHapticRect object

                                ","parent_name":"SDLHapticRect"},"Classes/SDLHapticRect.html#/c:objc(cs)SDLHapticRect(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a newly allocated SDLHapticRect object indicated by the dictionary parameter

                                ","parent_name":"SDLHapticRect"},"Classes/SDLHapticRect.html#/c:objc(cs)SDLHapticRect(im)initWithId:rect:":{"name":"-initWithId:rect:","abstract":"

                                Create a SpatialStruct

                                ","parent_name":"SDLHapticRect"},"Classes/SDLHapticRect.html#/c:objc(cs)SDLHapticRect(py)id":{"name":"id","abstract":"

                                A user control spatial identifier","parent_name":"SDLHapticRect"},"Classes/SDLHapticRect.html#/c:objc(cs)SDLHapticRect(py)rect":{"name":"rect","abstract":"

                                The position of the haptic rectangle to be highlighted. The center of this rectangle will be touched when a press occurs.

                                ","parent_name":"SDLHapticRect"},"Classes/SDLHMIZoneCapabilities.html#/c:objc(cs)SDLHMIZoneCapabilities(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract SDLHMIZoneCapabilities

                                ","parent_name":"SDLHMIZoneCapabilities"},"Classes/SDLHMIZoneCapabilities.html#/c:objc(cs)SDLHMIZoneCapabilities(cm)values":{"name":"+values","abstract":"

                                @abstract store all possible SDLHMIZoneCapabilities values

                                ","parent_name":"SDLHMIZoneCapabilities"},"Classes/SDLHMIZoneCapabilities.html#/c:objc(cs)SDLHMIZoneCapabilities(cm)FRONT":{"name":"+FRONT","abstract":"

                                @abstract Indicates HMI available for front seat passengers.

                                ","parent_name":"SDLHMIZoneCapabilities"},"Classes/SDLHMIZoneCapabilities.html#/c:objc(cs)SDLHMIZoneCapabilities(cm)BACK":{"name":"+BACK","abstract":"

                                @abstract Indicates HMI available for rear seat passengers.

                                ","parent_name":"SDLHMIZoneCapabilities"},"Classes/SDLHMIPermissions.html#/c:objc(cs)SDLHMIPermissions(im)init":{"name":"-init","abstract":"

                                Constructs a newly allocated SDLHMIPermissions object

                                ","parent_name":"SDLHMIPermissions"},"Classes/SDLHMIPermissions.html#/c:objc(cs)SDLHMIPermissions(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a newly allocated SDLHMIPermissions object indicated by the dictionary parameter

                                ","parent_name":"SDLHMIPermissions"},"Classes/SDLHMIPermissions.html#/c:objc(cs)SDLHMIPermissions(py)allowed":{"name":"allowed","abstract":"

                                @abstract a set of all HMI levels that are permitted for this given RPC

                                ","parent_name":"SDLHMIPermissions"},"Classes/SDLHMIPermissions.html#/c:objc(cs)SDLHMIPermissions(py)userDisallowed":{"name":"userDisallowed","abstract":"

                                @abstract a set of all HMI levels that are prohibited for this given RPC

                                ","parent_name":"SDLHMIPermissions"},"Classes/SDLHMILevel.html#/c:objc(cs)SDLHMILevel(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Return HMILevel status (FULL, LIMITED, BACKGROUND, NONE)

                                ","parent_name":"SDLHMILevel"},"Classes/SDLHMILevel.html#/c:objc(cs)SDLHMILevel(cm)values":{"name":"+values","abstract":"

                                Store all possible SDLHMILevel values

                                ","parent_name":"SDLHMILevel"},"Classes/SDLHMILevel.html#/c:objc(cs)SDLHMILevel(cm)FULL":{"name":"+FULL","abstract":"

                                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

                                ","parent_name":"SDLHMILevel"},"Classes/SDLHMILevel.html#/c:objc(cs)SDLHMILevel(cm)LIMITED":{"name":"+LIMITED","abstract":"

                                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)

                                ","parent_name":"SDLHMILevel"},"Classes/SDLHMILevel.html#/c:objc(cs)SDLHMILevel(cm)BACKGROUND":{"name":"+BACKGROUND","abstract":"

                                App cannot interact with user via TTS, VR, Display or Button Presses. App can perform the following operations:

                                ","parent_name":"SDLHMILevel"},"Classes/SDLHMILevel.html#/c:objc(cs)SDLHMILevel(cm)NONE":{"name":"+NONE","abstract":"

                                Application has been discovered by SDL, but it cannot send any requests or receive any notifications

                                ","parent_name":"SDLHMILevel"},"Classes/SDLHMICapabilities.html#/c:objc(cs)SDLHMICapabilities(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLHMICapabilities"},"Classes/SDLHMICapabilities.html#/c:objc(cs)SDLHMICapabilities(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLHMICapabilities"},"Classes/SDLHMICapabilities.html#/c:objc(cs)SDLHMICapabilities(py)navigation":{"name":"navigation","abstract":"

                                Availability of build in Nav. True: Available, False: Not Available

                                ","parent_name":"SDLHMICapabilities"},"Classes/SDLHMICapabilities.html#/c:objc(cs)SDLHMICapabilities(py)phoneCall":{"name":"phoneCall","abstract":"

                                Availability of build in phone. True: Available, False: Not Available

                                ","parent_name":"SDLHMICapabilities"},"Classes/SDLHMICapabilities.html#/c:objc(cs)SDLHMICapabilities(py)videoStreaming":{"name":"videoStreaming","abstract":"

                                Availability of build in video streaming. True: Available, False: Not Available

                                ","parent_name":"SDLHMICapabilities"},"Classes/SDLGlobalProperty.html#/c:objc(cs)SDLGlobalProperty(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLGlobalProperty

                                ","parent_name":"SDLGlobalProperty"},"Classes/SDLGlobalProperty.html#/c:objc(cs)SDLGlobalProperty(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLGlobalProperty

                                ","parent_name":"SDLGlobalProperty"},"Classes/SDLGlobalProperty.html#/c:objc(cs)SDLGlobalProperty(cm)HELPPROMPT":{"name":"+HELPPROMPT","abstract":"

                                @abstract The help prompt to be spoken if the user needs assistance during a user-initiated interaction.

                                ","parent_name":"SDLGlobalProperty"},"Classes/SDLGlobalProperty.html#/c:objc(cs)SDLGlobalProperty(cm)TIMEOUTPROMPT":{"name":"+TIMEOUTPROMPT","abstract":"

                                @abstract The prompt to be spoken if the user-initiated interaction times out waiting for the user’s verbal input.

                                ","parent_name":"SDLGlobalProperty"},"Classes/SDLGlobalProperty.html#/c:objc(cs)SDLGlobalProperty(cm)VRHELPTITLE":{"name":"+VRHELPTITLE","abstract":"

                                Undocumented

                                ","parent_name":"SDLGlobalProperty"},"Classes/SDLGlobalProperty.html#/c:objc(cs)SDLGlobalProperty(cm)VRHELPITEMS":{"name":"+VRHELPITEMS","abstract":"

                                Undocumented

                                ","parent_name":"SDLGlobalProperty"},"Classes/SDLGlobalProperty.html#/c:objc(cs)SDLGlobalProperty(cm)MENUNAME":{"name":"+MENUNAME","abstract":"

                                Undocumented

                                ","parent_name":"SDLGlobalProperty"},"Classes/SDLGlobalProperty.html#/c:objc(cs)SDLGlobalProperty(cm)MENUICON":{"name":"+MENUICON","abstract":"

                                Undocumented

                                ","parent_name":"SDLGlobalProperty"},"Classes/SDLGlobalProperty.html#/c:objc(cs)SDLGlobalProperty(cm)KEYBOARDPROPERTIES":{"name":"+KEYBOARDPROPERTIES","abstract":"

                                Undocumented

                                ","parent_name":"SDLGlobalProperty"},"Classes/SDLGetWayPointsResponse.html#/c:objc(cs)SDLGetWayPointsResponse(py)waypoints":{"name":"waypoints","abstract":"

                                @abstract Array of waypoints

                                ","parent_name":"SDLGetWayPointsResponse"},"Classes/SDLGetWayPoints.html#/c:objc(cs)SDLGetWayPoints(im)initWithType:":{"name":"-initWithType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetWayPoints"},"Classes/SDLGetWayPoints.html#/c:objc(cs)SDLGetWayPoints(py)waypointType":{"name":"waypointType","abstract":"

                                To request for either the destination","parent_name":"SDLGetWayPoints"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLGetVehicleDataResponse object

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLGetVehicleDataResponse object indicated by the NSMutableDictionary","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)gps":{"name":"gps","abstract":"

                                @abstract A SDLGPSData* value. See GPSData.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)speed":{"name":"speed","abstract":"

                                @abstract The vehicle speed in kilometers per hour.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)rpm":{"name":"rpm","abstract":"

                                @abstract The number of revolutions per minute of the engine.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)fuelLevel":{"name":"fuelLevel","abstract":"

                                @abstract The fuel level in the tank (percentage)

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"

                                @abstract A SDLComponentVolumeStatus* value. The fuel level state.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"

                                @abstract The instantaneous fuel consumption in microlitres.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)externalTemperature":{"name":"externalTemperature","abstract":"

                                @abstract The external temperature in degrees celsius.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)vin":{"name":"vin","abstract":"

                                @abstract The Vehicle Identification Number

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)prndl":{"name":"prndl","abstract":"

                                @abstract See PRNDL.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)tirePressure":{"name":"tirePressure","abstract":"

                                @abstract A SDLTireStatus* value. See TireStatus.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)odometer":{"name":"odometer","abstract":"

                                @abstract Odometer reading in km.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)beltStatus":{"name":"beltStatus","abstract":"

                                @abstract A SDLBeltStatus* value. The status of the seat belts.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)bodyInformation":{"name":"bodyInformation","abstract":"

                                @abstract A SDLBodyInformation* value. The body information including power modes.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)deviceStatus":{"name":"deviceStatus","abstract":"

                                @abstract A SDLDeviceStatus* value. The device status including signal and battery strength.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)driverBraking":{"name":"driverBraking","abstract":"

                                @abstract A SDLVehicleDataResult* value. The status of the brake pedal.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)wiperStatus":{"name":"wiperStatus","abstract":"

                                @abstract A SDLWiperStatus* value. The status of the wipers.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)headLampStatus":{"name":"headLampStatus","abstract":"

                                @abstract A SDLHeadLampStatus* value. Status of the head lamps.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)engineTorque":{"name":"engineTorque","abstract":"

                                @abstract Torque value for engine (in Nm) on non-diesel variants.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)accPedalPosition":{"name":"accPedalPosition","abstract":"

                                @abstract Accelerator pedal position (percentage depressed)

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"

                                @abstract Current angle of the steering wheel (in deg)

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)eCallInfo":{"name":"eCallInfo","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)airbagStatus":{"name":"airbagStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)emergencyEvent":{"name":"emergencyEvent","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)clusterModeStatus":{"name":"clusterModeStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)myKey":{"name":"myKey","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLGetVehicleData object

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLGetVehicleData object indicated by the NSMutableDictionary","parent_name":"SDLGetVehicleData"},"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":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)gps":{"name":"gps","abstract":"

                                @abstract A boolean value. If true, requests Gps data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)speed":{"name":"speed","abstract":"

                                @abstract A boolean value. If true, requests speed data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)rpm":{"name":"rpm","abstract":"

                                @abstract A boolean value. If true, requests rpm data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)fuelLevel":{"name":"fuelLevel","abstract":"

                                @abstract A boolean value. If true, requests FuelLevel data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"

                                @abstract A boolean value. If true, requests fuelLevel_State data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"

                                @abstract A boolean value. If true, requests instantFuelConsumption data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)externalTemperature":{"name":"externalTemperature","abstract":"

                                @abstract A boolean value. If true, requests externalTemperature data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)vin":{"name":"vin","abstract":"

                                @abstract A boolean value. If true, requests Vehicle Identification Number

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)prndl":{"name":"prndl","abstract":"

                                @abstract A boolean value. If true, requests Currently selected gear data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)tirePressure":{"name":"tirePressure","abstract":"

                                @abstract A boolean value. If true, requests tire pressure status data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)odometer":{"name":"odometer","abstract":"

                                @abstract A boolean value. If true, requests odometer data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)beltStatus":{"name":"beltStatus","abstract":"

                                @abstract A boolean value. If true, requests belt Status data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)bodyInformation":{"name":"bodyInformation","abstract":"

                                @abstract A boolean value. If true, requests body Information data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)deviceStatus":{"name":"deviceStatus","abstract":"

                                @abstract A boolean value. If true, requests device Status data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)driverBraking":{"name":"driverBraking","abstract":"

                                @abstract A boolean value. If true, requests driver Braking data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)wiperStatus":{"name":"wiperStatus","abstract":"

                                @abstract A boolean value. If true, requests wiper Status data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)headLampStatus":{"name":"headLampStatus","abstract":"

                                @abstract A boolean value. If true, requests Head Lamp Status data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)engineTorque":{"name":"engineTorque","abstract":"

                                @abstract A boolean value. If true, requests Engine Torque data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)accPedalPosition":{"name":"accPedalPosition","abstract":"

                                @abstract A boolean value. If true, means the accPedalPosition data has been","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"

                                @abstract A boolean value. If true, means the steeringWheelAngle data has been","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)eCallInfo":{"name":"eCallInfo","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)airbagStatus":{"name":"airbagStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)emergencyEvent":{"name":"emergencyEvent","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)clusterModeStatus":{"name":"clusterModeStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)myKey":{"name":"myKey","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetSystemCapabilityResponse.html#/c:objc(cs)SDLGetSystemCapabilityResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetSystemCapabilityResponse"},"Classes/SDLGetSystemCapabilityResponse.html#/c:objc(cs)SDLGetSystemCapabilityResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetSystemCapabilityResponse"},"Classes/SDLGetSystemCapabilityResponse.html#/c:objc(cs)SDLGetSystemCapabilityResponse(py)systemCapability":{"name":"systemCapability","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetSystemCapabilityResponse"},"Classes/SDLGetSystemCapability.html#/c:objc(cs)SDLGetSystemCapability(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetSystemCapability"},"Classes/SDLGetSystemCapability.html#/c:objc(cs)SDLGetSystemCapability(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetSystemCapability"},"Classes/SDLGetSystemCapability.html#/c:objc(cs)SDLGetSystemCapability(im)initWithType:":{"name":"-initWithType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetSystemCapability"},"Classes/SDLGetSystemCapability.html#/c:objc(cs)SDLGetSystemCapability(py)systemCapabilityType":{"name":"systemCapabilityType","abstract":"

                                They type of capability you’d like to receive in the response.

                                ","parent_name":"SDLGetSystemCapability"},"Classes/SDLGetDTCsResponse.html#/c:objc(cs)SDLGetDTCsResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetDTCsResponse"},"Classes/SDLGetDTCsResponse.html#/c:objc(cs)SDLGetDTCsResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetDTCsResponse"},"Classes/SDLGetDTCsResponse.html#/c:objc(cs)SDLGetDTCsResponse(py)ecuHeader":{"name":"ecuHeader","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetDTCsResponse"},"Classes/SDLGetDTCsResponse.html#/c:objc(cs)SDLGetDTCsResponse(py)dtc":{"name":"dtc","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetDTCsResponse"},"Classes/SDLGetDTCs.html#/c:objc(cs)SDLGetDTCs(im)init":{"name":"-init","abstract":"

                                Constructs a new SDLGetDTCs object

                                ","parent_name":"SDLGetDTCs"},"Classes/SDLGetDTCs.html#/c:objc(cs)SDLGetDTCs(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a new SDLGetDTCs object indicated by the dictionary parameter","parent_name":"SDLGetDTCs"},"Classes/SDLGetDTCs.html#/c:objc(cs)SDLGetDTCs(im)initWithECUName:":{"name":"-initWithECUName:","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetDTCs"},"Classes/SDLGetDTCs.html#/c:objc(cs)SDLGetDTCs(im)initWithECUName:mask:":{"name":"-initWithECUName:mask:","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetDTCs"},"Classes/SDLGetDTCs.html#/c:objc(cs)SDLGetDTCs(py)ecuName":{"name":"ecuName","abstract":"

                                @abstract 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":"

                                @abstract DTC Mask Byte to be sent in diagnostic request to module. NSNumber* dtcMask Minvalue:0; Maxvalue:255

                                ","parent_name":"SDLGetDTCs"},"Classes/SDLGenericResponse.html#/c:objc(cs)SDLGenericResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLGenericResponse"},"Classes/SDLGenericResponse.html#/c:objc(cs)SDLGenericResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLGenericResponse"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(im)init":{"name":"-init","abstract":"

                                Constructs a newly allocated SDLGPSData object

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a newly allocated SDLGPSData object indicated by the dictionary parameter

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)longitudeDegrees":{"name":"longitudeDegrees","abstract":"

                                @abstract longitude degrees

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)latitudeDegrees":{"name":"latitudeDegrees","abstract":"

                                @abstract latitude degrees

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcYear":{"name":"utcYear","abstract":"

                                @abstract utc year

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcMonth":{"name":"utcMonth","abstract":"

                                @abstract utc month

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcDay":{"name":"utcDay","abstract":"

                                @abstract utc day

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcHours":{"name":"utcHours","abstract":"

                                @abstract utc hours

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcMinutes":{"name":"utcMinutes","abstract":"

                                @abstract utc minutes

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcSeconds":{"name":"utcSeconds","abstract":"

                                @abstract utc seconds

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)compassDirection":{"name":"compassDirection","abstract":"

                                Potential Compass Directions

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)pdop":{"name":"pdop","abstract":"

                                @abstract The 3D positional dilution of precision.

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)hdop":{"name":"hdop","abstract":"

                                @abstract The horizontal dilution of precision

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)vdop":{"name":"vdop","abstract":"

                                @abstract the vertical dilution of precision

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)actual":{"name":"actual","abstract":"

                                @abstract What the coordinates are based on

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)satellites":{"name":"satellites","abstract":"

                                @abstract The number of satellites in view

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)dimension":{"name":"dimension","abstract":"

                                The supported dimensions of the GPS

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)altitude":{"name":"altitude","abstract":"

                                @abstract altitude in meters

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)heading":{"name":"heading","abstract":"

                                @abstract Heading based on the GPS data.

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)speed":{"name":"speed","abstract":"

                                @abstract speed in KPH

                                ","parent_name":"SDLGPSData"},"Classes/SDLFuelCutoffStatus.html#/c:objc(cs)SDLFuelCutoffStatus(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract Convert String to SDLFuelCutoffStatus

                                ","parent_name":"SDLFuelCutoffStatus"},"Classes/SDLFuelCutoffStatus.html#/c:objc(cs)SDLFuelCutoffStatus(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLFuelCutoffStatus

                                ","parent_name":"SDLFuelCutoffStatus"},"Classes/SDLFuelCutoffStatus.html#/c:objc(cs)SDLFuelCutoffStatus(cm)TERMINATE_FUEL":{"name":"+TERMINATE_FUEL","abstract":"

                                @abstract Fuel is cut off

                                ","parent_name":"SDLFuelCutoffStatus"},"Classes/SDLFuelCutoffStatus.html#/c:objc(cs)SDLFuelCutoffStatus(cm)NORMAL_OPERATION":{"name":"+NORMAL_OPERATION","abstract":"

                                @abstract Fuel is not cut off

                                ","parent_name":"SDLFuelCutoffStatus"},"Classes/SDLFuelCutoffStatus.html#/c:objc(cs)SDLFuelCutoffStatus(cm)FAULT":{"name":"+FAULT","abstract":"

                                @abstract Status of the fuel pump cannot be determined

                                ","parent_name":"SDLFuelCutoffStatus"},"Classes/SDLFileType.html#/c:objc(cs)SDLFileType(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract Convert String to SDLFileType

                                ","parent_name":"SDLFileType"},"Classes/SDLFileType.html#/c:objc(cs)SDLFileType(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLFileType

                                ","parent_name":"SDLFileType"},"Classes/SDLFileType.html#/c:objc(cs)SDLFileType(cm)GRAPHIC_BMP":{"name":"+GRAPHIC_BMP","abstract":"

                                @abstract file type: Bitmap (BMP)

                                ","parent_name":"SDLFileType"},"Classes/SDLFileType.html#/c:objc(cs)SDLFileType(cm)GRAPHIC_JPEG":{"name":"+GRAPHIC_JPEG","abstract":"

                                @abstract file type: JPEG

                                ","parent_name":"SDLFileType"},"Classes/SDLFileType.html#/c:objc(cs)SDLFileType(cm)GRAPHIC_PNG":{"name":"+GRAPHIC_PNG","abstract":"

                                @abstract file type: PNG

                                ","parent_name":"SDLFileType"},"Classes/SDLFileType.html#/c:objc(cs)SDLFileType(cm)AUDIO_WAVE":{"name":"+AUDIO_WAVE","abstract":"

                                @abstract file type: WAVE (WAV)

                                ","parent_name":"SDLFileType"},"Classes/SDLFileType.html#/c:objc(cs)SDLFileType(cm)AUDIO_MP3":{"name":"+AUDIO_MP3","abstract":"

                                @abstract file type: MP3

                                ","parent_name":"SDLFileType"},"Classes/SDLFileType.html#/c:objc(cs)SDLFileType(cm)AUDIO_AAC":{"name":"+AUDIO_AAC","abstract":"

                                @abstract file type: AAC

                                ","parent_name":"SDLFileType"},"Classes/SDLFileType.html#/c:objc(cs)SDLFileType(cm)BINARY":{"name":"+BINARY","abstract":"

                                @abstract file type: BINARY

                                ","parent_name":"SDLFileType"},"Classes/SDLFileType.html#/c:objc(cs)SDLFileType(cm)JSON":{"name":"+JSON","abstract":"

                                @abstract file type: JSON

                                ","parent_name":"SDLFileType"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(py)remoteFileNames":{"name":"remoteFileNames","abstract":"

                                A set of all names of files known on the remote head unit. Known files can be used or deleted on the remote system.

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(py)bytesAvailable":{"name":"bytesAvailable","abstract":"

                                The number of bytes still available for files for this app.

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(py)currentState":{"name":"currentState","abstract":"

                                The state of the file manager.

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(py)pendingTransactions":{"name":"pendingTransactions","abstract":"

                                The currently pending transactions (Upload, Delete, and List Files) in the file manager

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(py)suspended":{"name":"suspended","abstract":"

                                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.

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)init":{"name":"-init","abstract":"

                                Initialize the class…or not, since this method is unavailable. Dependencies must be injected using initWithConnectionManager:

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)initWithConnectionManager:":{"name":"-initWithConnectionManager:","abstract":"

                                Creates a new file manager with a specified connection manager

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)startWithCompletionHandler:":{"name":"-startWithCompletionHandler:","abstract":"

                                The manager stars up and attempts to fetch its initial list and transfer initial files.

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)stop":{"name":"-stop","abstract":"

                                Cancels all file manager operations and deletes all associated data.

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)deleteRemoteFileWithName:completionHandler:":{"name":"-deleteRemoteFileWithName:completionHandler:","abstract":"

                                Delete a file stored on the remote system

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)uploadFile:completionHandler:":{"name":"-uploadFile:completionHandler:","abstract":"

                                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.

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(cm)temporaryFileDirectory":{"name":"+temporaryFileDirectory","abstract":"

                                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.

                                ","parent_name":"SDLFileManager"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)persistent":{"name":"persistent","abstract":"

                                Whether or not the file should persist on disk between car ignition cycles.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)overwrite":{"name":"overwrite","abstract":"

                                Whether or not the file should overwrite an existing file on the remote disk with the same name.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)name":{"name":"name","abstract":"

                                The name the file should be stored under on the remote disk. This is how the file will be referenced in all later calls.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)fileURL":{"name":"fileURL","abstract":"

                                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.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)data":{"name":"data","abstract":"

                                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.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)fileType":{"name":"fileType","abstract":"

                                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.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(im)initWithFileURL:name:persistent:":{"name":"-initWithFileURL:name:persistent:","abstract":"

                                The designated initializer for an SDL File. The only major property that is not set using this is overwrite, which defaults to NO.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(cm)persistentFileAtFileURL:name:":{"name":"+persistentFileAtFileURL:name:","abstract":"

                                Create an SDL file using a local file URL.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(cm)fileAtFileURL:name:":{"name":"+fileAtFileURL:name:","abstract":"

                                Create an SDL file using a local file URL.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(im)initWithData:name:fileExtension:persistent:":{"name":"-initWithData:name:fileExtension:persistent:","abstract":"

                                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.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(cm)persistentFileWithData:name:fileExtension:":{"name":"+persistentFileWithData:name:fileExtension:","abstract":"

                                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.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(cm)fileWithData:name:fileExtension:":{"name":"+fileWithData:name:fileExtension:","abstract":"

                                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.

                                ","parent_name":"SDLFile"},"Classes/SDLEnum.html#/c:objc(cs)SDLEnum@value":{"name":"value","abstract":"

                                Undocumented

                                ","parent_name":"SDLEnum"},"Classes/SDLEnum.html#/c:objc(cs)SDLEnum(im)initWithValue:":{"name":"-initWithValue:","abstract":"

                                Undocumented

                                ","parent_name":"SDLEnum"},"Classes/SDLEnum.html#/c:objc(cs)SDLEnum(im)isEqualToEnum:":{"name":"-isEqualToEnum:","abstract":"

                                Undocumented

                                ","parent_name":"SDLEnum"},"Classes/SDLEnum.html#/c:objc(cs)SDLEnum(py)value":{"name":"value","abstract":"

                                Undocumented

                                ","parent_name":"SDLEnum"},"Classes/SDLEndAudioPassThruResponse.html#/c:objc(cs)SDLEndAudioPassThruResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLEndAudioPassThruResponse"},"Classes/SDLEndAudioPassThruResponse.html#/c:objc(cs)SDLEndAudioPassThruResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLEndAudioPassThruResponse"},"Classes/SDLEndAudioPassThru.html#/c:objc(cs)SDLEndAudioPassThru(im)init":{"name":"-init","abstract":"

                                Constructs a new SDLEndAudioPassThru object

                                ","parent_name":"SDLEndAudioPassThru"},"Classes/SDLEndAudioPassThru.html#/c:objc(cs)SDLEndAudioPassThru(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a new SDLEndAudioPassThru object indicated by the NSMutableDictionary","parent_name":"SDLEndAudioPassThru"},"Classes/SDLEncodedSyncPDataResponse.html#/c:objc(cs)SDLEncodedSyncPDataResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLEncodedSyncPDataResponse"},"Classes/SDLEncodedSyncPDataResponse.html#/c:objc(cs)SDLEncodedSyncPDataResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLEncodedSyncPDataResponse"},"Classes/SDLEncodedSyncPData.html#/c:objc(cs)SDLEncodedSyncPData(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLEncodedSyncPData"},"Classes/SDLEncodedSyncPData.html#/c:objc(cs)SDLEncodedSyncPData(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLEncodedSyncPData"},"Classes/SDLEncodedSyncPData.html#/c:objc(cs)SDLEncodedSyncPData(py)data":{"name":"data","abstract":"

                                Undocumented

                                ","parent_name":"SDLEncodedSyncPData"},"Classes/SDLEmergencyEventType.html#/c:objc(cs)SDLEmergencyEventType(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Undocumented

                                ","parent_name":"SDLEmergencyEventType"},"Classes/SDLEmergencyEventType.html#/c:objc(cs)SDLEmergencyEventType(cm)values":{"name":"+values","abstract":"

                                Undocumented

                                ","parent_name":"SDLEmergencyEventType"},"Classes/SDLEmergencyEventType.html#/c:objc(cs)SDLEmergencyEventType(cm)NO_EVENT":{"name":"+NO_EVENT","abstract":"

                                No emergency event has happened.

                                ","parent_name":"SDLEmergencyEventType"},"Classes/SDLEmergencyEventType.html#/c:objc(cs)SDLEmergencyEventType(cm)FRONTAL":{"name":"+FRONTAL","abstract":"

                                Frontal collision has happened.

                                ","parent_name":"SDLEmergencyEventType"},"Classes/SDLEmergencyEventType.html#/c:objc(cs)SDLEmergencyEventType(cm)SIDE":{"name":"+SIDE","abstract":"

                                Side collision has happened.

                                ","parent_name":"SDLEmergencyEventType"},"Classes/SDLEmergencyEventType.html#/c:objc(cs)SDLEmergencyEventType(cm)REAR":{"name":"+REAR","abstract":"

                                Rear collision has happened.

                                ","parent_name":"SDLEmergencyEventType"},"Classes/SDLEmergencyEventType.html#/c:objc(cs)SDLEmergencyEventType(cm)ROLLOVER":{"name":"+ROLLOVER","abstract":"

                                A rollover event has happened.

                                ","parent_name":"SDLEmergencyEventType"},"Classes/SDLEmergencyEventType.html#/c:objc(cs)SDLEmergencyEventType(cm)NOT_SUPPORTED":{"name":"+NOT_SUPPORTED","abstract":"

                                The signal is not supported

                                ","parent_name":"SDLEmergencyEventType"},"Classes/SDLEmergencyEventType.html#/c:objc(cs)SDLEmergencyEventType(cm)FAULT":{"name":"+FAULT","abstract":"

                                Emergency status cannot be determined

                                ","parent_name":"SDLEmergencyEventType"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLEmergencyEvent"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLEmergencyEvent"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(py)emergencyEventType":{"name":"emergencyEventType","abstract":"

                                Undocumented

                                ","parent_name":"SDLEmergencyEvent"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(py)fuelCutoffStatus":{"name":"fuelCutoffStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLEmergencyEvent"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(py)rolloverEvent":{"name":"rolloverEvent","abstract":"

                                Undocumented

                                ","parent_name":"SDLEmergencyEvent"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(py)maximumChangeVelocity":{"name":"maximumChangeVelocity","abstract":"

                                Undocumented

                                ","parent_name":"SDLEmergencyEvent"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(py)multipleEvents":{"name":"multipleEvents","abstract":"

                                Undocumented

                                ","parent_name":"SDLEmergencyEvent"},"Classes/SDLECallInfo.html#/c:objc(cs)SDLECallInfo(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLECallInfo"},"Classes/SDLECallInfo.html#/c:objc(cs)SDLECallInfo(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLECallInfo"},"Classes/SDLECallInfo.html#/c:objc(cs)SDLECallInfo(py)eCallNotificationStatus":{"name":"eCallNotificationStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLECallInfo"},"Classes/SDLECallInfo.html#/c:objc(cs)SDLECallInfo(py)auxECallNotificationStatus":{"name":"auxECallNotificationStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLECallInfo"},"Classes/SDLECallInfo.html#/c:objc(cs)SDLECallInfo(py)eCallConfirmationStatus":{"name":"eCallConfirmationStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLECallInfo"},"Classes/SDLECallConfirmationStatus.html#/c:objc(cs)SDLECallConfirmationStatus(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Undocumented

                                ","parent_name":"SDLECallConfirmationStatus"},"Classes/SDLECallConfirmationStatus.html#/c:objc(cs)SDLECallConfirmationStatus(cm)values":{"name":"+values","abstract":"

                                Undocumented

                                ","parent_name":"SDLECallConfirmationStatus"},"Classes/SDLECallConfirmationStatus.html#/c:objc(cs)SDLECallConfirmationStatus(cm)NORMAL":{"name":"+NORMAL","abstract":"

                                No E-Call signal triggered.

                                ","parent_name":"SDLECallConfirmationStatus"},"Classes/SDLECallConfirmationStatus.html#/c:objc(cs)SDLECallConfirmationStatus(cm)CALL_IN_PROGRESS":{"name":"+CALL_IN_PROGRESS","abstract":"

                                An E-Call is being in progress.

                                ","parent_name":"SDLECallConfirmationStatus"},"Classes/SDLECallConfirmationStatus.html#/c:objc(cs)SDLECallConfirmationStatus(cm)CALL_CANCELLED":{"name":"+CALL_CANCELLED","abstract":"

                                CALL_CANCELLED An E-Call was cancelled by the user.

                                ","parent_name":"SDLECallConfirmationStatus"},"Classes/SDLECallConfirmationStatus.html#/c:objc(cs)SDLECallConfirmationStatus(cm)CALL_COMPLETED":{"name":"+CALL_COMPLETED","abstract":"

                                The E-Call sequence is completed.

                                ","parent_name":"SDLECallConfirmationStatus"},"Classes/SDLECallConfirmationStatus.html#/c:objc(cs)SDLECallConfirmationStatus(cm)CALL_UNSUCCESSFUL":{"name":"+CALL_UNSUCCESSFUL","abstract":"

                                An E-Call could not be connected.

                                ","parent_name":"SDLECallConfirmationStatus"},"Classes/SDLECallConfirmationStatus.html#/c:objc(cs)SDLECallConfirmationStatus(cm)ECALL_CONFIGURED_OFF":{"name":"+ECALL_CONFIGURED_OFF","abstract":"

                                E-Call is not configured on this vehicle.

                                ","parent_name":"SDLECallConfirmationStatus"},"Classes/SDLECallConfirmationStatus.html#/c:objc(cs)SDLECallConfirmationStatus(cm)CALL_COMPLETE_DTMF_TIMEOUT":{"name":"+CALL_COMPLETE_DTMF_TIMEOUT","abstract":"

                                E-Call is considered to be complete without Emergency Operator contact.

                                ","parent_name":"SDLECallConfirmationStatus"},"Classes/SDLDriverDistractionState.html#/c:objc(cs)SDLDriverDistractionState(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLDisplayType

                                ","parent_name":"SDLDriverDistractionState"},"Classes/SDLDriverDistractionState.html#/c:objc(cs)SDLDriverDistractionState(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLDriverDistractionState

                                ","parent_name":"SDLDriverDistractionState"},"Classes/SDLDriverDistractionState.html#/c:objc(cs)SDLDriverDistractionState(cm)DD_ON":{"name":"+DD_ON","abstract":"

                                @abstract Driver distraction rules are in effect.

                                ","parent_name":"SDLDriverDistractionState"},"Classes/SDLDriverDistractionState.html#/c:objc(cs)SDLDriverDistractionState(cm)DD_OFF":{"name":"+DD_OFF","abstract":"

                                @abstract Driver distraction rules are NOT in effect.

                                ","parent_name":"SDLDriverDistractionState"},"Classes/SDLDisplayType.html#/c:objc(cs)SDLDisplayType(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLDisplayType

                                ","parent_name":"SDLDisplayType"},"Classes/SDLDisplayType.html#/c:objc(cs)SDLDisplayType(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLDisplayType

                                ","parent_name":"SDLDisplayType"},"Classes/SDLDisplayType.html#/c:objc(cs)SDLDisplayType(cm)CID":{"name":"+CID","abstract":"

                                @abstract This display type provides a 2-line x 20 character dot matrix display.

                                ","parent_name":"SDLDisplayType"},"Classes/SDLDisplayType.html#/c:objc(cs)SDLDisplayType(cm)TYPE2":{"name":"+TYPE2","abstract":"

                                Undocumented

                                ","parent_name":"SDLDisplayType"},"Classes/SDLDisplayType.html#/c:objc(cs)SDLDisplayType(cm)TYPE5":{"name":"+TYPE5","abstract":"

                                Undocumented

                                ","parent_name":"SDLDisplayType"},"Classes/SDLDisplayType.html#/c:objc(cs)SDLDisplayType(cm)NGN":{"name":"+NGN","abstract":"

                                @abstract This display type provides an 8 inch touchscreen display.

                                ","parent_name":"SDLDisplayType"},"Classes/SDLDisplayType.html#/c:objc(cs)SDLDisplayType(cm)GEN2_8_DMA":{"name":"+GEN2_8_DMA","abstract":"

                                Undocumented

                                ","parent_name":"SDLDisplayType"},"Classes/SDLDisplayType.html#/c:objc(cs)SDLDisplayType(cm)GEN2_6_DMA":{"name":"+GEN2_6_DMA","abstract":"

                                Undocumented

                                ","parent_name":"SDLDisplayType"},"Classes/SDLDisplayType.html#/c:objc(cs)SDLDisplayType(cm)MFD3":{"name":"+MFD3","abstract":"

                                Undocumented

                                ","parent_name":"SDLDisplayType"},"Classes/SDLDisplayType.html#/c:objc(cs)SDLDisplayType(cm)MFD4":{"name":"+MFD4","abstract":"

                                Undocumented

                                ","parent_name":"SDLDisplayType"},"Classes/SDLDisplayType.html#/c:objc(cs)SDLDisplayType(cm)MFD5":{"name":"+MFD5","abstract":"

                                Undocumented

                                ","parent_name":"SDLDisplayType"},"Classes/SDLDisplayType.html#/c:objc(cs)SDLDisplayType(cm)GEN3_8_INCH":{"name":"+GEN3_8_INCH","abstract":"

                                Undocumented

                                ","parent_name":"SDLDisplayType"},"Classes/SDLDisplayType.html#/c:objc(cs)SDLDisplayType(cm)GENERIC":{"name":"+GENERIC","abstract":"

                                Undocumented

                                ","parent_name":"SDLDisplayType"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(im)init":{"name":"-init","abstract":"

                                Constructs a newly allocated SDLDisplayCapabilities object

                                ","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a newly allocated SDLDisplayCapabilities object indicated by the dictionary parameter

                                ","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)displayType":{"name":"displayType","abstract":"

                                @abstract The type of display

                                ","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)textFields":{"name":"textFields","abstract":"

                                @abstract An array of SDLTextField structures, each of which describes a field in the HMI which the application can write to using operations such as SDLShow, SDLSetMediaClockTimer, etc.

                                ","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)imageFields":{"name":"imageFields","abstract":"

                                @abstract An array of SDLImageField elements

                                ","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)mediaClockFormats":{"name":"mediaClockFormats","abstract":"

                                @abstract An array of SDLMediaClockFormat elements, defining the valid string formats used in specifying the contents of the media clock field

                                ","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)graphicSupported":{"name":"graphicSupported","abstract":"

                                @abstract The display’s persistent screen supports.

                                ","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)templatesAvailable":{"name":"templatesAvailable","abstract":"

                                @abstract Number of presets the screen supports

                                ","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)screenParams":{"name":"screenParams","abstract":"

                                @abstract A set of all parameters related to a prescribed screen area (e.g. for video / touch input)

                                ","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)numCustomPresetsAvailable":{"name":"numCustomPresetsAvailable","abstract":"

                                @abstract The number of on-screen custom presets available (if any); otherwise omitted

                                ","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDimension.html#/c:objc(cs)SDLDimension(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to SDLDimension

                                ","parent_name":"SDLDimension"},"Classes/SDLDimension.html#/c:objc(cs)SDLDimension(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLDimension

                                ","parent_name":"SDLDimension"},"Classes/SDLDimension.html#/c:objc(cs)SDLDimension(cm)NO_FIX":{"name":"+NO_FIX","abstract":"

                                @abstract No GPS at all

                                ","parent_name":"SDLDimension"},"Classes/SDLDimension.html#/c:objc(cs)SDLDimension(cm)_2D":{"name":"+_2D","abstract":"

                                @abstract Longitude and latitude of the GPS

                                ","parent_name":"SDLDimension"},"Classes/SDLDimension.html#/c:objc(cs)SDLDimension(cm)_3D":{"name":"+_3D","abstract":"

                                @abstract Longitude and latitude and altitude of the GPS

                                ","parent_name":"SDLDimension"},"Classes/SDLDialNumberResponse.html#/c:objc(cs)SDLDialNumberResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLDialNumberResponse"},"Classes/SDLDialNumberResponse.html#/c:objc(cs)SDLDialNumberResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDialNumberResponse"},"Classes/SDLDialNumber.html#/c:objc(cs)SDLDialNumber(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLDialNumber"},"Classes/SDLDialNumber.html#/c:objc(cs)SDLDialNumber(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDialNumber"},"Classes/SDLDialNumber.html#/c:objc(cs)SDLDialNumber(im)initWithNumber:":{"name":"-initWithNumber:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDialNumber"},"Classes/SDLDialNumber.html#/c:objc(cs)SDLDialNumber(py)number":{"name":"number","abstract":"

                                Up to 40 character string representing the phone number. All characters stripped except for ‘0’-'9’, ’*’, ’#’, ’,’, ’;’, and ’+’

                                ","parent_name":"SDLDialNumber"},"Classes/SDLDiagnosticMessageResponse.html#/c:objc(cs)SDLDiagnosticMessageResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLDiagnosticMessageResponse"},"Classes/SDLDiagnosticMessageResponse.html#/c:objc(cs)SDLDiagnosticMessageResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDiagnosticMessageResponse"},"Classes/SDLDiagnosticMessageResponse.html#/c:objc(cs)SDLDiagnosticMessageResponse(py)messageDataResult":{"name":"messageDataResult","abstract":"

                                Undocumented

                                ","parent_name":"SDLDiagnosticMessageResponse"},"Classes/SDLDiagnosticMessage.html#/c:objc(cs)SDLDiagnosticMessage(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLDiagnosticMessage"},"Classes/SDLDiagnosticMessage.html#/c:objc(cs)SDLDiagnosticMessage(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDiagnosticMessage"},"Classes/SDLDiagnosticMessage.html#/c:objc(cs)SDLDiagnosticMessage(im)initWithTargetId:length:data:":{"name":"-initWithTargetId:length:data:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDiagnosticMessage"},"Classes/SDLDiagnosticMessage.html#/c:objc(cs)SDLDiagnosticMessage(py)targetID":{"name":"targetID","abstract":"

                                Name of target ECU

                                ","parent_name":"SDLDiagnosticMessage"},"Classes/SDLDiagnosticMessage.html#/c:objc(cs)SDLDiagnosticMessage(py)messageLength":{"name":"messageLength","abstract":"

                                Length of message (in bytes)

                                ","parent_name":"SDLDiagnosticMessage"},"Classes/SDLDiagnosticMessage.html#/c:objc(cs)SDLDiagnosticMessage(py)messageData":{"name":"messageData","abstract":"

                                Array of bytes comprising CAN message.

                                ","parent_name":"SDLDiagnosticMessage"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(im)init":{"name":"-init","abstract":"

                                Constructs a newly allocated SDLDeviceStatus object

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a newly allocated SDLDeviceStatus object indicated by the dictionary parameter

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)voiceRecOn":{"name":"voiceRecOn","abstract":"

                                @abstract Indicates whether the voice recognition is on or off

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)btIconOn":{"name":"btIconOn","abstract":"

                                @abstract Indicates whether the bluetooth connection established

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)callActive":{"name":"callActive","abstract":"

                                @abstract Indicates whether a call is being active

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)phoneRoaming":{"name":"phoneRoaming","abstract":"

                                @abstract Indicates whether the phone is in roaming mode

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)textMsgAvailable":{"name":"textMsgAvailable","abstract":"

                                @abstract Indicates whether a textmessage is available

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)battLevelStatus":{"name":"battLevelStatus","abstract":"

                                @abstract Battery level status

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)stereoAudioOutputMuted":{"name":"stereoAudioOutputMuted","abstract":"

                                @abstract The status of the stereo audio output channel

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)monoAudioOutputMuted":{"name":"monoAudioOutputMuted","abstract":"

                                @abstract The status of the mono audio output channel

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)signalLevelStatus":{"name":"signalLevelStatus","abstract":"

                                @abstract Signal level status

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)primaryAudioSource":{"name":"primaryAudioSource","abstract":"

                                @abstract The current primary audio source of SDL (if selected).

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)eCallEventActive":{"name":"eCallEventActive","abstract":"

                                @abstract Indicates if an emergency call is active

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceLevelStatus.html#/c:objc(cs)SDLDeviceLevelStatus(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Convert String to DeviceLevelStatus

                                ","parent_name":"SDLDeviceLevelStatus"},"Classes/SDLDeviceLevelStatus.html#/c:objc(cs)SDLDeviceLevelStatus(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLDeviceLevelStatus

                                ","parent_name":"SDLDeviceLevelStatus"},"Classes/SDLDeviceLevelStatus.html#/c:objc(cs)SDLDeviceLevelStatus(cm)ZERO_LEVEL_BARS":{"name":"+ZERO_LEVEL_BARS","abstract":"

                                @abstract Device battery level is zero bars

                                ","parent_name":"SDLDeviceLevelStatus"},"Classes/SDLDeviceLevelStatus.html#/c:objc(cs)SDLDeviceLevelStatus(cm)ONE_LEVEL_BARS":{"name":"+ONE_LEVEL_BARS","abstract":"

                                @abstract Device battery level is one bar

                                ","parent_name":"SDLDeviceLevelStatus"},"Classes/SDLDeviceLevelStatus.html#/c:objc(cs)SDLDeviceLevelStatus(cm)TWO_LEVEL_BARS":{"name":"+TWO_LEVEL_BARS","abstract":"

                                @abstract Device battery level is two bars

                                ","parent_name":"SDLDeviceLevelStatus"},"Classes/SDLDeviceLevelStatus.html#/c:objc(cs)SDLDeviceLevelStatus(cm)THREE_LEVEL_BARS":{"name":"+THREE_LEVEL_BARS","abstract":"

                                @abstract Device battery level is three bars

                                ","parent_name":"SDLDeviceLevelStatus"},"Classes/SDLDeviceLevelStatus.html#/c:objc(cs)SDLDeviceLevelStatus(cm)FOUR_LEVEL_BARS":{"name":"+FOUR_LEVEL_BARS","abstract":"

                                @abstract Device battery level is four bars

                                ","parent_name":"SDLDeviceLevelStatus"},"Classes/SDLDeviceLevelStatus.html#/c:objc(cs)SDLDeviceLevelStatus(cm)NOT_PROVIDED":{"name":"+NOT_PROVIDED","abstract":"

                                @abstract Device battery level is unknown

                                ","parent_name":"SDLDeviceLevelStatus"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(cm)currentDevice":{"name":"+currentDevice","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)hardware":{"name":"hardware","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)firmwareRev":{"name":"firmwareRev","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)os":{"name":"os","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)osVersion":{"name":"osVersion","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)carrier":{"name":"carrier","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)maxNumberRFCOMMPorts":{"name":"maxNumberRFCOMMPorts","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeviceInfo"},"Classes/SDLDeliveryMode.html#/c:objc(cs)SDLDeliveryMode(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract Convert String to SDLDeliveryMode

                                ","parent_name":"SDLDeliveryMode"},"Classes/SDLDeliveryMode.html#/c:objc(cs)SDLDeliveryMode(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLDeliveryMode

                                ","parent_name":"SDLDeliveryMode"},"Classes/SDLDeliveryMode.html#/c:objc(cs)SDLDeliveryMode(cm)PROMPT":{"name":"+PROMPT","abstract":"

                                @abstract User is prompted on HMI

                                ","parent_name":"SDLDeliveryMode"},"Classes/SDLDeliveryMode.html#/c:objc(cs)SDLDeliveryMode(cm)DESTINATION":{"name":"+DESTINATION","abstract":"

                                @abstract Set the location as destination without prompting the user

                                ","parent_name":"SDLDeliveryMode"},"Classes/SDLDeliveryMode.html#/c:objc(cs)SDLDeliveryMode(cm)QUEUE":{"name":"+QUEUE","abstract":"

                                @abstract Adds the current location to navigation queue

                                ","parent_name":"SDLDeliveryMode"},"Classes/SDLDeleteSubMenuResponse.html#/c:objc(cs)SDLDeleteSubMenuResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeleteSubMenuResponse"},"Classes/SDLDeleteSubMenuResponse.html#/c:objc(cs)SDLDeleteSubMenuResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeleteSubMenuResponse"},"Classes/SDLDeleteSubMenu.html#/c:objc(cs)SDLDeleteSubMenu(im)init":{"name":"-init","abstract":"

                                Constructs a new SDLDeleteSubMenu object

                                ","parent_name":"SDLDeleteSubMenu"},"Classes/SDLDeleteSubMenu.html#/c:objc(cs)SDLDeleteSubMenu(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a new SDLDeleteSubMenu object indicated by the dictionary parameter

                                ","parent_name":"SDLDeleteSubMenu"},"Classes/SDLDeleteSubMenu.html#/c:objc(cs)SDLDeleteSubMenu(im)initWithId:":{"name":"-initWithId:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeleteSubMenu"},"Classes/SDLDeleteSubMenu.html#/c:objc(cs)SDLDeleteSubMenu(py)menuID":{"name":"menuID","abstract":"

                                @abstract the MenuID that identifies the SDLSubMenu to be delete","parent_name":"SDLDeleteSubMenu"},"Classes/SDLDeleteInteractionChoiceSetResponse.html#/c:objc(cs)SDLDeleteInteractionChoiceSetResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeleteInteractionChoiceSetResponse"},"Classes/SDLDeleteInteractionChoiceSetResponse.html#/c:objc(cs)SDLDeleteInteractionChoiceSetResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeleteInteractionChoiceSetResponse"},"Classes/SDLDeleteInteractionChoiceSet.html#/c:objc(cs)SDLDeleteInteractionChoiceSet(im)init":{"name":"-init","abstract":"

                                Constructs a new SDLDeleteInteractionChoiceSet object

                                ","parent_name":"SDLDeleteInteractionChoiceSet"},"Classes/SDLDeleteInteractionChoiceSet.html#/c:objc(cs)SDLDeleteInteractionChoiceSet(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a new SDLDeleteInteractionChoiceSet object indicated by the","parent_name":"SDLDeleteInteractionChoiceSet"},"Classes/SDLDeleteInteractionChoiceSet.html#/c:objc(cs)SDLDeleteInteractionChoiceSet(im)initWithId:":{"name":"-initWithId:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeleteInteractionChoiceSet"},"Classes/SDLDeleteInteractionChoiceSet.html#/c:objc(cs)SDLDeleteInteractionChoiceSet(py)interactionChoiceSetID":{"name":"interactionChoiceSetID","abstract":"

                                @abstract a unique ID that identifies the Choice Set","parent_name":"SDLDeleteInteractionChoiceSet"},"Classes/SDLDeleteFileResponse.html#/c:objc(cs)SDLDeleteFileResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeleteFileResponse"},"Classes/SDLDeleteFileResponse.html#/c:objc(cs)SDLDeleteFileResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeleteFileResponse"},"Classes/SDLDeleteFileResponse.html#/c:objc(cs)SDLDeleteFileResponse(py)spaceAvailable":{"name":"spaceAvailable","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeleteFileResponse"},"Classes/SDLDeleteFile.html#/c:objc(cs)SDLDeleteFile(im)init":{"name":"-init","abstract":"

                                Constructs a new SDLDeleteFile object

                                ","parent_name":"SDLDeleteFile"},"Classes/SDLDeleteFile.html#/c:objc(cs)SDLDeleteFile(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a new SDLDeleteFile object indicated by the dictionary parameter","parent_name":"SDLDeleteFile"},"Classes/SDLDeleteFile.html#/c:objc(cs)SDLDeleteFile(im)initWithFileName:":{"name":"-initWithFileName:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeleteFile"},"Classes/SDLDeleteFile.html#/c:objc(cs)SDLDeleteFile(py)syncFileName":{"name":"syncFileName","abstract":"

                                @abstract a file reference name","parent_name":"SDLDeleteFile"},"Classes/SDLDeleteCommandResponse.html#/c:objc(cs)SDLDeleteCommandResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeleteCommandResponse"},"Classes/SDLDeleteCommandResponse.html#/c:objc(cs)SDLDeleteCommandResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeleteCommandResponse"},"Classes/SDLDeleteCommand.html#/c:objc(cs)SDLDeleteCommand(im)init":{"name":"-init","abstract":"

                                Constructs a new SDLDeleteCommand object

                                ","parent_name":"SDLDeleteCommand"},"Classes/SDLDeleteCommand.html#/c:objc(cs)SDLDeleteCommand(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a new SDLDeleteCommand object indicated by the NSMutableDictionary","parent_name":"SDLDeleteCommand"},"Classes/SDLDeleteCommand.html#/c:objc(cs)SDLDeleteCommand(im)initWithId:":{"name":"-initWithId:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeleteCommand"},"Classes/SDLDeleteCommand.html#/c:objc(cs)SDLDeleteCommand(py)cmdID":{"name":"cmdID","abstract":"

                                @abstract the Command ID that identifies the Command to be deleted from Command Menu","parent_name":"SDLDeleteCommand"},"Classes/SDLDebugTool.html#/c:objc(cs)SDLDebugTool(cm)enable":{"name":"+enable","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugTool"},"Classes/SDLDebugTool.html#/c:objc(cs)SDLDebugTool(cm)disable":{"name":"+disable","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugTool"},"Classes/SDLDebugTool.html#/c:objc(cs)SDLDebugTool(cm)addConsole:":{"name":"+addConsole:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugTool"},"Classes/SDLDebugTool.html#/c:objc(cs)SDLDebugTool(cm)addConsole:toGroup:":{"name":"+addConsole:toGroup:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugTool"},"Classes/SDLDebugTool.html#/c:objc(cs)SDLDebugTool(cm)removeConsole:":{"name":"+removeConsole:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugTool"},"Classes/SDLDebugTool.html#/c:objc(cs)SDLDebugTool(cm)removeConsole:fromGroup:":{"name":"+removeConsole:fromGroup:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugTool"},"Classes/SDLDebugTool.html#/c:objc(cs)SDLDebugTool(cm)logInfo:":{"name":"+logInfo:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugTool"},"Classes/SDLDebugTool.html#/c:objc(cs)SDLDebugTool(cm)logFormat:":{"name":"+logFormat:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugTool"},"Classes/SDLDebugTool.html#/c:objc(cs)SDLDebugTool(cm)logInfo:withType:":{"name":"+logInfo:withType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugTool"},"Classes/SDLDebugTool.html#/c:objc(cs)SDLDebugTool(cm)logInfo:withType:toOutput:":{"name":"+logInfo:withType:toOutput:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugTool"},"Classes/SDLDebugTool.html#/c:objc(cs)SDLDebugTool(cm)logInfo:andBinaryData:withType:toOutput:":{"name":"+logInfo:andBinaryData:withType:toOutput:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugTool"},"Classes/SDLDebugTool.html#/c:objc(cs)SDLDebugTool(cm)logInfo:withType:toOutput:toGroup:":{"name":"+logInfo:withType:toOutput:toGroup:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugTool"},"Classes/SDLDebugTool.html#/c:objc(cs)SDLDebugTool(cm)enableDebugToLogFile":{"name":"+enableDebugToLogFile","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugTool"},"Classes/SDLDebugTool.html#/c:objc(cs)SDLDebugTool(cm)disableDebugToLogFile":{"name":"+disableDebugToLogFile","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugTool"},"Classes/SDLDebugTool.html#/c:objc(cs)SDLDebugTool(cm)writeToLogFile:":{"name":"+writeToLogFile:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugTool"},"Classes/SDLDebugTool.html#/c:objc(cs)SDLDebugTool(cm)stringForDebugType:":{"name":"+stringForDebugType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDebugTool"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(im)initWithHour:minute:":{"name":"-initWithHour:minute:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(im)initWithHour:minute:second:millisecond:":{"name":"-initWithHour:minute:second:millisecond:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)millisecond":{"name":"millisecond","abstract":"

                                @abstract Milliseconds part of time

                                ","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)second":{"name":"second","abstract":"

                                @abstract Seconds part of time

                                ","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)minute":{"name":"minute","abstract":"

                                @abstract Minutes part of time

                                ","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)hour":{"name":"hour","abstract":"

                                @abstract Hour part of time

                                ","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)day":{"name":"day","abstract":"

                                @abstract Day of the month

                                ","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)month":{"name":"month","abstract":"

                                @abstract Month of the year

                                ","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)year":{"name":"year","abstract":"

                                @abstract The year in YYYY format

                                ","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)timezoneMinuteOffset":{"name":"timezoneMinuteOffset","abstract":"

                                @abstract Time zone offset in Min with regard to UTC

                                ","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)timezoneHourOffset":{"name":"timezoneHourOffset","abstract":"

                                @abstract Time zone offset in Hours with regard to UTC

                                ","parent_name":"SDLDateTime"},"Classes/SDLDIDResult.html#/c:objc(cs)SDLDIDResult(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLDIDResult"},"Classes/SDLDIDResult.html#/c:objc(cs)SDLDIDResult(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDIDResult"},"Classes/SDLDIDResult.html#/c:objc(cs)SDLDIDResult(py)resultCode":{"name":"resultCode","abstract":"

                                Undocumented

                                ","parent_name":"SDLDIDResult"},"Classes/SDLDIDResult.html#/c:objc(cs)SDLDIDResult(py)didLocation":{"name":"didLocation","abstract":"

                                Undocumented

                                ","parent_name":"SDLDIDResult"},"Classes/SDLDIDResult.html#/c:objc(cs)SDLDIDResult(py)data":{"name":"data","abstract":"

                                Undocumented

                                ","parent_name":"SDLDIDResult"},"Classes/SDLCreateInteractionChoiceSetResponse.html#/c:objc(cs)SDLCreateInteractionChoiceSetResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLCreateInteractionChoiceSetResponse"},"Classes/SDLCreateInteractionChoiceSetResponse.html#/c:objc(cs)SDLCreateInteractionChoiceSetResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLCreateInteractionChoiceSetResponse"},"Classes/SDLCreateInteractionChoiceSet.html#/c:objc(cs)SDLCreateInteractionChoiceSet(im)init":{"name":"-init","abstract":"

                                Constructs a new SDLCreateInteractionChoiceSet object

                                ","parent_name":"SDLCreateInteractionChoiceSet"},"Classes/SDLCreateInteractionChoiceSet.html#/c:objc(cs)SDLCreateInteractionChoiceSet(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a new SDLCreateInteractionChoiceSet object indicated by the dictionary parameter

                                ","parent_name":"SDLCreateInteractionChoiceSet"},"Classes/SDLCreateInteractionChoiceSet.html#/c:objc(cs)SDLCreateInteractionChoiceSet(im)initWithId:choiceSet:":{"name":"-initWithId:choiceSet:","abstract":"

                                Undocumented

                                ","parent_name":"SDLCreateInteractionChoiceSet"},"Classes/SDLCreateInteractionChoiceSet.html#/c:objc(cs)SDLCreateInteractionChoiceSet(py)interactionChoiceSetID":{"name":"interactionChoiceSetID","abstract":"

                                @abstract A unique ID that identifies the Choice Set

                                ","parent_name":"SDLCreateInteractionChoiceSet"},"Classes/SDLCreateInteractionChoiceSet.html#/c:objc(cs)SDLCreateInteractionChoiceSet(py)choiceSet":{"name":"choiceSet","abstract":"

                                @abstract Array of choices, which the user can select by menu or voice recognition

                                ","parent_name":"SDLCreateInteractionChoiceSet"},"Classes/SDLConsoleController.html#/c:objc(cs)SDLConsoleController@messageList":{"name":"messageList","abstract":"

                                Undocumented

                                ","parent_name":"SDLConsoleController"},"Classes/SDLConsoleController.html#/c:objc(cs)SDLConsoleController@atBottom":{"name":"atBottom","abstract":"

                                Undocumented

                                ","parent_name":"SDLConsoleController"},"Classes/SDLConsoleController.html#/c:objc(cs)SDLConsoleController@dateFormatter":{"name":"dateFormatter","abstract":"

                                Undocumented

                                ","parent_name":"SDLConsoleController"},"Classes/SDLConsoleController.html#/c:objc(cs)SDLConsoleController(py)messageList":{"name":"messageList","abstract":"

                                Undocumented

                                ","parent_name":"SDLConsoleController"},"Classes/SDLConsoleController.html#/c:objc(cs)SDLConsoleController(im)initWithTableView:":{"name":"-initWithTableView:","abstract":"

                                Undocumented

                                ","parent_name":"SDLConsoleController"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(py)lifecycleConfig":{"name":"lifecycleConfig","abstract":"

                                The lifecycle configuration.

                                ","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(py)lockScreenConfig":{"name":"lockScreenConfig","abstract":"

                                The lock screen configuration.

                                ","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(im)initWithLifecycle:lockScreen:":{"name":"-initWithLifecycle:lockScreen:","abstract":"

                                Create a new configuration to be passed into SDLManager.

                                ","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(cm)configurationWithLifecycle:lockScreen:":{"name":"+configurationWithLifecycle:lockScreen:","abstract":"

                                Create a new configuration to be passed into SDLManager.

                                ","parent_name":"SDLConfiguration"},"Classes/SDLComponentVolumeStatus.html#/c:objc(cs)SDLComponentVolumeStatus(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract Convert String to SDLComponentVolumeStatus

                                ","parent_name":"SDLComponentVolumeStatus"},"Classes/SDLComponentVolumeStatus.html#/c:objc(cs)SDLComponentVolumeStatus(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLComponentVolumeStatus

                                ","parent_name":"SDLComponentVolumeStatus"},"Classes/SDLComponentVolumeStatus.html#/c:objc(cs)SDLComponentVolumeStatus(cm)UNKNOWN":{"name":"+UNKNOWN","abstract":"

                                @abstract Unknown SDLComponentVolumeStatus

                                ","parent_name":"SDLComponentVolumeStatus"},"Classes/SDLComponentVolumeStatus.html#/c:objc(cs)SDLComponentVolumeStatus(cm)NORMAL":{"name":"+NORMAL","abstract":"

                                @abstract Normal SDLComponentVolumeStatus

                                ","parent_name":"SDLComponentVolumeStatus"},"Classes/SDLComponentVolumeStatus.html#/c:objc(cs)SDLComponentVolumeStatus(cm)LOW":{"name":"+LOW","abstract":"

                                @abstract Low SDLComponentVolumeStatus

                                ","parent_name":"SDLComponentVolumeStatus"},"Classes/SDLComponentVolumeStatus.html#/c:objc(cs)SDLComponentVolumeStatus(cm)FAULT":{"name":"+FAULT","abstract":"

                                @abstract Fault SDLComponentVolumeStatus

                                ","parent_name":"SDLComponentVolumeStatus"},"Classes/SDLComponentVolumeStatus.html#/c:objc(cs)SDLComponentVolumeStatus(cm)ALERT":{"name":"+ALERT","abstract":"

                                @abstract Alert SDLComponentVolumeStatus

                                ","parent_name":"SDLComponentVolumeStatus"},"Classes/SDLComponentVolumeStatus.html#/c:objc(cs)SDLComponentVolumeStatus(cm)NOT_SUPPORTED":{"name":"+NOT_SUPPORTED","abstract":"

                                @abstract Not supported SDLComponentVolumeStatus

                                ","parent_name":"SDLComponentVolumeStatus"},"Classes/SDLCompassDirection.html#/c:objc(cs)SDLCompassDirection(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract Convert String to SDLCompassDirection

                                ","parent_name":"SDLCompassDirection"},"Classes/SDLCompassDirection.html#/c:objc(cs)SDLCompassDirection(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLCompassDirection

                                ","parent_name":"SDLCompassDirection"},"Classes/SDLCompassDirection.html#/c:objc(cs)SDLCompassDirection(cm)NORTH":{"name":"+NORTH","abstract":"

                                @abstract Direction North

                                ","parent_name":"SDLCompassDirection"},"Classes/SDLCompassDirection.html#/c:objc(cs)SDLCompassDirection(cm)NORTHWEST":{"name":"+NORTHWEST","abstract":"

                                @abstract Direction Northwest

                                ","parent_name":"SDLCompassDirection"},"Classes/SDLCompassDirection.html#/c:objc(cs)SDLCompassDirection(cm)WEST":{"name":"+WEST","abstract":"

                                @abstract Direction West

                                ","parent_name":"SDLCompassDirection"},"Classes/SDLCompassDirection.html#/c:objc(cs)SDLCompassDirection(cm)SOUTHWEST":{"name":"+SOUTHWEST","abstract":"

                                @abstract Direction Southwest

                                ","parent_name":"SDLCompassDirection"},"Classes/SDLCompassDirection.html#/c:objc(cs)SDLCompassDirection(cm)SOUTH":{"name":"+SOUTH","abstract":"

                                @abstract Direction South

                                ","parent_name":"SDLCompassDirection"},"Classes/SDLCompassDirection.html#/c:objc(cs)SDLCompassDirection(cm)SOUTHEAST":{"name":"+SOUTHEAST","abstract":"

                                @abstract Direction Southeast

                                ","parent_name":"SDLCompassDirection"},"Classes/SDLCompassDirection.html#/c:objc(cs)SDLCompassDirection(cm)EAST":{"name":"+EAST","abstract":"

                                @abstract Direction East

                                ","parent_name":"SDLCompassDirection"},"Classes/SDLCompassDirection.html#/c:objc(cs)SDLCompassDirection(cm)NORTHEAST":{"name":"+NORTHEAST","abstract":"

                                @abstract Direction Northeast

                                ","parent_name":"SDLCompassDirection"},"Classes/SDLClusterModeStatus.html#/c:objc(cs)SDLClusterModeStatus(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLClusterModeStatus"},"Classes/SDLClusterModeStatus.html#/c:objc(cs)SDLClusterModeStatus(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLClusterModeStatus"},"Classes/SDLClusterModeStatus.html#/c:objc(cs)SDLClusterModeStatus(py)powerModeActive":{"name":"powerModeActive","abstract":"

                                Undocumented

                                ","parent_name":"SDLClusterModeStatus"},"Classes/SDLClusterModeStatus.html#/c:objc(cs)SDLClusterModeStatus(py)powerModeQualificationStatus":{"name":"powerModeQualificationStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLClusterModeStatus"},"Classes/SDLClusterModeStatus.html#/c:objc(cs)SDLClusterModeStatus(py)carModeStatus":{"name":"carModeStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLClusterModeStatus"},"Classes/SDLClusterModeStatus.html#/c:objc(cs)SDLClusterModeStatus(py)powerModeStatus":{"name":"powerModeStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLClusterModeStatus"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(im)init":{"name":"-init","abstract":"

                                Constructs a newly allocated SDLChoice object

                                ","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a newly allocated SDLChoice object indicated by the dictionary parameter

                                ","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(im)initWithId:menuName:vrCommands:":{"name":"-initWithId:menuName:vrCommands:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)choiceID":{"name":"choiceID","abstract":"

                                @abstract the application-scoped identifier that uniquely identifies this choice

                                ","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)menuName":{"name":"menuName","abstract":"

                                @abstract Text which appears in menu, representing this choice

                                ","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)vrCommands":{"name":"vrCommands","abstract":"

                                @abstract VR synonyms for this choice

                                ","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)image":{"name":"image","abstract":"

                                @abstract The image of the choice

                                ","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)secondaryText":{"name":"secondaryText","abstract":"

                                @abstract Optional secondary text to display; e.g. address of POI in a search result entry

                                ","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)tertiaryText":{"name":"tertiaryText","abstract":"

                                @abstract Optional tertiary text to display; e.g. distance to POI for a search result entry

                                ","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)secondaryImage":{"name":"secondaryImage","abstract":"

                                @abstract Optional secondary image for choice

                                ","parent_name":"SDLChoice"},"Classes/SDLCharacterSet.html#/c:objc(cs)SDLCharacterSet(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract Convert String to SDLCharacterSet

                                ","parent_name":"SDLCharacterSet"},"Classes/SDLCharacterSet.html#/c:objc(cs)SDLCharacterSet(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLCharacterSet

                                ","parent_name":"SDLCharacterSet"},"Classes/SDLCharacterSet.html#/c:objc(cs)SDLCharacterSet(cm)TYPE2SET":{"name":"+TYPE2SET","abstract":"

                                Undocumented

                                ","parent_name":"SDLCharacterSet"},"Classes/SDLCharacterSet.html#/c:objc(cs)SDLCharacterSet(cm)TYPE5SET":{"name":"+TYPE5SET","abstract":"

                                Undocumented

                                ","parent_name":"SDLCharacterSet"},"Classes/SDLCharacterSet.html#/c:objc(cs)SDLCharacterSet(cm)CID1SET":{"name":"+CID1SET","abstract":"

                                Undocumented

                                ","parent_name":"SDLCharacterSet"},"Classes/SDLCharacterSet.html#/c:objc(cs)SDLCharacterSet(cm)CID2SET":{"name":"+CID2SET","abstract":"

                                Undocumented

                                ","parent_name":"SDLCharacterSet"},"Classes/SDLChangeRegistrationResponse.html#/c:objc(cs)SDLChangeRegistrationResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLChangeRegistrationResponse"},"Classes/SDLChangeRegistrationResponse.html#/c:objc(cs)SDLChangeRegistrationResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLChangeRegistrationResponse"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(im)init":{"name":"-init","abstract":"

                                Constructs a new SDLChangeRegistration object

                                ","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a new SDLChangeRegistration object indicated by the dictionary parameter

                                ","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(im)initWithLanguage:hmiDisplayLanguage:":{"name":"-initWithLanguage:hmiDisplayLanguage:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)language":{"name":"language","abstract":"

                                @abstract The language the app wants to change to

                                ","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)hmiDisplayLanguage":{"name":"hmiDisplayLanguage","abstract":"

                                @abstract HMI display language

                                ","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)appName":{"name":"appName","abstract":"

                                Request a new app name registration

                                ","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)ttsName":{"name":"ttsName","abstract":"

                                Request a new TTSName registration.

                                ","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)ngnMediaScreenAppName":{"name":"ngnMediaScreenAppName","abstract":"

                                Request a new app short name registration

                                ","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)vrSynonyms":{"name":"vrSynonyms","abstract":"

                                Request a new VR synonyms registration

                                ","parent_name":"SDLChangeRegistration"},"Classes/SDLCarModeStatus.html#/c:objc(cs)SDLCarModeStatus(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Undocumented

                                ","parent_name":"SDLCarModeStatus"},"Classes/SDLCarModeStatus.html#/c:objc(cs)SDLCarModeStatus(cm)values":{"name":"+values","abstract":"

                                Undocumented

                                ","parent_name":"SDLCarModeStatus"},"Classes/SDLCarModeStatus.html#/c:objc(cs)SDLCarModeStatus(cm)NORMAL":{"name":"+NORMAL","abstract":"

                                Provides carmode NORMAL to each module.

                                ","parent_name":"SDLCarModeStatus"},"Classes/SDLCarModeStatus.html#/c:objc(cs)SDLCarModeStatus(cm)FACTORY":{"name":"+FACTORY","abstract":"

                                Provides carmode FACTORY to each module.

                                ","parent_name":"SDLCarModeStatus"},"Classes/SDLCarModeStatus.html#/c:objc(cs)SDLCarModeStatus(cm)TRANSPORT":{"name":"+TRANSPORT","abstract":"

                                Provides carmode TRANSPORT to each module.

                                ","parent_name":"SDLCarModeStatus"},"Classes/SDLCarModeStatus.html#/c:objc(cs)SDLCarModeStatus(cm)CRASH":{"name":"+CRASH","abstract":"

                                Provides carmode CRASH to each module.

                                ","parent_name":"SDLCarModeStatus"},"Classes/SDLButtonPressMode.html#/c:objc(cs)SDLButtonPressMode(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract Convert String to SDLButtonPressMode

                                ","parent_name":"SDLButtonPressMode"},"Classes/SDLButtonPressMode.html#/c:objc(cs)SDLButtonPressMode(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLButtonPressMode

                                ","parent_name":"SDLButtonPressMode"},"Classes/SDLButtonPressMode.html#/c:objc(cs)SDLButtonPressMode(cm)LONG":{"name":"+LONG","abstract":"

                                @abstract A button was released, after it was pressed for a long time. Actual timing is defined by the head unit and may vary.

                                ","parent_name":"SDLButtonPressMode"},"Classes/SDLButtonPressMode.html#/c:objc(cs)SDLButtonPressMode(cm)SHORT":{"name":"+SHORT","abstract":"

                                @abstract A button was released, after it was pressed for a short time. Actual timing is defined by the head unit and may vary.

                                ","parent_name":"SDLButtonPressMode"},"Classes/SDLButtonName.html#/c:objc(cs)SDLButtonName(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract Convert String to SDLButtonName

                                ","parent_name":"SDLButtonName"},"Classes/SDLButtonName.html#/c:objc(cs)SDLButtonName(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLButtonName

                                ","parent_name":"SDLButtonName"},"Classes/SDLButtonName.html#/c:objc(cs)SDLButtonName(cm)OK":{"name":"+OK","abstract":"

                                @abstract Represents the button usually labeled OK. A typical use of this button is for the user to press it to make a selection.

                                ","parent_name":"SDLButtonName"},"Classes/SDLButtonName.html#/c:objc(cs)SDLButtonName(cm)SEEKLEFT":{"name":"+SEEKLEFT","abstract":"

                                @abstract 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.

                                ","parent_name":"SDLButtonName"},"Classes/SDLButtonName.html#/c:objc(cs)SDLButtonName(cm)SEEKRIGHT":{"name":"+SEEKRIGHT","abstract":"

                                @abstract 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.

                                ","parent_name":"SDLButtonName"},"Classes/SDLButtonName.html#/c:objc(cs)SDLButtonName(cm)TUNEUP":{"name":"+TUNEUP","abstract":"

                                @abstract Represents a turn of the tuner knob in the clockwise direction one tick.

                                ","parent_name":"SDLButtonName"},"Classes/SDLButtonName.html#/c:objc(cs)SDLButtonName(cm)TUNEDOWN":{"name":"+TUNEDOWN","abstract":"

                                @abstract Represents a turn of the tuner knob in the counter-clockwise direction one tick.

                                ","parent_name":"SDLButtonName"},"Classes/SDLButtonName.html#/c:objc(cs)SDLButtonName(cm)PRESET_0":{"name":"+PRESET_0","abstract":"

                                @abstract Represents the preset 0 button.

                                ","parent_name":"SDLButtonName"},"Classes/SDLButtonName.html#/c:objc(cs)SDLButtonName(cm)PRESET_1":{"name":"+PRESET_1","abstract":"

                                @abstract Represents the preset 1 button.

                                ","parent_name":"SDLButtonName"},"Classes/SDLButtonName.html#/c:objc(cs)SDLButtonName(cm)PRESET_2":{"name":"+PRESET_2","abstract":"

                                @abstract Represents the preset 2 button.

                                ","parent_name":"SDLButtonName"},"Classes/SDLButtonName.html#/c:objc(cs)SDLButtonName(cm)PRESET_3":{"name":"+PRESET_3","abstract":"

                                @abstract Represents the preset 3 button.

                                ","parent_name":"SDLButtonName"},"Classes/SDLButtonName.html#/c:objc(cs)SDLButtonName(cm)PRESET_4":{"name":"+PRESET_4","abstract":"

                                @abstract Represents the preset 4 button.

                                ","parent_name":"SDLButtonName"},"Classes/SDLButtonName.html#/c:objc(cs)SDLButtonName(cm)PRESET_5":{"name":"+PRESET_5","abstract":"

                                @abstract Represents the preset 5 button.

                                ","parent_name":"SDLButtonName"},"Classes/SDLButtonName.html#/c:objc(cs)SDLButtonName(cm)PRESET_6":{"name":"+PRESET_6","abstract":"

                                @abstract Represents the preset 6 button.

                                ","parent_name":"SDLButtonName"},"Classes/SDLButtonName.html#/c:objc(cs)SDLButtonName(cm)PRESET_7":{"name":"+PRESET_7","abstract":"

                                @abstract Represents the preset 7 button.

                                ","parent_name":"SDLButtonName"},"Classes/SDLButtonName.html#/c:objc(cs)SDLButtonName(cm)PRESET_8":{"name":"+PRESET_8","abstract":"

                                @abstract Represents the preset 8 button.

                                ","parent_name":"SDLButtonName"},"Classes/SDLButtonName.html#/c:objc(cs)SDLButtonName(cm)PRESET_9":{"name":"+PRESET_9","abstract":"

                                @abstract Represents the preset 9 button.

                                ","parent_name":"SDLButtonName"},"Classes/SDLButtonName.html#/c:objc(cs)SDLButtonName(cm)CUSTOM_BUTTON":{"name":"+CUSTOM_BUTTON","abstract":"

                                Undocumented

                                ","parent_name":"SDLButtonName"},"Classes/SDLButtonName.html#/c:objc(cs)SDLButtonName(cm)SEARCH":{"name":"+SEARCH","abstract":"

                                Undocumented

                                ","parent_name":"SDLButtonName"},"Classes/SDLButtonEventMode.html#/c:objc(cs)SDLButtonEventMode(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract Convert String to SDLButtonEventMode

                                ","parent_name":"SDLButtonEventMode"},"Classes/SDLButtonEventMode.html#/c:objc(cs)SDLButtonEventMode(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLButtonEventMode

                                ","parent_name":"SDLButtonEventMode"},"Classes/SDLButtonEventMode.html#/c:objc(cs)SDLButtonEventMode(cm)BUTTONUP":{"name":"+BUTTONUP","abstract":"

                                @abstract The button was released

                                ","parent_name":"SDLButtonEventMode"},"Classes/SDLButtonEventMode.html#/c:objc(cs)SDLButtonEventMode(cm)BUTTONDOWN":{"name":"+BUTTONDOWN","abstract":"

                                @abstract The button was depressed

                                ","parent_name":"SDLButtonEventMode"},"Classes/SDLButtonCapabilities.html#/c:objc(cs)SDLButtonCapabilities(im)init":{"name":"-init","abstract":"

                                Constructs a newly allocated SDLButtonCapabilities object

                                ","parent_name":"SDLButtonCapabilities"},"Classes/SDLButtonCapabilities.html#/c:objc(cs)SDLButtonCapabilities(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a newly allocated SDLButtonCapabilities object indicated by the Hashtable parameter

                                ","parent_name":"SDLButtonCapabilities"},"Classes/SDLButtonCapabilities.html#/c:objc(cs)SDLButtonCapabilities(py)name":{"name":"name","abstract":"

                                @abstract The name of the SDL HMI button.

                                ","parent_name":"SDLButtonCapabilities"},"Classes/SDLButtonCapabilities.html#/c:objc(cs)SDLButtonCapabilities(py)shortPressAvailable":{"name":"shortPressAvailable","abstract":"

                                @abstract A NSNumber value indicates whether the button supports a SHORT press

                                ","parent_name":"SDLButtonCapabilities"},"Classes/SDLButtonCapabilities.html#/c:objc(cs)SDLButtonCapabilities(py)longPressAvailable":{"name":"longPressAvailable","abstract":"

                                @abstract A NSNumber value indicates whether the button supports a LONG press

                                ","parent_name":"SDLButtonCapabilities"},"Classes/SDLButtonCapabilities.html#/c:objc(cs)SDLButtonCapabilities(py)upDownAvailable":{"name":"upDownAvailable","abstract":"

                                @abstract A NSNumber value indicates whether the button supports button down and button up

                                ","parent_name":"SDLButtonCapabilities"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(im)init":{"name":"-init","abstract":"

                                @abstract Constructs a new SDLBodyInformation object

                                ","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                @abstract Constructs a new SDLBodyInformation object indicated by the NSMutableDictionary","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)parkBrakeActive":{"name":"parkBrakeActive","abstract":"

                                @abstract References signal PrkBrkActv_B_Actl.

                                ","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)ignitionStableStatus":{"name":"ignitionStableStatus","abstract":"

                                @abstract References signal Ignition_Switch_Stable. See IgnitionStableStatus.

                                ","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)ignitionStatus":{"name":"ignitionStatus","abstract":"

                                @abstract References signal Ignition_status. See IgnitionStatus.

                                ","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)driverDoorAjar":{"name":"driverDoorAjar","abstract":"

                                @abstract References signal DrStatDrv_B_Actl.

                                ","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)passengerDoorAjar":{"name":"passengerDoorAjar","abstract":"

                                @abstract References signal DrStatPsngr_B_Actl.

                                ","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)rearLeftDoorAjar":{"name":"rearLeftDoorAjar","abstract":"

                                @abstract References signal DrStatRl_B_Actl.

                                ","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)rearRightDoorAjar":{"name":"rearRightDoorAjar","abstract":"

                                @abstract References signal DrStatRr_B_Actl.

                                ","parent_name":"SDLBodyInformation"},"Classes/SDLBitsPerSample.html#/c:objc(cs)SDLBitsPerSample(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract Convert String to SDLBitsPerSample

                                ","parent_name":"SDLBitsPerSample"},"Classes/SDLBitsPerSample.html#/c:objc(cs)SDLBitsPerSample(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLBitsPerSample

                                ","parent_name":"SDLBitsPerSample"},"Classes/SDLBitsPerSample.html#/c:objc(cs)SDLBitsPerSample(cm)_8_BIT":{"name":"+_8_BIT","abstract":"

                                @abstract 8 bits per sample

                                ","parent_name":"SDLBitsPerSample"},"Classes/SDLBitsPerSample.html#/c:objc(cs)SDLBitsPerSample(cm)_16_BIT":{"name":"+_16_BIT","abstract":"

                                @abstract 16 bits per sample

                                ","parent_name":"SDLBitsPerSample"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)driverBeltDeployed":{"name":"driverBeltDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)passengerBeltDeployed":{"name":"passengerBeltDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)passengerBuckleBelted":{"name":"passengerBuckleBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)driverBuckleBelted":{"name":"driverBuckleBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)leftRow2BuckleBelted":{"name":"leftRow2BuckleBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)passengerChildDetected":{"name":"passengerChildDetected","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)rightRow2BuckleBelted":{"name":"rightRow2BuckleBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)middleRow2BuckleBelted":{"name":"middleRow2BuckleBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)middleRow3BuckleBelted":{"name":"middleRow3BuckleBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)leftRow3BuckleBelted":{"name":"leftRow3BuckleBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)rightRow3BuckleBelted":{"name":"rightRow3BuckleBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)leftRearInflatableBelted":{"name":"leftRearInflatableBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)rightRearInflatableBelted":{"name":"rightRearInflatableBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)middleRow1BeltDeployed":{"name":"middleRow1BeltDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)middleRow1BuckleBelted":{"name":"middleRow1BuckleBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLAudioType.html#/c:objc(cs)SDLAudioType(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract Convert String to SDLAudioType

                                ","parent_name":"SDLAudioType"},"Classes/SDLAudioType.html#/c:objc(cs)SDLAudioType(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLAudioType

                                ","parent_name":"SDLAudioType"},"Classes/SDLAudioType.html#/c:objc(cs)SDLAudioType(cm)PCM":{"name":"+PCM","abstract":"

                                @abstract PCM raw audio

                                ","parent_name":"SDLAudioType"},"Classes/SDLAudioStreamingState.html#/c:objc(cs)SDLAudioStreamingState(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract Convert String to SDLAudioStreamingState

                                ","parent_name":"SDLAudioStreamingState"},"Classes/SDLAudioStreamingState.html#/c:objc(cs)SDLAudioStreamingState(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLAudioStreamingState

                                ","parent_name":"SDLAudioStreamingState"},"Classes/SDLAudioStreamingState.html#/c:objc(cs)SDLAudioStreamingState(cm)AUDIBLE":{"name":"+AUDIBLE","abstract":"

                                @abstract Currently streaming audio, if any, is audible to user.

                                ","parent_name":"SDLAudioStreamingState"},"Classes/SDLAudioStreamingState.html#/c:objc(cs)SDLAudioStreamingState(cm)ATTENUATED":{"name":"+ATTENUATED","abstract":"

                                @abstract Some kind of audio mixing is taking place. Currently streaming audio, if any, is audible to the user at a lowered volume.

                                ","parent_name":"SDLAudioStreamingState"},"Classes/SDLAudioStreamingState.html#/c:objc(cs)SDLAudioStreamingState(cm)NOT_AUDIBLE":{"name":"+NOT_AUDIBLE","abstract":"

                                @abstract Currently streaming audio, if any, is not audible to user. made via VR session.

                                ","parent_name":"SDLAudioStreamingState"},"Classes/SDLAudioPassThruCapabilities.html#/c:objc(cs)SDLAudioPassThruCapabilities(im)init":{"name":"-init","abstract":"

                                Constructs a newly allocated SDLAudioPassThruCapabilities object

                                ","parent_name":"SDLAudioPassThruCapabilities"},"Classes/SDLAudioPassThruCapabilities.html#/c:objc(cs)SDLAudioPassThruCapabilities(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a newly allocated SDLAudioPassThruCapabilities object indicated by the Hashtable parameter

                                ","parent_name":"SDLAudioPassThruCapabilities"},"Classes/SDLAudioPassThruCapabilities.html#/c:objc(cs)SDLAudioPassThruCapabilities(py)samplingRate":{"name":"samplingRate","abstract":"

                                @abstract The sampling rate for AudioPassThru

                                ","parent_name":"SDLAudioPassThruCapabilities"},"Classes/SDLAudioPassThruCapabilities.html#/c:objc(cs)SDLAudioPassThruCapabilities(py)bitsPerSample":{"name":"bitsPerSample","abstract":"

                                @abstract The sample depth in bit for AudioPassThru

                                ","parent_name":"SDLAudioPassThruCapabilities"},"Classes/SDLAudioPassThruCapabilities.html#/c:objc(cs)SDLAudioPassThruCapabilities(py)audioType":{"name":"audioType","abstract":"

                                @abstract The audiotype for AudioPassThru

                                ","parent_name":"SDLAudioPassThruCapabilities"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(cm)artworkWithImage:name:asImageFormat:":{"name":"+artworkWithImage:name:asImageFormat:","abstract":"

                                Convenience Helper to create an ephemeral artwork from an image.

                                ","parent_name":"SDLArtwork"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(cm)persistentArtworkWithImage:name:asImageFormat:":{"name":"+persistentArtworkWithImage:name:asImageFormat:","abstract":"

                                Convenience Helper to create a persistent artwork from an image.

                                ","parent_name":"SDLArtwork"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(im)initWithImage:name:persistent:asImageFormat:":{"name":"-initWithImage:name:persistent:asImageFormat:","abstract":"

                                Create a file for transmission to the remote system from a UIImage.

                                ","parent_name":"SDLArtwork"},"Classes/SDLAppInterfaceUnregisteredReason.html#/c:objc(cs)SDLAppInterfaceUnregisteredReason(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract Convert String to SDLAppInterfaceUnregisteredReason

                                ","parent_name":"SDLAppInterfaceUnregisteredReason"},"Classes/SDLAppInterfaceUnregisteredReason.html#/c:objc(cs)SDLAppInterfaceUnregisteredReason(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLAppInterfaceUnregisteredReason

                                ","parent_name":"SDLAppInterfaceUnregisteredReason"},"Classes/SDLAppInterfaceUnregisteredReason.html#/c:objc(cs)SDLAppInterfaceUnregisteredReason(cm)IGNITION_OFF":{"name":"+IGNITION_OFF","abstract":"

                                @abstract Vehicle ignition turned off.

                                ","parent_name":"SDLAppInterfaceUnregisteredReason"},"Classes/SDLAppInterfaceUnregisteredReason.html#/c:objc(cs)SDLAppInterfaceUnregisteredReason(cm)BLUETOOTH_OFF":{"name":"+BLUETOOTH_OFF","abstract":"

                                @abstract Bluetooth was turned off, causing termination of a necessary Bluetooth connection.

                                ","parent_name":"SDLAppInterfaceUnregisteredReason"},"Classes/SDLAppInterfaceUnregisteredReason.html#/c:objc(cs)SDLAppInterfaceUnregisteredReason(cm)USB_DISCONNECTED":{"name":"+USB_DISCONNECTED","abstract":"

                                @abstract USB was disconnected, causing termination of a necessary iAP connection.

                                ","parent_name":"SDLAppInterfaceUnregisteredReason"},"Classes/SDLAppInterfaceUnregisteredReason.html#/c:objc(cs)SDLAppInterfaceUnregisteredReason(cm)REQUEST_WHILE_IN_NONE_HMI_LEVEL":{"name":"+REQUEST_WHILE_IN_NONE_HMI_LEVEL","abstract":"

                                @abstract 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.

                                ","parent_name":"SDLAppInterfaceUnregisteredReason"},"Classes/SDLAppInterfaceUnregisteredReason.html#/c:objc(cs)SDLAppInterfaceUnregisteredReason(cm)TOO_MANY_REQUESTS":{"name":"+TOO_MANY_REQUESTS","abstract":"

                                @abstract Either too many – or too many per unit of time – requests were made by the application.

                                ","parent_name":"SDLAppInterfaceUnregisteredReason"},"Classes/SDLAppInterfaceUnregisteredReason.html#/c:objc(cs)SDLAppInterfaceUnregisteredReason(cm)DRIVER_DISTRACTION_VIOLATION":{"name":"+DRIVER_DISTRACTION_VIOLATION","abstract":"

                                @abstract The application has issued requests which cause driver distraction rules to be violated.

                                ","parent_name":"SDLAppInterfaceUnregisteredReason"},"Classes/SDLAppInterfaceUnregisteredReason.html#/c:objc(cs)SDLAppInterfaceUnregisteredReason(cm)LANGUAGE_CHANGE":{"name":"+LANGUAGE_CHANGE","abstract":"

                                @abstract The user performed a language change on the SDL platform, causing the application to need to be reregistered for the new language.

                                ","parent_name":"SDLAppInterfaceUnregisteredReason"},"Classes/SDLAppInterfaceUnregisteredReason.html#/c:objc(cs)SDLAppInterfaceUnregisteredReason(cm)MASTER_RESET":{"name":"+MASTER_RESET","abstract":"

                                @abstract The user performed a MASTER RESET on the SDL platform, causing removal of a necessary Bluetooth pairing.

                                ","parent_name":"SDLAppInterfaceUnregisteredReason"},"Classes/SDLAppInterfaceUnregisteredReason.html#/c:objc(cs)SDLAppInterfaceUnregisteredReason(cm)FACTORY_DEFAULTS":{"name":"+FACTORY_DEFAULTS","abstract":"

                                @abstract The user restored settings to FACTORY DEFAULTS on the SDL platform.

                                ","parent_name":"SDLAppInterfaceUnregisteredReason"},"Classes/SDLAppInterfaceUnregisteredReason.html#/c:objc(cs)SDLAppInterfaceUnregisteredReason(cm)APP_UNAUTHORIZED":{"name":"+APP_UNAUTHORIZED","abstract":"

                                @abstract The app is not being authorized to be connected to SDL.

                                ","parent_name":"SDLAppInterfaceUnregisteredReason"},"Classes/SDLAppInfo.html#/c:objc(cs)SDLAppInfo(cm)currentAppInfo":{"name":"+currentAppInfo","abstract":"

                                Undocumented

                                ","parent_name":"SDLAppInfo"},"Classes/SDLAppInfo.html#/c:objc(cs)SDLAppInfo(py)appDisplayName":{"name":"appDisplayName","abstract":"

                                Undocumented

                                ","parent_name":"SDLAppInfo"},"Classes/SDLAppInfo.html#/c:objc(cs)SDLAppInfo(py)appBundleID":{"name":"appBundleID","abstract":"

                                Undocumented

                                ","parent_name":"SDLAppInfo"},"Classes/SDLAppInfo.html#/c:objc(cs)SDLAppInfo(py)appVersion":{"name":"appVersion","abstract":"

                                Undocumented

                                ","parent_name":"SDLAppInfo"},"Classes/SDLAppHMIType.html#/c:objc(cs)SDLAppHMIType(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                @abstract Convert String to AppHMIType

                                ","parent_name":"SDLAppHMIType"},"Classes/SDLAppHMIType.html#/c:objc(cs)SDLAppHMIType(cm)values":{"name":"+values","abstract":"

                                @abstract Store the enumeration of all possible SDLAppHMIType

                                ","parent_name":"SDLAppHMIType"},"Classes/SDLAppHMIType.html#/c:objc(cs)SDLAppHMIType(cm)DEFAULT":{"name":"+DEFAULT","abstract":"

                                @abstract The App will have default rights.

                                ","parent_name":"SDLAppHMIType"},"Classes/SDLAppHMIType.html#/c:objc(cs)SDLAppHMIType(cm)COMMUNICATION":{"name":"+COMMUNICATION","abstract":"

                                @abstract Communication type of App

                                ","parent_name":"SDLAppHMIType"},"Classes/SDLAppHMIType.html#/c:objc(cs)SDLAppHMIType(cm)MEDIA":{"name":"+MEDIA","abstract":"

                                @abstract App dealing with Media

                                ","parent_name":"SDLAppHMIType"},"Classes/SDLAppHMIType.html#/c:objc(cs)SDLAppHMIType(cm)MESSAGING":{"name":"+MESSAGING","abstract":"

                                @abstract Messaging App

                                ","parent_name":"SDLAppHMIType"},"Classes/SDLAppHMIType.html#/c:objc(cs)SDLAppHMIType(cm)NAVIGATION":{"name":"+NAVIGATION","abstract":"

                                @abstract Navigation App

                                ","parent_name":"SDLAppHMIType"},"Classes/SDLAppHMIType.html#/c:objc(cs)SDLAppHMIType(cm)INFORMATION":{"name":"+INFORMATION","abstract":"

                                @abstract Information App

                                ","parent_name":"SDLAppHMIType"},"Classes/SDLAppHMIType.html#/c:objc(cs)SDLAppHMIType(cm)SOCIAL":{"name":"+SOCIAL","abstract":"

                                @abstract App dealing with social media

                                ","parent_name":"SDLAppHMIType"},"Classes/SDLAppHMIType.html#/c:objc(cs)SDLAppHMIType(cm)PROJECTION":{"name":"+PROJECTION","abstract":"

                                @abstract App dealing with Mobile Projection applications

                                ","parent_name":"SDLAppHMIType"},"Classes/SDLAppHMIType.html#/c:objc(cs)SDLAppHMIType(cm)BACKGROUND_PROCESS":{"name":"+BACKGROUND_PROCESS","abstract":"

                                Undocumented

                                ","parent_name":"SDLAppHMIType"},"Classes/SDLAppHMIType.html#/c:objc(cs)SDLAppHMIType(cm)TESTING":{"name":"+TESTING","abstract":"

                                @abstract App only for Testing purposes

                                ","parent_name":"SDLAppHMIType"},"Classes/SDLAppHMIType.html#/c:objc(cs)SDLAppHMIType(cm)SYSTEM":{"name":"+SYSTEM","abstract":"

                                @abstract System App

                                ","parent_name":"SDLAppHMIType"},"Classes/SDLAmbientLightStatus.html#/c:objc(cs)SDLAmbientLightStatus(cm)valueOf:":{"name":"+valueOf:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAmbientLightStatus"},"Classes/SDLAmbientLightStatus.html#/c:objc(cs)SDLAmbientLightStatus(cm)values":{"name":"+values","abstract":"

                                Undocumented

                                ","parent_name":"SDLAmbientLightStatus"},"Classes/SDLAmbientLightStatus.html#/c:objc(cs)SDLAmbientLightStatus(cm)NIGHT":{"name":"+NIGHT","abstract":"

                                Undocumented

                                ","parent_name":"SDLAmbientLightStatus"},"Classes/SDLAmbientLightStatus.html#/c:objc(cs)SDLAmbientLightStatus(cm)TWILIGHT_1":{"name":"+TWILIGHT_1","abstract":"

                                Undocumented

                                ","parent_name":"SDLAmbientLightStatus"},"Classes/SDLAmbientLightStatus.html#/c:objc(cs)SDLAmbientLightStatus(cm)TWILIGHT_2":{"name":"+TWILIGHT_2","abstract":"

                                Undocumented

                                ","parent_name":"SDLAmbientLightStatus"},"Classes/SDLAmbientLightStatus.html#/c:objc(cs)SDLAmbientLightStatus(cm)TWILIGHT_3":{"name":"+TWILIGHT_3","abstract":"

                                Undocumented

                                ","parent_name":"SDLAmbientLightStatus"},"Classes/SDLAmbientLightStatus.html#/c:objc(cs)SDLAmbientLightStatus(cm)TWILIGHT_4":{"name":"+TWILIGHT_4","abstract":"

                                Undocumented

                                ","parent_name":"SDLAmbientLightStatus"},"Classes/SDLAmbientLightStatus.html#/c:objc(cs)SDLAmbientLightStatus(cm)DAY":{"name":"+DAY","abstract":"

                                Undocumented

                                ","parent_name":"SDLAmbientLightStatus"},"Classes/SDLAmbientLightStatus.html#/c:objc(cs)SDLAmbientLightStatus(cm)UNKNOWN":{"name":"+UNKNOWN","abstract":"

                                Undocumented

                                ","parent_name":"SDLAmbientLightStatus"},"Classes/SDLAmbientLightStatus.html#/c:objc(cs)SDLAmbientLightStatus(cm)INVALID":{"name":"+INVALID","abstract":"

                                Undocumented

                                ","parent_name":"SDLAmbientLightStatus"},"Classes/SDLAlertResponse.html#/c:objc(cs)SDLAlertResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlertResponse"},"Classes/SDLAlertResponse.html#/c:objc(cs)SDLAlertResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlertResponse"},"Classes/SDLAlertResponse.html#/c:objc(cs)SDLAlertResponse(py)tryAgainTime":{"name":"tryAgainTime","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlertResponse"},"Classes/SDLAlertManeuverResponse.html#/c:objc(cs)SDLAlertManeuverResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlertManeuverResponse"},"Classes/SDLAlertManeuverResponse.html#/c:objc(cs)SDLAlertManeuverResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlertManeuverResponse"},"Classes/SDLAlertManeuver.html#/c:objc(cs)SDLAlertManeuver(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlertManeuver"},"Classes/SDLAlertManeuver.html#/c:objc(cs)SDLAlertManeuver(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlertManeuver"},"Classes/SDLAlertManeuver.html#/c:objc(cs)SDLAlertManeuver(im)initWithTTS:softButtons:":{"name":"-initWithTTS:softButtons:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlertManeuver"},"Classes/SDLAlertManeuver.html#/c:objc(cs)SDLAlertManeuver(im)initWithTTSChunks:softButtons:":{"name":"-initWithTTSChunks:softButtons:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlertManeuver"},"Classes/SDLAlertManeuver.html#/c:objc(cs)SDLAlertManeuver(py)ttsChunks":{"name":"ttsChunks","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlertManeuver"},"Classes/SDLAlertManeuver.html#/c:objc(cs)SDLAlertManeuver(py)softButtons":{"name":"softButtons","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlertManeuver"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)init":{"name":"-init","abstract":"

                                Constructs a new SDLAlert object

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a new SDLAlert object indicated by the dictionary parameter

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithAlertText1:alertText2:duration:":{"name":"-initWithAlertText1:alertText2:duration:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithAlertText1:alertText2:alertText3:":{"name":"-initWithAlertText1:alertText2:alertText3:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithAlertText1:alertText2:alertText3:duration:":{"name":"-initWithAlertText1:alertText2:alertText3:duration:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithAlertText1:alertText2:alertText3:duration:softButtons:":{"name":"-initWithAlertText1:alertText2:alertText3:duration:softButtons:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithTTS:playTone:":{"name":"-initWithTTS:playTone:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithTTS:alertText1:alertText2:playTone:duration:":{"name":"-initWithTTS:alertText1:alertText2:playTone:duration:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithTTSChunks:playTone:":{"name":"-initWithTTSChunks:playTone:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)alertText1":{"name":"alertText1","abstract":"

                                @abstract The String to be displayed in the first field of the display during the Alert

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)alertText2":{"name":"alertText2","abstract":"

                                @abstract The String to be displayed in the second field of the display during the Alert

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)alertText3":{"name":"alertText3","abstract":"

                                @abstract 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":"

                                @abstract An array which, taken together, specify what is to be spoken to the user

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)duration":{"name":"duration","abstract":"

                                @abstract The duration of the displayed portion of the alert, in milliseconds.

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)playTone":{"name":"playTone","abstract":"

                                @abstract Whether the alert tone should be played before the TTS (if any) is spoken.

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)progressIndicator":{"name":"progressIndicator","abstract":"

                                @abstract 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.

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)softButtons":{"name":"softButtons","abstract":"

                                @abstract App defined SoftButtons.

                                ","parent_name":"SDLAlert"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)driverAirbagDeployed":{"name":"driverAirbagDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)driverSideAirbagDeployed":{"name":"driverSideAirbagDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)driverCurtainAirbagDeployed":{"name":"driverCurtainAirbagDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)passengerAirbagDeployed":{"name":"passengerAirbagDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)passengerCurtainAirbagDeployed":{"name":"passengerCurtainAirbagDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)driverKneeAirbagDeployed":{"name":"driverKneeAirbagDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)passengerSideAirbagDeployed":{"name":"passengerSideAirbagDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)passengerKneeAirbagDeployed":{"name":"passengerKneeAirbagDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLAirbagStatus"},"Classes/SDLAddSubMenuResponse.html#/c:objc(cs)SDLAddSubMenuResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLAddSubMenuResponse"},"Classes/SDLAddSubMenuResponse.html#/c:objc(cs)SDLAddSubMenuResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAddSubMenuResponse"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(im)init":{"name":"-init","abstract":"

                                Constructs a new SDLAddSubMenu object

                                ","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a new SDLAddSubMenu object indicated by the dictionary parameter","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(im)initWithId:menuName:":{"name":"-initWithId:menuName:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(im)initWithId:menuName:position:":{"name":"-initWithId:menuName:position:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(py)menuID":{"name":"menuID","abstract":"

                                @abstract a Menu ID that identifies a sub menu","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(py)position":{"name":"position","abstract":"

                                @abstract a position of menu","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(py)menuName":{"name":"menuName","abstract":"

                                @abstract a menuName which is displayed representing this submenu item","parent_name":"SDLAddSubMenu"},"Classes/SDLAddCommandResponse.html#/c:objc(cs)SDLAddCommandResponse(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLAddCommandResponse"},"Classes/SDLAddCommandResponse.html#/c:objc(cs)SDLAddCommandResponse(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAddCommandResponse"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(im)init":{"name":"-init","abstract":"

                                Constructs a new SDLAddCommand object

                                ","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(im)initWithHandler:":{"name":"-initWithHandler:","abstract":"

                                Construct a SDLAddCommand with a handler callback when an event occurs.

                                ","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Constructs a new SDLAddCommand object indicated by the dictionary parameter

                                ","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(im)initWithId:vrCommands:handler:":{"name":"-initWithId:vrCommands:handler:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(im)initWithId:vrCommands:menuName:handler:":{"name":"-initWithId:vrCommands:menuName:handler:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(py)handler":{"name":"handler","abstract":"

                                A handler that will let you know when the button you created is subscribed.

                                ","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(py)cmdID":{"name":"cmdID","abstract":"

                                @abstract A Unique Command ID that identifies the command

                                ","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(py)menuParams":{"name":"menuParams","abstract":"

                                @abstract a SDLMenuParams pointer which will defined the command and how it is added to the Command Menu

                                ","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(py)vrCommands":{"name":"vrCommands","abstract":"

                                @abstract An array of strings to be used as VR synonyms for this command.

                                ","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(py)cmdIcon":{"name":"cmdIcon","abstract":"

                                @abstract Image struct containing a static or dynamic icon

                                ","parent_name":"SDLAddCommand"},"Classes/SDLAbstractTransport.html#/c:objc(cs)SDLAbstractTransport(py)delegate":{"name":"delegate","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractTransport"},"Classes/SDLAbstractTransport.html#/c:objc(cs)SDLAbstractTransport(py)debugConsoleGroupName":{"name":"debugConsoleGroupName","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractTransport"},"Classes/SDLAbstractTransport.html#/c:objc(cs)SDLAbstractTransport(im)connect":{"name":"-connect","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractTransport"},"Classes/SDLAbstractTransport.html#/c:objc(cs)SDLAbstractTransport(im)disconnect":{"name":"-disconnect","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractTransport"},"Classes/SDLAbstractTransport.html#/c:objc(cs)SDLAbstractTransport(im)sendData:":{"name":"-sendData:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractTransport"},"Classes/SDLAbstractTransport.html#/c:objc(cs)SDLAbstractTransport(im)dispose":{"name":"-dispose","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractTransport"},"Classes/SDLAbstractTransport.html#/c:objc(cs)SDLAbstractTransport(im)retryDelay":{"name":"-retryDelay","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractTransport"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(py)debugConsoleGroupName":{"name":"debugConsoleGroupName","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(py)transport":{"name":"transport","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(py)protocolDelegateTable":{"name":"protocolDelegateTable","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(py)securityManager":{"name":"securityManager","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(py)appId":{"name":"appId","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)sendStartSessionWithType:":{"name":"-sendStartSessionWithType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)startServiceWithType:":{"name":"-startServiceWithType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)startServiceWithType:payload:":{"name":"-startServiceWithType:payload:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)startSecureServiceWithType:completionHandler:":{"name":"-startSecureServiceWithType:completionHandler:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)startSecureServiceWithType:payload:completionHandler:":{"name":"-startSecureServiceWithType:payload:completionHandler:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)sendEndSessionWithType:":{"name":"-sendEndSessionWithType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)endServiceWithType:":{"name":"-endServiceWithType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)sendRPCRequest:":{"name":"-sendRPCRequest:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)sendRPC:":{"name":"-sendRPC:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)sendRPC:encrypted:error:":{"name":"-sendRPC:encrypted:error:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)sendRawData:withServiceType:":{"name":"-sendRawData:withServiceType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)sendEncryptedRawData:onService:":{"name":"-sendEncryptedRawData:onService:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)sendRawDataStream:withServiceType:":{"name":"-sendRawDataStream:withServiceType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)sendHeartbeat":{"name":"-sendHeartbeat","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)handleBytesFromTransport:":{"name":"-handleBytesFromTransport:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)dispose":{"name":"-dispose","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html":{"name":"SDLAbstractProtocol","abstract":"

                                Undocumented

                                "},"Classes/SDLAbstractTransport.html":{"name":"SDLAbstractTransport","abstract":"

                                Undocumented

                                "},"Classes/SDLAddCommand.html":{"name":"SDLAddCommand","abstract":"

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

                                "},"Classes/SDLAddCommandResponse.html":{"name":"SDLAddCommandResponse","abstract":"

                                SDLAddCommandResponse is sent, when SDLAddCommand has been called

                                "},"Classes/SDLAddSubMenu.html":{"name":"SDLAddSubMenu","abstract":"

                                Add a SDLSubMenu to the Command Menu"},"Classes/SDLAddSubMenuResponse.html":{"name":"SDLAddSubMenuResponse","abstract":"

                                SDLAddSubMenuResponse is sent, when SDLAddSubMenu has been called"},"Classes/SDLAirbagStatus.html":{"name":"SDLAirbagStatus","abstract":"

                                Undocumented

                                "},"Classes/SDLAlert.html":{"name":"SDLAlert","abstract":"

                                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.

                                "},"Classes/SDLAlertManeuver.html":{"name":"SDLAlertManeuver","abstract":"

                                @since SmartDeviceLink 1.0

                                "},"Classes/SDLAlertManeuverResponse.html":{"name":"SDLAlertManeuverResponse","abstract":"

                                SDLAlertManeuverResponse is sent, when SDLAlertManeuver has been called.

                                "},"Classes/SDLAlertResponse.html":{"name":"SDLAlertResponse","abstract":"

                                Sent after SDLAlert has been sent"},"Classes/SDLAmbientLightStatus.html":{"name":"SDLAmbientLightStatus","abstract":"

                                Reflects the status of the ambient light sensor"},"Classes/SDLAppHMIType.html":{"name":"SDLAppHMIType","abstract":"

                                Enumeration listing possible app hmi types.

                                "},"Classes/SDLAppInfo.html":{"name":"SDLAppInfo","abstract":"

                                Undocumented

                                "},"Classes/SDLAppInterfaceUnregisteredReason.html":{"name":"SDLAppInterfaceUnregisteredReason","abstract":"

                                Indicates reason why app interface was unregistered. The application is being disconnected by SDL.

                                "},"Classes/SDLArtwork.html":{"name":"SDLArtwork","abstract":"

                                Undocumented

                                "},"Classes/SDLAudioPassThruCapabilities.html":{"name":"SDLAudioPassThruCapabilities","abstract":"

                                Describes different audio type configurations for SDLPerformAudioPassThru, e.g. {8kHz,8-bit,PCM}"},"Classes/SDLAudioStreamingState.html":{"name":"SDLAudioStreamingState","abstract":"

                                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

                                "},"Classes/SDLAudioType.html":{"name":"SDLAudioType","abstract":"

                                Describes different audio type options for PerformAudioPassThru

                                "},"Classes/SDLBeltStatus.html":{"name":"SDLBeltStatus","abstract":"

                                Undocumented

                                "},"Classes/SDLBitsPerSample.html":{"name":"SDLBitsPerSample","abstract":"

                                Describes different bit depth options for PerformAudioPassThru

                                "},"Classes/SDLBodyInformation.html":{"name":"SDLBodyInformation","abstract":"

                                The body information including power modes.

                                "},"Classes/SDLButtonCapabilities.html":{"name":"SDLButtonCapabilities","abstract":"

                                Provides information about the capabilities of a SDL HMI button.

                                "},"Classes/SDLButtonEventMode.html":{"name":"SDLButtonEventMode","abstract":"

                                Indicates whether the button was depressed or released. A BUTTONUP event will always be preceded by a BUTTONDOWN event.

                                "},"Classes/SDLButtonName.html":{"name":"SDLButtonName","abstract":"

                                Defines logical buttons which, on a given SDL unit, would correspond to"},"Classes/SDLButtonPressMode.html":{"name":"SDLButtonPressMode","abstract":"

                                Indicates whether this is a LONG or SHORT button press

                                "},"Classes/SDLCarModeStatus.html":{"name":"SDLCarModeStatus","abstract":"

                                Describes the carmode the vehicle is in.

                                "},"Classes/SDLChangeRegistration.html":{"name":"SDLChangeRegistration","abstract":"

                                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.

                                "},"Classes/SDLChangeRegistrationResponse.html":{"name":"SDLChangeRegistrationResponse","abstract":"

                                SDLChangeRegistrationResponse is sent, when SDLChangeRegistration has been called

                                "},"Classes/SDLCharacterSet.html":{"name":"SDLCharacterSet","abstract":"

                                Character sets supported by SDL.

                                "},"Classes/SDLChoice.html":{"name":"SDLChoice","abstract":"

                                A choice is an option which a user can select either via the menu or via voice recognition (VR) during an application initiated interaction."},"Classes/SDLClusterModeStatus.html":{"name":"SDLClusterModeStatus","abstract":"

                                Undocumented

                                "},"Classes/SDLCompassDirection.html":{"name":"SDLCompassDirection","abstract":"

                                The list of potential compass directions.

                                "},"Classes/SDLComponentVolumeStatus.html":{"name":"SDLComponentVolumeStatus","abstract":"

                                The volume status of a vehicle component.

                                "},"Classes/SDLConfiguration.html":{"name":"SDLConfiguration","abstract":"

                                Undocumented

                                "},"Classes/SDLConsoleController.html":{"name":"SDLConsoleController","abstract":"

                                Undocumented

                                "},"Classes/SDLCreateInteractionChoiceSet.html":{"name":"SDLCreateInteractionChoiceSet","abstract":"

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

                                "},"Classes/SDLCreateInteractionChoiceSetResponse.html":{"name":"SDLCreateInteractionChoiceSetResponse","abstract":"

                                SDLCreateInteractionChoiceSetResponse is sent, when SDLCreateInteractionChoiceSet"},"Classes/SDLDIDResult.html":{"name":"SDLDIDResult","abstract":"

                                Undocumented

                                "},"Classes/SDLDateTime.html":{"name":"SDLDateTime","abstract":"

                                Undocumented

                                "},"Classes/SDLDebugTool.html":{"name":"SDLDebugTool","abstract":"

                                Undocumented

                                "},"Classes/SDLDeleteCommand.html":{"name":"SDLDeleteCommand","abstract":"

                                Removes a command from the Command Menu"},"Classes/SDLDeleteCommandResponse.html":{"name":"SDLDeleteCommandResponse","abstract":"

                                SDLDeleteCommandResponse is sent, when SDLDeleteCommand has been called

                                "},"Classes/SDLDeleteFile.html":{"name":"SDLDeleteFile","abstract":"

                                Used to delete a file resident on the SDL module in the app’s local cache."},"Classes/SDLDeleteFileResponse.html":{"name":"SDLDeleteFileResponse","abstract":"

                                Delete File Response is sent, when DeleteFile has been called

                                "},"Classes/SDLDeleteInteractionChoiceSet.html":{"name":"SDLDeleteInteractionChoiceSet","abstract":"

                                Deletes an existing Choice Set identified by the parameter"},"Classes/SDLDeleteInteractionChoiceSetResponse.html":{"name":"SDLDeleteInteractionChoiceSetResponse","abstract":"

                                SDLDeleteInteractionChoiceSetResponse is sent, when SDLDeleteInteractionChoiceSet has been called

                                "},"Classes/SDLDeleteSubMenu.html":{"name":"SDLDeleteSubMenu","abstract":"

                                Deletes a submenu from the Command Menu"},"Classes/SDLDeleteSubMenuResponse.html":{"name":"SDLDeleteSubMenuResponse","abstract":"

                                SDLDeleteSubMenuResponse is sent, when SDLDeleteSubMenu has been called

                                "},"Classes/SDLDeliveryMode.html":{"name":"SDLDeliveryMode","abstract":"

                                Specifies the mode in which the sendLocation request is sent.

                                "},"Classes/SDLDeviceInfo.html":{"name":"SDLDeviceInfo","abstract":"

                                Undocumented

                                "},"Classes/SDLDeviceLevelStatus.html":{"name":"SDLDeviceLevelStatus","abstract":"

                                Reflects the reported battery status of the connected device, if reported.

                                "},"Classes/SDLDeviceStatus.html":{"name":"SDLDeviceStatus","abstract":"

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

                                "},"Classes/SDLDiagnosticMessage.html":{"name":"SDLDiagnosticMessage","abstract":"

                                Non periodic vehicle diagnostic request

                                "},"Classes/SDLDiagnosticMessageResponse.html":{"name":"SDLDiagnosticMessageResponse","abstract":"

                                SDLDiagnosticMessageResponse is sent, when SDLDiagnosticMessage has been called.

                                "},"Classes/SDLDialNumber.html":{"name":"SDLDialNumber","abstract":"

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

                                "},"Classes/SDLDialNumberResponse.html":{"name":"SDLDialNumberResponse","abstract":"

                                Indicates the result, success, or failure of the SDLDialNumber request.

                                "},"Classes/SDLDimension.html":{"name":"SDLDimension","abstract":"

                                The supported dimensions of the GPS.

                                "},"Classes/SDLDisplayCapabilities.html":{"name":"SDLDisplayCapabilities","abstract":"

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

                                "},"Classes/SDLDisplayType.html":{"name":"SDLDisplayType","abstract":"

                                Identifies the various display types used by SDL.

                                "},"Classes/SDLDriverDistractionState.html":{"name":"SDLDriverDistractionState","abstract":"

                                Enumeration that describes possible states of driver distraction.

                                "},"Classes/SDLECallConfirmationStatus.html":{"name":"SDLECallConfirmationStatus","abstract":"

                                Reflects the status of the eCall Notification."},"Classes/SDLECallInfo.html":{"name":"SDLECallInfo","abstract":"

                                Undocumented

                                "},"Classes/SDLEmergencyEvent.html":{"name":"SDLEmergencyEvent","abstract":"

                                Undocumented

                                "},"Classes/SDLEmergencyEventType.html":{"name":"SDLEmergencyEventType","abstract":"

                                Reflects the emergency event status of the vehicle."},"Classes/SDLEncodedSyncPData.html":{"name":"SDLEncodedSyncPData","abstract":"

                                Undocumented

                                "},"Classes/SDLEncodedSyncPDataResponse.html":{"name":"SDLEncodedSyncPDataResponse","abstract":"

                                Undocumented

                                "},"Classes/SDLEndAudioPassThru.html":{"name":"SDLEndAudioPassThru","abstract":"

                                When this request is invoked, the audio capture stops

                                "},"Classes/SDLEndAudioPassThruResponse.html":{"name":"SDLEndAudioPassThruResponse","abstract":"

                                SDLEndAudioPassThruResponse is sent, when SDLEndAudioPassThru has been called

                                "},"Classes/SDLEnum.html":{"name":"SDLEnum","abstract":"

                                Undocumented

                                "},"Classes/SDLFile.html":{"name":"SDLFile","abstract":"

                                Undocumented

                                "},"Classes/SDLFileManager.html":{"name":"SDLFileManager","abstract":"

                                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.

                                "},"Classes/SDLFileType.html":{"name":"SDLFileType","abstract":"

                                Enumeration listing possible file types.

                                "},"Classes/SDLFuelCutoffStatus.html":{"name":"SDLFuelCutoffStatus","abstract":"

                                Reflects the status of the Restraints Control Module fuel pump cutoff."},"Classes/SDLGPSData.html":{"name":"SDLGPSData","abstract":"

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

                                "},"Classes/SDLGenericResponse.html":{"name":"SDLGenericResponse","abstract":"

                                Generic Response is sent, when the name of a received msg cannot be"},"Classes/SDLGetDTCs.html":{"name":"SDLGetDTCs","abstract":"

                                This RPC allows to request diagnostic module trouble codes from a certain"},"Classes/SDLGetDTCsResponse.html":{"name":"SDLGetDTCsResponse","abstract":"

                                SDLGetDTCsResponse is sent, when SDLGetDTCs has been called

                                "},"Classes/SDLGetSystemCapability.html":{"name":"SDLGetSystemCapability","abstract":"

                                Undocumented

                                "},"Classes/SDLGetSystemCapabilityResponse.html":{"name":"SDLGetSystemCapabilityResponse","abstract":"

                                Undocumented

                                "},"Classes/SDLGetVehicleData.html":{"name":"SDLGetVehicleData","abstract":"

                                Requests surrent values of specific published vehicle data items."},"Classes/SDLGetVehicleDataResponse.html":{"name":"SDLGetVehicleDataResponse","abstract":"

                                Get Vehicle Data Response is sent, when SDLGetVehicleData has been called

                                "},"Classes/SDLGetWayPoints.html":{"name":"SDLGetWayPoints","abstract":"

                                Undocumented

                                "},"Classes.html#/c:objc(cs)SDLGetWaypoints":{"name":"SDLGetWaypoints","abstract":"

                                Undocumented

                                "},"Classes/SDLGetWayPointsResponse.html":{"name":"SDLGetWayPointsResponse","abstract":"

                                Undocumented

                                "},"Classes.html#/c:objc(cs)SDLGetWaypointsResponse":{"name":"SDLGetWaypointsResponse","abstract":"

                                Undocumented

                                "},"Classes/SDLGlobalProperty.html":{"name":"SDLGlobalProperty","abstract":"

                                Properties of a user-initiated VR interaction (i.e. interactions started by the user pressing the PTT button).

                                "},"Classes/SDLHMICapabilities.html":{"name":"SDLHMICapabilities","abstract":"

                                Undocumented

                                "},"Classes/SDLHMILevel.html":{"name":"SDLHMILevel","abstract":"

                                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 focus to other applications (e.g. phone, other mobile applications, etc.)

                                "},"Classes/SDLHMIPermissions.html":{"name":"SDLHMIPermissions","abstract":"

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

                                "},"Classes/SDLHMIZoneCapabilities.html":{"name":"SDLHMIZoneCapabilities","abstract":"

                                Specifies HMI Zones in the vehicle.

                                "},"Classes/SDLHapticRect.html":{"name":"SDLHapticRect","abstract":"

                                Defines spatial for each user control object for video streaming application

                                "},"Classes/SDLHeadLampStatus.html":{"name":"SDLHeadLampStatus","abstract":"

                                Status of the head lamps

                                "},"Classes/SDLIAPTransport.html":{"name":"SDLIAPTransport","abstract":"

                                Undocumented

                                "},"Classes/SDLIgnitionStableStatus.html":{"name":"SDLIgnitionStableStatus","abstract":"

                                Reflects the ignition switch stability.

                                "},"Classes/SDLIgnitionStatus.html":{"name":"SDLIgnitionStatus","abstract":"

                                Reflects the status of ignition..

                                "},"Classes/SDLImage.html":{"name":"SDLImage","abstract":"

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

                                "},"Classes/SDLImageField.html":{"name":"SDLImageField","abstract":"

                                Undocumented

                                "},"Classes/SDLImageFieldName.html":{"name":"SDLImageFieldName","abstract":"

                                The name that identifies the filed."},"Classes/SDLImageResolution.html":{"name":"SDLImageResolution","abstract":"

                                Undocumented

                                "},"Classes/SDLImageType.html":{"name":"SDLImageType","abstract":"

                                Contains information about the type of image.

                                "},"Classes/SDLInteractionMode.html":{"name":"SDLInteractionMode","abstract":"

                                For application-initiated interactions (SDLPerformInteraction), this specifies the mode by which the user is prompted and by which the user’s selection is indicated

                                "},"Classes/SDLJingle.html":{"name":"SDLJingle","abstract":"

                                Undocumented

                                "},"Classes/SDLKeyboardEvent.html":{"name":"SDLKeyboardEvent","abstract":"

                                Enumeration listing possible keyboard events."},"Classes/SDLKeyboardLayout.html":{"name":"SDLKeyboardLayout","abstract":"

                                Enumeration listing possible keyboard layouts"},"Classes/SDLKeyboardProperties.html":{"name":"SDLKeyboardProperties","abstract":"

                                Undocumented

                                "},"Classes/SDLKeypressMode.html":{"name":"SDLKeypressMode","abstract":"

                                Enumeration listing possible keyboard events.

                                "},"Classes/SDLLanguage.html":{"name":"SDLLanguage","abstract":"

                                Specifies the language to be used for TTS, VR, displayed messages/menus

                                "},"Classes/SDLLayoutMode.html":{"name":"SDLLayoutMode","abstract":"

                                For touchscreen interactions, the mode of how the choices are presented.

                                "},"Classes/SDLLifecycleConfiguration.html":{"name":"SDLLifecycleConfiguration","abstract":"

                                Configuration options for SDLManager

                                "},"Classes/SDLListFiles.html":{"name":"SDLListFiles","abstract":"

                                Requests the current list of resident filenames for the registered app. Not"},"Classes/SDLListFilesResponse.html":{"name":"SDLListFilesResponse","abstract":"

                                SDLListFilesResponse is sent, when SDLListFiles has been called

                                "},"Classes/SDLLocationCoordinate.html":{"name":"SDLLocationCoordinate","abstract":"

                                Undocumented

                                "},"Classes/SDLLocationDetails.html":{"name":"SDLLocationDetails","abstract":"

                                Undocumented

                                "},"Classes/SDLLockScreenConfiguration.html":{"name":"SDLLockScreenConfiguration","abstract":"

                                Undocumented

                                "},"Classes/SDLLockScreenStatus.html":{"name":"SDLLockScreenStatus","abstract":"

                                Undocumented

                                "},"Classes/SDLLockScreenViewController.html":{"name":"SDLLockScreenViewController","abstract":"

                                Undocumented

                                "},"Classes/SDLMaintenanceModeStatus.html":{"name":"SDLMaintenanceModeStatus","abstract":"

                                The SDLMaintenanceModeStatus class.

                                "},"Classes/SDLManager.html":{"name":"SDLManager","abstract":"

                                Undocumented

                                "},"Classes/SDLMediaClockFormat.html":{"name":"SDLMediaClockFormat","abstract":"

                                Indicates the format of the time displayed on the connected SDL unit.

                                "},"Classes/SDLMenuParams.html":{"name":"SDLMenuParams","abstract":"

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

                                "},"Classes/SDLMetadataTags.html":{"name":"SDLMetadataTags","abstract":"

                                Undocumented

                                "},"Classes/SDLMetadataType.html":{"name":"SDLMetadataType","abstract":"

                                The list of possible metadata for text fields

                                "},"Classes/SDLMyKey.html":{"name":"SDLMyKey","abstract":"

                                Undocumented

                                "},"Classes/SDLNavigationCapability.html":{"name":"SDLNavigationCapability","abstract":"

                                Undocumented

                                "},"Classes/SDLNotificationConstants.html":{"name":"SDLNotificationConstants","abstract":"

                                Undocumented

                                "},"Classes/SDLOasisAddress.html":{"name":"SDLOasisAddress","abstract":"

                                Undocumented

                                "},"Classes/SDLOnAppInterfaceUnregistered.html":{"name":"SDLOnAppInterfaceUnregistered","abstract":"

                                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.

                                "},"Classes/SDLOnAudioPassThru.html":{"name":"SDLOnAudioPassThru","abstract":"

                                Binary data is in binary part of hybrid msg.

                                "},"Classes/SDLOnButtonEvent.html":{"name":"SDLOnButtonEvent","abstract":"

                                Notifies application that user has depressed or released a button to which"},"Classes/SDLOnButtonPress.html":{"name":"SDLOnButtonPress","abstract":"

                                Notifies application of button press events for buttons to which the"},"Classes/SDLOnCommand.html":{"name":"SDLOnCommand","abstract":"

                                This is called when a command was selected via VR after pressing the PTT button, or selected from the menu after"},"Classes/SDLOnDriverDistraction.html":{"name":"SDLOnDriverDistraction","abstract":"

                                Notifies the application of the current driver distraction state (whether driver distraction rules are in effect, or"},"Classes/SDLOnEncodedSyncPData.html":{"name":"SDLOnEncodedSyncPData","abstract":"

                                Undocumented

                                "},"Classes/SDLOnHMIStatus.html":{"name":"SDLOnHMIStatus","abstract":"

                                Notifies an application that HMI conditions have changed for the application. This indicates whether the application"},"Classes/SDLOnHashChange.html":{"name":"SDLOnHashChange","abstract":"

                                Undocumented

                                "},"Classes/SDLOnKeyboardInput.html":{"name":"SDLOnKeyboardInput","abstract":"

                                Undocumented

                                "},"Classes/SDLOnLanguageChange.html":{"name":"SDLOnLanguageChange","abstract":"

                                Provides information to what language the SDL HMI language was changed

                                "},"Classes/SDLOnLockScreenStatus.html":{"name":"SDLOnLockScreenStatus","abstract":"
                                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."},"Classes/SDLOnPermissionsChange.html":{"name":"SDLOnPermissionsChange","abstract":"

                                Provides update to app of which sets of functions are available

                                "},"Classes/SDLOnSyncPData.html":{"name":"SDLOnSyncPData","abstract":"

                                Undocumented

                                "},"Classes/SDLOnSystemRequest.html":{"name":"SDLOnSystemRequest","abstract":"

                                Undocumented

                                "},"Classes/SDLOnTBTClientState.html":{"name":"SDLOnTBTClientState","abstract":"

                                Undocumented

                                "},"Classes/SDLOnTouchEvent.html":{"name":"SDLOnTouchEvent","abstract":"

                                Undocumented

                                "},"Classes/SDLOnVehicleData.html":{"name":"SDLOnVehicleData","abstract":"

                                Request vehicle data.

                                "},"Classes/SDLOnWayPointChange.html":{"name":"SDLOnWayPointChange","abstract":"

                                Undocumented

                                "},"Classes.html#/c:objc(cs)SDLOnWaypointChange":{"name":"SDLOnWaypointChange","abstract":"

                                Undocumented

                                "},"Classes/SDLPRNDL.html":{"name":"SDLPRNDL","abstract":"

                                The selected gear the car is in.

                                "},"Classes/SDLParameterPermissions.html":{"name":"SDLParameterPermissions","abstract":"

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

                                "},"Classes/SDLPerformAudioPassThru.html":{"name":"SDLPerformAudioPassThru","abstract":"

                                This will open an audio pass thru session. By doing so the app can receive"},"Classes/SDLPerformAudioPassThruResponse.html":{"name":"SDLPerformAudioPassThruResponse","abstract":"

                                Perform Audio Pass Thru Response is sent, when PerformAudioPassThru has been called

                                "},"Classes/SDLPerformInteraction.html":{"name":"SDLPerformInteraction","abstract":"

                                Performs an application-initiated interaction in which the user can select a"},"Classes/SDLPerformInteractionResponse.html":{"name":"SDLPerformInteractionResponse","abstract":"

                                PerformInteraction Response is sent, when SDLPerformInteraction has been called

                                "},"Classes/SDLPermissionItem.html":{"name":"SDLPermissionItem","abstract":"

                                Undocumented

                                "},"Classes/SDLPermissionManager.html":{"name":"SDLPermissionManager","abstract":"

                                Undocumented

                                "},"Classes/SDLPermissionStatus.html":{"name":"SDLPermissionStatus","abstract":"

                                Enumeration that describes possible permission states of a policy table entry.

                                "},"Classes/SDLPhoneCapability.html":{"name":"SDLPhoneCapability","abstract":"

                                Undocumented

                                "},"Classes/SDLPowerModeQualificationStatus.html":{"name":"SDLPowerModeQualificationStatus","abstract":"

                                Undocumented

                                "},"Classes/SDLPowerModeStatus.html":{"name":"SDLPowerModeStatus","abstract":"

                                Undocumented

                                "},"Classes/SDLPredefinedLayout.html":{"name":"SDLPredefinedLayout","abstract":"

                                Undocumented

                                "},"Classes/SDLPrerecordedSpeech.html":{"name":"SDLPrerecordedSpeech","abstract":"

                                Undocumented

                                "},"Classes/SDLPresetBankCapabilities.html":{"name":"SDLPresetBankCapabilities","abstract":"

                                Contains information about on-screen preset capabilities.

                                "},"Classes/SDLPrimaryAudioSource.html":{"name":"SDLPrimaryAudioSource","abstract":"

                                Reflects the current primary audio source of SDL (if selected).

                                "},"Classes/SDLProtocol.html":{"name":"SDLProtocol","abstract":"

                                Undocumented

                                "},"Classes/SDLProtocolHeader.html":{"name":"SDLProtocolHeader","abstract":"

                                Undocumented

                                "},"Classes/SDLProtocolMessage.html":{"name":"SDLProtocolMessage","abstract":"

                                Undocumented

                                "},"Classes/SDLProxy.html":{"name":"SDLProxy","abstract":"

                                Undocumented

                                "},"Classes/SDLProxyFactory.html":{"name":"SDLProxyFactory","abstract":"

                                Undocumented

                                "},"Classes/SDLPutFile.html":{"name":"SDLPutFile","abstract":"

                                Used to push a binary data onto the SDL module from a mobile device, such as"},"Classes/SDLPutFileResponse.html":{"name":"SDLPutFileResponse","abstract":"

                                Put File Response is sent, when SDLPutFile has been called

                                "},"Classes/SDLRPCMessage.html":{"name":"SDLRPCMessage","abstract":"

                                Undocumented

                                "},"Classes/SDLRPCNotification.html":{"name":"SDLRPCNotification","abstract":"

                                Undocumented

                                "},"Classes/SDLRPCNotificationNotification.html":{"name":"SDLRPCNotificationNotification","abstract":"

                                Undocumented

                                "},"Classes/SDLRPCRequest.html":{"name":"SDLRPCRequest","abstract":"

                                Undocumented

                                "},"Classes/SDLRPCRequestFactory.html":{"name":"SDLRPCRequestFactory","abstract":"

                                Undocumented

                                "},"Classes/SDLRPCResponse.html":{"name":"SDLRPCResponse","abstract":"

                                Undocumented

                                "},"Classes/SDLRPCResponseNotification.html":{"name":"SDLRPCResponseNotification","abstract":"

                                Undocumented

                                "},"Classes/SDLRPCStruct.html":{"name":"SDLRPCStruct","abstract":"

                                Undocumented

                                "},"Classes/SDLReadDID.html":{"name":"SDLReadDID","abstract":"

                                Non periodic vehicle data read request. This is an RPC to get diagnostics"},"Classes/SDLReadDIDResponse.html":{"name":"SDLReadDIDResponse","abstract":"

                                Read DID Response is sent, when ReadDID has been called

                                "},"Classes/SDLRectangle.html":{"name":"SDLRectangle","abstract":"

                                Undocumented

                                "},"Classes/SDLRegisterAppInterface.html":{"name":"SDLRegisterAppInterface","abstract":"

                                Registers the application’s interface with SDL®, declaring properties of"},"Classes/SDLRegisterAppInterfaceResponse.html":{"name":"SDLRegisterAppInterfaceResponse","abstract":"

                                @abstract Register AppInterface Response is sent, when SDLRegisterAppInterface has been called

                                "},"Classes/SDLRequestType.html":{"name":"SDLRequestType","abstract":"

                                Undocumented

                                "},"Classes/SDLResetGlobalProperties.html":{"name":"SDLResetGlobalProperties","abstract":"

                                Resets the passed global properties to their default values as defined by"},"Classes/SDLResetGlobalPropertiesResponse.html":{"name":"SDLResetGlobalPropertiesResponse","abstract":"

                                Reset Global Properties Response is sent, when SDLResetGlobalProperties has been called

                                "},"Classes/SDLResult.html":{"name":"SDLResult","abstract":"

                                Defines the possible result codes returned by SDL to the application in a response to a requested operation

                                "},"Classes/SDLSamplingRate.html":{"name":"SDLSamplingRate","abstract":"

                                Describes different sampling rates for PerformAudioPassThru

                                "},"Classes/SDLScreenParams.html":{"name":"SDLScreenParams","abstract":"

                                Undocumented

                                "},"Classes/SDLScrollableMessage.html":{"name":"SDLScrollableMessage","abstract":"

                                Creates a full screen overlay containing a large block of formatted text that"},"Classes/SDLScrollableMessageResponse.html":{"name":"SDLScrollableMessageResponse","abstract":"

                                Scrollable Message Response is sent, when SDLScrollableMessage has been called

                                "},"Classes/SDLSendHapticData.html":{"name":"SDLSendHapticData","abstract":"

                                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.

                                "},"Classes/SDLSendHapticDataResponse.html":{"name":"SDLSendHapticDataResponse","abstract":"

                                Undocumented

                                "},"Classes/SDLSendLocation.html":{"name":"SDLSendLocation","abstract":"

                                Undocumented

                                "},"Classes/SDLSendLocationResponse.html":{"name":"SDLSendLocationResponse","abstract":"

                                Undocumented

                                "},"Classes/SDLSetAppIcon.html":{"name":"SDLSetAppIcon","abstract":"

                                Used to set existing local file on SDL as the app’s icon. Not supported on"},"Classes/SDLSetAppIconResponse.html":{"name":"SDLSetAppIconResponse","abstract":"

                                SDLSetAppIconResponse is sent, when SDLSetAppIcon has been called.

                                "},"Classes/SDLSetDisplayLayout.html":{"name":"SDLSetDisplayLayout","abstract":"

                                Used to set an alternate display layout. If not sent, default screen for"},"Classes/SDLSetDisplayLayoutResponse.html":{"name":"SDLSetDisplayLayoutResponse","abstract":"

                                Set Display Layout Response is sent, when SetDisplayLayout has been called

                                "},"Classes/SDLSetGlobalProperties.html":{"name":"SDLSetGlobalProperties","abstract":"

                                Sets value(s) for the specified global property(ies)"},"Classes/SDLSetGlobalPropertiesResponse.html":{"name":"SDLSetGlobalPropertiesResponse","abstract":"

                                Set Global Properties Response is sent, when SDLSetGlobalProperties has been called

                                "},"Classes/SDLSetMediaClockTimer.html":{"name":"SDLSetMediaClockTimer","abstract":"

                                Sets the media clock/timer value and the update method (e.g.count-up,"},"Classes/SDLSetMediaClockTimerResponse.html":{"name":"SDLSetMediaClockTimerResponse","abstract":"

                                Set Media Clock Timer Response is sent, when SDLSetMediaClockTimer has been called

                                "},"Classes/SDLShow.html":{"name":"SDLShow","abstract":"

                                Updates the application’s display text area, regardless of whether or not"},"Classes/SDLShowConstantTBT.html":{"name":"SDLShowConstantTBT","abstract":"

                                This RPC is used to update the user with navigation information

                                "},"Classes/SDLShowConstantTBTResponse.html":{"name":"SDLShowConstantTBTResponse","abstract":"

                                SDLShowConstantTBTResponse is sent, when SDLShowConstantTBT has been called.

                                "},"Classes/SDLShowResponse.html":{"name":"SDLShowResponse","abstract":"

                                Show Response is sent, when Show has been called

                                "},"Classes/SDLSingleTireStatus.html":{"name":"SDLSingleTireStatus","abstract":"

                                Tire pressure status of a single tire.

                                "},"Classes/SDLSiphonServer.html":{"name":"SDLSiphonServer","abstract":"

                                Undocumented

                                "},"Classes/SDLSlider.html":{"name":"SDLSlider","abstract":"

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

                                "},"Classes/SDLSliderResponse.html":{"name":"SDLSliderResponse","abstract":"

                                Slider Response is sent, when Slider has been called

                                "},"Classes/SDLSoftButton.html":{"name":"SDLSoftButton","abstract":"

                                Undocumented

                                "},"Classes/SDLSoftButtonCapabilities.html":{"name":"SDLSoftButtonCapabilities","abstract":"

                                Contains information about a SoftButton’s capabilities.

                                "},"Classes/SDLSoftButtonType.html":{"name":"SDLSoftButtonType","abstract":"

                                SoftButtonType (TEXT / IMAGE / BOTH)

                                "},"Classes/SDLSpeak.html":{"name":"SDLSpeak","abstract":"

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

                                "},"Classes/SDLSpeakResponse.html":{"name":"SDLSpeakResponse","abstract":"

                                Speak Response is sent, when Speak has been called

                                "},"Classes/SDLSpeechCapabilities.html":{"name":"SDLSpeechCapabilities","abstract":"

                                Undocumented

                                "},"Classes/SDLStartTime.html":{"name":"SDLStartTime","abstract":"

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

                                "},"Classes/SDLStreamingMediaManager.html":{"name":"SDLStreamingMediaManager","abstract":"

                                Undocumented

                                "},"Classes/SDLSubscribeButton.html":{"name":"SDLSubscribeButton","abstract":"

                                Establishes a subscription to button notifications for HMI buttons. Buttons"},"Classes/SDLSubscribeButtonResponse.html":{"name":"SDLSubscribeButtonResponse","abstract":"

                                SubscribeButton Response is sent, when SDLSubscribeButton has been called

                                "},"Classes/SDLSubscribeVehicleData.html":{"name":"SDLSubscribeVehicleData","abstract":"

                                Subscribes for specific published vehicle data items. The data will be only"},"Classes/SDLSubscribeVehicleDataResponse.html":{"name":"SDLSubscribeVehicleDataResponse","abstract":"

                                Subscribe Vehicle Data Response is sent, when SDLSubscribeVehicleData has been called

                                "},"Classes.html#/c:objc(cs)SDLSubscribeWayPoints":{"name":"SDLSubscribeWayPoints","abstract":"

                                A SDLSubscribeWaypoints can be sent to subscribe"},"Classes.html#/c:objc(cs)SDLSubscribeWaypoints":{"name":"SDLSubscribeWaypoints","abstract":"

                                Undocumented

                                "},"Classes.html#/c:objc(cs)SDLSubscribeWayPointsResponse":{"name":"SDLSubscribeWayPointsResponse","abstract":"

                                Undocumented

                                "},"Classes.html#/c:objc(cs)SDLSubscribeWaypointsResponse":{"name":"SDLSubscribeWaypointsResponse","abstract":"

                                Undocumented

                                "},"Classes/SDLSyncMsgVersion.html":{"name":"SDLSyncMsgVersion","abstract":"

                                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.

                                "},"Classes/SDLSyncPData.html":{"name":"SDLSyncPData","abstract":"

                                Undocumented

                                "},"Classes/SDLSyncPDataResponse.html":{"name":"SDLSyncPDataResponse","abstract":"

                                Undocumented

                                "},"Classes/SDLSystemAction.html":{"name":"SDLSystemAction","abstract":"

                                Enumeration that describes system actions that can be triggered.

                                "},"Classes/SDLSystemCapability.html":{"name":"SDLSystemCapability","abstract":"

                                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.

                                "},"Classes/SDLSystemCapabilityType.html":{"name":"SDLSystemCapabilityType","abstract":"

                                The type of system capability to get more information on

                                "},"Classes/SDLSystemContext.html":{"name":"SDLSystemContext","abstract":"

                                Indicates whether or not a user-initiated interaction is in progress, and if so, in what mode (i.e. MENU or VR).

                                "},"Classes/SDLTBTState.html":{"name":"SDLTBTState","abstract":"

                                Undocumented

                                "},"Classes/SDLTCPTransport.html":{"name":"SDLTCPTransport","abstract":"

                                Undocumented

                                "},"Classes/SDLTTSChunk.html":{"name":"SDLTTSChunk","abstract":"

                                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).

                                "},"Classes/SDLTTSChunkFactory.html":{"name":"SDLTTSChunkFactory","abstract":"

                                Undocumented

                                "},"Classes/SDLTextAlignment.html":{"name":"SDLTextAlignment","abstract":"

                                The list of possible alignments of text in a field. May only work on some display types.

                                "},"Classes/SDLTextField.html":{"name":"SDLTextField","abstract":"

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

                                "},"Classes/SDLTextFieldName.html":{"name":"SDLTextFieldName","abstract":"

                                Names of the text fields that can appear on a SDL display.

                                "},"Classes/SDLTimerMode.html":{"name":"SDLTimerMode","abstract":"

                                Undocumented

                                "},"Classes/SDLTireStatus.html":{"name":"SDLTireStatus","abstract":"

                                Undocumented

                                "},"Classes/SDLTouchCoord.html":{"name":"SDLTouchCoord","abstract":"

                                Undocumented

                                "},"Classes/SDLTouchEvent.html":{"name":"SDLTouchEvent","abstract":"

                                Undocumented

                                "},"Classes/SDLTouchEventCapabilities.html":{"name":"SDLTouchEventCapabilities","abstract":"

                                Undocumented

                                "},"Classes/SDLTouchManager.html":{"name":"SDLTouchManager","abstract":"

                                Undocumented

                                "},"Classes/SDLTouchType.html":{"name":"SDLTouchType","abstract":"

                                Undocumented

                                "},"Classes/SDLTriggerSource.html":{"name":"SDLTriggerSource","abstract":"

                                Indicates whether choice/command was selected via VR or via a menu selection (using SEEKRIGHT/SEEKLEFT, TUNEUP, TUNEDOWN, OK buttons)

                                "},"Classes/SDLTurn.html":{"name":"SDLTurn","abstract":"

                                Undocumented

                                "},"Classes/SDLUnregisterAppInterface.html":{"name":"SDLUnregisterAppInterface","abstract":"

                                Terminates an application’s interface registration. This causes SDL® to"},"Classes/SDLUnregisterAppInterfaceResponse.html":{"name":"SDLUnregisterAppInterfaceResponse","abstract":"

                                Unregister AppInterface Response is sent, when SDLUnregisterAppInterface has been called

                                "},"Classes/SDLUnsubscribeButton.html":{"name":"SDLUnsubscribeButton","abstract":"

                                Deletes a subscription to button notifications for the specified button. For"},"Classes/SDLUnsubscribeButtonResponse.html":{"name":"SDLUnsubscribeButtonResponse","abstract":"

                                Unsubscribe Button Response is sent, when SDLUnsubscribeButton has been called

                                "},"Classes/SDLUnsubscribeVehicleData.html":{"name":"SDLUnsubscribeVehicleData","abstract":"

                                This function is used to unsubscribe the notifications from the"},"Classes/SDLUnsubscribeVehicleDataResponse.html":{"name":"SDLUnsubscribeVehicleDataResponse","abstract":"

                                Unsubscribe Vehicle Data Response is sent, when UnsubscribeVehicleData has been called

                                "},"Classes.html#/c:objc(cs)SDLUnsubscribeWayPoints":{"name":"SDLUnsubscribeWayPoints","abstract":"

                                Undocumented

                                "},"Classes.html#/c:objc(cs)SDLUnsubscribeWaypoints":{"name":"SDLUnsubscribeWaypoints","abstract":"

                                Undocumented

                                "},"Classes.html#/c:objc(cs)SDLUnsubscribeWayPointsResponse":{"name":"SDLUnsubscribeWayPointsResponse","abstract":"

                                Undocumented

                                "},"Classes.html#/c:objc(cs)SDLUnsubscribeWaypointsResponse":{"name":"SDLUnsubscribeWaypointsResponse","abstract":"

                                Undocumented

                                "},"Classes/SDLUpdateMode.html":{"name":"SDLUpdateMode","abstract":"

                                Specifies what function should be performed on the media clock/counter

                                "},"Classes/SDLUpdateTurnList.html":{"name":"SDLUpdateTurnList","abstract":"

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

                                "},"Classes/SDLUpdateTurnListResponse.html":{"name":"SDLUpdateTurnListResponse","abstract":"

                                SDLUpdateTurnListResponse is sent, when SDLUpdateTurnList has been called.

                                "},"Classes/SDLVehicleDataActiveStatus.html":{"name":"SDLVehicleDataActiveStatus","abstract":"

                                Vehicle Data Activity Status

                                "},"Classes/SDLVehicleDataEventStatus.html":{"name":"SDLVehicleDataEventStatus","abstract":"

                                Reflects the status of a vehicle data event; e.g. a seat belt event status.

                                "},"Classes/SDLVehicleDataNotificationStatus.html":{"name":"SDLVehicleDataNotificationStatus","abstract":"

                                Reflects the status of a vehicle data notification.

                                "},"Classes/SDLVehicleDataResult.html":{"name":"SDLVehicleDataResult","abstract":"

                                Undocumented

                                "},"Classes/SDLVehicleDataResultCode.html":{"name":"SDLVehicleDataResultCode","abstract":"

                                Vehicle Data Result Code

                                "},"Classes/SDLVehicleDataStatus.html":{"name":"SDLVehicleDataStatus","abstract":"

                                Reflects the status of a binary vehicle data item.

                                "},"Classes/SDLVehicleDataType.html":{"name":"SDLVehicleDataType","abstract":"

                                Defines the vehicle data types that can be published and/or subscribed to using SDLSubscribeVehicleData

                                "},"Classes/SDLVehicleType.html":{"name":"SDLVehicleType","abstract":"

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

                                "},"Classes/SDLVideoStreamingCapability.html":{"name":"SDLVideoStreamingCapability","abstract":"

                                Undocumented

                                "},"Classes/SDLVideoStreamingCodec.html":{"name":"SDLVideoStreamingCodec","abstract":"

                                Enum for each type of video streaming codec

                                "},"Classes/SDLVideoStreamingFormat.html":{"name":"SDLVideoStreamingFormat","abstract":"

                                Undocumented

                                "},"Classes/SDLVideoStreamingProtocol.html":{"name":"SDLVideoStreamingProtocol","abstract":"

                                Enum for each type of video streaming protocol

                                "},"Classes/SDLVRCapabilities.html":{"name":"SDLVRCapabilities","abstract":"

                                The VR capabilities of the connected SDL platform.

                                "},"Classes/SDLVRHelpItem.html":{"name":"SDLVRHelpItem","abstract":"

                                Undocumented

                                "},"Classes/SDLWarningLightStatus.html":{"name":"SDLWarningLightStatus","abstract":"

                                Reflects the status of a cluster instrument warning light.

                                "},"Classes/SDLWaypointType.html":{"name":"SDLWaypointType","abstract":"

                                Undocumented

                                "},"Classes/SDLWiperStatus.html":{"name":"SDLWiperStatus","abstract":"

                                Wiper Status

                                "},"Classes.html":{"name":"Classes","abstract":"

                                The following classes are available globally.

                                "},"Constants.html":{"name":"Constants","abstract":"

                                The following constants are available globally.

                                "},"Enums.html":{"name":"Enums","abstract":"

                                The following enums are available globally.

                                "},"Protocols.html":{"name":"Protocols","abstract":"

                                The following protocols are available globally.

                                "},"Type Definitions.html":{"name":"Type Definitions","abstract":"

                                The following type definitions are available globally.

                                "}} \ No newline at end of file +{"Type Definitions/SDLTouchIdentifier/.html#/c:@EA@SDLTouchIdentifier@SDLTouchIdentifierFirstFinger":{"name":"SDLTouchIdentifierFirstFinger","abstract":"

                                Undocumented

                                "},"Type Definitions/SDLTouchIdentifier/.html#/c:@EA@SDLTouchIdentifier@SDLTouchIdentifierSecondFinger":{"name":"SDLTouchIdentifierSecondFinger","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLAmbientLightStatus.h@T@SDLAmbientLightStatus":{"name":"SDLAmbientLightStatus","abstract":"

                                Reflects the status of the ambient light sensor"},"Type Definitions.html#/c:SDLAppHMIType.h@T@SDLAppHMIType":{"name":"SDLAppHMIType","abstract":"

                                Enumeration listing possible app hmi types.

                                "},"Type Definitions.html#/c:SDLAppInterfaceUnregisteredReason.h@T@SDLAppInterfaceUnregisteredReason":{"name":"SDLAppInterfaceUnregisteredReason","abstract":"

                                Indicates reason why app interface was unregistered. The application is being disconnected by SDL.

                                "},"Type Definitions.html#/c:SDLAudioStreamingState.h@T@SDLAudioStreamingState":{"name":"SDLAudioStreamingState","abstract":"

                                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

                                "},"Type Definitions.html#/c:SDLAudioType.h@T@SDLAudioType":{"name":"SDLAudioType","abstract":"

                                Describes different audio type options for PerformAudioPassThru

                                "},"Type Definitions.html#/c:SDLBitsPerSample.h@T@SDLBitsPerSample":{"name":"SDLBitsPerSample","abstract":"

                                Describes different bit depth options for PerformAudioPassThru

                                "},"Type Definitions.html#/c:SDLButtonEventMode.h@T@SDLButtonEventMode":{"name":"SDLButtonEventMode","abstract":"

                                Indicates whether the button was depressed or released. A BUTTONUP event will always be preceded by a BUTTONDOWN event.

                                "},"Type Definitions.html#/c:SDLButtonName.h@T@SDLButtonName":{"name":"SDLButtonName","abstract":"

                                Defines logical buttons which, on a given SDL unit, would correspond to"},"Type Definitions.html#/c:SDLButtonPressMode.h@T@SDLButtonPressMode":{"name":"SDLButtonPressMode","abstract":"

                                Indicates whether this is a LONG or SHORT button press

                                "},"Type Definitions.html#/c:SDLCarModeStatus.h@T@SDLCarModeStatus":{"name":"SDLCarModeStatus","abstract":"

                                Describes the carmode the vehicle is in.

                                "},"Type Definitions.html#/c:SDLCharacterSet.h@T@SDLCharacterSet":{"name":"SDLCharacterSet","abstract":"

                                Character sets supported by SDL.

                                "},"Type Definitions.html#/c:SDLCompassDirection.h@T@SDLCompassDirection":{"name":"SDLCompassDirection","abstract":"

                                The list of potential compass directions.

                                "},"Type Definitions.html#/c:SDLComponentVolumeStatus.h@T@SDLComponentVolumeStatus":{"name":"SDLComponentVolumeStatus","abstract":"

                                The volume status of a vehicle component.

                                "},"Type Definitions.html#/c:SDLDefrostZone.h@T@SDLDefrostZone":{"name":"SDLDefrostZone","abstract":"

                                Enumeration listing possible defrost zones.

                                "},"Type Definitions.html#/c:SDLDeliveryMode.h@T@SDLDeliveryMode":{"name":"SDLDeliveryMode","abstract":"

                                Specifies the mode in which the sendLocation request is sent.

                                "},"Type Definitions.html#/c:SDLDeviceLevelStatus.h@T@SDLDeviceLevelStatus":{"name":"SDLDeviceLevelStatus","abstract":"

                                Reflects the reported battery status of the connected device, if reported.

                                "},"Type Definitions.html#/c:SDLDimension.h@T@SDLDimension":{"name":"SDLDimension","abstract":"

                                The supported dimensions of the GPS.

                                "},"Type Definitions.html#/c:SDLDisplayType.h@T@SDLDisplayType":{"name":"SDLDisplayType","abstract":"

                                Identifies the various display types used by SDL.

                                "},"Type Definitions.html#/c:SDLDriverDistractionState.h@T@SDLDriverDistractionState":{"name":"SDLDriverDistractionState","abstract":"

                                Enumeration that describes possible states of driver distraction.

                                "},"Type Definitions.html#/c:SDLECallConfirmationStatus.h@T@SDLECallConfirmationStatus":{"name":"SDLECallConfirmationStatus","abstract":"

                                Reflects the status of the eCall Notification."},"Type Definitions.html#/c:SDLEmergencyEventType.h@T@SDLEmergencyEventType":{"name":"SDLEmergencyEventType","abstract":"

                                Reflects the emergency event status of the vehicle."},"Type Definitions.html#/c:SDLEnum.h@T@SDLEnum":{"name":"SDLEnum","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileName":{"name":"SDLFileName","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLFileManager.h@T@SDLFileManagerStartupCompletionHandler":{"name":"SDLFileManagerStartupCompletionHandler","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerUploadCompletionHandler":{"name":"SDLFileManagerUploadCompletionHandler","abstract":"

                                A completion handler called after a response from Core to a upload request.

                                "},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerMultiUploadCompletionHandler":{"name":"SDLFileManagerMultiUploadCompletionHandler","abstract":"

                                A completion handler called after a set of upload requests has completed.

                                "},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerMultiUploadProgressHandler":{"name":"SDLFileManagerMultiUploadProgressHandler","abstract":"

                                In a multiple request send, a handler called after each response from Core to a upload request.

                                "},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerDeleteCompletionHandler":{"name":"SDLFileManagerDeleteCompletionHandler","abstract":"

                                A completion handler called after a response from Core to a delete request.

                                "},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerMultiDeleteCompletionHandler":{"name":"SDLFileManagerMultiDeleteCompletionHandler","abstract":"

                                A completion handler called after a set of delete requests has completed.

                                "},"Type Definitions.html#/c:SDLFileManagerConstants.h@T@SDLFileManagerListFilesCompletionHandler":{"name":"SDLFileManagerListFilesCompletionHandler","abstract":"

                                A completion handler called after response from Core to a list files request.

                                "},"Type Definitions.html#/c:SDLFileType.h@T@SDLFileType":{"name":"SDLFileType","abstract":"

                                Enumeration listing possible file types.

                                "},"Type Definitions.html#/c:SDLFuelCutoffStatus.h@T@SDLFuelCutoffStatus":{"name":"SDLFuelCutoffStatus","abstract":"

                                Reflects the status of the Restraints Control Module fuel pump cutoff."},"Type Definitions.html#/c:SDLGlobalProperty.h@T@SDLGlobalProperty":{"name":"SDLGlobalProperty","abstract":"

                                Properties of a user-initiated VR interaction (i.e. interactions started by the user pressing the PTT button).

                                "},"Type Definitions.html#/c:SDLHMILevel.h@T@SDLHMILevel":{"name":"SDLHMILevel","abstract":"

                                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 focus to other applications (e.g. phone, other mobile applications, etc.)

                                "},"Type Definitions.html#/c:SDLHMIZoneCapabilities.h@T@SDLHMIZoneCapabilities":{"name":"SDLHMIZoneCapabilities","abstract":"

                                Specifies HMI Zones in the vehicle.

                                "},"Type Definitions.html#/c:SDLIgnitionStableStatus.h@T@SDLIgnitionStableStatus":{"name":"SDLIgnitionStableStatus","abstract":"

                                Reflects the ignition switch stability.

                                "},"Type Definitions.html#/c:SDLIgnitionStatus.h@T@SDLIgnitionStatus":{"name":"SDLIgnitionStatus","abstract":"

                                Reflects the status of ignition..

                                "},"Type Definitions.html#/c:SDLImageFieldName.h@T@SDLImageFieldName":{"name":"SDLImageFieldName","abstract":"

                                The name that identifies the filed."},"Type Definitions.html#/c:SDLImageType.h@T@SDLImageType":{"name":"SDLImageType","abstract":"

                                Contains information about the type of image.

                                "},"Type Definitions.html#/c:SDLInteractionMode.h@T@SDLInteractionMode":{"name":"SDLInteractionMode","abstract":"

                                For application-initiated interactions (SDLPerformInteraction), this specifies the mode by which the user is prompted and by which the user’s selection is indicated

                                "},"Type Definitions.html#/c:SDLKeyboardEvent.h@T@SDLKeyboardEvent":{"name":"SDLKeyboardEvent","abstract":"

                                Enumeration listing possible keyboard events."},"Type Definitions.html#/c:SDLKeyboardLayout.h@T@SDLKeyboardLayout":{"name":"SDLKeyboardLayout","abstract":"

                                Enumeration listing possible keyboard layouts"},"Type Definitions.html#/c:SDLKeypressMode.h@T@SDLKeypressMode":{"name":"SDLKeypressMode","abstract":"

                                Enumeration listing possible keyboard events.

                                "},"Type Definitions.html#/c:SDLLanguage.h@T@SDLLanguage":{"name":"SDLLanguage","abstract":"

                                Specifies the language to be used for TTS, VR, displayed messages/menus

                                "},"Type Definitions.html#/c:SDLLayoutMode.h@T@SDLLayoutMode":{"name":"SDLLayoutMode","abstract":"

                                For touchscreen interactions, the mode of how the choices are presented.

                                "},"Type Definitions.html#/c:SDLLockScreenStatus.h@T@SDLLockScreenStatus":{"name":"SDLLockScreenStatus","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLLogConstants.h@T@SDLLogFilterBlock":{"name":"SDLLogFilterBlock","abstract":"

                                A block that takes in a log model and returns whether or not the log passes the filter and should therefore be logged.

                                "},"Type Definitions.html#/c:SDLMaintenanceModeStatus.h@T@SDLMaintenanceModeStatus":{"name":"SDLMaintenanceModeStatus","abstract":"

                                The SDLMaintenanceModeStatus class.

                                "},"Type Definitions.html#/c:SDLManager.h@T@SDLManagerReadyBlock":{"name":"SDLManagerReadyBlock","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLMediaClockFormat.h@T@SDLMediaClockFormat":{"name":"SDLMediaClockFormat","abstract":"

                                Indicates the format of the time displayed on the connected SDL unit.

                                "},"Type Definitions.html#/c:SDLMetadataType.h@T@SDLMetadataType":{"name":"SDLMetadataType","abstract":"

                                Text Field Types

                                "},"Type Definitions.html#/c:SDLModuleType.h@T@SDLModuleType":{"name":"SDLModuleType","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationName":{"name":"SDLNotificationName","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLNotificationUserInfoKey":{"name":"SDLNotificationUserInfoKey","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLAudioPassThruHandler":{"name":"SDLAudioPassThruHandler","abstract":"

                                A handler used on SDLPerformAudioPassThru.

                                "},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLResponseHandler":{"name":"SDLResponseHandler","abstract":"

                                A handler used on all RPC requests which fires when the response is received.

                                "},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCButtonNotificationHandler":{"name":"SDLRPCButtonNotificationHandler","abstract":"

                                A handler that may optionally be run when an SDLSubscribeButton or SDLSoftButton has a corresponding notification occur.

                                "},"Type Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCCommandNotificationHandler":{"name":"SDLRPCCommandNotificationHandler","abstract":"

                                A handler that may optionally be run when an SDLAddCommand has a corresponding notification occur.

                                "},"Type Definitions.html#/c:SDLPRNDL.h@T@SDLPRNDL":{"name":"SDLPRNDL","abstract":"

                                The selected gear the car is in.

                                "},"Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionRPCName":{"name":"SDLPermissionRPCName","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionObserverIdentifier":{"name":"SDLPermissionObserverIdentifier","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLPermissionConstants.h@T@SDLPermissionsChangedHandler":{"name":"SDLPermissionsChangedHandler","abstract":"

                                The PermissionObserver is a block that is passed in to some methods that will be stored and called when specified permissions change.

                                "},"Type Definitions.html#/c:SDLPermissionStatus.h@T@SDLPermissionStatus":{"name":"SDLPermissionStatus","abstract":"

                                Enumeration that describes possible permission states of a policy table entry.

                                "},"Type Definitions.html#/c:SDLPowerModeQualificationStatus.h@T@SDLPowerModeQualificationStatus":{"name":"SDLPowerModeQualificationStatus","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLPowerModeStatus.h@T@SDLPowerModeStatus":{"name":"SDLPowerModeStatus","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLPredefinedLayout.h@T@SDLPredefinedLayout":{"name":"SDLPredefinedLayout","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLPrerecordedSpeech.h@T@SDLPrerecordedSpeech":{"name":"SDLPrerecordedSpeech","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLPrimaryAudioSource.h@T@SDLPrimaryAudioSource":{"name":"SDLPrimaryAudioSource","abstract":"

                                Reflects the current primary audio source of SDL (if selected).

                                "},"Type Definitions.html#/c:SDLRadioBand.h@T@SDLRadioBand":{"name":"SDLRadioBand","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLRadioState.h@T@SDLRadioState":{"name":"SDLRadioState","abstract":"

                                List possible states of a remote control radio module.

                                "},"Type Definitions.html#/c:SDLRequestType.h@T@SDLRequestType":{"name":"SDLRequestType","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLResult.h@T@SDLResult":{"name":"SDLResult","abstract":"

                                Defines the possible result codes returned by SDL to the application in a response to a requested operation

                                "},"Type Definitions.html#/c:SDLSamplingRate.h@T@SDLSamplingRate":{"name":"SDLSamplingRate","abstract":"

                                Describes different sampling rates for PerformAudioPassThru

                                "},"Type Definitions.html#/c:SDLSoftButtonType.h@T@SDLSoftButtonType":{"name":"SDLSoftButtonType","abstract":"

                                SoftButtonType (TEXT / IMAGE / BOTH)

                                "},"Type Definitions.html#/c:SDLSpeechCapabilities.h@T@SDLSpeechCapabilities":{"name":"SDLSpeechCapabilities","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLSystemAction.h@T@SDLSystemAction":{"name":"SDLSystemAction","abstract":"

                                Enumeration that describes system actions that can be triggered.

                                "},"Type Definitions.html#/c:SDLSystemCapabilityType.h@T@SDLSystemCapabilityType":{"name":"SDLSystemCapabilityType","abstract":"

                                The type of system capability to get more information on

                                "},"Type Definitions.html#/c:SDLSystemContext.h@T@SDLSystemContext":{"name":"SDLSystemContext","abstract":"

                                Indicates whether or not a user-initiated interaction is in progress, and if so, in what mode (i.e. MENU or VR).

                                "},"Type Definitions.html#/c:SDLTBTState.h@T@SDLTBTState":{"name":"SDLTBTState","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLTemperatureUnit.h@T@SDLTemperatureUnit":{"name":"SDLTemperatureUnit","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLTextAlignment.h@T@SDLTextAlignment":{"name":"SDLTextAlignment","abstract":"

                                The list of possible alignments of text in a field. May only work on some display types.

                                "},"Type Definitions.html#/c:SDLTextFieldName.h@T@SDLTextFieldName":{"name":"SDLTextFieldName","abstract":"

                                Names of the text fields that can appear on a SDL display.

                                "},"Type Definitions.html#/c:SDLTimerMode.h@T@SDLTimerMode":{"name":"SDLTimerMode","abstract":"

                                Undocumented

                                "},"Type Definitions/SDLTouchIdentifier.html":{"name":"SDLTouchIdentifier","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLTouchManager.h@T@SDLTouchEventHandler":{"name":"SDLTouchEventHandler","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLTouchType.h@T@SDLTouchType":{"name":"SDLTouchType","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLTriggerSource.h@T@SDLTriggerSource":{"name":"SDLTriggerSource","abstract":"

                                Indicates whether choice/command was selected via VR or via a menu selection (using SEEKRIGHT/SEEKLEFT, TUNEUP, TUNEDOWN, OK buttons)

                                "},"Type Definitions.html#/c:SDLUpdateMode.h@T@SDLUpdateMode":{"name":"SDLUpdateMode","abstract":"

                                Specifies what function should be performed on the media clock/counter

                                "},"Type Definitions.html#/c:SDLVehicleDataActiveStatus.h@T@SDLVehicleDataActiveStatus":{"name":"SDLVehicleDataActiveStatus","abstract":"

                                Vehicle Data Activity Status

                                "},"Type Definitions.html#/c:SDLVehicleDataEventStatus.h@T@SDLVehicleDataEventStatus":{"name":"SDLVehicleDataEventStatus","abstract":"

                                Reflects the status of a vehicle data event; e.g. a seat belt event status.

                                "},"Type Definitions.html#/c:SDLVehicleDataNotificationStatus.h@T@SDLVehicleDataNotificationStatus":{"name":"SDLVehicleDataNotificationStatus","abstract":"

                                Reflects the status of a vehicle data notification.

                                "},"Type Definitions.html#/c:SDLVehicleDataResultCode.h@T@SDLVehicleDataResultCode":{"name":"SDLVehicleDataResultCode","abstract":"

                                Vehicle Data Result Code

                                "},"Type Definitions.html#/c:SDLVehicleDataStatus.h@T@SDLVehicleDataStatus":{"name":"SDLVehicleDataStatus","abstract":"

                                Reflects the status of a binary vehicle data item.

                                "},"Type Definitions.html#/c:SDLVehicleDataType.h@T@SDLVehicleDataType":{"name":"SDLVehicleDataType","abstract":"

                                Defines the vehicle data types that can be published and/or subscribed to using SDLSubscribeVehicleData

                                "},"Type Definitions.html#/c:SDLVentilationMode.h@T@SDLVentilationMode":{"name":"SDLVentilationMode","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLVideoStreamingCodec.h@T@SDLVideoStreamingCodec":{"name":"SDLVideoStreamingCodec","abstract":"

                                Enum for each type of video streaming codec

                                "},"Type Definitions.html#/c:SDLVideoStreamingProtocol.h@T@SDLVideoStreamingProtocol":{"name":"SDLVideoStreamingProtocol","abstract":"

                                Enum for each type of video streaming protocol

                                "},"Type Definitions.html#/c:SDLVrCapabilities.h@T@SDLVRCapabilities":{"name":"SDLVRCapabilities","abstract":"

                                The VR capabilities of the connected SDL platform.

                                "},"Type Definitions.html#/c:SDLWarningLightStatus.h@T@SDLWarningLightStatus":{"name":"SDLWarningLightStatus","abstract":"

                                Reflects the status of a cluster instrument warning light.

                                "},"Type Definitions.html#/c:SDLWayPointType.h@T@SDLWayPointType":{"name":"SDLWayPointType","abstract":"

                                Undocumented

                                "},"Type Definitions.html#/c:SDLWiperStatus.h@T@SDLWiperStatus":{"name":"SDLWiperStatus","abstract":"

                                Wiper Status

                                "},"Protocols/SDLTransportDelegate.html#/c:objc(pl)SDLTransportDelegate(im)onTransportConnected":{"name":"-onTransportConnected","abstract":"

                                Undocumented

                                ","parent_name":"SDLTransportDelegate"},"Protocols/SDLTransportDelegate.html#/c:objc(pl)SDLTransportDelegate(im)onTransportDisconnected":{"name":"-onTransportDisconnected","abstract":"

                                Undocumented

                                ","parent_name":"SDLTransportDelegate"},"Protocols/SDLTransportDelegate.html#/c:objc(pl)SDLTransportDelegate(im)onDataReceived:":{"name":"-onDataReceived:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTransportDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:didReceiveSingleTapForView:atPoint:":{"name":"-touchManager:didReceiveSingleTapForView:atPoint:","abstract":"

                                A single tap was received

                                ","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:didReceiveDoubleTapForView:atPoint:":{"name":"-touchManager:didReceiveDoubleTapForView:atPoint:","abstract":"

                                A double tap was received

                                ","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:panningDidStartInView:atPoint:":{"name":"-touchManager:panningDidStartInView:atPoint:","abstract":"

                                Panning started

                                ","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:didReceivePanningFromPoint:toPoint:":{"name":"-touchManager:didReceivePanningFromPoint:toPoint:","abstract":"

                                Panning moved between points

                                ","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:panningDidEndInView:atPoint:":{"name":"-touchManager:panningDidEndInView:atPoint:","abstract":"

                                Panning ended

                                ","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:panningCanceledAtPoint:":{"name":"-touchManager:panningCanceledAtPoint:","abstract":"

                                Panning canceled

                                ","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:pinchDidStartInView:atCenterPoint:":{"name":"-touchManager:pinchDidStartInView:atCenterPoint:","abstract":"

                                Pinch did start

                                ","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:didReceivePinchAtCenterPoint:withScale:":{"name":"-touchManager:didReceivePinchAtCenterPoint:withScale:","abstract":"

                                @abstract","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:didReceivePinchInView:atCenterPoint:withScale:":{"name":"-touchManager:didReceivePinchInView:atCenterPoint:withScale:","abstract":"

                                Pinch moved and changed scale

                                ","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:pinchDidEndInView:atCenterPoint:":{"name":"-touchManager:pinchDidEndInView:atCenterPoint:","abstract":"

                                Pinch did end

                                ","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLTouchManagerDelegate.html#/c:objc(pl)SDLTouchManagerDelegate(im)touchManager:pinchCanceledAtCenterPoint:":{"name":"-touchManager:pinchCanceledAtCenterPoint:","abstract":"

                                Pinch canceled

                                ","parent_name":"SDLTouchManagerDelegate"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(py)appId":{"name":"appId","abstract":"

                                Undocumented

                                ","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(im)initializeWithAppId:completionHandler:":{"name":"-initializeWithAppId:completionHandler:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(im)stop":{"name":"-stop","abstract":"

                                Undocumented

                                ","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(im)runHandshakeWithClientData:error:":{"name":"-runHandshakeWithClientData:error:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(im)encryptData:withError:":{"name":"-encryptData:withError:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(im)decryptData:withError:":{"name":"-decryptData:withError:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSecurityType"},"Protocols/SDLSecurityType.html#/c:objc(pl)SDLSecurityType(cm)availableMakes":{"name":"+availableMakes","abstract":"

                                Undocumented

                                ","parent_name":"SDLSecurityType"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnDriverDistraction:":{"name":"-onOnDriverDistraction:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnHMIStatus:":{"name":"-onOnHMIStatus:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onProxyClosed":{"name":"-onProxyClosed","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onProxyOpened":{"name":"-onProxyOpened","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onAddCommandResponse:":{"name":"-onAddCommandResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onAddSubMenuResponse:":{"name":"-onAddSubMenuResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onAlertManeuverResponse:":{"name":"-onAlertManeuverResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onAlertResponse:":{"name":"-onAlertResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onButtonPressResponse:":{"name":"-onButtonPressResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onChangeRegistrationResponse:":{"name":"-onChangeRegistrationResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onCreateInteractionChoiceSetResponse:":{"name":"-onCreateInteractionChoiceSetResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onDeleteCommandResponse:":{"name":"-onDeleteCommandResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onDeleteFileResponse:":{"name":"-onDeleteFileResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onDeleteInteractionChoiceSetResponse:":{"name":"-onDeleteInteractionChoiceSetResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onDeleteSubMenuResponse:":{"name":"-onDeleteSubMenuResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onDiagnosticMessageResponse:":{"name":"-onDiagnosticMessageResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onDialNumberResponse:":{"name":"-onDialNumberResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onEncodedSyncPDataResponse:":{"name":"-onEncodedSyncPDataResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onEndAudioPassThruResponse:":{"name":"-onEndAudioPassThruResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onError:":{"name":"-onError:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onGenericResponse:":{"name":"-onGenericResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onGetDTCsResponse:":{"name":"-onGetDTCsResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onGetInteriorVehicleDataResponse:":{"name":"-onGetInteriorVehicleDataResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onGetSystemCapabilityResponse:":{"name":"-onGetSystemCapabilityResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onGetVehicleDataResponse:":{"name":"-onGetVehicleDataResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onGetWayPointsResponse:":{"name":"-onGetWayPointsResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onListFilesResponse:":{"name":"-onListFilesResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onReceivedLockScreenIcon:":{"name":"-onReceivedLockScreenIcon:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnAppInterfaceUnregistered:":{"name":"-onOnAppInterfaceUnregistered:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnAudioPassThru:":{"name":"-onOnAudioPassThru:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnButtonEvent:":{"name":"-onOnButtonEvent:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnButtonPress:":{"name":"-onOnButtonPress:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnCommand:":{"name":"-onOnCommand:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnEncodedSyncPData:":{"name":"-onOnEncodedSyncPData:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnHashChange:":{"name":"-onOnHashChange:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnInteriorVehicleData:":{"name":"-onOnInteriorVehicleData:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnKeyboardInput:":{"name":"-onOnKeyboardInput:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnLanguageChange:":{"name":"-onOnLanguageChange:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnLockScreenNotification:":{"name":"-onOnLockScreenNotification:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnPermissionsChange:":{"name":"-onOnPermissionsChange:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnSyncPData:":{"name":"-onOnSyncPData:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnSystemRequest:":{"name":"-onOnSystemRequest:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnTBTClientState:":{"name":"-onOnTBTClientState:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnTouchEvent:":{"name":"-onOnTouchEvent:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnVehicleData:":{"name":"-onOnVehicleData:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onOnWayPointChange:":{"name":"-onOnWayPointChange:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onPerformAudioPassThruResponse:":{"name":"-onPerformAudioPassThruResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onPerformInteractionResponse:":{"name":"-onPerformInteractionResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onPutFileResponse:":{"name":"-onPutFileResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onReadDIDResponse:":{"name":"-onReadDIDResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onRegisterAppInterfaceResponse:":{"name":"-onRegisterAppInterfaceResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onResetGlobalPropertiesResponse:":{"name":"-onResetGlobalPropertiesResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onScrollableMessageResponse:":{"name":"-onScrollableMessageResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSendHapticDataResponse:":{"name":"-onSendHapticDataResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSendLocationResponse:":{"name":"-onSendLocationResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSetAppIconResponse:":{"name":"-onSetAppIconResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSetDisplayLayoutResponse:":{"name":"-onSetDisplayLayoutResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSetGlobalPropertiesResponse:":{"name":"-onSetGlobalPropertiesResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSetInteriorVehicleDataResponse:":{"name":"-onSetInteriorVehicleDataResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSetMediaClockTimerResponse:":{"name":"-onSetMediaClockTimerResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onShowConstantTBTResponse:":{"name":"-onShowConstantTBTResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onShowResponse:":{"name":"-onShowResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSliderResponse:":{"name":"-onSliderResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSpeakResponse:":{"name":"-onSpeakResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSubscribeButtonResponse:":{"name":"-onSubscribeButtonResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSubscribeVehicleDataResponse:":{"name":"-onSubscribeVehicleDataResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSubscribeWayPointsResponse:":{"name":"-onSubscribeWayPointsResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onSyncPDataResponse:":{"name":"-onSyncPDataResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onUpdateTurnListResponse:":{"name":"-onUpdateTurnListResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onUnregisterAppInterfaceResponse:":{"name":"-onUnregisterAppInterfaceResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onUnsubscribeButtonResponse:":{"name":"-onUnsubscribeButtonResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onUnsubscribeVehicleDataResponse:":{"name":"-onUnsubscribeVehicleDataResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProxyListener.html#/c:objc(pl)SDLProxyListener(im)onUnsubscribeWayPointsResponse:":{"name":"-onUnsubscribeWayPointsResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)handleProtocolStartServiceACKMessage:":{"name":"-handleProtocolStartServiceACKMessage:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)handleProtocolStartServiceNAKMessage:":{"name":"-handleProtocolStartServiceNAKMessage:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)handleProtocolEndServiceACKMessage:":{"name":"-handleProtocolEndServiceACKMessage:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)handleProtocolEndServiceNAKMessage:":{"name":"-handleProtocolEndServiceNAKMessage:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)handleHeartbeatForSession:":{"name":"-handleHeartbeatForSession:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)handleHeartbeatACK":{"name":"-handleHeartbeatACK","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)onProtocolMessageReceived:":{"name":"-onProtocolMessageReceived:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)onProtocolOpened":{"name":"-onProtocolOpened","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)onProtocolClosed":{"name":"-onProtocolClosed","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLProtocolListener.html#/c:objc(pl)SDLProtocolListener(im)onError:exception:":{"name":"-onError:exception:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolListener"},"Protocols/SDLManagerDelegate.html#/c:objc(pl)SDLManagerDelegate(im)managerDidDisconnect":{"name":"-managerDidDisconnect","abstract":"

                                Called upon a disconnection from the remote system.

                                ","parent_name":"SDLManagerDelegate"},"Protocols/SDLManagerDelegate.html#/c:objc(pl)SDLManagerDelegate(im)hmiLevel:didChangeToLevel:":{"name":"-hmiLevel:didChangeToLevel:","abstract":"

                                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.

                                ","parent_name":"SDLManagerDelegate"},"Protocols/SDLManagerDelegate.html#/c:objc(pl)SDLManagerDelegate(im)audioStreamingState:didChangeToState:":{"name":"-audioStreamingState:didChangeToState:","abstract":"

                                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.

                                ","parent_name":"SDLManagerDelegate"},"Protocols/SDLManagerDelegate.html#/c:objc(pl)SDLManagerDelegate(im)systemContext:didChangeToContext:":{"name":"-systemContext:didChangeToContext:","abstract":"

                                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.

                                ","parent_name":"SDLManagerDelegate"},"Protocols/SDLLogTarget.html#/c:objc(pl)SDLLogTarget(cm)logger":{"name":"+logger","abstract":"

                                A simple convenience initializer to create the object. This should not start up the logger.

                                ","parent_name":"SDLLogTarget"},"Protocols/SDLLogTarget.html#/c:objc(pl)SDLLogTarget(im)setupLogger":{"name":"-setupLogger","abstract":"

                                A call to setup the logger in whatever manner it needs to do so.

                                ","parent_name":"SDLLogTarget"},"Protocols/SDLLogTarget.html#/c:objc(pl)SDLLogTarget(im)logWithLog:formattedLog:":{"name":"-logWithLog:formattedLog:","abstract":"

                                Log a particular log using the model and the formatted log message to the target.

                                ","parent_name":"SDLLogTarget"},"Protocols/SDLLogTarget.html#/c:objc(pl)SDLLogTarget(im)teardownLogger":{"name":"-teardownLogger","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogTarget"},"Protocols/SDLIAPSessionDelegate.html#/c:objc(pl)SDLIAPSessionDelegate(im)onSessionInitializationCompleteForSession:":{"name":"-onSessionInitializationCompleteForSession:","abstract":"

                                Undocumented

                                ","parent_name":"SDLIAPSessionDelegate"},"Protocols/SDLIAPSessionDelegate.html#/c:objc(pl)SDLIAPSessionDelegate(im)onSessionStreamsEnded:":{"name":"-onSessionStreamsEnded:","abstract":"

                                Undocumented

                                ","parent_name":"SDLIAPSessionDelegate"},"Protocols.html#/c:objc(pl)SDLInt":{"name":"SDLInt","abstract":"

                                A decleration that this NSNumber contains an NSInteger.

                                "},"Protocols.html#/c:objc(pl)SDLUInt":{"name":"SDLUInt","abstract":"

                                A declaration that this NSNumber contains an NSUInteger.

                                "},"Protocols.html#/c:objc(pl)SDLBool":{"name":"SDLBool","abstract":"

                                A declaration that this NSNumber contains a BOOL.

                                "},"Protocols.html#/c:objc(pl)SDLFloat":{"name":"SDLFloat","abstract":"

                                A declaration that this NSNumber contains a float.

                                "},"Protocols/SDLIAPSessionDelegate.html":{"name":"SDLIAPSessionDelegate","abstract":"

                                Undocumented

                                "},"Protocols/SDLLogTarget.html":{"name":"SDLLogTarget","abstract":"

                                Undocumented

                                "},"Protocols/SDLManagerDelegate.html":{"name":"SDLManagerDelegate","abstract":"

                                Undocumented

                                "},"Protocols/SDLProtocolListener.html":{"name":"SDLProtocolListener","abstract":"

                                Undocumented

                                "},"Protocols/SDLProxyListener.html":{"name":"SDLProxyListener","abstract":"

                                Undocumented

                                "},"Protocols/SDLSecurityType.html":{"name":"SDLSecurityType","abstract":"

                                Undocumented

                                "},"Protocols/SDLTouchManagerDelegate.html":{"name":"SDLTouchManagerDelegate","abstract":"

                                Undocumented

                                "},"Protocols/SDLTransportDelegate.html":{"name":"SDLTransportDelegate","abstract":"

                                Undocumented

                                "},"Enums/SDLStreamingEncryptionFlag.html#/c:@E@SDLStreamingEncryptionFlag@SDLStreamingEncryptionFlagNone":{"name":"SDLStreamingEncryptionFlagNone","abstract":"

                                Undocumented

                                ","parent_name":"SDLStreamingEncryptionFlag"},"Enums/SDLStreamingEncryptionFlag.html#/c:@E@SDLStreamingEncryptionFlag@SDLStreamingEncryptionFlagAuthenticateOnly":{"name":"SDLStreamingEncryptionFlagAuthenticateOnly","abstract":"

                                Undocumented

                                ","parent_name":"SDLStreamingEncryptionFlag"},"Enums/SDLStreamingEncryptionFlag.html#/c:@E@SDLStreamingEncryptionFlag@SDLStreamingEncryptionFlagAuthenticateAndEncrypt":{"name":"SDLStreamingEncryptionFlagAuthenticateAndEncrypt","abstract":"

                                Undocumented

                                ","parent_name":"SDLStreamingEncryptionFlag"},"Enums/SDLRPCMessageType.html#/c:@E@SDLRPCMessageType@SDLRPCMessageTypeRequest":{"name":"SDLRPCMessageTypeRequest","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessageType"},"Enums/SDLRPCMessageType.html#/c:@E@SDLRPCMessageType@SDLRPCMessageTypeResponse":{"name":"SDLRPCMessageTypeResponse","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessageType"},"Enums/SDLRPCMessageType.html#/c:@E@SDLRPCMessageType@SDLRPCMessageTypeNotification":{"name":"SDLRPCMessageTypeNotification","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessageType"},"Enums/SDLFrameInfo.html#/c:@E@SDLFrameInfo@SDLFrameInfoHeartbeat":{"name":"SDLFrameInfoHeartbeat","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameInfo"},"Enums/SDLFrameInfo.html#/c:@E@SDLFrameInfo@SDLFrameInfoStartService":{"name":"SDLFrameInfoStartService","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameInfo"},"Enums/SDLFrameInfo.html#/c:@E@SDLFrameInfo@SDLFrameInfoStartServiceACK":{"name":"SDLFrameInfoStartServiceACK","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameInfo"},"Enums/SDLFrameInfo.html#/c:@E@SDLFrameInfo@SDLFrameInfoStartServiceNACK":{"name":"SDLFrameInfoStartServiceNACK","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameInfo"},"Enums/SDLFrameInfo.html#/c:@E@SDLFrameInfo@SDLFrameInfoEndService":{"name":"SDLFrameInfoEndService","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameInfo"},"Enums/SDLFrameInfo.html#/c:@E@SDLFrameInfo@SDLFrameInfoEndServiceACK":{"name":"SDLFrameInfoEndServiceACK","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameInfo"},"Enums/SDLFrameInfo.html#/c:@E@SDLFrameInfo@SDLFrameInfoEndServiceNACK":{"name":"SDLFrameInfoEndServiceNACK","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameInfo"},"Enums/SDLFrameInfo.html#/c:@E@SDLFrameInfo@SDLFrameInfoServiceDataAck":{"name":"SDLFrameInfoServiceDataAck","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameInfo"},"Enums/SDLFrameInfo.html#/c:@E@SDLFrameInfo@SDLFrameInfoHeartbeatACK":{"name":"SDLFrameInfoHeartbeatACK","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameInfo"},"Enums/SDLFrameInfo.html#/c:@E@SDLFrameInfo@SDLFrameInfoSingleFrame":{"name":"SDLFrameInfoSingleFrame","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameInfo"},"Enums/SDLFrameInfo.html#/c:@E@SDLFrameInfo@SDLFrameInfoFirstFrame":{"name":"SDLFrameInfoFirstFrame","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameInfo"},"Enums/SDLFrameInfo.html#/c:@E@SDLFrameInfo@SDLFrameInfoConsecutiveLastFrame":{"name":"SDLFrameInfoConsecutiveLastFrame","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameInfo"},"Enums/SDLServiceType.html#/c:@E@SDLServiceType@SDLServiceTypeControl":{"name":"SDLServiceTypeControl","abstract":"

                                Undocumented

                                ","parent_name":"SDLServiceType"},"Enums/SDLServiceType.html#/c:@E@SDLServiceType@SDLServiceTypeRPC":{"name":"SDLServiceTypeRPC","abstract":"

                                Undocumented

                                ","parent_name":"SDLServiceType"},"Enums/SDLServiceType.html#/c:@E@SDLServiceType@SDLServiceTypeAudio":{"name":"SDLServiceTypeAudio","abstract":"

                                Undocumented

                                ","parent_name":"SDLServiceType"},"Enums/SDLServiceType.html#/c:@E@SDLServiceType@SDLServiceTypeVideo":{"name":"SDLServiceTypeVideo","abstract":"

                                Undocumented

                                ","parent_name":"SDLServiceType"},"Enums/SDLServiceType.html#/c:@E@SDLServiceType@SDLServiceTypeBulkData":{"name":"SDLServiceTypeBulkData","abstract":"

                                Undocumented

                                ","parent_name":"SDLServiceType"},"Enums/SDLFrameType.html#/c:@E@SDLFrameType@SDLFrameTypeControl":{"name":"SDLFrameTypeControl","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameType"},"Enums/SDLFrameType.html#/c:@E@SDLFrameType@SDLFrameTypeSingle":{"name":"SDLFrameTypeSingle","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameType"},"Enums/SDLFrameType.html#/c:@E@SDLFrameType@SDLFrameTypeFirst":{"name":"SDLFrameTypeFirst","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameType"},"Enums/SDLFrameType.html#/c:@E@SDLFrameType@SDLFrameTypeConsecutive":{"name":"SDLFrameTypeConsecutive","abstract":"

                                Undocumented

                                ","parent_name":"SDLFrameType"},"Enums/SDLProtocolError.html#/c:@E@SDLProtocolError@SDLProtocolErrorNoSecurityManager":{"name":"SDLProtocolErrorNoSecurityManager","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolError"},"Enums/SDLPermissionGroupStatus.html#/c:@E@SDLPermissionGroupStatus@SDLPermissionGroupStatusAllowed":{"name":"SDLPermissionGroupStatusAllowed","abstract":"

                                Every RPC in the group is currently allowed.

                                ","parent_name":"SDLPermissionGroupStatus"},"Enums/SDLPermissionGroupStatus.html#/c:@E@SDLPermissionGroupStatus@SDLPermissionGroupStatusDisallowed":{"name":"SDLPermissionGroupStatusDisallowed","abstract":"

                                Every RPC in the group is currently disallowed.

                                ","parent_name":"SDLPermissionGroupStatus"},"Enums/SDLPermissionGroupStatus.html#/c:@E@SDLPermissionGroupStatus@SDLPermissionGroupStatusMixed":{"name":"SDLPermissionGroupStatusMixed","abstract":"

                                Some RPCs in the group are allowed and some disallowed.

                                ","parent_name":"SDLPermissionGroupStatus"},"Enums/SDLPermissionGroupStatus.html#/c:@E@SDLPermissionGroupStatus@SDLPermissionGroupStatusUnknown":{"name":"SDLPermissionGroupStatusUnknown","abstract":"

                                The current status of the group is unknown.

                                ","parent_name":"SDLPermissionGroupStatus"},"Enums/SDLPermissionGroupType.html#/c:@E@SDLPermissionGroupType@SDLPermissionGroupTypeAllAllowed":{"name":"SDLPermissionGroupTypeAllAllowed","abstract":"

                                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.

                                ","parent_name":"SDLPermissionGroupType"},"Enums/SDLPermissionGroupType.html#/c:@E@SDLPermissionGroupType@SDLPermissionGroupTypeAny":{"name":"SDLPermissionGroupTypeAny","abstract":"

                                Be notified when any change in availability occurs among the group.

                                ","parent_name":"SDLPermissionGroupType"},"Enums/SDLLogFormatType.html#/c:@E@SDLLogFormatType@SDLLogFormatTypeSimple":{"name":"SDLLogFormatTypeSimple","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogFormatType"},"Enums/SDLLogFormatType.html#/c:@E@SDLLogFormatType@SDLLogFormatTypeDefault":{"name":"SDLLogFormatTypeDefault","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogFormatType"},"Enums/SDLLogFormatType.html#/c:@E@SDLLogFormatType@SDLLogFormatTypeDetailed":{"name":"SDLLogFormatTypeDetailed","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogFormatType"},"Enums/SDLLogLevel.html#/c:@E@SDLLogLevel@SDLLogLevelDefault":{"name":"SDLLogLevelDefault","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogLevel"},"Enums/SDLLogLevel.html#/c:@E@SDLLogLevel@SDLLogLevelOff":{"name":"SDLLogLevelOff","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogLevel"},"Enums/SDLLogLevel.html#/c:@E@SDLLogLevel@SDLLogLevelError":{"name":"SDLLogLevelError","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogLevel"},"Enums/SDLLogLevel.html#/c:@E@SDLLogLevel@SDLLogLevelWarning":{"name":"SDLLogLevelWarning","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogLevel"},"Enums/SDLLogLevel.html#/c:@E@SDLLogLevel@SDLLogLevelDebug":{"name":"SDLLogLevelDebug","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogLevel"},"Enums/SDLLogLevel.html#/c:@E@SDLLogLevel@SDLLogLevelVerbose":{"name":"SDLLogLevelVerbose","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogLevel"},"Enums/SDLLogFlag.html#/c:@E@SDLLogFlag@SDLLogFlagError":{"name":"SDLLogFlagError","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogFlag"},"Enums/SDLLogFlag.html#/c:@E@SDLLogFlag@SDLLogFlagWarning":{"name":"SDLLogFlagWarning","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogFlag"},"Enums/SDLLogFlag.html#/c:@E@SDLLogFlag@SDLLogFlagDebug":{"name":"SDLLogFlagDebug","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogFlag"},"Enums/SDLLogFlag.html#/c:@E@SDLLogFlag@SDLLogFlagVerbose":{"name":"SDLLogFlagVerbose","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogFlag"},"Enums/SDLLogBytesDirection.html#/c:@E@SDLLogBytesDirection@SDLLogBytesDirectionTransmit":{"name":"SDLLogBytesDirectionTransmit","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogBytesDirection"},"Enums/SDLLogBytesDirection.html#/c:@E@SDLLogBytesDirection@SDLLogBytesDirectionReceive":{"name":"SDLLogBytesDirectionReceive","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogBytesDirection"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorCannotOverwrite":{"name":"SDLFileManagerErrorCannotOverwrite","abstract":"

                                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.

                                ","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorNoKnownFile":{"name":"SDLFileManagerErrorNoKnownFile","abstract":"

                                A file was attempted to be accessed but it does not exist.

                                ","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorUnableToStart":{"name":"SDLFileManagerErrorUnableToStart","abstract":"

                                The file manager attempted to start but encountered an error.

                                ","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorUnableToUpload":{"name":"SDLFileManagerErrorUnableToUpload","abstract":"

                                The file manager was unable to send this file.

                                ","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerErrorFileDoesNotExist":{"name":"SDLFileManagerErrorFileDoesNotExist","abstract":"

                                The file manager could not find the local file.

                                ","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerUploadCanceled":{"name":"SDLFileManagerUploadCanceled","abstract":"

                                The file manager could not find the local file.

                                ","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerMultipleFileUploadTasksFailed":{"name":"SDLFileManagerMultipleFileUploadTasksFailed","abstract":"

                                The file manager could not find the local file.

                                ","parent_name":"SDLFileManagerError"},"Enums/SDLFileManagerError.html#/c:@E@SDLFileManagerError@SDLFileManagerMultipleFileDeleteTasksFailed":{"name":"SDLFileManagerMultipleFileDeleteTasksFailed","abstract":"

                                The file manager could not find the local file.

                                ","parent_name":"SDLFileManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorRPCRequestFailed":{"name":"SDLManagerErrorRPCRequestFailed","abstract":"

                                An RPC request failed to send.

                                ","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorNotConnected":{"name":"SDLManagerErrorNotConnected","abstract":"

                                Some action was attempted that requires a connection to the remote head unit.

                                ","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorNotReady":{"name":"SDLManagerErrorNotReady","abstract":"

                                Some action was attempted before the ready state was reached.

                                ","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorUnknownRemoteError":{"name":"SDLManagerErrorUnknownRemoteError","abstract":"

                                The remote system encountered an unknown error.

                                ","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorManagersFailedToStart":{"name":"SDLManagerErrorManagersFailedToStart","abstract":"

                                One or more of the sub-managers failed to start.

                                ","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorRegistrationFailed":{"name":"SDLManagerErrorRegistrationFailed","abstract":"

                                Registering with the remote system failed.

                                ","parent_name":"SDLManagerError"},"Enums/SDLManagerError.html#/c:@E@SDLManagerError@SDLManagerErrorRegistrationSuccessWithWarning":{"name":"SDLManagerErrorRegistrationSuccessWithWarning","abstract":"

                                Registering with the remote system was successful, but had a warning.

                                ","parent_name":"SDLManagerError"},"Enums/SDLArtworkImageFormat.html#/c:@E@SDLArtworkImageFormat@SDLArtworkImageFormatPNG":{"name":"SDLArtworkImageFormatPNG","abstract":"

                                Undocumented

                                ","parent_name":"SDLArtworkImageFormat"},"Enums/SDLArtworkImageFormat.html#/c:@E@SDLArtworkImageFormat@SDLArtworkImageFormatJPG":{"name":"SDLArtworkImageFormatJPG","abstract":"

                                Undocumented

                                ","parent_name":"SDLArtworkImageFormat"},"Enums/SDLArtworkImageFormat.html":{"name":"SDLArtworkImageFormat","abstract":"

                                Undocumented

                                "},"Enums/SDLManagerError.html":{"name":"SDLManagerError","abstract":"

                                Errors associated with the SDLManager class.

                                "},"Enums/SDLFileManagerError.html":{"name":"SDLFileManagerError","abstract":"

                                Errors associated with the SDLFileManager class.

                                "},"Enums/SDLLogBytesDirection.html":{"name":"SDLLogBytesDirection","abstract":"

                                Undocumented

                                "},"Enums/SDLLogFlag.html":{"name":"SDLLogFlag","abstract":"

                                Flags used for SDLLogLevel to provide correct enum values. This is purely for internal use.

                                "},"Enums/SDLLogLevel.html":{"name":"SDLLogLevel","abstract":"

                                An enum describing a level of logging.

                                "},"Enums/SDLLogFormatType.html":{"name":"SDLLogFormatType","abstract":"

                                The output format of logs; how they will appear when printed out into a string.

                                "},"Enums/SDLPermissionGroupType.html":{"name":"SDLPermissionGroupType","abstract":"

                                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.

                                "},"Enums/SDLPermissionGroupStatus.html":{"name":"SDLPermissionGroupStatus","abstract":"

                                The status of the group of RPCs permissions.

                                "},"Enums/SDLProtocolError.html":{"name":"SDLProtocolError","abstract":"

                                Undocumented

                                "},"Enums/SDLFrameType.html":{"name":"SDLFrameType","abstract":"

                                Undocumented

                                "},"Enums/SDLServiceType.html":{"name":"SDLServiceType","abstract":"

                                Undocumented

                                "},"Enums/SDLFrameInfo.html":{"name":"SDLFrameInfo","abstract":"

                                Undocumented

                                "},"Enums/SDLRPCMessageType.html":{"name":"SDLRPCMessageType","abstract":"

                                Undocumented

                                "},"Enums/SDLStreamingEncryptionFlag.html":{"name":"SDLStreamingEncryptionFlag","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLAmbientLightStatusNight":{"name":"SDLAmbientLightStatusNight","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLAmbientLightStatusTwilight1":{"name":"SDLAmbientLightStatusTwilight1","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLAmbientLightStatusTwilight2":{"name":"SDLAmbientLightStatusTwilight2","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLAmbientLightStatusTwilight3":{"name":"SDLAmbientLightStatusTwilight3","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLAmbientLightStatusTwilight4":{"name":"SDLAmbientLightStatusTwilight4","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLAmbientLightStatusDay":{"name":"SDLAmbientLightStatusDay","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLAmbientLightStatusUnknown":{"name":"SDLAmbientLightStatusUnknown","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLAmbientLightStatusInvalid":{"name":"SDLAmbientLightStatusInvalid","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLAppHMITypeDefault":{"name":"SDLAppHMITypeDefault","abstract":"

                                @abstract The App will have default rights.

                                "},"Constants.html#/c:@SDLAppHMITypeCommunication":{"name":"SDLAppHMITypeCommunication","abstract":"

                                @abstract Communication type of App

                                "},"Constants.html#/c:@SDLAppHMITypeMedia":{"name":"SDLAppHMITypeMedia","abstract":"

                                @abstract App dealing with Media

                                "},"Constants.html#/c:@SDLAppHMITypeMessaging":{"name":"SDLAppHMITypeMessaging","abstract":"

                                @abstract Messaging App

                                "},"Constants.html#/c:@SDLAppHMITypeNavigation":{"name":"SDLAppHMITypeNavigation","abstract":"

                                @abstract Navigation App

                                "},"Constants.html#/c:@SDLAppHMITypeInformation":{"name":"SDLAppHMITypeInformation","abstract":"

                                @abstract Information App

                                "},"Constants.html#/c:@SDLAppHMITypeSocial":{"name":"SDLAppHMITypeSocial","abstract":"

                                @abstract App dealing with social media

                                "},"Constants.html#/c:@SDLAppHMITypeProjection":{"name":"SDLAppHMITypeProjection","abstract":"

                                @abstract App dealing with Mobile Projection applications

                                "},"Constants.html#/c:@SDLAppHMITypeBackgroundProcess":{"name":"SDLAppHMITypeBackgroundProcess","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLAppHMITypeTesting":{"name":"SDLAppHMITypeTesting","abstract":"

                                @abstract App only for Testing purposes

                                "},"Constants.html#/c:@SDLAppHMITypeSystem":{"name":"SDLAppHMITypeSystem","abstract":"

                                @abstract System App

                                "},"Constants.html#/c:@SDLAppHMITypeRemoteControl":{"name":"SDLAppHMITypeRemoteControl","abstract":"

                                @abstract Remote control

                                "},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonIgnitionOff":{"name":"SDLAppInterfaceUnregisteredReasonIgnitionOff","abstract":"

                                @abstract Vehicle ignition turned off.

                                "},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonBluetoothOff":{"name":"SDLAppInterfaceUnregisteredReasonBluetoothOff","abstract":"

                                @abstract Bluetooth was turned off, causing termination of a necessary Bluetooth connection.

                                "},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonUSBDisconnected":{"name":"SDLAppInterfaceUnregisteredReasonUSBDisconnected","abstract":"

                                @abstract USB was disconnected, causing termination of a necessary iAP connection.

                                "},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonRequestWhileInNoneHMILevel":{"name":"SDLAppInterfaceUnregisteredReasonRequestWhileInNoneHMILevel","abstract":"

                                @abstract 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.

                                "},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonTooManyRequests":{"name":"SDLAppInterfaceUnregisteredReasonTooManyRequests","abstract":"

                                @abstract Either too many – or too many per unit of time – requests were made by the application.

                                "},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonDriverDistractionViolation":{"name":"SDLAppInterfaceUnregisteredReasonDriverDistractionViolation","abstract":"

                                @abstract The application has issued requests which cause driver distraction rules to be violated.

                                "},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonLanguageChange":{"name":"SDLAppInterfaceUnregisteredReasonLanguageChange","abstract":"

                                @abstract The user performed a language change on the SDL platform, causing the application to need to be reregistered for the new language.

                                "},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonMasterReset":{"name":"SDLAppInterfaceUnregisteredReasonMasterReset","abstract":"

                                @abstract The user performed a MASTER RESET on the SDL platform, causing removal of a necessary Bluetooth pairing.

                                "},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonFactoryDefaults":{"name":"SDLAppInterfaceUnregisteredReasonFactoryDefaults","abstract":"

                                @abstract The user restored settings to FACTORY DEFAULTS on the SDL platform.

                                "},"Constants.html#/c:@SDLAppInterfaceUnregisteredReasonAppUnauthorized":{"name":"SDLAppInterfaceUnregisteredReasonAppUnauthorized","abstract":"

                                @abstract The app is not being authorized to be connected to SDL.

                                "},"Constants.html#/c:@SDLAudioStreamingStateAudible":{"name":"SDLAudioStreamingStateAudible","abstract":"

                                @abstract Currently streaming audio, if any, is audible to user.

                                "},"Constants.html#/c:@SDLAudioStreamingStateAttenuated":{"name":"SDLAudioStreamingStateAttenuated","abstract":"

                                @abstract Some kind of audio mixing is taking place. Currently streaming audio, if any, is audible to the user at a lowered volume.

                                "},"Constants.html#/c:@SDLAudioStreamingStateNotAudible":{"name":"SDLAudioStreamingStateNotAudible","abstract":"

                                @abstract Currently streaming audio, if any, is not audible to user. made via VR session.

                                "},"Constants.html#/c:@SDLAudioTypePCM":{"name":"SDLAudioTypePCM","abstract":"

                                @abstract PCM raw audio

                                "},"Constants.html#/c:@SDLBitsPerSample8Bit":{"name":"SDLBitsPerSample8Bit","abstract":"

                                @abstract 8 bits per sample

                                "},"Constants.html#/c:@SDLBitsPerSample16Bit":{"name":"SDLBitsPerSample16Bit","abstract":"

                                @abstract 16 bits per sample

                                "},"Constants.html#/c:@SDLButtonEventModeButtonUp":{"name":"SDLButtonEventModeButtonUp","abstract":"

                                @abstract The button was released

                                "},"Constants.html#/c:@SDLButtonEventModeButtonDown":{"name":"SDLButtonEventModeButtonDown","abstract":"

                                @abstract The button was depressed

                                "},"Constants.html#/c:@SDLButtonNameOk":{"name":"SDLButtonNameOk","abstract":"

                                @abstract Represents the button usually labeled OK. A typical use of this button is for the user to press it to make a selection.

                                "},"Constants.html#/c:@SDLButtonNameSeekLeft":{"name":"SDLButtonNameSeekLeft","abstract":"

                                @abstract 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.

                                "},"Constants.html#/c:@SDLButtonNameSeekRight":{"name":"SDLButtonNameSeekRight","abstract":"

                                @abstract 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.

                                "},"Constants.html#/c:@SDLButtonNameTuneUp":{"name":"SDLButtonNameTuneUp","abstract":"

                                @abstract Represents a turn of the tuner knob in the clockwise direction one tick.

                                "},"Constants.html#/c:@SDLButtonNameTuneDown":{"name":"SDLButtonNameTuneDown","abstract":"

                                @abstract Represents a turn of the tuner knob in the counter-clockwise direction one tick.

                                "},"Constants.html#/c:@SDLButtonNamePreset0":{"name":"SDLButtonNamePreset0","abstract":"

                                @abstract Represents the preset 0 button.

                                "},"Constants.html#/c:@SDLButtonNamePreset1":{"name":"SDLButtonNamePreset1","abstract":"

                                @abstract Represents the preset 1 button.

                                "},"Constants.html#/c:@SDLButtonNamePreset2":{"name":"SDLButtonNamePreset2","abstract":"

                                @abstract Represents the preset 2 button.

                                "},"Constants.html#/c:@SDLButtonNamePreset3":{"name":"SDLButtonNamePreset3","abstract":"

                                @abstract Represents the preset 3 button.

                                "},"Constants.html#/c:@SDLButtonNamePreset4":{"name":"SDLButtonNamePreset4","abstract":"

                                @abstract Represents the preset 4 button.

                                "},"Constants.html#/c:@SDLButtonNamePreset5":{"name":"SDLButtonNamePreset5","abstract":"

                                @abstract Represents the preset 5 button.

                                "},"Constants.html#/c:@SDLButtonNamePreset6":{"name":"SDLButtonNamePreset6","abstract":"

                                @abstract Represents the preset 6 button.

                                "},"Constants.html#/c:@SDLButtonNamePreset7":{"name":"SDLButtonNamePreset7","abstract":"

                                @abstract Represents the preset 7 button.

                                "},"Constants.html#/c:@SDLButtonNamePreset8":{"name":"SDLButtonNamePreset8","abstract":"

                                @abstract Represents the preset 8 button.

                                "},"Constants.html#/c:@SDLButtonNamePreset9":{"name":"SDLButtonNamePreset9","abstract":"

                                @abstract Represents the preset 9 button.

                                "},"Constants.html#/c:@SDLButtonNameCustomButton":{"name":"SDLButtonNameCustomButton","abstract":"

                                @abstract Represents the Custom button.

                                "},"Constants.html#/c:@SDLButtonNameSearch":{"name":"SDLButtonNameSearch","abstract":"

                                @abstract Represents the SEARCH button.

                                "},"Constants.html#/c:@SDLButtonNameACMax":{"name":"SDLButtonNameACMax","abstract":"

                                @abstract Represents AC max button *

                                "},"Constants.html#/c:@SDLButtonNameAC":{"name":"SDLButtonNameAC","abstract":"

                                @abstract Represents AC button *

                                "},"Constants.html#/c:@SDLButtonNameRecirculate":{"name":"SDLButtonNameRecirculate","abstract":"

                                @abstract Represents a Recirculate button

                                "},"Constants.html#/c:@SDLButtonNameFanUp":{"name":"SDLButtonNameFanUp","abstract":"

                                @abstract Represents a Fan up button

                                "},"Constants.html#/c:@SDLButtonNameFanDown":{"name":"SDLButtonNameFanDown","abstract":"

                                @abstract Represents a fan down button

                                "},"Constants.html#/c:@SDLButtonNameTempUp":{"name":"SDLButtonNameTempUp","abstract":"

                                @abstract Represents a temperature up button

                                "},"Constants.html#/c:@SDLButtonNameTempDown":{"name":"SDLButtonNameTempDown","abstract":"

                                @abstract Represents a temperature down button

                                "},"Constants.html#/c:@SDLButtonNameDefrostMax":{"name":"SDLButtonNameDefrostMax","abstract":"

                                @abstract Represents a Defrost max button.

                                "},"Constants.html#/c:@SDLButtonNameDefrost":{"name":"SDLButtonNameDefrost","abstract":"

                                @abstract Represents a Defrost button.

                                "},"Constants.html#/c:@SDLButtonNameDefrostRear":{"name":"SDLButtonNameDefrostRear","abstract":"

                                @abstract Represents a Defrost rear button.

                                "},"Constants.html#/c:@SDLButtonNameUpperVent":{"name":"SDLButtonNameUpperVent","abstract":"

                                @abstract Represents a Upper Vent button.

                                "},"Constants.html#/c:@SDLButtonNameLowerVent":{"name":"SDLButtonNameLowerVent","abstract":"

                                @abstract Represents a Lower vent button.

                                "},"Constants.html#/c:@SDLButtonNameVolumeUp":{"name":"SDLButtonNameVolumeUp","abstract":"

                                @abstract Represents a volume up button.

                                "},"Constants.html#/c:@SDLButtonNameVolumeDown":{"name":"SDLButtonNameVolumeDown","abstract":"

                                @abstract Represents a volume down button.

                                "},"Constants.html#/c:@SDLButtonNameEject":{"name":"SDLButtonNameEject","abstract":"

                                @abstract Represents a Eject Button.

                                "},"Constants.html#/c:@SDLButtonNameSource":{"name":"SDLButtonNameSource","abstract":"

                                @abstract Represents a Source button.

                                "},"Constants.html#/c:@SDLButtonNameShuffle":{"name":"SDLButtonNameShuffle","abstract":"

                                @abstract Represents a SHUFFLE button.

                                "},"Constants.html#/c:@SDLButtonNameRepeat":{"name":"SDLButtonNameRepeat","abstract":"

                                @abstract Represents a Repeat button.

                                "},"Constants.html#/c:@SDLButtonPressModeLong":{"name":"SDLButtonPressModeLong","abstract":"

                                @abstract A button was released, after it was pressed for a long time. Actual timing is defined by the head unit and may vary.

                                "},"Constants.html#/c:@SDLButtonPressModeShort":{"name":"SDLButtonPressModeShort","abstract":"

                                @abstract A button was released, after it was pressed for a short time. Actual timing is defined by the head unit and may vary.

                                "},"Constants.html#/c:@SDLCarModeStatusNormal":{"name":"SDLCarModeStatusNormal","abstract":"

                                Provides carmode NORMAL to each module.

                                "},"Constants.html#/c:@SDLCarModeStatusFactory":{"name":"SDLCarModeStatusFactory","abstract":"

                                Provides carmode FACTORY to each module.

                                "},"Constants.html#/c:@SDLCarModeStatusTransport":{"name":"SDLCarModeStatusTransport","abstract":"

                                Provides carmode TRANSPORT to each module.

                                "},"Constants.html#/c:@SDLCarModeStatusCrash":{"name":"SDLCarModeStatusCrash","abstract":"

                                Provides carmode CRASH to each module.

                                "},"Constants.html#/c:@SDLCharacterSetType2":{"name":"SDLCharacterSetType2","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLCharacterSetType5":{"name":"SDLCharacterSetType5","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLCharacterSetCID1":{"name":"SDLCharacterSetCID1","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLCharacterSetCID2":{"name":"SDLCharacterSetCID2","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLCompassDirectionNorth":{"name":"SDLCompassDirectionNorth","abstract":"

                                @abstract Direction North

                                "},"Constants.html#/c:@SDLCompassDirectionNorthwest":{"name":"SDLCompassDirectionNorthwest","abstract":"

                                @abstract Direction Northwest

                                "},"Constants.html#/c:@SDLCompassDirectionWest":{"name":"SDLCompassDirectionWest","abstract":"

                                @abstract Direction West

                                "},"Constants.html#/c:@SDLCompassDirectionSouthwest":{"name":"SDLCompassDirectionSouthwest","abstract":"

                                @abstract Direction Southwest

                                "},"Constants.html#/c:@SDLCompassDirectionSouth":{"name":"SDLCompassDirectionSouth","abstract":"

                                @abstract Direction South

                                "},"Constants.html#/c:@SDLCompassDirectionSoutheast":{"name":"SDLCompassDirectionSoutheast","abstract":"

                                @abstract Direction Southeast

                                "},"Constants.html#/c:@SDLCompassDirectionEast":{"name":"SDLCompassDirectionEast","abstract":"

                                @abstract Direction East

                                "},"Constants.html#/c:@SDLCompassDirectionNortheast":{"name":"SDLCompassDirectionNortheast","abstract":"

                                @abstract Direction Northeast

                                "},"Constants.html#/c:@SDLComponentVolumeStatusUnknown":{"name":"SDLComponentVolumeStatusUnknown","abstract":"

                                @abstract Unknown SDLComponentVolumeStatus

                                "},"Constants.html#/c:@SDLComponentVolumeStatusNormal":{"name":"SDLComponentVolumeStatusNormal","abstract":"

                                @abstract Normal SDLComponentVolumeStatus

                                "},"Constants.html#/c:@SDLComponentVolumeStatusLow":{"name":"SDLComponentVolumeStatusLow","abstract":"

                                @abstract Low SDLComponentVolumeStatus

                                "},"Constants.html#/c:@SDLComponentVolumeStatusFault":{"name":"SDLComponentVolumeStatusFault","abstract":"

                                @abstract Fault SDLComponentVolumeStatus

                                "},"Constants.html#/c:@SDLComponentVolumeStatusAlert":{"name":"SDLComponentVolumeStatusAlert","abstract":"

                                @abstract Alert SDLComponentVolumeStatus

                                "},"Constants.html#/c:@SDLComponentVolumeStatusNotSupported":{"name":"SDLComponentVolumeStatusNotSupported","abstract":"

                                @abstract Not supported SDLComponentVolumeStatus

                                "},"Constants.html#/c:@SDLDefrostZoneFront":{"name":"SDLDefrostZoneFront","abstract":"

                                @abstract A SDLDefrostZone with the value of FRONT

                                "},"Constants.html#/c:@SDLDefrostZoneRear":{"name":"SDLDefrostZoneRear","abstract":"

                                @abstract A SDLDefrostZone with the value of REAR

                                "},"Constants.html#/c:@SDLDefrostZoneAll":{"name":"SDLDefrostZoneAll","abstract":"

                                @abstract A SDLDefrostZone with the value of All

                                "},"Constants.html#/c:@SDLDefrostZoneNone":{"name":"SDLDefrostZoneNone","abstract":"

                                @abstract A SDLDefrostZone with the value of None

                                "},"Constants.html#/c:@SDLDeliveryModePrompt":{"name":"SDLDeliveryModePrompt","abstract":"

                                @abstract User is prompted on HMI

                                "},"Constants.html#/c:@SDLDeliveryModeDestination":{"name":"SDLDeliveryModeDestination","abstract":"

                                @abstract Set the location as destination without prompting the user

                                "},"Constants.html#/c:@SDLDeliveryModeQueue":{"name":"SDLDeliveryModeQueue","abstract":"

                                @abstract Adds the current location to navigation queue

                                "},"Constants.html#/c:@SDLDeviceLevelStatusZeroBars":{"name":"SDLDeviceLevelStatusZeroBars","abstract":"

                                @abstract Device battery level is zero bars

                                "},"Constants.html#/c:@SDLDeviceLevelStatusOneBar":{"name":"SDLDeviceLevelStatusOneBar","abstract":"

                                @abstract Device battery level is one bar

                                "},"Constants.html#/c:@SDLDeviceLevelStatusTwoBars":{"name":"SDLDeviceLevelStatusTwoBars","abstract":"

                                @abstract Device battery level is two bars

                                "},"Constants.html#/c:@SDLDeviceLevelStatusThreeBars":{"name":"SDLDeviceLevelStatusThreeBars","abstract":"

                                @abstract Device battery level is three bars

                                "},"Constants.html#/c:@SDLDeviceLevelStatusFourBars":{"name":"SDLDeviceLevelStatusFourBars","abstract":"

                                @abstract Device battery level is four bars

                                "},"Constants.html#/c:@SDLDeviceLevelStatusNotProvided":{"name":"SDLDeviceLevelStatusNotProvided","abstract":"

                                @abstract Device battery level is unknown

                                "},"Constants.html#/c:@SDLDimensionNoFix":{"name":"SDLDimensionNoFix","abstract":"

                                @abstract No GPS at all

                                "},"Constants.html#/c:@SDLDimension2D":{"name":"SDLDimension2D","abstract":"

                                @abstract Longitude and latitude of the GPS

                                "},"Constants.html#/c:@SDLDimension3D":{"name":"SDLDimension3D","abstract":"

                                @abstract Longitude and latitude and altitude of the GPS

                                "},"Constants.html#/c:@SDLDisplayTypeCID":{"name":"SDLDisplayTypeCID","abstract":"

                                @abstract This display type provides a 2-line x 20 character dot matrix display.

                                "},"Constants.html#/c:@SDLDisplayTypeType2":{"name":"SDLDisplayTypeType2","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDisplayTypeType5":{"name":"SDLDisplayTypeType5","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDisplayTypeNGN":{"name":"SDLDisplayTypeNGN","abstract":"

                                @abstract This display type provides an 8 inch touchscreen display.

                                "},"Constants.html#/c:@SDLDisplayTypeGen28DMA":{"name":"SDLDisplayTypeGen28DMA","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDisplayTypeGen26DMA":{"name":"SDLDisplayTypeGen26DMA","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDisplayTypeMFD3":{"name":"SDLDisplayTypeMFD3","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDisplayTypeMFD4":{"name":"SDLDisplayTypeMFD4","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDisplayTypeMFD5":{"name":"SDLDisplayTypeMFD5","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDisplayTypeGen38Inch":{"name":"SDLDisplayTypeGen38Inch","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDisplayTypeGeneric":{"name":"SDLDisplayTypeGeneric","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDriverDistractionStateOn":{"name":"SDLDriverDistractionStateOn","abstract":"

                                @abstract Driver distraction rules are in effect.

                                "},"Constants.html#/c:@SDLDriverDistractionStateOff":{"name":"SDLDriverDistractionStateOff","abstract":"

                                @abstract Driver distraction rules are NOT in effect.

                                "},"Constants.html#/c:@SDLECallConfirmationStatusNormal":{"name":"SDLECallConfirmationStatusNormal","abstract":"

                                No E-Call signal triggered.

                                "},"Constants.html#/c:@SDLECallConfirmationStatusInProgress":{"name":"SDLECallConfirmationStatusInProgress","abstract":"

                                An E-Call is being in progress.

                                "},"Constants.html#/c:@SDLECallConfirmationStatusCancelled":{"name":"SDLECallConfirmationStatusCancelled","abstract":"

                                CALL_CANCELLED An E-Call was cancelled by the user.

                                "},"Constants.html#/c:@SDLECallConfirmationStatusCompleted":{"name":"SDLECallConfirmationStatusCompleted","abstract":"

                                The E-Call sequence is completed.

                                "},"Constants.html#/c:@SDLECallConfirmationStatusUnsuccessful":{"name":"SDLECallConfirmationStatusUnsuccessful","abstract":"

                                An E-Call could not be connected.

                                "},"Constants.html#/c:@SDLECallConfirmationStatusConfiguredOff":{"name":"SDLECallConfirmationStatusConfiguredOff","abstract":"

                                E-Call is not configured on this vehicle.

                                "},"Constants.html#/c:@SDLECallConfirmationStatusCompleteDTMFTimeout":{"name":"SDLECallConfirmationStatusCompleteDTMFTimeout","abstract":"

                                E-Call is considered to be complete without Emergency Operator contact.

                                "},"Constants.html#/c:@SDLEmergencyEventTypeNoEvent":{"name":"SDLEmergencyEventTypeNoEvent","abstract":"

                                No emergency event has happened.

                                "},"Constants.html#/c:@SDLEmergencyEventTypeFrontal":{"name":"SDLEmergencyEventTypeFrontal","abstract":"

                                Frontal collision has happened.

                                "},"Constants.html#/c:@SDLEmergencyEventTypeSide":{"name":"SDLEmergencyEventTypeSide","abstract":"

                                Side collision has happened.

                                "},"Constants.html#/c:@SDLEmergencyEventTypeRear":{"name":"SDLEmergencyEventTypeRear","abstract":"

                                Rear collision has happened.

                                "},"Constants.html#/c:@SDLEmergencyEventTypeRollover":{"name":"SDLEmergencyEventTypeRollover","abstract":"

                                A rollover event has happened.

                                "},"Constants.html#/c:@SDLEmergencyEventTypeNotSupported":{"name":"SDLEmergencyEventTypeNotSupported","abstract":"

                                The signal is not supported

                                "},"Constants.html#/c:@SDLEmergencyEventTypeFault":{"name":"SDLEmergencyEventTypeFault","abstract":"

                                Emergency status cannot be determined

                                "},"Constants.html#/c:@SDLFileTypeBMP":{"name":"SDLFileTypeBMP","abstract":"

                                @abstract file type: Bitmap (BMP)

                                "},"Constants.html#/c:@SDLFileTypeJPEG":{"name":"SDLFileTypeJPEG","abstract":"

                                @abstract file type: JPEG

                                "},"Constants.html#/c:@SDLFileTypePNG":{"name":"SDLFileTypePNG","abstract":"

                                @abstract file type: PNG

                                "},"Constants.html#/c:@SDLFileTypeWAV":{"name":"SDLFileTypeWAV","abstract":"

                                @abstract file type: WAVE (WAV)

                                "},"Constants.html#/c:@SDLFileTypeMP3":{"name":"SDLFileTypeMP3","abstract":"

                                @abstract file type: MP3

                                "},"Constants.html#/c:@SDLFileTypeAAC":{"name":"SDLFileTypeAAC","abstract":"

                                @abstract file type: AAC

                                "},"Constants.html#/c:@SDLFileTypeBinary":{"name":"SDLFileTypeBinary","abstract":"

                                @abstract file type: BINARY

                                "},"Constants.html#/c:@SDLFileTypeJSON":{"name":"SDLFileTypeJSON","abstract":"

                                @abstract file type: JSON

                                "},"Constants.html#/c:@SDLFuelCutoffStatusTerminateFuel":{"name":"SDLFuelCutoffStatusTerminateFuel","abstract":"

                                @abstract Fuel is cut off

                                "},"Constants.html#/c:@SDLFuelCutoffStatusNormalOperation":{"name":"SDLFuelCutoffStatusNormalOperation","abstract":"

                                @abstract Fuel is not cut off

                                "},"Constants.html#/c:@SDLFuelCutoffStatusFault":{"name":"SDLFuelCutoffStatusFault","abstract":"

                                @abstract Status of the fuel pump cannot be determined

                                "},"Constants.html#/c:@SDLGlobalPropertyHelpPrompt":{"name":"SDLGlobalPropertyHelpPrompt","abstract":"

                                @abstract The help prompt to be spoken if the user needs assistance during a user-initiated interaction.

                                "},"Constants.html#/c:@SDLGlobalPropertyTimeoutPrompt":{"name":"SDLGlobalPropertyTimeoutPrompt","abstract":"

                                @abstract The prompt to be spoken if the user-initiated interaction times out waiting for the user’s verbal input.

                                "},"Constants.html#/c:@SDLGlobalPropertyVoiceRecognitionHelpTitle":{"name":"SDLGlobalPropertyVoiceRecognitionHelpTitle","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLGlobalPropertyVoiceRecognitionHelpItems":{"name":"SDLGlobalPropertyVoiceRecognitionHelpItems","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLGlobalPropertyMenuName":{"name":"SDLGlobalPropertyMenuName","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLGlobalPropertyMenuIcon":{"name":"SDLGlobalPropertyMenuIcon","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLGlobalPropertyKeyboard":{"name":"SDLGlobalPropertyKeyboard","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLHMILevelFull":{"name":"SDLHMILevelFull","abstract":"

                                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

                                "},"Constants.html#/c:@SDLHMILevelLimited":{"name":"SDLHMILevelLimited","abstract":"

                                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)

                                "},"Constants.html#/c:@SDLHMILevelBackground":{"name":"SDLHMILevelBackground","abstract":"

                                App cannot interact with user via TTS, VR, Display or Button Presses. App can perform the following operations:

                                "},"Constants.html#/c:@SDLHMILevelNone":{"name":"SDLHMILevelNone","abstract":"

                                Application has been discovered by SDL, but it cannot send any requests or receive any notifications

                                "},"Constants.html#/c:@SDLHMIZoneCapabilitiesFront":{"name":"SDLHMIZoneCapabilitiesFront","abstract":"

                                @abstract Indicates HMI available for front seat passengers.

                                "},"Constants.html#/c:@SDLHMIZoneCapabilitiesBack":{"name":"SDLHMIZoneCapabilitiesBack","abstract":"

                                @abstract Indicates HMI available for rear seat passengers.

                                "},"Constants.html#/c:@SDLIgnitionStableStatusNotStable":{"name":"SDLIgnitionStableStatusNotStable","abstract":"

                                @abstract The current ignition switch status is considered not to be stable.

                                "},"Constants.html#/c:@SDLIgnitionStableStatusStable":{"name":"SDLIgnitionStableStatusStable","abstract":"

                                @abstract The current ignition switch status is considered to be stable.

                                "},"Constants.html#/c:@SDLIgnitionStableStatusMissingFromTransmitter":{"name":"SDLIgnitionStableStatusMissingFromTransmitter","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLIgnitionStatusUnknown":{"name":"SDLIgnitionStatusUnknown","abstract":"

                                @abstract Ignition status currently unknown

                                "},"Constants.html#/c:@SDLIgnitionStatusOff":{"name":"SDLIgnitionStatusOff","abstract":"

                                @abstract Ignition is off

                                "},"Constants.html#/c:@SDLIgnitionStatusAccessory":{"name":"SDLIgnitionStatusAccessory","abstract":"

                                @abstract Ignition is in mode accessory

                                "},"Constants.html#/c:@SDLIgnitionStatusRun":{"name":"SDLIgnitionStatusRun","abstract":"

                                @abstract Ignition is in mode run

                                "},"Constants.html#/c:@SDLIgnitionStatusStart":{"name":"SDLIgnitionStatusStart","abstract":"

                                @abstract Ignition is in mode start

                                "},"Constants.html#/c:@SDLIgnitionStatusInvalid":{"name":"SDLIgnitionStatusInvalid","abstract":"

                                @abstract Signal is invalid

                                "},"Constants.html#/c:@SDLImageFieldNameSoftButtonImage":{"name":"SDLImageFieldNameSoftButtonImage","abstract":"

                                The image field for SoftButton"},"Constants.html#/c:@SDLImageFieldNameChoiceImage":{"name":"SDLImageFieldNameChoiceImage","abstract":"

                                The first image field for Choice."},"Constants.html#/c:@SDLImageFieldNameChoiceSecondaryImage":{"name":"SDLImageFieldNameChoiceSecondaryImage","abstract":"

                                The scondary image field for Choice."},"Constants.html#/c:@SDLImageFieldNameVoiceRecognitionHelpItem":{"name":"SDLImageFieldNameVoiceRecognitionHelpItem","abstract":"

                                The image field for vrHelpItem."},"Constants.html#/c:@SDLImageFieldNameTurnIcon":{"name":"SDLImageFieldNameTurnIcon","abstract":"

                                The image field for Turn."},"Constants.html#/c:@SDLImageFieldNameMenuIcon":{"name":"SDLImageFieldNameMenuIcon","abstract":"

                                The image field for the menu icon in SetGlobalProperties."},"Constants.html#/c:@SDLImageFieldNameCommandIcon":{"name":"SDLImageFieldNameCommandIcon","abstract":"

                                The image filed for AddCommand."},"Constants.html#/c:@SDLImageFieldNameAppIcon":{"name":"SDLImageFieldNameAppIcon","abstract":"

                                The image field for the app icon (set by setAppIcon)."},"Constants.html#/c:@SDLImageFieldNameGraphic":{"name":"SDLImageFieldNameGraphic","abstract":"

                                The image filed for Show."},"Constants.html#/c:@SDLImageFieldNameShowConstantTBTIcon":{"name":"SDLImageFieldNameShowConstantTBTIcon","abstract":"

                                The primary image field for ShowConstant TBT."},"Constants.html#/c:@SDLImageFieldNameShowConstantTBTNextTurnIcon":{"name":"SDLImageFieldNameShowConstantTBTNextTurnIcon","abstract":"

                                The secondary image field for ShowConstant TBT."},"Constants.html#/c:@SDLImageFieldNameLocationImage":{"name":"SDLImageFieldNameLocationImage","abstract":"

                                The optional image of a destination / location"},"Constants.html#/c:@SDLImageTypeStatic":{"name":"SDLImageTypeStatic","abstract":"

                                @abstract Just the static hex icon value to be used

                                "},"Constants.html#/c:@SDLImageTypeDynamic":{"name":"SDLImageTypeDynamic","abstract":"

                                @abstract Binary image file to be used (identifier to be sent by SDLPutFile)

                                "},"Constants.html#/c:@SDLInteractionModeManualOnly":{"name":"SDLInteractionModeManualOnly","abstract":"

                                @abstract Interaction Mode : Manual Only"},"Constants.html#/c:@SDLInteractionModeVoiceRecognitionOnly":{"name":"SDLInteractionModeVoiceRecognitionOnly","abstract":"

                                @abstract Interaction Mode : VR Only"},"Constants.html#/c:@SDLInteractionModeBoth":{"name":"SDLInteractionModeBoth","abstract":"

                                @abstract Interaction Mode : Manual & VR"},"Constants.html#/c:@SDLKeyboardEventKeypress":{"name":"SDLKeyboardEventKeypress","abstract":"

                                The use has pressed the keyboard key (applies to both SINGLE_KEYPRESS and RESEND_CURRENT_ENTRY modes)."},"Constants.html#/c:@SDLKeyboardEventSubmitted":{"name":"SDLKeyboardEventSubmitted","abstract":"

                                The User has finished entering text from the keyboard and submitted the entry."},"Constants.html#/c:@SDLKeyboardEventCancelled":{"name":"SDLKeyboardEventCancelled","abstract":"

                                The User has pressed the HMI-defined Cancel button."},"Constants.html#/c:@SDLKeyboardEventAborted":{"name":"SDLKeyboardEventAborted","abstract":"

                                The User has not finished entering text and the keyboard is aborted with the event of higher priority."},"Constants.html#/c:@SDLKeyboardEventVoice":{"name":"SDLKeyboardEventVoice","abstract":"

                                @since SDL 4.0

                                "},"Constants.html#/c:@SDLKeyboardLayoutQWERTY":{"name":"SDLKeyboardLayoutQWERTY","abstract":"

                                QWERTY layout (the name comes from the first six keys
                                appearing on the top left letter row of the keyboard and read from left to right)"},"Constants.html#/c:@SDLKeyboardLayoutQWERTZ":{"name":"SDLKeyboardLayoutQWERTZ","abstract":"

                                QWERTZ layout (the name comes from the first six keys
                                appearing on the top left letter row of the keyboard and read from left to right)"},"Constants.html#/c:@SDLKeyboardLayoutAZERTY":{"name":"SDLKeyboardLayoutAZERTY","abstract":"

                                AZERTY layout (the name comes from the first six keys
                                appearing on the top left letter row of the keyboard and read from left to right)"},"Constants.html#/c:@SDLKeypressModeSingleKeypress":{"name":"SDLKeypressModeSingleKeypress","abstract":"

                                SINGLE_KEYPRESS:
                                Each and every User`s keypress must be reported (new notification for every newly entered single symbol)."},"Constants.html#/c:@SDLKeypressModeQueueKeypresses":{"name":"SDLKeypressModeQueueKeypresses","abstract":"

                                QUEUE_KEYPRESSES:
                                The whole entry is reported only after the User submits it (by ‘Search’ button click displayed on touchscreen keyboard)"},"Constants.html#/c:@SDLKeypressModeResendCurrentEntry":{"name":"SDLKeypressModeResendCurrentEntry","abstract":"

                                RESEND_CURRENT_ENTRY:
                                The whole entry must be reported each and every time the User makes a new keypress
                                (new notification with all previously entered symbols and a newly entered one appended)."},"Constants.html#/c:@SDLLanguageEnSa":{"name":"SDLLanguageEnSa","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLLanguageHeIl":{"name":"SDLLanguageHeIl","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLLanguageRoRo":{"name":"SDLLanguageRoRo","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLLanguageUkUa":{"name":"SDLLanguageUkUa","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLLanguageIdId":{"name":"SDLLanguageIdId","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLLanguageViVn":{"name":"SDLLanguageViVn","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLLanguageMsMy":{"name":"SDLLanguageMsMy","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLLanguageHiIn":{"name":"SDLLanguageHiIn","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLLanguageNlBe":{"name":"SDLLanguageNlBe","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLLanguageElGr":{"name":"SDLLanguageElGr","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLLanguageHuHu":{"name":"SDLLanguageHuHu","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLLanguageFiFi":{"name":"SDLLanguageFiFi","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLLanguageSkSk":{"name":"SDLLanguageSkSk","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLLanguageEnUs":{"name":"SDLLanguageEnUs","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLLanguageEnIn":{"name":"SDLLanguageEnIn","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLLanguageThTh":{"name":"SDLLanguageThTh","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLLanguageEsMx":{"name":"SDLLanguageEsMx","abstract":"

                                @abstract Spanish - Mexico

                                "},"Constants.html#/c:@SDLLanguageFrCa":{"name":"SDLLanguageFrCa","abstract":"

                                @abstract French - Canada

                                "},"Constants.html#/c:@SDLLanguageDeDe":{"name":"SDLLanguageDeDe","abstract":"

                                @abstract German - Germany

                                "},"Constants.html#/c:@SDLLanguageEsEs":{"name":"SDLLanguageEsEs","abstract":"

                                @abstract Spanish - Spain

                                "},"Constants.html#/c:@SDLLanguageEnGb":{"name":"SDLLanguageEnGb","abstract":"

                                @abstract English - Great Britain

                                "},"Constants.html#/c:@SDLLanguageRuRu":{"name":"SDLLanguageRuRu","abstract":"

                                @abstract Russian - Russia

                                "},"Constants.html#/c:@SDLLanguageTrTr":{"name":"SDLLanguageTrTr","abstract":"

                                @abstract Turkish - Turkey

                                "},"Constants.html#/c:@SDLLanguagePlPl":{"name":"SDLLanguagePlPl","abstract":"

                                @abstract Polish - Poland

                                "},"Constants.html#/c:@SDLLanguageFrFr":{"name":"SDLLanguageFrFr","abstract":"

                                @abstract French - France

                                "},"Constants.html#/c:@SDLLanguageItIt":{"name":"SDLLanguageItIt","abstract":"

                                @abstract Italian - Italy

                                "},"Constants.html#/c:@SDLLanguageSvSe":{"name":"SDLLanguageSvSe","abstract":"

                                @abstract Swedish - Sweden

                                "},"Constants.html#/c:@SDLLanguagePtPt":{"name":"SDLLanguagePtPt","abstract":"

                                @abstract Portuguese - Portugal

                                "},"Constants.html#/c:@SDLLanguageNlNl":{"name":"SDLLanguageNlNl","abstract":"

                                @abstract Dutch (Standard) - Netherlands

                                "},"Constants.html#/c:@SDLLanguageEnAu":{"name":"SDLLanguageEnAu","abstract":"

                                @abstract English - Australia

                                "},"Constants.html#/c:@SDLLanguageZhCn":{"name":"SDLLanguageZhCn","abstract":"

                                @abstract Mandarin - China

                                "},"Constants.html#/c:@SDLLanguageZhTw":{"name":"SDLLanguageZhTw","abstract":"

                                @abstract Mandarin - Taiwan

                                "},"Constants.html#/c:@SDLLanguageJaJp":{"name":"SDLLanguageJaJp","abstract":"

                                @abstract Japanese - Japan

                                "},"Constants.html#/c:@SDLLanguageArSa":{"name":"SDLLanguageArSa","abstract":"

                                @abstract Arabic - Saudi Arabia

                                "},"Constants.html#/c:@SDLLanguageKoKr":{"name":"SDLLanguageKoKr","abstract":"

                                @abstract Korean - South Korea

                                "},"Constants.html#/c:@SDLLanguagePtBr":{"name":"SDLLanguagePtBr","abstract":"

                                @abstract Portuguese - Brazil

                                "},"Constants.html#/c:@SDLLanguageCsCz":{"name":"SDLLanguageCsCz","abstract":"

                                @abstract Czech - Czech Republic

                                "},"Constants.html#/c:@SDLLanguageDaDk":{"name":"SDLLanguageDaDk","abstract":"

                                @abstract Danish - Denmark

                                "},"Constants.html#/c:@SDLLanguageNoNo":{"name":"SDLLanguageNoNo","abstract":"

                                @abstract Norwegian - Norway

                                "},"Constants.html#/c:@SDLLayoutModeIconOnly":{"name":"SDLLayoutModeIconOnly","abstract":"

                                This mode causes the interaction to display the previous set of choices as icons.

                                "},"Constants.html#/c:@SDLLayoutModeIconWithSearch":{"name":"SDLLayoutModeIconWithSearch","abstract":"

                                This mode causes the interaction to display the previous set of choices as icons along with a search field in the HMI.

                                "},"Constants.html#/c:@SDLLayoutModeListOnly":{"name":"SDLLayoutModeListOnly","abstract":"

                                This mode causes the interaction to display the previous set of choices as a list.

                                "},"Constants.html#/c:@SDLLayoutModeListWithSearch":{"name":"SDLLayoutModeListWithSearch","abstract":"

                                This mode causes the interaction to display the previous set of choices as a list along with a search field in the HMI.

                                "},"Constants.html#/c:@SDLLayoutModeKeyboard":{"name":"SDLLayoutModeKeyboard","abstract":"

                                This mode causes the interaction to immediately display a keyboard entry through the HMI.

                                "},"Constants.html#/c:@SDLLockScreenStatusOff":{"name":"SDLLockScreenStatusOff","abstract":"

                                LockScreen is Not Required

                                "},"Constants.html#/c:@SDLLockScreenStatusOptional":{"name":"SDLLockScreenStatusOptional","abstract":"

                                LockScreen is Optional

                                "},"Constants.html#/c:@SDLLockScreenStatusRequired":{"name":"SDLLockScreenStatusRequired","abstract":"

                                LockScreen is Not Required

                                "},"Constants.html#/c:@SDLMaintenanceModeStatusNormal":{"name":"SDLMaintenanceModeStatusNormal","abstract":"

                                @abstract Maintenance Mode Status : Normal

                                "},"Constants.html#/c:@SDLMaintenanceModeStatusNear":{"name":"SDLMaintenanceModeStatusNear","abstract":"

                                @abstract Maintenance Mode Status : Near

                                "},"Constants.html#/c:@SDLMaintenanceModeStatusActive":{"name":"SDLMaintenanceModeStatusActive","abstract":"

                                @abstract Maintenance Mode Status : Active

                                "},"Constants.html#/c:@SDLMaintenanceModeStatusFeatureNotPresent":{"name":"SDLMaintenanceModeStatusFeatureNotPresent","abstract":"

                                @abstract Maintenance Mode Status : Feature not present

                                "},"Constants.html#/c:@SDLMediaClockFormatClock1":{"name":"SDLMediaClockFormatClock1","abstract":"

                                @abstract Media clock format: Clock1

                                "},"Constants.html#/c:@SDLMediaClockFormatClock2":{"name":"SDLMediaClockFormatClock2","abstract":"

                                @abstract Media clock format: Clock2

                                "},"Constants.html#/c:@SDLMediaClockFormatClock3":{"name":"SDLMediaClockFormatClock3","abstract":"

                                @abstract Media clock format: Clock3

                                "},"Constants.html#/c:@SDLMediaClockFormatClockText1":{"name":"SDLMediaClockFormatClockText1","abstract":"

                                @abstract Media clock format: ClockText1

                                "},"Constants.html#/c:@SDLMediaClockFormatClockText2":{"name":"SDLMediaClockFormatClockText2","abstract":"

                                @abstract Media clock format: ClockText2

                                "},"Constants.html#/c:@SDLMediaClockFormatClockText3":{"name":"SDLMediaClockFormatClockText3","abstract":"

                                @abstract Media clock format: ClockText3

                                "},"Constants.html#/c:@SDLMediaClockFormatClockText4":{"name":"SDLMediaClockFormatClockText4","abstract":"

                                @abstract Media clock format: ClockText4

                                "},"Constants.html#/c:@SDLMetadataTypeMediaTitle":{"name":"SDLMetadataTypeMediaTitle","abstract":"

                                @abstract SDLMetadataType: mediaTitle

                                "},"Constants.html#/c:@SDLMetadataTypeMediaArtist":{"name":"SDLMetadataTypeMediaArtist","abstract":"

                                @abstract SDLMetadataType: mediaArtist

                                "},"Constants.html#/c:@SDLMetadataTypeMediaAlbum":{"name":"SDLMetadataTypeMediaAlbum","abstract":"

                                @abstract SDLMetadataType: mediaAlbum

                                "},"Constants.html#/c:@SDLMetadataTypeMediaYear":{"name":"SDLMetadataTypeMediaYear","abstract":"

                                @abstract SDLMetadataType: mediaYear

                                "},"Constants.html#/c:@SDLMetadataTypeMediaGenre":{"name":"SDLMetadataTypeMediaGenre","abstract":"

                                @abstract SDLMetadataType: mediaGenre

                                "},"Constants.html#/c:@SDLMetadataTypeMediaStation":{"name":"SDLMetadataTypeMediaStation","abstract":"

                                @abstract SDLMetadataType: mediaStation

                                "},"Constants.html#/c:@SDLMetadataTypeRating":{"name":"SDLMetadataTypeRating","abstract":"

                                @abstract SDLMetadataType: rating

                                "},"Constants.html#/c:@SDLMetadataTypeCurrentTemperature":{"name":"SDLMetadataTypeCurrentTemperature","abstract":"

                                @abstract SDLMetadataType: currentTemperature

                                "},"Constants.html#/c:@SDLMetadataTypeMaximumTemperature":{"name":"SDLMetadataTypeMaximumTemperature","abstract":"

                                @abstract SDLMetadataType: maximumTemperature

                                "},"Constants.html#/c:@SDLMetadataTypeMinimumTemperature":{"name":"SDLMetadataTypeMinimumTemperature","abstract":"

                                @abstract SDLMetadataType: minimumTemperature

                                "},"Constants.html#/c:@SDLMetadataTypeWeatherTerm":{"name":"SDLMetadataTypeWeatherTerm","abstract":"

                                @abstract SDLMetadataType: weatherTerm

                                "},"Constants.html#/c:@SDLMetadataTypeHumidity":{"name":"SDLMetadataTypeHumidity","abstract":"

                                @abstract SDLMetadataType: humidity

                                "},"Constants.html#/c:@SDLModuleTypeClimate":{"name":"SDLModuleTypeClimate","abstract":"

                                @abstract A SDLModuleType with the value of CLIMATE

                                "},"Constants.html#/c:@SDLModuleTypeRadio":{"name":"SDLModuleTypeRadio","abstract":"

                                @abstract A SDLModuleType with the value of RADIO

                                "},"Constants.html#/c:@SDLNotificationUserInfoObject":{"name":"SDLNotificationUserInfoObject","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTransportDidDisconnect":{"name":"SDLTransportDidDisconnect","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTransportDidConnect":{"name":"SDLTransportDidConnect","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveError":{"name":"SDLDidReceiveError","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveLockScreenIcon":{"name":"SDLDidReceiveLockScreenIcon","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidBecomeReady":{"name":"SDLDidBecomeReady","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidUpdateProjectionView":{"name":"SDLDidUpdateProjectionView","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveAddCommandResponse":{"name":"SDLDidReceiveAddCommandResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveAddSubMenuResponse":{"name":"SDLDidReceiveAddSubMenuResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveAlertResponse":{"name":"SDLDidReceiveAlertResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveAlertManeuverResponse":{"name":"SDLDidReceiveAlertManeuverResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveButtonPressResponse":{"name":"SDLDidReceiveButtonPressResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveChangeRegistrationResponse":{"name":"SDLDidReceiveChangeRegistrationResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveCreateInteractionChoiceSetResponse":{"name":"SDLDidReceiveCreateInteractionChoiceSetResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveDeleteCommandResponse":{"name":"SDLDidReceiveDeleteCommandResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveDeleteFileResponse":{"name":"SDLDidReceiveDeleteFileResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveDeleteInteractionChoiceSetResponse":{"name":"SDLDidReceiveDeleteInteractionChoiceSetResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveDeleteSubmenuResponse":{"name":"SDLDidReceiveDeleteSubmenuResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveDiagnosticMessageResponse":{"name":"SDLDidReceiveDiagnosticMessageResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveDialNumberResponse":{"name":"SDLDidReceiveDialNumberResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveEncodedSyncPDataResponse":{"name":"SDLDidReceiveEncodedSyncPDataResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveEndAudioPassThruResponse":{"name":"SDLDidReceiveEndAudioPassThruResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveGenericResponse":{"name":"SDLDidReceiveGenericResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveGetDTCsResponse":{"name":"SDLDidReceiveGetDTCsResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveGetInteriorVehicleDataResponse":{"name":"SDLDidReceiveGetInteriorVehicleDataResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveGetSystemCapabilitiesResponse":{"name":"SDLDidReceiveGetSystemCapabilitiesResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveGetVehicleDataResponse":{"name":"SDLDidReceiveGetVehicleDataResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveGetWaypointsResponse":{"name":"SDLDidReceiveGetWaypointsResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveListFilesResponse":{"name":"SDLDidReceiveListFilesResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceivePerformAudioPassThruResponse":{"name":"SDLDidReceivePerformAudioPassThruResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceivePerformInteractionResponse":{"name":"SDLDidReceivePerformInteractionResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceivePutFileResponse":{"name":"SDLDidReceivePutFileResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveReadDIDResponse":{"name":"SDLDidReceiveReadDIDResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveRegisterAppInterfaceResponse":{"name":"SDLDidReceiveRegisterAppInterfaceResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveResetGlobalPropertiesResponse":{"name":"SDLDidReceiveResetGlobalPropertiesResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveScrollableMessageResponse":{"name":"SDLDidReceiveScrollableMessageResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSendHapticDataResponse":{"name":"SDLDidReceiveSendHapticDataResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSendLocationResponse":{"name":"SDLDidReceiveSendLocationResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSetAppIconResponse":{"name":"SDLDidReceiveSetAppIconResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSetDisplayLayoutResponse":{"name":"SDLDidReceiveSetDisplayLayoutResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSetGlobalPropertiesResponse":{"name":"SDLDidReceiveSetGlobalPropertiesResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSetInteriorVehicleDataResponse":{"name":"SDLDidReceiveSetInteriorVehicleDataResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSetMediaClockTimerResponse":{"name":"SDLDidReceiveSetMediaClockTimerResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveShowConstantTBTResponse":{"name":"SDLDidReceiveShowConstantTBTResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveShowResponse":{"name":"SDLDidReceiveShowResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSliderResponse":{"name":"SDLDidReceiveSliderResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSpeakResponse":{"name":"SDLDidReceiveSpeakResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSubscribeButtonResponse":{"name":"SDLDidReceiveSubscribeButtonResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSubscribeVehicleDataResponse":{"name":"SDLDidReceiveSubscribeVehicleDataResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSubscribeWaypointsResponse":{"name":"SDLDidReceiveSubscribeWaypointsResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSyncPDataResponse":{"name":"SDLDidReceiveSyncPDataResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveUpdateTurnListResponse":{"name":"SDLDidReceiveUpdateTurnListResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveUnregisterAppInterfaceResponse":{"name":"SDLDidReceiveUnregisterAppInterfaceResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveUnsubscribeButtonResponse":{"name":"SDLDidReceiveUnsubscribeButtonResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveUnsubscribeVehicleDataResponse":{"name":"SDLDidReceiveUnsubscribeVehicleDataResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveUnsubscribeWaypointsResponse":{"name":"SDLDidReceiveUnsubscribeWaypointsResponse","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidChangeDriverDistractionStateNotification":{"name":"SDLDidChangeDriverDistractionStateNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidChangeHMIStatusNotification":{"name":"SDLDidChangeHMIStatusNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveAudioPassThruNotification":{"name":"SDLDidReceiveAudioPassThruNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveAppUnregisteredNotification":{"name":"SDLDidReceiveAppUnregisteredNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveButtonEventNotification":{"name":"SDLDidReceiveButtonEventNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveButtonPressNotification":{"name":"SDLDidReceiveButtonPressNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveCommandNotification":{"name":"SDLDidReceiveCommandNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveEncodedDataNotification":{"name":"SDLDidReceiveEncodedDataNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveInteriorVehicleDataNotification":{"name":"SDLDidReceiveInteriorVehicleDataNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveKeyboardInputNotification":{"name":"SDLDidReceiveKeyboardInputNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidChangeLanguageNotification":{"name":"SDLDidChangeLanguageNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidChangeLockScreenStatusNotification":{"name":"SDLDidChangeLockScreenStatusNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveNewHashNotification":{"name":"SDLDidReceiveNewHashNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveVehicleIconNotification":{"name":"SDLDidReceiveVehicleIconNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidChangePermissionsNotification":{"name":"SDLDidChangePermissionsNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveSystemRequestNotification":{"name":"SDLDidReceiveSystemRequestNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidChangeTurnByTurnStateNotification":{"name":"SDLDidChangeTurnByTurnStateNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveTouchEventNotification":{"name":"SDLDidReceiveTouchEventNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveVehicleDataNotification":{"name":"SDLDidReceiveVehicleDataNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDidReceiveWaypointNotification":{"name":"SDLDidReceiveWaypointNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPRNDLPark":{"name":"SDLPRNDLPark","abstract":"

                                @abstract Park

                                "},"Constants.html#/c:@SDLPRNDLReverse":{"name":"SDLPRNDLReverse","abstract":"

                                @abstract Reverse gear

                                "},"Constants.html#/c:@SDLPRNDLNeutral":{"name":"SDLPRNDLNeutral","abstract":"

                                @abstract No gear

                                "},"Constants.html#/c:@SDLPRNDLDrive":{"name":"SDLPRNDLDrive","abstract":"

                                @abstract: Drive gear

                                "},"Constants.html#/c:@SDLPRNDLSport":{"name":"SDLPRNDLSport","abstract":"

                                @abstract Drive Sport mode

                                "},"Constants.html#/c:@SDLPRNDLLowGear":{"name":"SDLPRNDLLowGear","abstract":"

                                @abstract 1st gear hold

                                "},"Constants.html#/c:@SDLPRNDLFirst":{"name":"SDLPRNDLFirst","abstract":"

                                @abstract First gear

                                "},"Constants.html#/c:@SDLPRNDLSecond":{"name":"SDLPRNDLSecond","abstract":"

                                @abstract Second gear

                                "},"Constants.html#/c:@SDLPRNDLThird":{"name":"SDLPRNDLThird","abstract":"

                                @abstract Third gear

                                "},"Constants.html#/c:@SDLPRNDLFourth":{"name":"SDLPRNDLFourth","abstract":"

                                @abstract Fourth gear

                                "},"Constants.html#/c:@SDLPRNDLFifth":{"name":"SDLPRNDLFifth","abstract":"

                                @abstract Fifth gear

                                "},"Constants.html#/c:@SDLPRNDLSixth":{"name":"SDLPRNDLSixth","abstract":"

                                @abstract Sixth gear

                                "},"Constants.html#/c:@SDLPRNDLSeventh":{"name":"SDLPRNDLSeventh","abstract":"

                                @abstract Seventh gear

                                "},"Constants.html#/c:@SDLPRNDLEighth":{"name":"SDLPRNDLEighth","abstract":"

                                @abstract Eighth gear

                                "},"Constants.html#/c:@SDLPRNDLUnknown":{"name":"SDLPRNDLUnknown","abstract":"

                                @abstract Unknown

                                "},"Constants.html#/c:@SDLPRNDLFault":{"name":"SDLPRNDLFault","abstract":"

                                @abstract Fault

                                "},"Constants.html#/c:@SDLPermissionStatusAllowed":{"name":"SDLPermissionStatusAllowed","abstract":"

                                @abstract permission: allowed

                                "},"Constants.html#/c:@SDLPermissionStatusDisallowed":{"name":"SDLPermissionStatusDisallowed","abstract":"

                                @abstract permission: disallowed

                                "},"Constants.html#/c:@SDLPermissionStatusUserDisallowed":{"name":"SDLPermissionStatusUserDisallowed","abstract":"

                                @abstract permission: user disallowed

                                "},"Constants.html#/c:@SDLPermissionStatusUserConsentPending":{"name":"SDLPermissionStatusUserConsentPending","abstract":"

                                @abstract permission: user consent pending

                                "},"Constants.html#/c:@SDLPowerModeQualificationStatusUndefined":{"name":"SDLPowerModeQualificationStatusUndefined","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPowerModeQualificationStatusEvaluationInProgress":{"name":"SDLPowerModeQualificationStatusEvaluationInProgress","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPowerModeQualificationStatusNotDefined":{"name":"SDLPowerModeQualificationStatusNotDefined","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPowerModeQualificationStatusOk":{"name":"SDLPowerModeQualificationStatusOk","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPowerModeStatusKeyOut":{"name":"SDLPowerModeStatusKeyOut","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPowerModeStatusKeyRecentlyOut":{"name":"SDLPowerModeStatusKeyRecentlyOut","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPowerModeStatusKeyApproved":{"name":"SDLPowerModeStatusKeyApproved","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPowerModeStatusPostAccessory":{"name":"SDLPowerModeStatusPostAccessory","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPowerModeStatusAccessory":{"name":"SDLPowerModeStatusAccessory","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPowerModeStatusPostIgnition":{"name":"SDLPowerModeStatusPostIgnition","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPowerModeStatusIgnitionOn":{"name":"SDLPowerModeStatusIgnitionOn","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPowerModeStatusRunning":{"name":"SDLPowerModeStatusRunning","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPowerModeStatusCrank":{"name":"SDLPowerModeStatusCrank","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPredefinedLayoutDefault":{"name":"SDLPredefinedLayoutDefault","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPredefinedLayoutMedia":{"name":"SDLPredefinedLayoutMedia","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPredefinedLayoutNonMedia":{"name":"SDLPredefinedLayoutNonMedia","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPredefinedLayoutOnscreenPresets":{"name":"SDLPredefinedLayoutOnscreenPresets","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPredefinedLayoutNavigationFullscreenMap":{"name":"SDLPredefinedLayoutNavigationFullscreenMap","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPredefinedLayoutNavigationList":{"name":"SDLPredefinedLayoutNavigationList","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPredefinedLayoutNavigationKeyboard":{"name":"SDLPredefinedLayoutNavigationKeyboard","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPredefinedLayoutGraphicWithText":{"name":"SDLPredefinedLayoutGraphicWithText","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPredefinedLayoutTextWithGraphic":{"name":"SDLPredefinedLayoutTextWithGraphic","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPredefinedLayoutTilesOnly":{"name":"SDLPredefinedLayoutTilesOnly","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPredefinedLayoutTextButtonsOnly":{"name":"SDLPredefinedLayoutTextButtonsOnly","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPredefinedLayoutGraphicWithTiles":{"name":"SDLPredefinedLayoutGraphicWithTiles","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPredefinedLayoutTilesWithGraphic":{"name":"SDLPredefinedLayoutTilesWithGraphic","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPredefinedLayoutGraphicWithTextAndSoftButtons":{"name":"SDLPredefinedLayoutGraphicWithTextAndSoftButtons","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPredefinedLayoutTextAndSoftButtonsWithGraphic":{"name":"SDLPredefinedLayoutTextAndSoftButtonsWithGraphic","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPredefinedLayoutGraphicWithTextButtons":{"name":"SDLPredefinedLayoutGraphicWithTextButtons","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPredefinedLayoutTextButtonsWithGraphic":{"name":"SDLPredefinedLayoutTextButtonsWithGraphic","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPredefinedLayoutLargeGraphicWithSoftButtons":{"name":"SDLPredefinedLayoutLargeGraphicWithSoftButtons","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPredefinedLayoutDoubleGraphicWithSoftButtons":{"name":"SDLPredefinedLayoutDoubleGraphicWithSoftButtons","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPredefinedLayoutLargeGraphicOnly":{"name":"SDLPredefinedLayoutLargeGraphicOnly","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPrerecordedSpeechHelp":{"name":"SDLPrerecordedSpeechHelp","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPrerecordedSpeechInitial":{"name":"SDLPrerecordedSpeechInitial","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPrerecordedSpeechListen":{"name":"SDLPrerecordedSpeechListen","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPrerecordedSpeechPositive":{"name":"SDLPrerecordedSpeechPositive","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPrerecordedSpeechNegative":{"name":"SDLPrerecordedSpeechNegative","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLPrimaryAudioSourceNoSourceSelected":{"name":"SDLPrimaryAudioSourceNoSourceSelected","abstract":"

                                @abstract Currently no source selected

                                "},"Constants.html#/c:@SDLPrimaryAudioSourceUSB":{"name":"SDLPrimaryAudioSourceUSB","abstract":"

                                @abstract USB is current source

                                "},"Constants.html#/c:@SDLPrimaryAudioSourceUSB2":{"name":"SDLPrimaryAudioSourceUSB2","abstract":"

                                @abstract USB2 is current source

                                "},"Constants.html#/c:@SDLPrimaryAudioSourceBluetoothStereo":{"name":"SDLPrimaryAudioSourceBluetoothStereo","abstract":"

                                @abstract Bluetooth Stereo is current source

                                "},"Constants.html#/c:@SDLPrimaryAudioSourceLineIn":{"name":"SDLPrimaryAudioSourceLineIn","abstract":"

                                @abstract Line in is current source

                                "},"Constants.html#/c:@SDLPrimaryAudioSourceIpod":{"name":"SDLPrimaryAudioSourceIpod","abstract":"

                                @abstract iPod is current source

                                "},"Constants.html#/c:@SDLPrimaryAudioSourceMobileApp":{"name":"SDLPrimaryAudioSourceMobileApp","abstract":"

                                @abstract Mobile app is current source

                                "},"Constants.html#/c:@SDLProtocolSecurityErrorDomain":{"name":"SDLProtocolSecurityErrorDomain","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLRadioBandAM":{"name":"SDLRadioBandAM","abstract":"

                                @abstract Represents AM radio band

                                "},"Constants.html#/c:@SDLRadioBandFM":{"name":"SDLRadioBandFM","abstract":"

                                @abstract Represents FM radio band

                                "},"Constants.html#/c:@SDLRadioBandXM":{"name":"SDLRadioBandXM","abstract":"

                                @abstract Represents XM radio band

                                "},"Constants.html#/c:@SDLRadioStateAcquiring":{"name":"SDLRadioStateAcquiring","abstract":"

                                @abstract Represents Radio state as ACQUIRING

                                "},"Constants.html#/c:@SDLRadioStateAcquired":{"name":"SDLRadioStateAcquired","abstract":"

                                @abstract Represents Radio state as ACQUIRED

                                "},"Constants.html#/c:@SDLRadioStateMulticast":{"name":"SDLRadioStateMulticast","abstract":"

                                @abstract Represents Radio state as MULTICAST

                                "},"Constants.html#/c:@SDLRadioStateNotFound":{"name":"SDLRadioStateNotFound","abstract":"

                                @abstract Represents Radio state as NOT_FOUND

                                "},"Constants.html#/c:@SDLRequestTypeHTTP":{"name":"SDLRequestTypeHTTP","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLRequestTypeFileResume":{"name":"SDLRequestTypeFileResume","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLRequestTypeAuthenticationRequest":{"name":"SDLRequestTypeAuthenticationRequest","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLRequestTypeAuthenticationChallenge":{"name":"SDLRequestTypeAuthenticationChallenge","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLRequestTypeAuthenticationAck":{"name":"SDLRequestTypeAuthenticationAck","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLRequestTypeProprietary":{"name":"SDLRequestTypeProprietary","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLRequestTypeQueryApps":{"name":"SDLRequestTypeQueryApps","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLRequestTypeLaunchApp":{"name":"SDLRequestTypeLaunchApp","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLRequestTypeLockScreenIconURL":{"name":"SDLRequestTypeLockScreenIconURL","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLRequestTypeTrafficMessageChannel":{"name":"SDLRequestTypeTrafficMessageChannel","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLRequestTypeDriverProfile":{"name":"SDLRequestTypeDriverProfile","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLRequestTypeVoiceSearch":{"name":"SDLRequestTypeVoiceSearch","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLRequestTypeNavigation":{"name":"SDLRequestTypeNavigation","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLRequestTypePhone":{"name":"SDLRequestTypePhone","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLRequestTypeClimate":{"name":"SDLRequestTypeClimate","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLRequestTypeSettings":{"name":"SDLRequestTypeSettings","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLRequestTypeVehicleDiagnostics":{"name":"SDLRequestTypeVehicleDiagnostics","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLRequestTypeEmergency":{"name":"SDLRequestTypeEmergency","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLRequestTypeMedia":{"name":"SDLRequestTypeMedia","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLRequestTypeFOTA":{"name":"SDLRequestTypeFOTA","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLResultSuccess":{"name":"SDLResultSuccess","abstract":"

                                @abstract The request succeeded

                                "},"Constants.html#/c:@SDLResultInvalidData":{"name":"SDLResultInvalidData","abstract":"

                                @abstract Result code : Invalid Data

                                "},"Constants.html#/c:@SDLResultCharacterLimitExceeded":{"name":"SDLResultCharacterLimitExceeded","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLResultUnsupportedRequest":{"name":"SDLResultUnsupportedRequest","abstract":"

                                @abstract The request is not supported by SDL

                                "},"Constants.html#/c:@SDLResultOutOfMemory":{"name":"SDLResultOutOfMemory","abstract":"

                                @abstract The system could not process the request because the necessary memory couldn’t be allocated

                                "},"Constants.html#/c:@SDLResultTooManyPendingRequests":{"name":"SDLResultTooManyPendingRequests","abstract":"

                                @abstract There are too many requests pending (means that the response has not been delivered yet).

                                "},"Constants.html#/c:@SDLResultInvalidId":{"name":"SDLResultInvalidId","abstract":"

                                @abstract One of the provided IDs is not valid."},"Constants.html#/c:@SDLResultDuplicateName":{"name":"SDLResultDuplicateName","abstract":"

                                @abstract The provided name or synonym is a duplicate of some already-defined name or synonym.

                                "},"Constants.html#/c:@SDLResultTooManyApplications":{"name":"SDLResultTooManyApplications","abstract":"

                                There are already too many registered applications.

                                "},"Constants.html#/c:@SDLResultApplicationRegisteredAlready":{"name":"SDLResultApplicationRegisteredAlready","abstract":"

                                RegisterApplication has been called again, after a RegisterApplication was successful before.

                                "},"Constants.html#/c:@SDLResultUnsupportedVersion":{"name":"SDLResultUnsupportedVersion","abstract":"

                                The Head Unit doesn’t support the protocol that is requested by the mobile application.

                                "},"Constants.html#/c:@SDLResultWrongLanguage":{"name":"SDLResultWrongLanguage","abstract":"

                                The requested language is currently not supported. Might be because of a mismatch of the currently active language on the head unit and the requested language.

                                "},"Constants.html#/c:@SDLResultApplicationNotRegistered":{"name":"SDLResultApplicationNotRegistered","abstract":"

                                A command can not be executed because no application has been registered with RegisterApplication.

                                "},"Constants.html#/c:@SDLResultInUse":{"name":"SDLResultInUse","abstract":"

                                The data may not be changed, because it is currently in use. For example when trying to delete a command set that is currently involved in an interaction.

                                "},"Constants.html#/c:@SDLResultVehicleDataNotAllowed":{"name":"SDLResultVehicleDataNotAllowed","abstract":"

                                The user has turned off access to vehicle data, and it is globally unavailable to mobile applications.

                                "},"Constants.html#/c:@SDLResultVehicleDataNotAvailable":{"name":"SDLResultVehicleDataNotAvailable","abstract":"

                                The requested vehicle data is not available on this vehicle or is not published.

                                "},"Constants.html#/c:@SDLResultRejected":{"name":"SDLResultRejected","abstract":"

                                The requested command was rejected, e.g. because 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.

                                "},"Constants.html#/c:@SDLResultAborted":{"name":"SDLResultAborted","abstract":"

                                A command was aborted, for example due to user interaction (e.g. user pressed button). Or an HMI command (e.g. Speak) is aborted because a higher priority HMI command (e.g. Alert) was requested.

                                "},"Constants.html#/c:@SDLResultIgnored":{"name":"SDLResultIgnored","abstract":"

                                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.

                                "},"Constants.html#/c:@SDLResultUnsupportedResource":{"name":"SDLResultUnsupportedResource","abstract":"

                                A button that was requested for subscription is not supported under the current system.

                                "},"Constants.html#/c:@SDLResultFileNotFound":{"name":"SDLResultFileNotFound","abstract":"

                                A specified file could not be found on the head unit.

                                "},"Constants.html#/c:@SDLResultGenericError":{"name":"SDLResultGenericError","abstract":"

                                Provided data is valid but something went wrong in the lower layers.

                                "},"Constants.html#/c:@SDLResultDisallowed":{"name":"SDLResultDisallowed","abstract":"

                                RPC is not authorized in local policy table.

                                "},"Constants.html#/c:@SDLResultUserDisallowed":{"name":"SDLResultUserDisallowed","abstract":"

                                RPC is included in a functional group explicitly blocked by the user.

                                "},"Constants.html#/c:@SDLResultTimedOut":{"name":"SDLResultTimedOut","abstract":"

                                Overlay reached the maximum timeout and closed.

                                "},"Constants.html#/c:@SDLResultCancelRoute":{"name":"SDLResultCancelRoute","abstract":"

                                User selected to Cancel Route.

                                "},"Constants.html#/c:@SDLResultTruncatedData":{"name":"SDLResultTruncatedData","abstract":"

                                The RPC (e.g. ReadDID) executed successfully but the data exceeded the platform maximum threshold and thus, only part of the data is available.

                                "},"Constants.html#/c:@SDLResultRetry":{"name":"SDLResultRetry","abstract":"

                                The user interrupted the RPC (e.g. PerformAudioPassThru) and indicated to start over. Note, the app must issue the new RPC.

                                "},"Constants.html#/c:@SDLResultWarnings":{"name":"SDLResultWarnings","abstract":"

                                The RPC (e.g. SubscribeVehicleData) executed successfully but one or more items have a warning or failure.

                                "},"Constants.html#/c:@SDLResultSaved":{"name":"SDLResultSaved","abstract":"

                                The RPC (e.g. Slider) executed successfully and the user elected to save the current position / value.

                                "},"Constants.html#/c:@SDLResultInvalidCertificate":{"name":"SDLResultInvalidCertificate","abstract":"

                                The certificate provided during authentication is invalid.

                                "},"Constants.html#/c:@SDLResultExpiredCertificate":{"name":"SDLResultExpiredCertificate","abstract":"

                                The certificate provided during authentication is expired.

                                "},"Constants.html#/c:@SDLResultResumeFailed":{"name":"SDLResultResumeFailed","abstract":"

                                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.

                                "},"Constants.html#/c:@SDLResultDataNotAvailable":{"name":"SDLResultDataNotAvailable","abstract":"

                                The requested data is not available on this vehicle or is not published for the connected app.

                                "},"Constants.html#/c:@SDLResultReadOnly":{"name":"SDLResultReadOnly","abstract":"

                                The requested data is read only thus cannot be change via remote control .

                                "},"Constants.html#/c:@SDLSamplingRate8KHZ":{"name":"SDLSamplingRate8KHZ","abstract":"

                                @abstract Sampling rate of 8 kHz

                                "},"Constants.html#/c:@SDLSamplingRate16KHZ":{"name":"SDLSamplingRate16KHZ","abstract":"

                                @abstract Sampling rate of 16 kHz

                                "},"Constants.html#/c:@SDLSamplingRate22KHZ":{"name":"SDLSamplingRate22KHZ","abstract":"

                                @abstract Sampling rate of 22 kHz

                                "},"Constants.html#/c:@SDLSamplingRate44KHZ":{"name":"SDLSamplingRate44KHZ","abstract":"

                                @abstract Sampling rate of 44 kHz

                                "},"Constants.html#/c:@SDLSoftButtonTypeText":{"name":"SDLSoftButtonTypeText","abstract":"

                                @abstract Text kind Softbutton

                                "},"Constants.html#/c:@SDLSoftButtonTypeImage":{"name":"SDLSoftButtonTypeImage","abstract":"

                                @abstract Image kind Softbutton

                                "},"Constants.html#/c:@SDLSoftButtonTypeBoth":{"name":"SDLSoftButtonTypeBoth","abstract":"

                                @abstract Both (Text & Image) kind Softbutton

                                "},"Constants.html#/c:@SDLSpeechCapabilitiesText":{"name":"SDLSpeechCapabilitiesText","abstract":"

                                @abstract The SDL platform can speak text phrases.

                                "},"Constants.html#/c:@SDLSpeechCapabilitiesSAPIPhonemes":{"name":"SDLSpeechCapabilitiesSAPIPhonemes","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLSpeechCapabilitiesLHPlusPhonemes":{"name":"SDLSpeechCapabilitiesLHPlusPhonemes","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLSpeechCapabilitiesPrerecorded":{"name":"SDLSpeechCapabilitiesPrerecorded","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLSpeechCapabilitiesSilence":{"name":"SDLSpeechCapabilitiesSilence","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLDefaultScreenSize":{"name":"SDLDefaultScreenSize","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLVideoStreamDidStartNotification":{"name":"SDLVideoStreamDidStartNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLVideoStreamDidStopNotification":{"name":"SDLVideoStreamDidStopNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLAudioStreamDidStartNotification":{"name":"SDLAudioStreamDidStartNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLAudioStreamDidStopNotification":{"name":"SDLAudioStreamDidStopNotification","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLSystemActionDefaultAction":{"name":"SDLSystemActionDefaultAction","abstract":"

                                @abstract Default_Action

                                "},"Constants.html#/c:@SDLSystemActionStealFocus":{"name":"SDLSystemActionStealFocus","abstract":"

                                @abstract Steal_Focus

                                "},"Constants.html#/c:@SDLSystemActionKeepContext":{"name":"SDLSystemActionKeepContext","abstract":"

                                @abstract Keep_Context

                                "},"Constants.html#/c:@SDLSystemCapabilityTypeNavigation":{"name":"SDLSystemCapabilityTypeNavigation","abstract":"

                                @abstract NAVIGATION

                                "},"Constants.html#/c:@SDLSystemCapabilityTypePhoneCall":{"name":"SDLSystemCapabilityTypePhoneCall","abstract":"

                                @abstract PHONE_CALL

                                "},"Constants.html#/c:@SDLSystemCapabilityTypeVideoStreaming":{"name":"SDLSystemCapabilityTypeVideoStreaming","abstract":"

                                @abstract VIDEO_STREAMING

                                "},"Constants.html#/c:@SDLSystemCapabilityTypeRemoteControl":{"name":"SDLSystemCapabilityTypeRemoteControl","abstract":"

                                @abstract REMOTE_CONTROL

                                "},"Constants.html#/c:@SDLSystemContextMain":{"name":"SDLSystemContextMain","abstract":"

                                @abstract No user interaction (user-initiated or app-initiated) is in progress.

                                "},"Constants.html#/c:@SDLSystemContextVoiceRecognitionSession":{"name":"SDLSystemContextVoiceRecognitionSession","abstract":"

                                @abstract VR-oriented, user-initiated or app-initiated interaction is in-progress.

                                "},"Constants.html#/c:@SDLSystemContextMenu":{"name":"SDLSystemContextMenu","abstract":"

                                @abstract Menu-oriented, user-initiated or app-initiated interaction is in-progress.

                                "},"Constants.html#/c:@SDLSystemContextHMIObscured":{"name":"SDLSystemContextHMIObscured","abstract":"

                                @abstract The app’s display HMI is currently being obscured by either a system or other app’s overlay.

                                "},"Constants.html#/c:@SDLSystemContextAlert":{"name":"SDLSystemContextAlert","abstract":"

                                @abstract Broadcast only to whichever app has an alert currently being displayed.

                                "},"Constants.html#/c:@SDLTBTStateRouteUpdateRequest":{"name":"SDLTBTStateRouteUpdateRequest","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTBTStateRouteAccepted":{"name":"SDLTBTStateRouteAccepted","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTBTStateRouteRefused":{"name":"SDLTBTStateRouteRefused","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTBTStateRouteCancelled":{"name":"SDLTBTStateRouteCancelled","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTBTStateETARequest":{"name":"SDLTBTStateETARequest","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTBTStateNextTurnRequest":{"name":"SDLTBTStateNextTurnRequest","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTBTStateRouteStatusRequest":{"name":"SDLTBTStateRouteStatusRequest","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTBTStateRouteSummaryRequest":{"name":"SDLTBTStateRouteSummaryRequest","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTBTStateTripStatusRequest":{"name":"SDLTBTStateTripStatusRequest","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTBTStateRouteUpdateRequestTimeout":{"name":"SDLTBTStateRouteUpdateRequestTimeout","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTemperatureUnitCelsius":{"name":"SDLTemperatureUnitCelsius","abstract":"

                                @abstract Reflects the current HMI setting for temperature unit in Celsius"},"Constants.html#/c:@SDLTemperatureUnitFahrenheit":{"name":"SDLTemperatureUnitFahrenheit","abstract":"

                                @abstract Reflects the current HMI setting for temperature unit in Fahrenheit"},"Constants.html#/c:@SDLTextAlignmentLeft":{"name":"SDLTextAlignmentLeft","abstract":"

                                @abstract Text aligned left.

                                "},"Constants.html#/c:@SDLTextAlignmentRight":{"name":"SDLTextAlignmentRight","abstract":"

                                @abstract Text aligned right.

                                "},"Constants.html#/c:@SDLTextAlignmentCenter":{"name":"SDLTextAlignmentCenter","abstract":"

                                @abstract Text aligned centered.

                                "},"Constants.html#/c:@SDLTextFieldNameMainField1":{"name":"SDLTextFieldNameMainField1","abstract":"

                                @abstract The first line of the first set of main fields of the persistent display. Applies to SDLShow.

                                "},"Constants.html#/c:@SDLTextFieldNameMainField2":{"name":"SDLTextFieldNameMainField2","abstract":"

                                @abstract The second line of the first set of main fields of the persistent display. Applies to SDLShow.

                                "},"Constants.html#/c:@SDLTextFieldNameMainField3":{"name":"SDLTextFieldNameMainField3","abstract":"

                                @abstract The first line of the second set of main fields of the persistent display. Applies to SDLShow.

                                "},"Constants.html#/c:@SDLTextFieldNameMainField4":{"name":"SDLTextFieldNameMainField4","abstract":"

                                @abstract The second line of the second set of main fields of the persistent display. Applies to SDLShow.

                                "},"Constants.html#/c:@SDLTextFieldNameStatusBar":{"name":"SDLTextFieldNameStatusBar","abstract":"

                                @abstract The status bar on the NGN display. Applies to SDLShow.

                                "},"Constants.html#/c:@SDLTextFieldNameMediaClock":{"name":"SDLTextFieldNameMediaClock","abstract":"

                                @abstract Text value for MediaClock field. Must be properly formatted according to MediaClockFormat. Applies to SDLShow.

                                "},"Constants.html#/c:@SDLTextFieldNameMediaTrack":{"name":"SDLTextFieldNameMediaTrack","abstract":"

                                @abstract The track field of NGN type ACMs. This field is only available for media applications on a NGN display. Applies to SDLShow.

                                "},"Constants.html#/c:@SDLTextFieldNameAlertText1":{"name":"SDLTextFieldNameAlertText1","abstract":"

                                @abstract The first line of the alert text field. Applies to SDLAlert.

                                "},"Constants.html#/c:@SDLTextFieldNameAlertText2":{"name":"SDLTextFieldNameAlertText2","abstract":"

                                @abstract The second line of the alert text field. Applies to SDLAlert.

                                "},"Constants.html#/c:@SDLTextFieldNameAlertText3":{"name":"SDLTextFieldNameAlertText3","abstract":"

                                @abstract The third line of the alert text field. Applies to SDLAlert.

                                "},"Constants.html#/c:@SDLTextFieldNameScrollableMessageBody":{"name":"SDLTextFieldNameScrollableMessageBody","abstract":"

                                @abstract Long form body of text that can include newlines and tabs. Applies to SDLScrollableMessage.

                                "},"Constants.html#/c:@SDLTextFieldNameInitialInteractionText":{"name":"SDLTextFieldNameInitialInteractionText","abstract":"

                                @abstract First line suggestion for a user response (in the case of VR enabled interaction).

                                "},"Constants.html#/c:@SDLTextFieldNameNavigationText1":{"name":"SDLTextFieldNameNavigationText1","abstract":"

                                @abstract First line of navigation text.

                                "},"Constants.html#/c:@SDLTextFieldNameNavigationText2":{"name":"SDLTextFieldNameNavigationText2","abstract":"

                                @abstract Second line of navigation text.

                                "},"Constants.html#/c:@SDLTextFieldNameETA":{"name":"SDLTextFieldNameETA","abstract":"

                                @abstract Estimated Time of Arrival time for navigation.

                                "},"Constants.html#/c:@SDLTextFieldNameTotalDistance":{"name":"SDLTextFieldNameTotalDistance","abstract":"

                                @abstract Total distance to destination for navigation.

                                "},"Constants.html#/c:@SDLTextFieldNameAudioPassThruDisplayText1":{"name":"SDLTextFieldNameAudioPassThruDisplayText1","abstract":"

                                @abstract First line of text for audio pass thru.

                                "},"Constants.html#/c:@SDLTextFieldNameAudioPassThruDisplayText2":{"name":"SDLTextFieldNameAudioPassThruDisplayText2","abstract":"

                                @abstract Second line of text for audio pass thru.

                                "},"Constants.html#/c:@SDLTextFieldNameSliderHeader":{"name":"SDLTextFieldNameSliderHeader","abstract":"

                                @abstract Header text for slider.

                                "},"Constants.html#/c:@SDLTextFieldNameSliderFooter":{"name":"SDLTextFieldNameSliderFooter","abstract":"

                                @abstract Footer text for slider

                                "},"Constants.html#/c:@SDLTextFieldNameMenuName":{"name":"SDLTextFieldNameMenuName","abstract":"

                                Primary text for SDLChoice

                                "},"Constants.html#/c:@SDLTextFieldNameSecondaryText":{"name":"SDLTextFieldNameSecondaryText","abstract":"

                                Secondary text for SDLChoice

                                "},"Constants.html#/c:@SDLTextFieldNameTertiaryText":{"name":"SDLTextFieldNameTertiaryText","abstract":"

                                Tertiary text for SDLChoice

                                "},"Constants.html#/c:@SDLTextFieldNameMenuTitle":{"name":"SDLTextFieldNameMenuTitle","abstract":"

                                Optional text to label an app menu button (for certain touchscreen platforms)

                                "},"Constants.html#/c:@SDLTextFieldNameLocationName":{"name":"SDLTextFieldNameLocationName","abstract":"

                                Optional name / title of intended location for SDLSendLocation

                                "},"Constants.html#/c:@SDLTextFieldNameLocationDescription":{"name":"SDLTextFieldNameLocationDescription","abstract":"

                                Optional description of intended location / establishment (if applicable) for SDLSendLocation

                                "},"Constants.html#/c:@SDLTextFieldNameAddressLines":{"name":"SDLTextFieldNameAddressLines","abstract":"

                                Optional location address (if applicable) for SDLSendLocation

                                "},"Constants.html#/c:@SDLTextFieldNamePhoneNumber":{"name":"SDLTextFieldNamePhoneNumber","abstract":"

                                Optional hone number of intended location / establishment (if applicable) for SDLSendLocation

                                "},"Constants.html#/c:@SDLTimerModeUp":{"name":"SDLTimerModeUp","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTimerModeDown":{"name":"SDLTimerModeDown","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTimerModeNone":{"name":"SDLTimerModeNone","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTouchTypeBegin":{"name":"SDLTouchTypeBegin","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTouchTypeMove":{"name":"SDLTouchTypeMove","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTouchTypeEnd":{"name":"SDLTouchTypeEnd","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTouchTypeCancel":{"name":"SDLTouchTypeCancel","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLTriggerSourceMenu":{"name":"SDLTriggerSourceMenu","abstract":"

                                @abstract Selection made via menu

                                "},"Constants.html#/c:@SDLTriggerSourceVoiceRecognition":{"name":"SDLTriggerSourceVoiceRecognition","abstract":"

                                @abstract Selection made via Voice session

                                "},"Constants.html#/c:@SDLTriggerSourceKeyboard":{"name":"SDLTriggerSourceKeyboard","abstract":"

                                @abstract Selection made via Keyboard

                                "},"Constants.html#/c:@SDLUpdateModeCountUp":{"name":"SDLUpdateModeCountUp","abstract":"

                                @abstract Starts the media clock timer counting upward, in increments of 1 second.

                                "},"Constants.html#/c:@SDLUpdateModeCountDown":{"name":"SDLUpdateModeCountDown","abstract":"

                                @abstract Starts the media clock timer counting downward, in increments of 1 second.

                                "},"Constants.html#/c:@SDLUpdateModePause":{"name":"SDLUpdateModePause","abstract":"

                                @abstract Pauses the media clock timer.

                                "},"Constants.html#/c:@SDLUpdateModeResume":{"name":"SDLUpdateModeResume","abstract":"

                                @abstract Resumes the media clock timer. The timer resumes counting in whatever mode was in effect before pausing (i.e. COUNTUP or COUNTDOWN).

                                "},"Constants.html#/c:@SDLUpdateModeClear":{"name":"SDLUpdateModeClear","abstract":"

                                @abstract Clear the media clock timer.

                                "},"Constants.html#/c:@SDLVehicleDataActiveStatusInactiveNotConfirmed":{"name":"SDLVehicleDataActiveStatusInactiveNotConfirmed","abstract":"

                                @abstract SDLVehicleDataActiveStatus : Inactive not confirmed

                                "},"Constants.html#/c:@SDLVehicleDataActiveStatusInactiveConfirmed":{"name":"SDLVehicleDataActiveStatusInactiveConfirmed","abstract":"

                                @abstract SDLVehicleDataActiveStatus : Inactive confirmed

                                "},"Constants.html#/c:@SDLVehicleDataActiveStatusActiveNotConfirmed":{"name":"SDLVehicleDataActiveStatusActiveNotConfirmed","abstract":"

                                @abstract SDLVehicleDataActiveStatus : Active not confirmed

                                "},"Constants.html#/c:@SDLVehicleDataActiveStatusActiveConfirmed":{"name":"SDLVehicleDataActiveStatusActiveConfirmed","abstract":"

                                @abstract SDLVehicleDataActiveStatus : Active confirmed

                                "},"Constants.html#/c:@SDLVehicleDataActiveStatusFault":{"name":"SDLVehicleDataActiveStatusFault","abstract":"

                                @abstract SDLVehicleDataActiveStatus : Fault

                                "},"Constants.html#/c:@SDLVehicleDataEventStatusNoEvent":{"name":"SDLVehicleDataEventStatusNoEvent","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLVehicleDataEventStatusNo":{"name":"SDLVehicleDataEventStatusNo","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLVehicleDataEventStatusYes":{"name":"SDLVehicleDataEventStatusYes","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLVehicleDataEventStatusNotSupported":{"name":"SDLVehicleDataEventStatusNotSupported","abstract":"

                                @abstract Vehicle data event is not supported

                                "},"Constants.html#/c:@SDLVehicleDataEventStatusFault":{"name":"SDLVehicleDataEventStatusFault","abstract":"

                                @abstract The SDLVehicleDataEventStatus instance with value of FAULT

                                "},"Constants.html#/c:@SDLVehicleDataNotificationStatusNotSupported":{"name":"SDLVehicleDataNotificationStatusNotSupported","abstract":"

                                @abstract SDLVehicleDataNotificationStatus: NOT_SUPPORTED

                                "},"Constants.html#/c:@SDLVehicleDataNotificationStatusNormal":{"name":"SDLVehicleDataNotificationStatusNormal","abstract":"

                                @abstract SDLVehicleDataNotificationStatus: NORMAL

                                "},"Constants.html#/c:@SDLVehicleDataNotificationStatusActive":{"name":"SDLVehicleDataNotificationStatusActive","abstract":"

                                @abstract SDLVehicleDataNotificationStatus: ACTIVE

                                "},"Constants.html#/c:@SDLVehicleDataNotificationStatusNotUsed":{"name":"SDLVehicleDataNotificationStatusNotUsed","abstract":"

                                @abstract SDLVehicleDataNotificationStatus: NOT_USED

                                "},"Constants.html#/c:@SDLVehicleDataResultCodeSuccess":{"name":"SDLVehicleDataResultCodeSuccess","abstract":"

                                Individual vehicle data item / DTC / DID request or subscription successful

                                "},"Constants.html#/c:@SDLVehicleDataResultCodeTruncatedData":{"name":"SDLVehicleDataResultCodeTruncatedData","abstract":"

                                DTC / DID request successful, however, not all active DTCs or full contents of DID location available

                                "},"Constants.html#/c:@SDLVehicleDataResultCodeDisallowed":{"name":"SDLVehicleDataResultCodeDisallowed","abstract":"

                                This vehicle data item is not allowed for this app by SDL

                                "},"Constants.html#/c:@SDLVehicleDataResultCodeUserDisallowed":{"name":"SDLVehicleDataResultCodeUserDisallowed","abstract":"

                                The user has not granted access to this type of vehicle data item at this time

                                "},"Constants.html#/c:@SDLVehicleDataResultCodeInvalidId":{"name":"SDLVehicleDataResultCodeInvalidId","abstract":"

                                The ECU ID referenced is not a valid ID on the bus / system

                                "},"Constants.html#/c:@SDLVehicleDataResultCodeVehicleDataNotAvailable":{"name":"SDLVehicleDataResultCodeVehicleDataNotAvailable","abstract":"

                                The requested vehicle data item / DTC / DID is not currently available or responding on the bus / system

                                "},"Constants.html#/c:@SDLVehicleDataResultCodeDataAlreadySubscribed":{"name":"SDLVehicleDataResultCodeDataAlreadySubscribed","abstract":"

                                The vehicle data item is already subscribed

                                "},"Constants.html#/c:@SDLVehicleDataResultCodeDataNotSubscribed":{"name":"SDLVehicleDataResultCodeDataNotSubscribed","abstract":"

                                The vehicle data item cannot be unsubscribed because it is not currently subscribed

                                "},"Constants.html#/c:@SDLVehicleDataResultCodeIgnored":{"name":"SDLVehicleDataResultCodeIgnored","abstract":"

                                The request for this item is ignored because it is already in progress

                                "},"Constants.html#/c:@SDLVehicleDataStatusNoDataExists":{"name":"SDLVehicleDataStatusNoDataExists","abstract":"

                                @abstract No data avaliable

                                "},"Constants.html#/c:@SDLVehicleDataStatusOff":{"name":"SDLVehicleDataStatusOff","abstract":"

                                @abstract return SDLVehicleDataStatus: OFF

                                "},"Constants.html#/c:@SDLVehicleDataStatusOn":{"name":"SDLVehicleDataStatusOn","abstract":"

                                @abstract return SDLVehicleDataStatus: ON

                                "},"Constants.html#/c:@SDLVehicleDataTypeGPS":{"name":"SDLVehicleDataTypeGPS","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_GPS

                                "},"Constants.html#/c:@SDLVehicleDataTypeSpeed":{"name":"SDLVehicleDataTypeSpeed","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_SPEED

                                "},"Constants.html#/c:@SDLVehicleDataTypeRPM":{"name":"SDLVehicleDataTypeRPM","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_RPM

                                "},"Constants.html#/c:@SDLVehicleDataTypeFuelLevel":{"name":"SDLVehicleDataTypeFuelLevel","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_FUELLEVEL

                                "},"Constants.html#/c:@SDLVehicleDataTypeFuelLevelState":{"name":"SDLVehicleDataTypeFuelLevelState","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_FUELLEVEL_STATE

                                "},"Constants.html#/c:@SDLVehicleDataTypeFuelConsumption":{"name":"SDLVehicleDataTypeFuelConsumption","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_FUELCONSUMPTION

                                "},"Constants.html#/c:@SDLVehicleDataTypeExternalTemperature":{"name":"SDLVehicleDataTypeExternalTemperature","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_EXTERNTEMP

                                "},"Constants.html#/c:@SDLVehicleDataTypeVIN":{"name":"SDLVehicleDataTypeVIN","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_VIN

                                "},"Constants.html#/c:@SDLVehicleDataTypePRNDL":{"name":"SDLVehicleDataTypePRNDL","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_PRNDL

                                "},"Constants.html#/c:@SDLVehicleDataTypeTirePressure":{"name":"SDLVehicleDataTypeTirePressure","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_TIREPRESSURE

                                "},"Constants.html#/c:@SDLVehicleDataTypeOdometer":{"name":"SDLVehicleDataTypeOdometer","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_ODOMETER

                                "},"Constants.html#/c:@SDLVehicleDataTypeBeltStatus":{"name":"SDLVehicleDataTypeBeltStatus","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_BELTSTATUS

                                "},"Constants.html#/c:@SDLVehicleDataTypeBodyInfo":{"name":"SDLVehicleDataTypeBodyInfo","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_BODYINFO

                                "},"Constants.html#/c:@SDLVehicleDataTypeDeviceStatus":{"name":"SDLVehicleDataTypeDeviceStatus","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_DEVICESTATUS

                                "},"Constants.html#/c:@SDLVehicleDataTypeECallInfo":{"name":"SDLVehicleDataTypeECallInfo","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_ECALLINFO

                                "},"Constants.html#/c:@SDLVehicleDataTypeAirbagStatus":{"name":"SDLVehicleDataTypeAirbagStatus","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_AIRBAGSTATUS

                                "},"Constants.html#/c:@SDLVehicleDataTypeEmergencyEvent":{"name":"SDLVehicleDataTypeEmergencyEvent","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_EMERGENCYEVENT

                                "},"Constants.html#/c:@SDLVehicleDataTypeClusterModeStatus":{"name":"SDLVehicleDataTypeClusterModeStatus","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_CLUSTERMODESTATUS

                                "},"Constants.html#/c:@SDLVehicleDataTypeMyKey":{"name":"SDLVehicleDataTypeMyKey","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_MYKEY

                                "},"Constants.html#/c:@SDLVehicleDataTypeBraking":{"name":"SDLVehicleDataTypeBraking","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_BRAKING

                                "},"Constants.html#/c:@SDLVehicleDataTypeWiperStatus":{"name":"SDLVehicleDataTypeWiperStatus","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_WIPERSTATUS

                                "},"Constants.html#/c:@SDLVehicleDataTypeHeadlampStatus":{"name":"SDLVehicleDataTypeHeadlampStatus","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_HEADLAMPSTATUS

                                "},"Constants.html#/c:@SDLVehicleDataTypeBatteryVoltage":{"name":"SDLVehicleDataTypeBatteryVoltage","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_BATTVOLTAGE

                                "},"Constants.html#/c:@SDLVehicleDataTypeEngineTorque":{"name":"SDLVehicleDataTypeEngineTorque","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_ENGINETORQUE

                                "},"Constants.html#/c:@SDLVehicleDataTypeAccelerationPedal":{"name":"SDLVehicleDataTypeAccelerationPedal","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_ACCPEDAL

                                "},"Constants.html#/c:@SDLVehicleDataTypeSteeringWheel":{"name":"SDLVehicleDataTypeSteeringWheel","abstract":"

                                @abstract SDLVehicleDataType: VEHICLEDATA_STEERINGWHEEL

                                "},"Constants.html#/c:@SDLVentilationModeUpper":{"name":"SDLVentilationModeUpper","abstract":"

                                @abstract A SDLDefrostZone with the value of UPPER

                                "},"Constants.html#/c:@SDLVentilationModeLower":{"name":"SDLVentilationModeLower","abstract":"

                                @abstract A SDLDefrostZone with the value of LOWER

                                "},"Constants.html#/c:@SDLVentilationModeBoth":{"name":"SDLVentilationModeBoth","abstract":"

                                @abstract A SDLDefrostZone with the value of BOTH

                                "},"Constants.html#/c:@SDLVentilationModeNone":{"name":"SDLVentilationModeNone","abstract":"

                                @abstract A SDLDefrostZone with the value of NONE

                                "},"Constants.html#/c:@SDLVideoStreamingCodecH264":{"name":"SDLVideoStreamingCodecH264","abstract":"

                                @abstract SDLVideoStreamingCodec : H264

                                "},"Constants.html#/c:@SDLVideoStreamingCodecH265":{"name":"SDLVideoStreamingCodecH265","abstract":"

                                @abstract SDLVideoStreamingCodec : H265

                                "},"Constants.html#/c:@SDLVideoStreamingCodecTheora":{"name":"SDLVideoStreamingCodecTheora","abstract":"

                                @abstract SDLVideoStreamingCodec : Theora

                                "},"Constants.html#/c:@SDLVideoStreamingCodecVP8":{"name":"SDLVideoStreamingCodecVP8","abstract":"

                                @abstract SDLVideoStreamingCodec : VP8

                                "},"Constants.html#/c:@SDLVideoStreamingCodecVP9":{"name":"SDLVideoStreamingCodecVP9","abstract":"

                                @abstract SDLVideoStreamingCodec : VP9

                                "},"Constants.html#/c:@SDLVideoStreamingProtocolRAW":{"name":"SDLVideoStreamingProtocolRAW","abstract":"

                                @abstract SDLVideoStreamingProtocol : RAW

                                "},"Constants.html#/c:@SDLVideoStreamingProtocolRTP":{"name":"SDLVideoStreamingProtocolRTP","abstract":"

                                @abstract SDLVideoStreamingProtocol : RTP

                                "},"Constants.html#/c:@SDLVideoStreamingProtocolRTSP":{"name":"SDLVideoStreamingProtocolRTSP","abstract":"

                                @abstract SDLVideoStreamingProtocol : RTSP

                                "},"Constants.html#/c:@SDLVideoStreamingProtocolRTMP":{"name":"SDLVideoStreamingProtocolRTMP","abstract":"

                                @abstract SDLVideoStreamingProtocol : RTMP

                                "},"Constants.html#/c:@SDLVideoStreamingProtocolWebM":{"name":"SDLVideoStreamingProtocolWebM","abstract":"

                                @abstract SDLVideoStreamingProtocol : WebM

                                "},"Constants.html#/c:@SDLVRCapabilitiesText":{"name":"SDLVRCapabilitiesText","abstract":"

                                @abstract The SDL platform is capable of recognizing spoken text in the current language.

                                "},"Constants.html#/c:@SDLWarningLightStatusOff":{"name":"SDLWarningLightStatusOff","abstract":"

                                @abstract Warninglight Off

                                "},"Constants.html#/c:@SDLWarningLightStatusOn":{"name":"SDLWarningLightStatusOn","abstract":"

                                @abstract Warninglight On

                                "},"Constants.html#/c:@SDLWarningLightStatusFlash":{"name":"SDLWarningLightStatusFlash","abstract":"

                                @abstract Warninglight is flashing

                                "},"Constants.html#/c:@SDLWarningLightStatusNotUsed":{"name":"SDLWarningLightStatusNotUsed","abstract":"

                                @abstract Not used

                                "},"Constants.html#/c:@SDLWayPointTypeAll":{"name":"SDLWayPointTypeAll","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLWayPointTypeDestination":{"name":"SDLWayPointTypeDestination","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SDLWiperStatusOff":{"name":"SDLWiperStatusOff","abstract":"

                                @abstract SDLWiperStatus: OFF

                                "},"Constants.html#/c:@SDLWiperStatusAutomaticOff":{"name":"SDLWiperStatusAutomaticOff","abstract":"

                                @abstract SDLWiperStatus: AUTO_OFF

                                "},"Constants.html#/c:@SDLWiperStatusOffMoving":{"name":"SDLWiperStatusOffMoving","abstract":"

                                @abstract SDLWiperStatus: OFF_MOVING

                                "},"Constants.html#/c:@SDLWiperStatusManualIntervalOff":{"name":"SDLWiperStatusManualIntervalOff","abstract":"

                                @abstract SDLWiperStatus: MAN_INT_OFF

                                "},"Constants.html#/c:@SDLWiperStatusManualIntervalOn":{"name":"SDLWiperStatusManualIntervalOn","abstract":"

                                @abstract SDLWiperStatus: MAN_INT_ON

                                "},"Constants.html#/c:@SDLWiperStatusManualLow":{"name":"SDLWiperStatusManualLow","abstract":"

                                @abstract SDLWiperStatus: MAN_LOW

                                "},"Constants.html#/c:@SDLWiperStatusManualHigh":{"name":"SDLWiperStatusManualHigh","abstract":"

                                @abstract SDLWiperStatus: MAN_HIGH

                                "},"Constants.html#/c:@SDLWiperStatusManualFlick":{"name":"SDLWiperStatusManualFlick","abstract":"

                                @abstract SDLWiperStatus: MAN_FLICK

                                "},"Constants.html#/c:@SDLWiperStatusWash":{"name":"SDLWiperStatusWash","abstract":"

                                @abstract SDLWiperStatus: WASH

                                "},"Constants.html#/c:@SDLWiperStatusAutomaticLow":{"name":"SDLWiperStatusAutomaticLow","abstract":"

                                @abstract SDLWiperStatus: AUTO_LOW

                                "},"Constants.html#/c:@SDLWiperStatusAutomaticHigh":{"name":"SDLWiperStatusAutomaticHigh","abstract":"

                                @abstract SDLWiperStatus: AUTO_HIGH

                                "},"Constants.html#/c:@SDLWiperStatusCourtesyWipe":{"name":"SDLWiperStatusCourtesyWipe","abstract":"

                                @abstract SDLWiperStatus: COURTESYWIPE

                                "},"Constants.html#/c:@SDLWiperStatusAutomaticAdjust":{"name":"SDLWiperStatusAutomaticAdjust","abstract":"

                                @abstract SDLWiperStatus: AUTO_ADJUST

                                "},"Constants.html#/c:@SDLWiperStatusStalled":{"name":"SDLWiperStatusStalled","abstract":"

                                @abstract SDLWiperStatus: STALLED

                                "},"Constants.html#/c:@SDLWiperStatusNoDataExists":{"name":"SDLWiperStatusNoDataExists","abstract":"

                                @abstract SDLWiperStatus: NO_DATA_EXISTS

                                "},"Constants.html#/c:@SmartDeviceLinkVersionNumber":{"name":"SmartDeviceLinkVersionNumber","abstract":"

                                Undocumented

                                "},"Constants.html#/c:@SmartDeviceLinkVersionString":{"name":"SmartDeviceLinkVersionString","abstract":"

                                Undocumented

                                "},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(im)initWithText:image:":{"name":"-initWithText:image:","abstract":"

                                Undocumented

                                ","parent_name":"SDLVRHelpItem"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(im)initWithText:image:position:":{"name":"-initWithText:image:position:","abstract":"

                                Undocumented

                                ","parent_name":"SDLVRHelpItem"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(py)text":{"name":"text","abstract":"

                                Undocumented

                                ","parent_name":"SDLVRHelpItem"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(py)image":{"name":"image","abstract":"

                                Undocumented

                                ","parent_name":"SDLVRHelpItem"},"Classes/SDLVRHelpItem.html#/c:objc(cs)SDLVRHelpItem(py)position":{"name":"position","abstract":"

                                Undocumented

                                ","parent_name":"SDLVRHelpItem"},"Classes/SDLVideoStreamingFormat.html#/c:objc(cs)SDLVideoStreamingFormat(py)protocol":{"name":"protocol","abstract":"

                                @abstract Protocol type, see VideoStreamingProtocol, mandatory

                                ","parent_name":"SDLVideoStreamingFormat"},"Classes/SDLVideoStreamingFormat.html#/c:objc(cs)SDLVideoStreamingFormat(py)codec":{"name":"codec","abstract":"

                                @abstract Codec type, see VideoStreamingCodec, mandatory

                                ","parent_name":"SDLVideoStreamingFormat"},"Classes/SDLVideoStreamingFormat.html#/c:objc(cs)SDLVideoStreamingFormat(im)initWithCodec:protocol:":{"name":"-initWithCodec:protocol:","abstract":"

                                Undocumented

                                ","parent_name":"SDLVideoStreamingFormat"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(im)initWithPreferredResolution:maxBitrate:supportedFormats:hapticDataSupported:":{"name":"-initWithPreferredResolution:maxBitrate:supportedFormats:hapticDataSupported:","abstract":"

                                Undocumented

                                ","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(py)preferredResolution":{"name":"preferredResolution","abstract":"

                                @abstract The preferred resolution of a video stream for decoding and rendering on HMI, optional

                                ","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(py)maxBitrate":{"name":"maxBitrate","abstract":"

                                @abstract The maximum bitrate of video stream that is supported, in kbps, optional

                                ","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(py)supportedFormats":{"name":"supportedFormats","abstract":"

                                @abstract Detailed information on each format supported by this system, in its preferred order, optional

                                ","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVideoStreamingCapability.html#/c:objc(cs)SDLVideoStreamingCapability(py)hapticSpatialDataSupported":{"name":"hapticSpatialDataSupported","abstract":"

                                True if the system can utilize the haptic spatial data from the source being streamed.

                                ","parent_name":"SDLVideoStreamingCapability"},"Classes/SDLVehicleType.html#/c:objc(cs)SDLVehicleType(py)make":{"name":"make","abstract":"

                                @abstract The make of the vehicle

                                ","parent_name":"SDLVehicleType"},"Classes/SDLVehicleType.html#/c:objc(cs)SDLVehicleType(py)model":{"name":"model","abstract":"

                                @abstract The model of the vehicle

                                ","parent_name":"SDLVehicleType"},"Classes/SDLVehicleType.html#/c:objc(cs)SDLVehicleType(py)modelYear":{"name":"modelYear","abstract":"

                                @abstract The model year of the vehicle

                                ","parent_name":"SDLVehicleType"},"Classes/SDLVehicleType.html#/c:objc(cs)SDLVehicleType(py)trim":{"name":"trim","abstract":"

                                @abstract The trim of the vehicle

                                ","parent_name":"SDLVehicleType"},"Classes/SDLVehicleDataResult.html#/c:objc(cs)SDLVehicleDataResult(py)dataType":{"name":"dataType","abstract":"

                                Undocumented

                                ","parent_name":"SDLVehicleDataResult"},"Classes/SDLVehicleDataResult.html#/c:objc(cs)SDLVehicleDataResult(py)resultCode":{"name":"resultCode","abstract":"

                                Undocumented

                                ","parent_name":"SDLVehicleDataResult"},"Classes/SDLUpdateTurnList.html#/c:objc(cs)SDLUpdateTurnList(im)initWithTurnList:softButtons:":{"name":"-initWithTurnList:softButtons:","abstract":"

                                Undocumented

                                ","parent_name":"SDLUpdateTurnList"},"Classes/SDLUpdateTurnList.html#/c:objc(cs)SDLUpdateTurnList(py)turnList":{"name":"turnList","abstract":"

                                Optional, SDLTurn, 1 - 100 entries

                                ","parent_name":"SDLUpdateTurnList"},"Classes/SDLUpdateTurnList.html#/c:objc(cs)SDLUpdateTurnList(py)softButtons":{"name":"softButtons","abstract":"

                                Required, SDLSoftButton, 0 - 1 Entries

                                ","parent_name":"SDLUpdateTurnList"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)gps":{"name":"gps","abstract":"

                                @abstract A SDLVehicleDataResult* value. See GPSData.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)speed":{"name":"speed","abstract":"

                                @abstract A SDLVehicleDataResult* value. The vehicle speed in kilometers per hour.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)rpm":{"name":"rpm","abstract":"

                                @abstract A SDLVehicleDataResult* value. The number of revolutions per minute of the engine.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)fuelLevel":{"name":"fuelLevel","abstract":"

                                @abstract A SDLVehicleDataResult* value. The fuel level in the tank (percentage)

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"

                                @abstract A SDLVehicleDataResult* value. The fuel level state.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"

                                @abstract A SDLVehicleDataResult* value. The instantaneous fuel consumption in microlitres.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)externalTemperature":{"name":"externalTemperature","abstract":"

                                @abstract A SDLVehicleDataResult* value. The external temperature in degrees celsius.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)prndl":{"name":"prndl","abstract":"

                                @abstract A SDLVehicleDataResult* value. See PRNDL.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)tirePressure":{"name":"tirePressure","abstract":"

                                @abstract A SDLVehicleDataResult* value. See TireStatus.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)odometer":{"name":"odometer","abstract":"

                                @abstract A SDLVehicleDataResult* value. Odometer in km.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)beltStatus":{"name":"beltStatus","abstract":"

                                @abstract A SDLVehicleDataResult* value. The status of the seat belts.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)bodyInformation":{"name":"bodyInformation","abstract":"

                                @abstract A SDLVehicleDataResult* value. The body information including power modes.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)deviceStatus":{"name":"deviceStatus","abstract":"

                                @abstract A SDLVehicleDataResult* value. The device status including signal and battery strength.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)driverBraking":{"name":"driverBraking","abstract":"

                                @abstract A SDLVehicleDataResult* value. The status of the brake pedal.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)wiperStatus":{"name":"wiperStatus","abstract":"

                                @abstract A SDLVehicleDataResult* value. The status of the wipers.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)headLampStatus":{"name":"headLampStatus","abstract":"

                                @abstract A SDLVehicleDataResult* value. Status of the head lamps.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)engineTorque":{"name":"engineTorque","abstract":"

                                @abstract A SDLVehicleDataResult* value. Torque value for engine (in Nm) on non-diesel variants.

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)accPedalPosition":{"name":"accPedalPosition","abstract":"

                                @abstract A SDLVehicleDataResult* value. Accelerator pedal position (percentage depressed)

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"

                                @abstract A SDLVehicleDataResult* value. Current angle of the steering wheel (in deg)

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)eCallInfo":{"name":"eCallInfo","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)airbagStatus":{"name":"airbagStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)emergencyEvent":{"name":"emergencyEvent","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)clusterModes":{"name":"clusterModes","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleDataResponse"},"Classes/SDLUnsubscribeVehicleDataResponse.html#/c:objc(cs)SDLUnsubscribeVehicleDataResponse(py)myKey":{"name":"myKey","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)gps":{"name":"gps","abstract":"

                                @abstract A boolean value. If true, unsubscribes Gps data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)speed":{"name":"speed","abstract":"

                                @abstract A boolean value. If true, unsubscribes speed data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)rpm":{"name":"rpm","abstract":"

                                @abstract A boolean value. If true, unsubscribe data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)fuelLevel":{"name":"fuelLevel","abstract":"

                                @abstract A boolean value. If true, unsubscribes FuelLevel data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"

                                @abstract A boolean value. If true, unsubscribes fuelLevel_State data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"

                                @abstract A boolean value. If true, unsubscribes instantFuelConsumption data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)externalTemperature":{"name":"externalTemperature","abstract":"

                                @abstract A boolean value. If true, unsubscribes externalTemperature data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)prndl":{"name":"prndl","abstract":"

                                @abstract A boolean value. If true, unsubscribes Currently selected gear data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)tirePressure":{"name":"tirePressure","abstract":"

                                @abstract A boolean value. If true, unsubscribes tire pressure status data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)odometer":{"name":"odometer","abstract":"

                                @abstract A boolean value. If true, unsubscribes odometer data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)beltStatus":{"name":"beltStatus","abstract":"

                                @abstract A boolean value. If true, unsubscribes belt Status data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)bodyInformation":{"name":"bodyInformation","abstract":"

                                @abstract A boolean value. If true, unsubscribes body Information data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)deviceStatus":{"name":"deviceStatus","abstract":"

                                @abstract A boolean value. If true, unsubscribes device Status data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)driverBraking":{"name":"driverBraking","abstract":"

                                @abstract A boolean value. If true, unsubscribes driver Braking data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)wiperStatus":{"name":"wiperStatus","abstract":"

                                @abstract A boolean value. If true, unsubscribes wiper Status data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)headLampStatus":{"name":"headLampStatus","abstract":"

                                @abstract A boolean value. If true, unsubscribes Head Lamp Status data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)engineTorque":{"name":"engineTorque","abstract":"

                                @abstract A boolean value. If true, unsubscribes Engine Torque data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)accPedalPosition":{"name":"accPedalPosition","abstract":"

                                @abstract A boolean value. If true, unsubscribes accPedalPosition data

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)eCallInfo":{"name":"eCallInfo","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)airbagStatus":{"name":"airbagStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)emergencyEvent":{"name":"emergencyEvent","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)clusterModeStatus":{"name":"clusterModeStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeVehicleData.html#/c:objc(cs)SDLUnsubscribeVehicleData(py)myKey":{"name":"myKey","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeVehicleData"},"Classes/SDLUnsubscribeButton.html#/c:objc(cs)SDLUnsubscribeButton(im)initWithButtonName:":{"name":"-initWithButtonName:","abstract":"

                                Undocumented

                                ","parent_name":"SDLUnsubscribeButton"},"Classes/SDLUnsubscribeButton.html#/c:objc(cs)SDLUnsubscribeButton(py)buttonName":{"name":"buttonName","abstract":"

                                @abstract 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":"

                                Undocumented

                                ","parent_name":"SDLTurn"},"Classes/SDLTurn.html#/c:objc(cs)SDLTurn(py)navigationText":{"name":"navigationText","abstract":"

                                Undocumented

                                ","parent_name":"SDLTurn"},"Classes/SDLTurn.html#/c:objc(cs)SDLTurn(py)turnIcon":{"name":"turnIcon","abstract":"

                                Undocumented

                                ","parent_name":"SDLTurn"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)touchEventDelegate":{"name":"touchEventDelegate","abstract":"

                                Notified of processed touches such as pinches, pans, and taps

                                ","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)touchEventHandler":{"name":"touchEventHandler","abstract":"

                                @abstract","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)tapDistanceThreshold":{"name":"tapDistanceThreshold","abstract":"

                                Distance between two taps on the screen, in the head unit’s coordinate system, used for registering double-tap callbacks.

                                ","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)tapTimeThreshold":{"name":"tapTimeThreshold","abstract":"

                                @abstract","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)movementTimeThreshold":{"name":"movementTimeThreshold","abstract":"

                                @abstract","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(py)touchEnabled":{"name":"touchEnabled","abstract":"

                                @abstract","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(im)cancelPendingTouches":{"name":"-cancelPendingTouches","abstract":"

                                @abstract","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchManager"},"Classes/SDLTouchManager.html#/c:objc(cs)SDLTouchManager(im)initWithHitTester:":{"name":"-initWithHitTester:","abstract":"

                                Initialize a touch manager with a hit tester if available

                                ","parent_name":"SDLTouchManager"},"Classes/SDLTouchEventCapabilities.html#/c:objc(cs)SDLTouchEventCapabilities(py)pressAvailable":{"name":"pressAvailable","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchEventCapabilities"},"Classes/SDLTouchEventCapabilities.html#/c:objc(cs)SDLTouchEventCapabilities(py)multiTouchAvailable":{"name":"multiTouchAvailable","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchEventCapabilities"},"Classes/SDLTouchEventCapabilities.html#/c:objc(cs)SDLTouchEventCapabilities(py)doublePressAvailable":{"name":"doublePressAvailable","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchEventCapabilities"},"Classes/SDLTouchEvent.html#/c:objc(cs)SDLTouchEvent(py)touchEventId":{"name":"touchEventId","abstract":"

                                A touch’s unique identifier. The application can track the current touch events by id.","parent_name":"SDLTouchEvent"},"Classes/SDLTouchEvent.html#/c:objc(cs)SDLTouchEvent(py)timeStamp":{"name":"timeStamp","abstract":"

                                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.

                                ","parent_name":"SDLTouchEvent"},"Classes/SDLTouchEvent.html#/c:objc(cs)SDLTouchEvent(py)coord":{"name":"coord","abstract":"

                                Mandatory, array size 1-1000, contains SDLTouchCoord

                                ","parent_name":"SDLTouchEvent"},"Classes/SDLTouchCoord.html#/c:objc(cs)SDLTouchCoord(py)x":{"name":"x","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchCoord"},"Classes/SDLTouchCoord.html#/c:objc(cs)SDLTouchCoord(py)y":{"name":"y","abstract":"

                                Undocumented

                                ","parent_name":"SDLTouchCoord"},"Classes/SDLTouch.html#/c:objc(cs)SDLTouch(im)initWithTouchEvent:":{"name":"-initWithTouchEvent:","abstract":"

                                @abstract","parent_name":"SDLTouch"},"Classes/SDLTouch.html#/c:objc(cs)SDLTouch(py)identifier":{"name":"identifier","abstract":"

                                @abstract","parent_name":"SDLTouch"},"Classes/SDLTouch.html#/c:objc(cs)SDLTouch(py)location":{"name":"location","abstract":"

                                @abstract","parent_name":"SDLTouch"},"Classes/SDLTouch.html#/c:objc(cs)SDLTouch(py)timeStamp":{"name":"timeStamp","abstract":"

                                @abstract","parent_name":"SDLTouch"},"Classes/SDLTouch.html#/c:objc(cs)SDLTouch(py)isFirstFinger":{"name":"isFirstFinger","abstract":"

                                @abstract","parent_name":"SDLTouch"},"Classes/SDLTouch.html#/c:objc(cs)SDLTouch(py)isSecondFinger":{"name":"isSecondFinger","abstract":"

                                @abstract","parent_name":"SDLTouch"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)pressureTelltale":{"name":"pressureTelltale","abstract":"

                                Undocumented

                                ","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)leftFront":{"name":"leftFront","abstract":"

                                Undocumented

                                ","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)rightFront":{"name":"rightFront","abstract":"

                                Undocumented

                                ","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)leftRear":{"name":"leftRear","abstract":"

                                Undocumented

                                ","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)rightRear":{"name":"rightRear","abstract":"

                                Undocumented

                                ","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)innerLeftRear":{"name":"innerLeftRear","abstract":"

                                Undocumented

                                ","parent_name":"SDLTireStatus"},"Classes/SDLTireStatus.html#/c:objc(cs)SDLTireStatus(py)innerRightRear":{"name":"innerRightRear","abstract":"

                                Undocumented

                                ","parent_name":"SDLTireStatus"},"Classes/SDLTextField.html#/c:objc(cs)SDLTextField(py)name":{"name":"name","abstract":"

                                @abstract The enumeration identifying the field.

                                ","parent_name":"SDLTextField"},"Classes/SDLTextField.html#/c:objc(cs)SDLTextField(py)characterSet":{"name":"characterSet","abstract":"

                                @abstract The character set that is supported in this field.

                                ","parent_name":"SDLTextField"},"Classes/SDLTextField.html#/c:objc(cs)SDLTextField(py)width":{"name":"width","abstract":"

                                @abstract The number of characters in one row of this field.

                                ","parent_name":"SDLTextField"},"Classes/SDLTextField.html#/c:objc(cs)SDLTextField(py)rows":{"name":"rows","abstract":"

                                @abstract The number of rows for this text field.

                                ","parent_name":"SDLTextField"},"Classes/SDLTemperature.html#/c:objc(cs)SDLTemperature(im)initWithUnit:value:":{"name":"-initWithUnit:value:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTemperature"},"Classes/SDLTemperature.html#/c:objc(cs)SDLTemperature(py)unit":{"name":"unit","abstract":"

                                @abstract Temperature Unit

                                ","parent_name":"SDLTemperature"},"Classes/SDLTemperature.html#/c:objc(cs)SDLTemperature(py)value":{"name":"value","abstract":"

                                @abstract Temperature Value in TemperatureUnit specified unit. Range depends on OEM and is not checked by SDL

                                ","parent_name":"SDLTemperature"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(im)initWithText:type:":{"name":"-initWithText:type:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)textChunksFromString:":{"name":"+textChunksFromString:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)sapiChunksFromString:":{"name":"+sapiChunksFromString:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)lhPlusChunksFromString:":{"name":"+lhPlusChunksFromString:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)prerecordedChunksFromString:":{"name":"+prerecordedChunksFromString:","abstract":"

                                Undocumented

                                ","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(cm)silenceChunks":{"name":"+silenceChunks","abstract":"

                                Undocumented

                                ","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(py)text":{"name":"text","abstract":"

                                @abstract Text to be spoken, or a phoneme specification, or the name of a pre-recorded sound. The contents of this field are indicated by the type field.

                                ","parent_name":"SDLTTSChunk"},"Classes/SDLTTSChunk.html#/c:objc(cs)SDLTTSChunk(py)type":{"name":"type","abstract":"

                                @abstract The type of information in the text field (e.g. phrase to be spoken, phoneme specification, name of pre-recorded sound).

                                ","parent_name":"SDLTTSChunk"},"Classes/SDLTCPTransport.html#/c:objc(cs)SDLTCPTransport@socket":{"name":"socket","abstract":"

                                Undocumented

                                ","parent_name":"SDLTCPTransport"},"Classes/SDLTCPTransport.html#/c:objc(cs)SDLTCPTransport(py)hostName":{"name":"hostName","abstract":"

                                Undocumented

                                ","parent_name":"SDLTCPTransport"},"Classes/SDLTCPTransport.html#/c:objc(cs)SDLTCPTransport(py)portNumber":{"name":"portNumber","abstract":"

                                Undocumented

                                ","parent_name":"SDLTCPTransport"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(im)initWithNavigationCapability:":{"name":"-initWithNavigationCapability:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(im)initWithPhoneCapability:":{"name":"-initWithPhoneCapability:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(im)initWithVideoStreamingCapability:":{"name":"-initWithVideoStreamingCapability:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(im)initWithRemoteControlCapability:":{"name":"-initWithRemoteControlCapability:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)systemCapabilityType":{"name":"systemCapabilityType","abstract":"

                                Undocumented

                                ","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)navigationCapability":{"name":"navigationCapability","abstract":"

                                Undocumented

                                ","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)phoneCapability":{"name":"phoneCapability","abstract":"

                                Undocumented

                                ","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)videoStreamingCapability":{"name":"videoStreamingCapability","abstract":"

                                Undocumented

                                ","parent_name":"SDLSystemCapability"},"Classes/SDLSystemCapability.html#/c:objc(cs)SDLSystemCapability(py)remoteControlCapability":{"name":"remoteControlCapability","abstract":"

                                Undocumented

                                ","parent_name":"SDLSystemCapability"},"Classes/SDLSyncMsgVersion.html#/c:objc(cs)SDLSyncMsgVersion(im)initWithMajorVersion:minorVersion:patchVersion:":{"name":"-initWithMajorVersion:minorVersion:patchVersion:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSyncMsgVersion"},"Classes/SDLSyncMsgVersion.html#/c:objc(cs)SDLSyncMsgVersion(py)majorVersion":{"name":"majorVersion","abstract":"

                                @abstract The major version indicates versions that is not-compatible to previous versions

                                ","parent_name":"SDLSyncMsgVersion"},"Classes/SDLSyncMsgVersion.html#/c:objc(cs)SDLSyncMsgVersion(py)minorVersion":{"name":"minorVersion","abstract":"

                                @abstract The minor version indicates a change to a previous version that should still allow to be run on an older version (with limited functionality)

                                ","parent_name":"SDLSyncMsgVersion"},"Classes/SDLSyncMsgVersion.html#/c:objc(cs)SDLSyncMsgVersion(py)patchVersion":{"name":"patchVersion","abstract":"

                                @abstract Optional, allows backward-compatible fixes to the API without increasing the minor version of the interface

                                ","parent_name":"SDLSyncMsgVersion"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)gps":{"name":"gps","abstract":"

                                @abstract A SDLVehicleDataResult* value. See GPSData.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)speed":{"name":"speed","abstract":"

                                @abstract A SDLVehicleDataResult* value. The vehicle speed in kilometers per hour.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)rpm":{"name":"rpm","abstract":"

                                @abstract A SDLVehicleDataResult* value. The number of revolutions per minute of the engine.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)fuelLevel":{"name":"fuelLevel","abstract":"

                                @abstract A SDLVehicleDataResult* value. The fuel level in the tank (percentage)

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"

                                @abstract A SDLVehicleDataResult* value. The fuel level state.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"

                                @abstract A SDLVehicleDataResult* value. The instantaneous fuel consumption in microlitres.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)externalTemperature":{"name":"externalTemperature","abstract":"

                                @abstract A SDLVehicleDataResult* value. The external temperature in degrees celsius.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)prndl":{"name":"prndl","abstract":"

                                @abstract A SDLVehicleDataResult* value. See PRNDL.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)tirePressure":{"name":"tirePressure","abstract":"

                                @abstract A SDLVehicleDataResult* value. See TireStatus.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)odometer":{"name":"odometer","abstract":"

                                @abstract A SDLVehicleDataResult* value. Odometer in km.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)beltStatus":{"name":"beltStatus","abstract":"

                                @abstract A SDLVehicleDataResult* value. The status of the seat belts.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)bodyInformation":{"name":"bodyInformation","abstract":"

                                @abstract A SDLVehicleDataResult* value. The body information including power modes.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)deviceStatus":{"name":"deviceStatus","abstract":"

                                @abstract A SDLVehicleDataResult* value. The device status including signal and battery strength.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)driverBraking":{"name":"driverBraking","abstract":"

                                @abstract A SDLVehicleDataResult* value. The status of the brake pedal.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)wiperStatus":{"name":"wiperStatus","abstract":"

                                @abstract A SDLVehicleDataResult* value. The status of the wipers.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)headLampStatus":{"name":"headLampStatus","abstract":"

                                @abstract A SDLVehicleDataResult* value. Status of the head lamps.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)engineTorque":{"name":"engineTorque","abstract":"

                                @abstract A SDLVehicleDataResult* value. Torque value for engine (in Nm) on non-diesel variants.

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)accPedalPosition":{"name":"accPedalPosition","abstract":"

                                @abstract A SDLVehicleDataResult* value. Accelerator pedal position (percentage depressed)

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"

                                @abstract A SDLVehicleDataResult* value. Current angle of the steering wheel (in deg)

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)eCallInfo":{"name":"eCallInfo","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)airbagStatus":{"name":"airbagStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)emergencyEvent":{"name":"emergencyEvent","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)clusterModes":{"name":"clusterModes","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleDataResponse"},"Classes/SDLSubscribeVehicleDataResponse.html#/c:objc(cs)SDLSubscribeVehicleDataResponse(py)myKey":{"name":"myKey","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)gps":{"name":"gps","abstract":"

                                @abstract A boolean value. If true, subscribes Gps data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)speed":{"name":"speed","abstract":"

                                @abstract A boolean value. If true, subscribes speed data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)rpm":{"name":"rpm","abstract":"

                                @abstract A boolean value. If true, subscribes rpm data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)fuelLevel":{"name":"fuelLevel","abstract":"

                                @abstract A boolean value. If true, subscribes FuelLevel data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"

                                @abstract A boolean value. If true, subscribes fuelLevel_State data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"

                                @abstract A boolean value. If true, subscribes instantFuelConsumption data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)externalTemperature":{"name":"externalTemperature","abstract":"

                                @abstract A boolean value. If true, subscribes externalTemperature data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)prndl":{"name":"prndl","abstract":"

                                @abstract A boolean value. If true, subscribes Currently selected gear data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)tirePressure":{"name":"tirePressure","abstract":"

                                @abstract A boolean value. If true, subscribes tire pressure status data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)odometer":{"name":"odometer","abstract":"

                                @abstract A boolean value. If true, subscribes odometer data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)beltStatus":{"name":"beltStatus","abstract":"

                                @abstract A boolean value. If true, subscribes belt Status data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)bodyInformation":{"name":"bodyInformation","abstract":"

                                @abstract A boolean value. If true, subscribes body Information data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)deviceStatus":{"name":"deviceStatus","abstract":"

                                @abstract A boolean value. If true, subscribes device Status data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)driverBraking":{"name":"driverBraking","abstract":"

                                @abstract A boolean value. If true, subscribes driver Braking data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)wiperStatus":{"name":"wiperStatus","abstract":"

                                @abstract A boolean value. If true, subscribes wiper Status data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)headLampStatus":{"name":"headLampStatus","abstract":"

                                @abstract A boolean value. If true, subscribes Head Lamp Status data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)engineTorque":{"name":"engineTorque","abstract":"

                                @abstract A boolean value. If true, subscribes Engine Torque data

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)accPedalPosition":{"name":"accPedalPosition","abstract":"

                                @abstract A boolean value. If true, means the accPedalPosition data has been","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"

                                @abstract A boolean value. If true, means the steeringWheelAngle data has been","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)eCallInfo":{"name":"eCallInfo","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)airbagStatus":{"name":"airbagStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)emergencyEvent":{"name":"emergencyEvent","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)clusterModeStatus":{"name":"clusterModeStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeVehicleData.html#/c:objc(cs)SDLSubscribeVehicleData(py)myKey":{"name":"myKey","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeVehicleData"},"Classes/SDLSubscribeButton.html#/c:objc(cs)SDLSubscribeButton(im)initWithHandler:":{"name":"-initWithHandler:","abstract":"

                                Construct a SDLSubscribeButton with a handler callback when an event occurs.

                                ","parent_name":"SDLSubscribeButton"},"Classes/SDLSubscribeButton.html#/c:objc(cs)SDLSubscribeButton(im)initWithButtonName:handler:":{"name":"-initWithButtonName:handler:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSubscribeButton"},"Classes/SDLSubscribeButton.html#/c:objc(cs)SDLSubscribeButton(py)handler":{"name":"handler","abstract":"

                                A handler that will let you know when the button you subscribed to is selected.

                                ","parent_name":"SDLSubscribeButton"},"Classes/SDLSubscribeButton.html#/c:objc(cs)SDLSubscribeButton(py)buttonName":{"name":"buttonName","abstract":"

                                @abstract The name of the button to subscribe to","parent_name":"SDLSubscribeButton"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)touchManager":{"name":"touchManager","abstract":"

                                Touch Manager responsible for providing touch event notifications.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)focusableItemManager":{"name":"focusableItemManager","abstract":"

                                A haptic interface that can be updated to reparse views within the window you’ve provided. Send a SDLDidUpdateProjectionView notification or call the updateInterfaceLayout method to reparse. The output of this haptic interface occurs in the touchManager property where it will call the delegate.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)streamingSupported":{"name":"streamingSupported","abstract":"

                                Whether or not video streaming is supported

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)videoConnected":{"name":"videoConnected","abstract":"

                                Whether or not the video session is connected.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)videoEncrypted":{"name":"videoEncrypted","abstract":"

                                Whether or not the video session is encrypted. This may be different than the requestedEncryptionType.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)audioConnected":{"name":"audioConnected","abstract":"

                                Whether or not the audio session is connected.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)audioEncrypted":{"name":"audioEncrypted","abstract":"

                                Whether or not the audio session is encrypted. This may be different than the requestedEncryptionType.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)videoStreamingPaused":{"name":"videoStreamingPaused","abstract":"

                                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.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)screenSize":{"name":"screenSize","abstract":"

                                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.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)videoFormat":{"name":"videoFormat","abstract":"

                                This is the agreed upon format of video encoder that is in use, or nil if not currently connected.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)supportedFormats":{"name":"supportedFormats","abstract":"

                                A list of all supported video formats by this manager

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)pixelBufferPool":{"name":"pixelBufferPool","abstract":"

                                The pixel buffer pool reference returned back from an active VTCompressionSessionRef encoder.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(py)requestedEncryptionType":{"name":"requestedEncryptionType","abstract":"

                                The requested encryption type when a session attempts to connect. This setting applies to both video and audio sessions.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)initWithConnectionManager:configuration:":{"name":"-initWithConnectionManager:configuration:","abstract":"

                                Create a new streaming media manager for navigation and VPM apps with a specified configuration

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)startWithProtocol:":{"name":"-startWithProtocol:","abstract":"

                                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.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)stop":{"name":"-stop","abstract":"

                                Stop the manager. This method is used internally.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)sendVideoData:":{"name":"-sendVideoData:","abstract":"

                                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.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)sendVideoData:presentationTimestamp:":{"name":"-sendVideoData:presentationTimestamp:","abstract":"

                                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.

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaManager.html#/c:objc(cs)SDLStreamingMediaManager(im)sendAudioData:":{"name":"-sendAudioData:","abstract":"

                                This method receives PCM audio data and will attempt to send that data across to the head unit for immediate playback

                                ","parent_name":"SDLStreamingMediaManager"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)securityManagers":{"name":"securityManagers","abstract":"

                                Set security managers which could be used. This is primarily used with video streaming applications to authenticate and perhaps encrypt traffic data.

                                ","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)maximumDesiredEncryption":{"name":"maximumDesiredEncryption","abstract":"

                                What encryption level video/audio streaming should be. The default is SDLStreamingEncryptionFlagAuthenticateAndEncrypt.

                                ","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)customVideoEncoderSettings":{"name":"customVideoEncoderSettings","abstract":"

                                Properties to use for applications that utilitze the video encoder for streaming. See VTCompressionProperties.h for more details. For example, you can set kVTCompressionPropertyKey_ExpectedFrameRate to set your expected framerate.

                                ","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)dataSource":{"name":"dataSource","abstract":"

                                Usable to change run time video stream setup behavior. Only use this and modify the results if you really know what you’re doing. The head unit defaults are generally good.

                                ","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(py)window":{"name":"window","abstract":"

                                Set the window your video streaming content is within.

                                ","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(im)init":{"name":"-init","abstract":"

                                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.

                                ","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(im)initWithSecurityManagers:encryptionFlag:videoSettings:dataSource:window:":{"name":"-initWithSecurityManagers:encryptionFlag:videoSettings:dataSource:window:","abstract":"

                                Manually set all the properties to the streaming media configuration

                                ","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(im)initWithSecurityManagers:":{"name":"-initWithSecurityManagers:","abstract":"

                                Create a secure configuration for each of the security managers provided.

                                ","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(cm)secureConfigurationWithSecurityManagers:":{"name":"+secureConfigurationWithSecurityManagers:","abstract":"

                                Create a secure configuration for each of the security managers provided.

                                ","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStreamingMediaConfiguration.html#/c:objc(cs)SDLStreamingMediaConfiguration(cm)insecureConfiguration":{"name":"+insecureConfiguration","abstract":"

                                Create an insecure video streaming configuration. No security managers will be provided and the encryption flag will be set to None. If you’d like custom video encoder settings, you can set the property manually. This is equivalent to init.

                                ","parent_name":"SDLStreamingMediaConfiguration"},"Classes/SDLStartTime.html#/c:objc(cs)SDLStartTime(im)initWithHours:minutes:seconds:":{"name":"-initWithHours:minutes:seconds:","abstract":"

                                Undocumented

                                ","parent_name":"SDLStartTime"},"Classes/SDLStartTime.html#/c:objc(cs)SDLStartTime(py)hours":{"name":"hours","abstract":"

                                @abstract The hour of the media clock

                                ","parent_name":"SDLStartTime"},"Classes/SDLStartTime.html#/c:objc(cs)SDLStartTime(py)minutes":{"name":"minutes","abstract":"

                                @abstract The minute of the media clock

                                ","parent_name":"SDLStartTime"},"Classes/SDLStartTime.html#/c:objc(cs)SDLStartTime(py)seconds":{"name":"seconds","abstract":"

                                @abstract The second of the media clock

                                ","parent_name":"SDLStartTime"},"Classes/SDLSpeak.html#/c:objc(cs)SDLSpeak(im)initWithTTS:":{"name":"-initWithTTS:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSpeak"},"Classes/SDLSpeak.html#/c:objc(cs)SDLSpeak(im)initWithTTSChunks:":{"name":"-initWithTTSChunks:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSpeak"},"Classes/SDLSpeak.html#/c:objc(cs)SDLSpeak(py)ttsChunks":{"name":"ttsChunks","abstract":"

                                @abstract An array of TTSChunk structs which, taken together, specify the phrase to be spoken

                                ","parent_name":"SDLSpeak"},"Classes/SDLSoftButtonCapabilities.html#/c:objc(cs)SDLSoftButtonCapabilities(py)shortPressAvailable":{"name":"shortPressAvailable","abstract":"

                                @abstract The button supports a short press.

                                ","parent_name":"SDLSoftButtonCapabilities"},"Classes/SDLSoftButtonCapabilities.html#/c:objc(cs)SDLSoftButtonCapabilities(py)longPressAvailable":{"name":"longPressAvailable","abstract":"

                                @abstract The button supports a LONG press.

                                ","parent_name":"SDLSoftButtonCapabilities"},"Classes/SDLSoftButtonCapabilities.html#/c:objc(cs)SDLSoftButtonCapabilities(py)upDownAvailable":{"name":"upDownAvailable","abstract":"

                                @abstract The button supports button down and button up.

                                ","parent_name":"SDLSoftButtonCapabilities"},"Classes/SDLSoftButtonCapabilities.html#/c:objc(cs)SDLSoftButtonCapabilities(py)imageSupported":{"name":"imageSupported","abstract":"

                                @abstract The button supports referencing a static or dynamic image.

                                ","parent_name":"SDLSoftButtonCapabilities"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(im)initWithHandler:":{"name":"-initWithHandler:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)handler":{"name":"handler","abstract":"

                                Undocumented

                                ","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)type":{"name":"type","abstract":"

                                Undocumented

                                ","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)text":{"name":"text","abstract":"

                                Undocumented

                                ","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)image":{"name":"image","abstract":"

                                Undocumented

                                ","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)isHighlighted":{"name":"isHighlighted","abstract":"

                                Undocumented

                                ","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)softButtonID":{"name":"softButtonID","abstract":"

                                Undocumented

                                ","parent_name":"SDLSoftButton"},"Classes/SDLSoftButton.html#/c:objc(cs)SDLSoftButton(py)systemAction":{"name":"systemAction","abstract":"

                                Undocumented

                                ","parent_name":"SDLSoftButton"},"Classes/SDLSliderResponse.html#/c:objc(cs)SDLSliderResponse(py)sliderPosition":{"name":"sliderPosition","abstract":"

                                @abstract The selected position of the slider.

                                ","parent_name":"SDLSliderResponse"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(im)initWithNumTicks:position:":{"name":"-initWithNumTicks:position:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(im)initWithNumTicks:position:sliderHeader:sliderFooter:timeout:":{"name":"-initWithNumTicks:position:sliderHeader:sliderFooter:timeout:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(im)initWithNumTicks:position:sliderHeader:sliderFooters:timeout:":{"name":"-initWithNumTicks:position:sliderHeader:sliderFooters:timeout:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(py)numTicks":{"name":"numTicks","abstract":"

                                @abstract Represents a number of selectable items on a horizontal axis

                                ","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(py)position":{"name":"position","abstract":"

                                @abstract An Initial position of slider control

                                ","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(py)sliderHeader":{"name":"sliderHeader","abstract":"

                                @abstract A text header to display

                                ","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(py)sliderFooter":{"name":"sliderFooter","abstract":"

                                @abstract A text footer to display

                                ","parent_name":"SDLSlider"},"Classes/SDLSlider.html#/c:objc(cs)SDLSlider(py)timeout":{"name":"timeout","abstract":"

                                @abstract An App defined timeout

                                ","parent_name":"SDLSlider"},"Classes/SDLSingleTireStatus.html#/c:objc(cs)SDLSingleTireStatus(py)status":{"name":"status","abstract":"

                                @abstract The volume status of a single tire

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)navigationText1":{"name":"navigationText1","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)navigationText2":{"name":"navigationText2","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)eta":{"name":"eta","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)timeToDestination":{"name":"timeToDestination","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)totalDistance":{"name":"totalDistance","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)turnIcon":{"name":"turnIcon","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)nextTurnIcon":{"name":"nextTurnIcon","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)distanceToManeuver":{"name":"distanceToManeuver","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)distanceToManeuverScale":{"name":"distanceToManeuverScale","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)maneuverComplete":{"name":"maneuverComplete","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShowConstantTBT.html#/c:objc(cs)SDLShowConstantTBT(py)softButtons":{"name":"softButtons","abstract":"

                                Undocumented

                                ","parent_name":"SDLShowConstantTBT"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)initWithMainField1:mainField2:alignment:":{"name":"-initWithMainField1:mainField2:alignment:","abstract":"

                                Undocumented

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)initWithMainField1:mainField1Type:mainField2:mainField2Type:alignment:":{"name":"-initWithMainField1:mainField1Type:mainField2:mainField2Type:alignment:","abstract":"

                                Undocumented

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(im)initWithMainField1:mainField2:mainField3:mainField4:alignment:":{"name":"-initWithMainField1:mainField2:mainField3:mainField4:alignment:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mainField1":{"name":"mainField1","abstract":"

                                @abstract 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":"

                                @abstract The text displayed on the second display line of a two-line display

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mainField3":{"name":"mainField3","abstract":"

                                @abstract The text displayed on the first display line of the second page

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mainField4":{"name":"mainField4","abstract":"

                                @abstract The text displayed on the second display line of the second page

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)alignment":{"name":"alignment","abstract":"

                                @abstract The alignment that Specifies how mainField1 and mainField2 text","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)statusBar":{"name":"statusBar","abstract":"

                                @abstract Text in the Status Bar

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mediaClock":{"name":"mediaClock","abstract":"

                                @abstract This property is deprecated use SetMediaClockTimer instead.","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)mediaTrack":{"name":"mediaTrack","abstract":"

                                @abstract The text in the track field

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)graphic":{"name":"graphic","abstract":"

                                @abstract An image to be shown on supported displays

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)secondaryGraphic":{"name":"secondaryGraphic","abstract":"

                                @abstract An image to be shown on supported displays

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)softButtons":{"name":"softButtons","abstract":"

                                @abstract The the Soft buttons defined by the App

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)customPresets":{"name":"customPresets","abstract":"

                                @abstract The Custom Presets defined by the App

                                ","parent_name":"SDLShow"},"Classes/SDLShow.html#/c:objc(cs)SDLShow(py)metadataTags":{"name":"metadataTags","abstract":"

                                @abstract Text Field Metadata

                                ","parent_name":"SDLShow"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(im)initWithUpdateMode:hours:minutes:seconds:":{"name":"-initWithUpdateMode:hours:minutes:seconds:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(im)initWithUpdateMode:":{"name":"-initWithUpdateMode:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(py)startTime":{"name":"startTime","abstract":"

                                @abstract A Start Time with specifying hour, minute, second values

                                ","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(py)endTime":{"name":"endTime","abstract":"

                                @abstract An END time of type SDLStartTime, specifying hour, minute, second values

                                ","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetMediaClockTimer.html#/c:objc(cs)SDLSetMediaClockTimer(py)updateMode":{"name":"updateMode","abstract":"

                                @abstract The media clock/timer update mode (COUNTUP/COUNTDOWN/PAUSE/RESUME)

                                ","parent_name":"SDLSetMediaClockTimer"},"Classes/SDLSetInteriorVehicleDataResponse.html#/c:objc(cs)SDLSetInteriorVehicleDataResponse(py)moduleData":{"name":"moduleData","abstract":"

                                The module data to set for the requested remote control module.

                                ","parent_name":"SDLSetInteriorVehicleDataResponse"},"Classes/SDLSetInteriorVehicleData.html#/c:objc(cs)SDLSetInteriorVehicleData(im)initWithModuleData:":{"name":"-initWithModuleData:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetInteriorVehicleData"},"Classes/SDLSetInteriorVehicleData.html#/c:objc(cs)SDLSetInteriorVehicleData(py)moduleData":{"name":"moduleData","abstract":"

                                The module data to set for the requested RC module.

                                ","parent_name":"SDLSetInteriorVehicleData"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(im)initWithHelpText:timeoutText:":{"name":"-initWithHelpText:timeoutText:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(im)initWithHelpText:timeoutText:vrHelpTitle:vrHelp:":{"name":"-initWithHelpText:timeoutText:vrHelpTitle:vrHelp:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)helpPrompt":{"name":"helpPrompt","abstract":"

                                @abstract Sets a Vector for Help Prompt that Array of one or more","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)timeoutPrompt":{"name":"timeoutPrompt","abstract":"

                                @abstract A Vector for Timeout Prompt representing Array of one or","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)vrHelpTitle":{"name":"vrHelpTitle","abstract":"

                                @abstract Sets a voice recognition Help Title

                                ","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)vrHelp":{"name":"vrHelp","abstract":"

                                @abstract Sets the items listed in the VR help screen used in an interaction","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)menuTitle":{"name":"menuTitle","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)menuIcon":{"name":"menuIcon","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetGlobalProperties.html#/c:objc(cs)SDLSetGlobalProperties(py)keyboardProperties":{"name":"keyboardProperties","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetGlobalProperties"},"Classes/SDLSetDisplayLayoutResponse.html#/c:objc(cs)SDLSetDisplayLayoutResponse(py)displayCapabilities":{"name":"displayCapabilities","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetDisplayLayoutResponse"},"Classes/SDLSetDisplayLayoutResponse.html#/c:objc(cs)SDLSetDisplayLayoutResponse(py)buttonCapabilities":{"name":"buttonCapabilities","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetDisplayLayoutResponse"},"Classes/SDLSetDisplayLayoutResponse.html#/c:objc(cs)SDLSetDisplayLayoutResponse(py)softButtonCapabilities":{"name":"softButtonCapabilities","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetDisplayLayoutResponse"},"Classes/SDLSetDisplayLayoutResponse.html#/c:objc(cs)SDLSetDisplayLayoutResponse(py)presetBankCapabilities":{"name":"presetBankCapabilities","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetDisplayLayoutResponse"},"Classes/SDLSetDisplayLayout.html#/c:objc(cs)SDLSetDisplayLayout(im)initWithPredefinedLayout:":{"name":"-initWithPredefinedLayout:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetDisplayLayout"},"Classes/SDLSetDisplayLayout.html#/c:objc(cs)SDLSetDisplayLayout(im)initWithLayout:":{"name":"-initWithLayout:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetDisplayLayout"},"Classes/SDLSetDisplayLayout.html#/c:objc(cs)SDLSetDisplayLayout(py)displayLayout":{"name":"displayLayout","abstract":"

                                @abstract A display layout. Predefined or dynamically created screen layout.","parent_name":"SDLSetDisplayLayout"},"Classes/SDLSetAppIcon.html#/c:objc(cs)SDLSetAppIcon(im)initWithFileName:":{"name":"-initWithFileName:","abstract":"

                                Undocumented

                                ","parent_name":"SDLSetAppIcon"},"Classes/SDLSetAppIcon.html#/c:objc(cs)SDLSetAppIcon(py)syncFileName":{"name":"syncFileName","abstract":"

                                @abstract 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":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)longitudeDegrees":{"name":"longitudeDegrees","abstract":"

                                The longitudinal coordinate of the location.

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)latitudeDegrees":{"name":"latitudeDegrees","abstract":"

                                The latitudinal coordinate of the location.

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)locationName":{"name":"locationName","abstract":"

                                Name / title of intended location

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)locationDescription":{"name":"locationDescription","abstract":"

                                Description of the intended location / establishment

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)addressLines":{"name":"addressLines","abstract":"

                                Location address for display purposes only

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)phoneNumber":{"name":"phoneNumber","abstract":"

                                Phone number of intended location / establishment

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)locationImage":{"name":"locationImage","abstract":"

                                Image / icon of intended location

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)deliveryMode":{"name":"deliveryMode","abstract":"

                                Mode in which the sendLocation request is sent

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)timeStamp":{"name":"timeStamp","abstract":"

                                Arrival time of Location. If multiple SendLocations are sent, this will be used for sorting as well.

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendLocation.html#/c:objc(cs)SDLSendLocation(py)address":{"name":"address","abstract":"

                                Address to be used for setting destination

                                ","parent_name":"SDLSendLocation"},"Classes/SDLSendHapticData.html#/c:objc(cs)SDLSendHapticData(im)initWithHapticRectData:":{"name":"-initWithHapticRectData:","abstract":"

                                Constructs a new SDLSendHapticData object indicated by the hapticSpatialData parameter

                                ","parent_name":"SDLSendHapticData"},"Classes/SDLSendHapticData.html#/c:objc(cs)SDLSendHapticData(py)hapticRectData":{"name":"hapticRectData","abstract":"

                                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

                                ","parent_name":"SDLSendHapticData"},"Classes/SDLScrollableMessage.html#/c:objc(cs)SDLScrollableMessage(im)initWithMessage:":{"name":"-initWithMessage:","abstract":"

                                Undocumented

                                ","parent_name":"SDLScrollableMessage"},"Classes/SDLScrollableMessage.html#/c:objc(cs)SDLScrollableMessage(im)initWithMessage:timeout:softButtons:":{"name":"-initWithMessage:timeout:softButtons:","abstract":"

                                Undocumented

                                ","parent_name":"SDLScrollableMessage"},"Classes/SDLScrollableMessage.html#/c:objc(cs)SDLScrollableMessage(py)scrollableMessageBody":{"name":"scrollableMessageBody","abstract":"

                                @abstract 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":"

                                @abstract 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":"

                                @abstract 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":"

                                Undocumented

                                ","parent_name":"SDLScreenParams"},"Classes/SDLScreenParams.html#/c:objc(cs)SDLScreenParams(py)touchEventAvailable":{"name":"touchEventAvailable","abstract":"

                                Undocumented

                                ","parent_name":"SDLScreenParams"},"Classes/SDLResetGlobalProperties.html#/c:objc(cs)SDLResetGlobalProperties(im)initWithProperties:":{"name":"-initWithProperties:","abstract":"

                                Undocumented

                                ","parent_name":"SDLResetGlobalProperties"},"Classes/SDLResetGlobalProperties.html#/c:objc(cs)SDLResetGlobalProperties(py)properties":{"name":"properties","abstract":"

                                @abstract 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":"

                                Undocumented

                                ","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)climateControlCapabilities":{"name":"climateControlCapabilities","abstract":"

                                @abstract If included, the platform supports RC climate controls.","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)radioControlCapabilities":{"name":"radioControlCapabilities","abstract":"

                                @abstract If included, the platform supports RC radio controls.","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRemoteControlCapabilities.html#/c:objc(cs)SDLRemoteControlCapabilities(py)buttonCapabilities":{"name":"buttonCapabilities","abstract":"

                                @abstract If included, the platform supports RC button controls with the included button names.

                                ","parent_name":"SDLRemoteControlCapabilities"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)syncMsgVersion":{"name":"syncMsgVersion","abstract":"
                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)language":{"name":"language","abstract":"

                                The currently active VR+TTS language on Sync.

                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)hmiDisplayLanguage":{"name":"hmiDisplayLanguage","abstract":"

                                The currently active display language on Sync

                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)displayCapabilities":{"name":"displayCapabilities","abstract":"
                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)buttonCapabilities":{"name":"buttonCapabilities","abstract":"
                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)softButtonCapabilities":{"name":"softButtonCapabilities","abstract":"

                                If returned, the platform supports on-screen SoftButtons

                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)presetBankCapabilities":{"name":"presetBankCapabilities","abstract":"

                                If returned, the platform supports custom on-screen Presets

                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)hmiZoneCapabilities":{"name":"hmiZoneCapabilities","abstract":"
                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)speechCapabilities":{"name":"speechCapabilities","abstract":"
                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)prerecordedSpeech":{"name":"prerecordedSpeech","abstract":"
                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)vrCapabilities":{"name":"vrCapabilities","abstract":"
                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)audioPassThruCapabilities":{"name":"audioPassThruCapabilities","abstract":"
                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)pcmStreamCapabilities":{"name":"pcmStreamCapabilities","abstract":"
                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)vehicleType":{"name":"vehicleType","abstract":"

                                Specifies the vehicle’s type

                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)supportedDiagModes":{"name":"supportedDiagModes","abstract":"

                                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.

                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)hmiCapabilities":{"name":"hmiCapabilities","abstract":"
                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)sdlVersion":{"name":"sdlVersion","abstract":"

                                The SmartDeviceLink version

                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterfaceResponse.html#/c:objc(cs)SDLRegisterAppInterfaceResponse(py)systemSoftwareVersion":{"name":"systemSoftwareVersion","abstract":"

                                The software version of the system that implements the SmartDeviceLink core

                                ","parent_name":"SDLRegisterAppInterfaceResponse"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(im)initWithLifecycleConfiguration:":{"name":"-initWithLifecycleConfiguration:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(im)initWithAppName:appId:languageDesired:":{"name":"-initWithAppName:appId:languageDesired:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(im)initWithAppName:appId:languageDesired:isMediaApp:appType:shortAppName:":{"name":"-initWithAppName:appId:languageDesired:isMediaApp:appType:shortAppName:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(im)initWithAppName:appId:languageDesired:isMediaApp:appType:shortAppName:ttsName:vrSynonyms:hmiDisplayLanguageDesired:resumeHash:":{"name":"-initWithAppName:appId:languageDesired:isMediaApp:appType:shortAppName:ttsName:vrSynonyms:hmiDisplayLanguageDesired:resumeHash:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)syncMsgVersion":{"name":"syncMsgVersion","abstract":"

                                @abstract The version of the SDL interface

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)appName":{"name":"appName","abstract":"

                                @abstract 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

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)ttsName":{"name":"ttsName","abstract":"

                                @abstract TTS string for VR recognition of the mobile application name.

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)ngnMediaScreenAppName":{"name":"ngnMediaScreenAppName","abstract":"

                                @abstract A String representing an abbreviated version of the mobile application’s name (if necessary) that will be displayed on the media screen

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)vrSynonyms":{"name":"vrSynonyms","abstract":"

                                @abstract Defines a additional voice recognition commands

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)isMediaApplication":{"name":"isMediaApplication","abstract":"

                                @abstract Indicates if the application is a media or a non-media application.

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)languageDesired":{"name":"languageDesired","abstract":"

                                @abstract A Language enumeration indicating what language the application intends to use for user interaction (TTS and VR).

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)hmiDisplayLanguageDesired":{"name":"hmiDisplayLanguageDesired","abstract":"

                                @abstract An enumeration indicating what language the application intends to use for user interaction (Display).

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)appHMIType":{"name":"appHMIType","abstract":"

                                @abstract A list of all applicable app types stating which classifications to be given to the app.

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)hashID":{"name":"hashID","abstract":"

                                @abstract ID used to uniquely identify current state of all app data that can persist through connection cycles (e.g. ignition cycles).

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)deviceInfo":{"name":"deviceInfo","abstract":"

                                @abstract Information about the connecting device

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)appID":{"name":"appID","abstract":"

                                @abstract ID used to validate app with policy table entries

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRegisterAppInterface.html#/c:objc(cs)SDLRegisterAppInterface(py)appInfo":{"name":"appInfo","abstract":"

                                @abstract Information about the application running

                                ","parent_name":"SDLRegisterAppInterface"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(im)initWithX:y:width:height:":{"name":"-initWithX:y:width:height:","abstract":"

                                Create a Rectangle

                                ","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(im)initWithCGRect:":{"name":"-initWithCGRect:","abstract":"

                                Create a Rectangle from a CGRect

                                ","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(py)x":{"name":"x","abstract":"

                                The X-coordinate of the user control","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(py)y":{"name":"y","abstract":"

                                The Y-coordinate of the user control","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(py)width":{"name":"width","abstract":"

                                The width of the user control’s bounding rectangle","parent_name":"SDLRectangle"},"Classes/SDLRectangle.html#/c:objc(cs)SDLRectangle(py)height":{"name":"height","abstract":"

                                The height of the user control’s bounding rectangle","parent_name":"SDLRectangle"},"Classes/SDLReadDIDResponse.html#/c:objc(cs)SDLReadDIDResponse(py)didResult":{"name":"didResult","abstract":"

                                Undocumented

                                ","parent_name":"SDLReadDIDResponse"},"Classes/SDLReadDID.html#/c:objc(cs)SDLReadDID(im)initWithECUName:didLocation:":{"name":"-initWithECUName:didLocation:","abstract":"

                                Undocumented

                                ","parent_name":"SDLReadDID"},"Classes/SDLReadDID.html#/c:objc(cs)SDLReadDID(py)ecuName":{"name":"ecuName","abstract":"

                                @abstract An ID of the vehicle module","parent_name":"SDLReadDID"},"Classes/SDLReadDID.html#/c:objc(cs)SDLReadDID(py)didLocation":{"name":"didLocation","abstract":"

                                @abstract 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":"

                                Undocumented

                                ","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)frequencyInteger":{"name":"frequencyInteger","abstract":"

                                @abstract The integer part of the frequency ie for 101.7 this value should be 101

                                ","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)frequencyFraction":{"name":"frequencyFraction","abstract":"

                                @abstract The fractional part of the frequency for 101.7 is 7

                                ","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)band":{"name":"band","abstract":"

                                @abstract Radio band value

                                ","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)rdsData":{"name":"rdsData","abstract":"

                                @abstract Read only parameter. See RDSData data type for details.

                                ","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)availableHDs":{"name":"availableHDs","abstract":"

                                @abstract number of HD sub-channels if available

                                ","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)hdChannel":{"name":"hdChannel","abstract":"

                                @abstract Current HD sub-channel if available

                                ","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)signalStrength":{"name":"signalStrength","abstract":"

                                @abstract Signal Strength Value

                                ","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)signalChangeThreshold":{"name":"signalChangeThreshold","abstract":"

                                @abstract If the signal strength falls below the set value for this parameter, the radio will tune to an alternative frequency

                                ","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)radioEnable":{"name":"radioEnable","abstract":"

                                @abstract 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

                                ","parent_name":"SDLRadioControlData"},"Classes/SDLRadioControlData.html#/c:objc(cs)SDLRadioControlData(py)state":{"name":"state","abstract":"

                                Read only parameter. See RadioState data type for details.

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)moduleName":{"name":"moduleName","abstract":"

                                @abstract The short friendly name of the climate control module.","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)radioEnableAvailable":{"name":"radioEnableAvailable","abstract":"

                                @abstract Availability of the control of enable/disable radio.","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)radioBandAvailable":{"name":"radioBandAvailable","abstract":"

                                @abstract Availability of the control of radio band.","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)radioFrequencyAvailable":{"name":"radioFrequencyAvailable","abstract":"

                                @abstract Availability of the control of radio frequency.","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)hdChannelAvailable":{"name":"hdChannelAvailable","abstract":"

                                @abstract Availability of the control of HD radio channel.","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)rdsDataAvailable":{"name":"rdsDataAvailable","abstract":"

                                @abstract Availability of the getting Radio Data System (RDS) data.","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)availableHDsAvailable":{"name":"availableHDsAvailable","abstract":"

                                @abstract Availability of the getting the number of available HD channels.","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)stateAvailable":{"name":"stateAvailable","abstract":"

                                @abstract Availability of the getting the Radio state.","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)signalStrengthAvailable":{"name":"signalStrengthAvailable","abstract":"

                                @abstract Availability of the getting the signal strength.","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRadioControlCapabilities.html#/c:objc(cs)SDLRadioControlCapabilities(py)signalChangeThresholdAvailable":{"name":"signalChangeThresholdAvailable","abstract":"

                                @abstract Availability of the getting the signal Change Threshold","parent_name":"SDLRadioControlCapabilities"},"Classes/SDLRPCStruct.html#/c:objc(cs)SDLRPCStruct@store":{"name":"store","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCStruct"},"Classes/SDLRPCStruct.html#/c:objc(cs)SDLRPCStruct(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCStruct"},"Classes/SDLRPCStruct.html#/c:objc(cs)SDLRPCStruct(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCStruct"},"Classes/SDLRPCStruct.html#/c:objc(cs)SDLRPCStruct(im)serializeAsDictionary:":{"name":"-serializeAsDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCStruct"},"Classes/SDLRPCResponseNotification.html#/c:objc(cs)SDLRPCResponseNotification(py)response":{"name":"response","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCResponseNotification"},"Classes/SDLRPCResponseNotification.html#/c:objc(cs)SDLRPCResponseNotification(im)initWithName:object:rpcResponse:":{"name":"-initWithName:object:rpcResponse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCResponseNotification"},"Classes/SDLRPCResponseNotification.html#/c:objc(cs)SDLRPCResponseNotification(im)isResponseMemberOfClass:":{"name":"-isResponseMemberOfClass:","abstract":"

                                Returns whether or not the containing response is equal to a class, not including subclasses.

                                ","parent_name":"SDLRPCResponseNotification"},"Classes/SDLRPCResponseNotification.html#/c:objc(cs)SDLRPCResponseNotification(im)isResponseKindOfClass:":{"name":"-isResponseKindOfClass:","abstract":"

                                Returns whether or not the containing response is a kind of class, including subclasses.

                                ","parent_name":"SDLRPCResponseNotification"},"Classes/SDLRPCResponse.html#/c:objc(cs)SDLRPCResponse(py)correlationID":{"name":"correlationID","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCResponse"},"Classes/SDLRPCResponse.html#/c:objc(cs)SDLRPCResponse(py)success":{"name":"success","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCResponse"},"Classes/SDLRPCResponse.html#/c:objc(cs)SDLRPCResponse(py)resultCode":{"name":"resultCode","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCResponse"},"Classes/SDLRPCResponse.html#/c:objc(cs)SDLRPCResponse(py)info":{"name":"info","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCResponse"},"Classes/SDLRPCRequest.html#/c:objc(cs)SDLRPCRequest(py)correlationID":{"name":"correlationID","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCRequest"},"Classes/SDLRPCNotificationNotification.html#/c:objc(cs)SDLRPCNotificationNotification(py)notification":{"name":"notification","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCNotificationNotification"},"Classes/SDLRPCNotificationNotification.html#/c:objc(cs)SDLRPCNotificationNotification(im)initWithName:object:rpcNotification:":{"name":"-initWithName:object:rpcNotification:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCNotificationNotification"},"Classes/SDLRPCNotificationNotification.html#/c:objc(cs)SDLRPCNotificationNotification(im)isNotificationMemberOfClass:":{"name":"-isNotificationMemberOfClass:","abstract":"

                                Returns whether or not the containing notification is equal to a class, not including subclasses.

                                ","parent_name":"SDLRPCNotificationNotification"},"Classes/SDLRPCNotificationNotification.html#/c:objc(cs)SDLRPCNotificationNotification(im)isNotificationKindOfClass:":{"name":"-isNotificationKindOfClass:","abstract":"

                                Returns whether or not the containing notification is a kind of class, including subclasses.

                                ","parent_name":"SDLRPCNotificationNotification"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage@function":{"name":"function","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage@parameters":{"name":"parameters","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage@messageType":{"name":"messageType","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)initWithName:":{"name":"-initWithName:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)initWithDictionary:":{"name":"-initWithDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)getFunctionName":{"name":"-getFunctionName","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)setFunctionName:":{"name":"-setFunctionName:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)getParameters:":{"name":"-getParameters:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(im)setParameters:value:":{"name":"-setParameters:value:","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(py)bulkData":{"name":"bulkData","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(py)name":{"name":"name","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"Classes/SDLRPCMessage.html#/c:objc(cs)SDLRPCMessage(py)messageType":{"name":"messageType","abstract":"

                                Undocumented

                                ","parent_name":"SDLRPCMessage"},"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":"

                                Undocumented

                                ","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)programService":{"name":"programService","abstract":"

                                @abstract Program Service Name

                                ","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)radioText":{"name":"radioText","abstract":"

                                @abstract Radio Text

                                ","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)clockText":{"name":"clockText","abstract":"

                                @abstract The clock text in UTC format as YYYY-MM-DDThh:mm:ss.sTZD

                                ","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)programIdentification":{"name":"programIdentification","abstract":"

                                @abstract Program Identification - the call sign for the radio station

                                ","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)programType":{"name":"programType","abstract":"

                                @abstract 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":"

                                @abstract Traffic Program Identification - Identifies a station that offers traffic

                                ","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)trafficAnnouncementIdentification":{"name":"trafficAnnouncementIdentification","abstract":"

                                @abstract Traffic Announcement Identification - Indicates an ongoing traffic announcement

                                ","parent_name":"SDLRDSData"},"Classes/SDLRDSData.html#/c:objc(cs)SDLRDSData(py)region":{"name":"region","abstract":"

                                @abstract Region

                                ","parent_name":"SDLRDSData"},"Classes/SDLPutFileResponse.html#/c:objc(cs)SDLPutFileResponse(py)spaceAvailable":{"name":"spaceAvailable","abstract":"

                                Undocumented

                                ","parent_name":"SDLPutFileResponse"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(im)initWithFileName:fileType:":{"name":"-initWithFileName:fileType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(im)initWithFileName:fileType:persistentFile:":{"name":"-initWithFileName:fileType:persistentFile:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)syncFileName":{"name":"syncFileName","abstract":"

                                A file reference name

                                ","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)fileType":{"name":"fileType","abstract":"

                                A FileType value representing a selected file type

                                ","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)persistentFile":{"name":"persistentFile","abstract":"

                                A value to indicates if the file is meant to persist between","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)systemFile":{"name":"systemFile","abstract":"

                                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.

                                ","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)offset":{"name":"offset","abstract":"

                                Offset in bytes for resuming partial data chunks.

                                ","parent_name":"SDLPutFile"},"Classes/SDLPutFile.html#/c:objc(cs)SDLPutFile(py)length":{"name":"length","abstract":"

                                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

                                ","parent_name":"SDLPutFile"},"Classes/SDLProxyFactory.html#/c:objc(cs)SDLProxyFactory(cm)buildSDLProxyWithListener:":{"name":"+buildSDLProxyWithListener:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyFactory"},"Classes/SDLProxyFactory.html#/c:objc(cs)SDLProxyFactory(cm)buildSDLProxyWithListener:tcpIPAddress:tcpPort:":{"name":"+buildSDLProxyWithListener:tcpIPAddress:tcpPort:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxyFactory"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy@_version":{"name":"_version","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy@_bulkSessionID":{"name":"_bulkSessionID","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy@_isConnected":{"name":"_isConnected","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(py)protocol":{"name":"protocol","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(py)transport":{"name":"transport","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(py)proxyListeners":{"name":"proxyListeners","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(py)startSessionTimer":{"name":"startSessionTimer","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(py)debugConsoleGroupName":{"name":"debugConsoleGroupName","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(py)proxyVersion":{"name":"proxyVersion","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(im)initWithTransport:protocol:delegate:":{"name":"-initWithTransport:protocol:delegate:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(im)addDelegate:":{"name":"-addDelegate:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(im)removeDelegate:":{"name":"-removeDelegate:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(im)sendRPC:":{"name":"-sendRPC:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(im)handleRPCDictionary:":{"name":"-handleRPCDictionary:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(im)handleProtocolMessage:":{"name":"-handleProtocolMessage:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(im)addSecurityManagers:forAppId:":{"name":"-addSecurityManagers:forAppId:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProxy"},"Classes/SDLProxy.html#/c:objc(cs)SDLProxy(im)putFileStream:withRequest:":{"name":"-putFileStream:withRequest:","abstract":"

                                Puts data into a file on the module","parent_name":"SDLProxy"},"Classes/SDLProtocolMessage.html#/c:objc(cs)SDLProtocolMessage(py)header":{"name":"header","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolMessage"},"Classes/SDLProtocolMessage.html#/c:objc(cs)SDLProtocolMessage(py)payload":{"name":"payload","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolMessage"},"Classes/SDLProtocolMessage.html#/c:objc(cs)SDLProtocolMessage(py)data":{"name":"data","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolMessage"},"Classes/SDLProtocolMessage.html#/c:objc(cs)SDLProtocolMessage(cm)messageWithHeader:andPayload:":{"name":"+messageWithHeader:andPayload:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolMessage"},"Classes/SDLProtocolMessage.html#/c:objc(cs)SDLProtocolMessage(im)size":{"name":"-size","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolMessage"},"Classes/SDLProtocolMessage.html#/c:objc(cs)SDLProtocolMessage(im)description":{"name":"-description","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolMessage"},"Classes/SDLProtocolMessage.html#/c:objc(cs)SDLProtocolMessage(im)rpcDictionary":{"name":"-rpcDictionary","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolMessage"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader@_version":{"name":"_version","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader@_size":{"name":"_size","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(py)version":{"name":"version","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(py)size":{"name":"size","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(py)encrypted":{"name":"encrypted","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(py)frameType":{"name":"frameType","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(py)serviceType":{"name":"serviceType","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(py)frameData":{"name":"frameData","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(py)sessionID":{"name":"sessionID","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(py)bytesInPayload":{"name":"bytesInPayload","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(im)data":{"name":"-data","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(im)parse:":{"name":"-parse:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(im)description":{"name":"-description","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(cm)headerForVersion:":{"name":"+headerForVersion:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocolHeader.html#/c:objc(cs)SDLProtocolHeader(cm)determineVersion:":{"name":"+determineVersion:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocolHeader"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)startServiceWithType:payload:":{"name":"-startServiceWithType:payload:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)startSecureServiceWithType:payload:completionHandler:":{"name":"-startSecureServiceWithType:payload:completionHandler:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)endServiceWithType:":{"name":"-endServiceWithType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)sendRPC:":{"name":"-sendRPC:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)sendRPC:encrypted:error:":{"name":"-sendRPC:encrypted:error:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)sendRawData:withServiceType:":{"name":"-sendRawData:withServiceType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)sendEncryptedRawData:onService:":{"name":"-sendEncryptedRawData:onService:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLProtocol.html#/c:objc(cs)SDLProtocol(im)handleBytesFromTransport:":{"name":"-handleBytesFromTransport:","abstract":"

                                Undocumented

                                ","parent_name":"SDLProtocol"},"Classes/SDLPresetBankCapabilities.html#/c:objc(cs)SDLPresetBankCapabilities(py)onScreenPresetsAvailable":{"name":"onScreenPresetsAvailable","abstract":"

                                @abstract If Onscreen custom presets are available.

                                ","parent_name":"SDLPresetBankCapabilities"},"Classes/SDLPinchGesture.html#/c:objc(cs)SDLPinchGesture(im)initWithFirstTouch:secondTouch:":{"name":"-initWithFirstTouch:secondTouch:","abstract":"

                                @abstract","parent_name":"SDLPinchGesture"},"Classes/SDLPinchGesture.html#/c:objc(cs)SDLPinchGesture(py)firstTouch":{"name":"firstTouch","abstract":"

                                @abstract","parent_name":"SDLPinchGesture"},"Classes/SDLPinchGesture.html#/c:objc(cs)SDLPinchGesture(py)secondTouch":{"name":"secondTouch","abstract":"

                                @abstract","parent_name":"SDLPinchGesture"},"Classes/SDLPinchGesture.html#/c:objc(cs)SDLPinchGesture(py)distance":{"name":"distance","abstract":"

                                @abstract","parent_name":"SDLPinchGesture"},"Classes/SDLPinchGesture.html#/c:objc(cs)SDLPinchGesture(py)center":{"name":"center","abstract":"

                                @abstract","parent_name":"SDLPinchGesture"},"Classes/SDLPinchGesture.html#/c:objc(cs)SDLPinchGesture(py)isValid":{"name":"isValid","abstract":"

                                @abstract","parent_name":"SDLPinchGesture"},"Classes/SDLPhoneCapability.html#/c:objc(cs)SDLPhoneCapability(im)initWithDialNumber:":{"name":"-initWithDialNumber:","abstract":"

                                Undocumented

                                ","parent_name":"SDLPhoneCapability"},"Classes/SDLPhoneCapability.html#/c:objc(cs)SDLPhoneCapability(py)dialNumberEnabled":{"name":"dialNumberEnabled","abstract":"

                                Whether or not the DialNumber RPC is enabled.","parent_name":"SDLPhoneCapability"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)startWithCompletionHandler:":{"name":"-startWithCompletionHandler:","abstract":"

                                Start the manager with a completion block that will be called when startup completes. This is used internally. To use an SDLPermissionManager, you should use the manager found on SDLManager.

                                ","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)stop":{"name":"-stop","abstract":"

                                Stop the manager. This method is used internally.

                                ","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)isRPCAllowed:":{"name":"-isRPCAllowed:","abstract":"

                                Determine if an individual RPC is allowed for the current HMI level

                                ","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)groupStatusOfRPCs:":{"name":"-groupStatusOfRPCs:","abstract":"

                                Determine if all RPCs are allowed for the current HMI level

                                ","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)statusOfRPCs:":{"name":"-statusOfRPCs:","abstract":"

                                Retrieve a dictionary with keys that are the passed in RPC names, and objects of an NSNumber specifying if that RPC is currently allowed

                                ","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)addObserverForRPCs:groupType:withHandler:":{"name":"-addObserverForRPCs:groupType:withHandler:","abstract":"

                                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.

                                ","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)removeAllObservers":{"name":"-removeAllObservers","abstract":"

                                Remove every current observer

                                ","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionManager.html#/c:objc(cs)SDLPermissionManager(im)removeObserverForIdentifier:":{"name":"-removeObserverForIdentifier:","abstract":"

                                Remove block observers for the specified RPC

                                ","parent_name":"SDLPermissionManager"},"Classes/SDLPermissionItem.html#/c:objc(cs)SDLPermissionItem(py)rpcName":{"name":"rpcName","abstract":"

                                Undocumented

                                ","parent_name":"SDLPermissionItem"},"Classes/SDLPermissionItem.html#/c:objc(cs)SDLPermissionItem(py)hmiPermissions":{"name":"hmiPermissions","abstract":"

                                Undocumented

                                ","parent_name":"SDLPermissionItem"},"Classes/SDLPermissionItem.html#/c:objc(cs)SDLPermissionItem(py)parameterPermissions":{"name":"parameterPermissions","abstract":"

                                Undocumented

                                ","parent_name":"SDLPermissionItem"},"Classes/SDLPerformInteractionResponse.html#/c:objc(cs)SDLPerformInteractionResponse(py)choiceID":{"name":"choiceID","abstract":"

                                @abstract ID of the choice that was selected in response to PerformInteraction.

                                ","parent_name":"SDLPerformInteractionResponse"},"Classes/SDLPerformInteractionResponse.html#/c:objc(cs)SDLPerformInteractionResponse(py)manualTextEntry":{"name":"manualTextEntry","abstract":"

                                @abstract Manually entered text selection, e.g. through keyboard

                                ","parent_name":"SDLPerformInteractionResponse"},"Classes/SDLPerformInteractionResponse.html#/c:objc(cs)SDLPerformInteractionResponse(py)triggerSource":{"name":"triggerSource","abstract":"

                                @abstract A SDLTriggerSource object which will be shown in the HMI

                                ","parent_name":"SDLPerformInteractionResponse"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInteractionChoiceSetId:":{"name":"-initWithInteractionChoiceSetId:","abstract":"

                                Undocumented

                                ","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInteractionChoiceSetIdList:":{"name":"-initWithInteractionChoiceSetIdList:","abstract":"

                                Undocumented

                                ","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInitialPrompt:initialText:interactionChoiceSetID:":{"name":"-initWithInitialPrompt:initialText:interactionChoiceSetID:","abstract":"

                                Undocumented

                                ","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(im)initWithInitialPrompt:initialText:interactionChoiceSetID:vrHelp:":{"name":"-initWithInitialPrompt:initialText:interactionChoiceSetID:vrHelp:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)initialText":{"name":"initialText","abstract":"

                                @abstract 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":"

                                @abstract 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":"

                                @abstract The Indicates mode that indicate how user selects interaction","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)interactionChoiceSetIDList":{"name":"interactionChoiceSetIDList","abstract":"

                                @abstract A Vector value representing an Array of one or more Choice","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)helpPrompt":{"name":"helpPrompt","abstract":"

                                @abstract A Vector which taken together, specify the help phrase to","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformInteraction.html#/c:objc(cs)SDLPerformInteraction(py)timeoutPrompt":{"name":"timeoutPrompt","abstract":"

                                @abstract 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":"

                                @abstract 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":"

                                @abstract 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":"

                                Undocumented

                                ","parent_name":"SDLPerformInteraction"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(im)initWithSamplingRate:bitsPerSample:audioType:maxDuration:":{"name":"-initWithSamplingRate:bitsPerSample:audioType:maxDuration:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(im)initWithSamplingRate:bitsPerSample:audioType:maxDuration:audioDataHandler:":{"name":"-initWithSamplingRate:bitsPerSample:audioType:maxDuration:audioDataHandler:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)initialPrompt":{"name":"initialPrompt","abstract":"

                                @abstract 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":"

                                @abstract a line of text displayed during audio capture","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)audioPassThruDisplayText2":{"name":"audioPassThruDisplayText2","abstract":"

                                @abstract A line of text displayed during audio capture","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)samplingRate":{"name":"samplingRate","abstract":"

                                @abstract A samplingRate

                                ","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)maxDuration":{"name":"maxDuration","abstract":"

                                @abstract the maximum duration of audio recording in milliseconds

                                ","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)bitsPerSample":{"name":"bitsPerSample","abstract":"

                                @abstract the quality the audio is recorded - 8 bit or 16 bit

                                ","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)audioType":{"name":"audioType","abstract":"

                                @abstract an audioType

                                ","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLPerformAudioPassThru.html#/c:objc(cs)SDLPerformAudioPassThru(py)muteAudio":{"name":"muteAudio","abstract":"

                                @abstract 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":"

                                A handler that will be called whenever an onAudioPassThru notification is received.

                                ","parent_name":"SDLPerformAudioPassThru"},"Classes/SDLParameterPermissions.html#/c:objc(cs)SDLParameterPermissions(py)allowed":{"name":"allowed","abstract":"

                                @abstract A set of all parameters that are permitted for this given RPC.

                                ","parent_name":"SDLParameterPermissions"},"Classes/SDLParameterPermissions.html#/c:objc(cs)SDLParameterPermissions(py)userDisallowed":{"name":"userDisallowed","abstract":"

                                @abstract A set of all parameters that are prohibited for this given RPC.

                                ","parent_name":"SDLParameterPermissions"},"Classes/SDLOnWayPointChange.html#/c:objc(cs)SDLOnWayPointChange(py)waypoints":{"name":"waypoints","abstract":"

                                @abstract Location address for display purposes only.

                                ","parent_name":"SDLOnWayPointChange"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)gps":{"name":"gps","abstract":"

                                @abstract A SDLGPSData* value. See GPSData.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)speed":{"name":"speed","abstract":"

                                @abstract The vehicle speed in kilometers per hour.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)rpm":{"name":"rpm","abstract":"

                                @abstract The number of revolutions per minute of the engine.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)fuelLevel":{"name":"fuelLevel","abstract":"

                                @abstract The fuel level in the tank (percentage)

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"

                                @abstract A SDLComponentVolumeStatus* value. The fuel level state.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"

                                @abstract The instantaneous fuel consumption in microlitres.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)externalTemperature":{"name":"externalTemperature","abstract":"

                                @abstract The external temperature in degrees celsius.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)vin":{"name":"vin","abstract":"

                                @abstract The Vehicle Identification Number

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)prndl":{"name":"prndl","abstract":"

                                @abstract See PRNDL.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)tirePressure":{"name":"tirePressure","abstract":"

                                @abstract A SDLTireStatus* value. See TireStatus.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)odometer":{"name":"odometer","abstract":"

                                @abstract Odometer reading in km.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)beltStatus":{"name":"beltStatus","abstract":"

                                @abstract A SDLBeltStatus* value. The status of the seat belts.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)bodyInformation":{"name":"bodyInformation","abstract":"

                                @abstract A SDLBodyInformation* value. The body information including power modes.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)deviceStatus":{"name":"deviceStatus","abstract":"

                                @abstract A SDLDeviceStatus* value. The device status including signal and battery strength.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)driverBraking":{"name":"driverBraking","abstract":"

                                @abstract A SDLVehicleDataResult* value. The status of the brake pedal.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)wiperStatus":{"name":"wiperStatus","abstract":"

                                @abstract A SDLWiperStatus* value. The status of the wipers.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)headLampStatus":{"name":"headLampStatus","abstract":"

                                @abstract A SDLHeadLampStatus* value. Status of the head lamps.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)engineTorque":{"name":"engineTorque","abstract":"

                                @abstract Torque value for engine (in Nm) on non-diesel variants.

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)accPedalPosition":{"name":"accPedalPosition","abstract":"

                                @abstract Accelerator pedal position (percentage depressed)

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"

                                @abstract Current angle of the steering wheel (in deg)

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)eCallInfo":{"name":"eCallInfo","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)airbagStatus":{"name":"airbagStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)emergencyEvent":{"name":"emergencyEvent","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)clusterModeStatus":{"name":"clusterModeStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnVehicleData.html#/c:objc(cs)SDLOnVehicleData(py)myKey":{"name":"myKey","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnVehicleData"},"Classes/SDLOnTouchEvent.html#/c:objc(cs)SDLOnTouchEvent(py)type":{"name":"type","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnTouchEvent"},"Classes/SDLOnTouchEvent.html#/c:objc(cs)SDLOnTouchEvent(py)event":{"name":"event","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnTouchEvent"},"Classes/SDLOnTBTClientState.html#/c:objc(cs)SDLOnTBTClientState(py)state":{"name":"state","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnTBTClientState"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)requestType":{"name":"requestType","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)url":{"name":"url","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)timeout":{"name":"timeout","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)fileType":{"name":"fileType","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)offset":{"name":"offset","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSystemRequest.html#/c:objc(cs)SDLOnSystemRequest(py)length":{"name":"length","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnSystemRequest"},"Classes/SDLOnSyncPData.html#/c:objc(cs)SDLOnSyncPData(py)URL":{"name":"URL","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnSyncPData"},"Classes/SDLOnSyncPData.html#/c:objc(cs)SDLOnSyncPData(py)Timeout":{"name":"Timeout","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnSyncPData"},"Classes/SDLOnPermissionsChange.html#/c:objc(cs)SDLOnPermissionsChange(py)permissionItem":{"name":"permissionItem","abstract":"

                                @abstract Describes change in permissions for a given set of RPCs

                                ","parent_name":"SDLOnPermissionsChange"},"Classes/SDLOnLockScreenStatus.html#/c:objc(cs)SDLOnLockScreenStatus(py)driverDistractionStatus":{"name":"driverDistractionStatus","abstract":"

                                Get the current driver distraction status(i.e. whether driver distraction rules are in effect, or not)

                                ","parent_name":"SDLOnLockScreenStatus"},"Classes/SDLOnLockScreenStatus.html#/c:objc(cs)SDLOnLockScreenStatus(py)userSelected":{"name":"userSelected","abstract":"

                                Get user selection status for the application (has the app been selected via hmi or voice command)

                                ","parent_name":"SDLOnLockScreenStatus"},"Classes/SDLOnLockScreenStatus.html#/c:objc(cs)SDLOnLockScreenStatus(py)lockScreenStatus":{"name":"lockScreenStatus","abstract":"

                                Get the {@linkplain LockScreenStatus} enumeration, indicating if the lockscreen should be required, optional or off

                                ","parent_name":"SDLOnLockScreenStatus"},"Classes/SDLOnLockScreenStatus.html#/c:objc(cs)SDLOnLockScreenStatus(py)hmiLevel":{"name":"hmiLevel","abstract":"

                                Get HMILevel in effect for the application

                                ","parent_name":"SDLOnLockScreenStatus"},"Classes/SDLOnLanguageChange.html#/c:objc(cs)SDLOnLanguageChange(py)language":{"name":"language","abstract":"

                                @abstract Current SDL voice engine (VR+TTS) language

                                ","parent_name":"SDLOnLanguageChange"},"Classes/SDLOnLanguageChange.html#/c:objc(cs)SDLOnLanguageChange(py)hmiDisplayLanguage":{"name":"hmiDisplayLanguage","abstract":"

                                @abstract Current display language

                                ","parent_name":"SDLOnLanguageChange"},"Classes/SDLOnKeyboardInput.html#/c:objc(cs)SDLOnKeyboardInput(py)event":{"name":"event","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnKeyboardInput"},"Classes/SDLOnKeyboardInput.html#/c:objc(cs)SDLOnKeyboardInput(py)data":{"name":"data","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnKeyboardInput"},"Classes/SDLOnInteriorVehicleData.html#/c:objc(cs)SDLOnInteriorVehicleData(py)moduleData":{"name":"moduleData","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnInteriorVehicleData"},"Classes/SDLOnHashChange.html#/c:objc(cs)SDLOnHashChange(py)hashID":{"name":"hashID","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnHashChange"},"Classes/SDLOnHMIStatus.html#/c:objc(cs)SDLOnHMIStatus(py)hmiLevel":{"name":"hmiLevel","abstract":"

                                @abstract SDLHMILevel in effect for the application

                                ","parent_name":"SDLOnHMIStatus"},"Classes/SDLOnHMIStatus.html#/c:objc(cs)SDLOnHMIStatus(py)audioStreamingState":{"name":"audioStreamingState","abstract":"

                                @abstract 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.

                                ","parent_name":"SDLOnHMIStatus"},"Classes/SDLOnHMIStatus.html#/c:objc(cs)SDLOnHMIStatus(py)systemContext":{"name":"systemContext","abstract":"

                                @abstract the System Context","parent_name":"SDLOnHMIStatus"},"Classes/SDLOnEncodedSyncPData.html#/c:objc(cs)SDLOnEncodedSyncPData(py)data":{"name":"data","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnEncodedSyncPData"},"Classes/SDLOnEncodedSyncPData.html#/c:objc(cs)SDLOnEncodedSyncPData(py)URL":{"name":"URL","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnEncodedSyncPData"},"Classes/SDLOnEncodedSyncPData.html#/c:objc(cs)SDLOnEncodedSyncPData(py)Timeout":{"name":"Timeout","abstract":"

                                Undocumented

                                ","parent_name":"SDLOnEncodedSyncPData"},"Classes/SDLOnDriverDistraction.html#/c:objc(cs)SDLOnDriverDistraction(py)state":{"name":"state","abstract":"

                                @abstract The driver distraction state (i.e. whether driver distraction rules are in effect, or not)

                                ","parent_name":"SDLOnDriverDistraction"},"Classes/SDLOnCommand.html#/c:objc(cs)SDLOnCommand(py)cmdID":{"name":"cmdID","abstract":"

                                @abstract 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.

                                ","parent_name":"SDLOnCommand"},"Classes/SDLOnCommand.html#/c:objc(cs)SDLOnCommand(py)triggerSource":{"name":"triggerSource","abstract":"

                                @abstract Indicates whether command was selected via voice or via a menu selection (using the OK button).

                                ","parent_name":"SDLOnCommand"},"Classes/SDLOnButtonPress.html#/c:objc(cs)SDLOnButtonPress(py)buttonName":{"name":"buttonName","abstract":"

                                @abstract the button’s name

                                ","parent_name":"SDLOnButtonPress"},"Classes/SDLOnButtonPress.html#/c:objc(cs)SDLOnButtonPress(py)buttonPressMode":{"name":"buttonPressMode","abstract":"

                                @abstract Indicates whether this is a LONG or SHORT button press event

                                ","parent_name":"SDLOnButtonPress"},"Classes/SDLOnButtonPress.html#/c:objc(cs)SDLOnButtonPress(py)customButtonID":{"name":"customButtonID","abstract":"

                                @abstract If ButtonName is CUSTOM_BUTTON, this references the integer ID passed by a custom button. (e.g. softButton ID)

                                ","parent_name":"SDLOnButtonPress"},"Classes/SDLOnButtonEvent.html#/c:objc(cs)SDLOnButtonEvent(py)buttonName":{"name":"buttonName","abstract":"

                                @abstract The name of the button

                                ","parent_name":"SDLOnButtonEvent"},"Classes/SDLOnButtonEvent.html#/c:objc(cs)SDLOnButtonEvent(py)buttonEventMode":{"name":"buttonEventMode","abstract":"

                                @abstract Indicates whether this is an UP or DOWN event

                                ","parent_name":"SDLOnButtonEvent"},"Classes/SDLOnButtonEvent.html#/c:objc(cs)SDLOnButtonEvent(py)customButtonID":{"name":"customButtonID","abstract":"

                                @abstract If ButtonName is CUSTOM_BUTTON, this references the integer ID passed by a custom button. (e.g. softButton ID)

                                ","parent_name":"SDLOnButtonEvent"},"Classes/SDLOnAppInterfaceUnregistered.html#/c:objc(cs)SDLOnAppInterfaceUnregistered(py)reason":{"name":"reason","abstract":"

                                @abstract The reason application’s interface was terminated

                                ","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":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)countryName":{"name":"countryName","abstract":"

                                @abstract Name of the country (localized)

                                ","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)countryCode":{"name":"countryCode","abstract":"

                                @abstract countryCode of the country(ISO 3166-2)

                                ","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)postalCode":{"name":"postalCode","abstract":"

                                @abstract postalCode of location (PLZ, ZIP, PIN, CAP etc.)

                                ","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)administrativeArea":{"name":"administrativeArea","abstract":"

                                @abstract Portion of country (e.g. state)

                                ","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)subAdministrativeArea":{"name":"subAdministrativeArea","abstract":"

                                @abstract Portion of administrativeArea (e.g. county)

                                ","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)locality":{"name":"locality","abstract":"

                                @abstract Hypernym for city/village

                                ","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)subLocality":{"name":"subLocality","abstract":"

                                @abstract Hypernym for district

                                ","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)thoroughfare":{"name":"thoroughfare","abstract":"

                                @abstract Hypernym for street, road etc.

                                ","parent_name":"SDLOasisAddress"},"Classes/SDLOasisAddress.html#/c:objc(cs)SDLOasisAddress(py)subThoroughfare":{"name":"subThoroughfare","abstract":"

                                @abstract Portion of thoroughfare (e.g. house number)

                                ","parent_name":"SDLOasisAddress"},"Classes/SDLNotificationConstants.html#/c:objc(cs)SDLNotificationConstants(cm)allResponseNames":{"name":"+allResponseNames","abstract":"

                                Undocumented

                                ","parent_name":"SDLNotificationConstants"},"Classes/SDLNotificationConstants.html#/c:objc(cs)SDLNotificationConstants(cm)allButtonEventNotifications":{"name":"+allButtonEventNotifications","abstract":"

                                Undocumented

                                ","parent_name":"SDLNotificationConstants"},"Classes/SDLNavigationCapability.html#/c:objc(cs)SDLNavigationCapability(im)initWithSendLocation:waypoints:":{"name":"-initWithSendLocation:waypoints:","abstract":"

                                Undocumented

                                ","parent_name":"SDLNavigationCapability"},"Classes/SDLNavigationCapability.html#/c:objc(cs)SDLNavigationCapability(py)sendLocationEnabled":{"name":"sendLocationEnabled","abstract":"

                                Whether or not the SendLocation RPC is enabled.","parent_name":"SDLNavigationCapability"},"Classes/SDLNavigationCapability.html#/c:objc(cs)SDLNavigationCapability(py)getWayPointsEnabled":{"name":"getWayPointsEnabled","abstract":"

                                Whether or not Waypoint related RPCs are enabled.","parent_name":"SDLNavigationCapability"},"Classes/SDLMyKey.html#/c:objc(cs)SDLMyKey(py)e911Override":{"name":"e911Override","abstract":"

                                Undocumented

                                ","parent_name":"SDLMyKey"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(im)initWithRadioControlData:":{"name":"-initWithRadioControlData:","abstract":"

                                Undocumented

                                ","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(im)initWithClimateControlData:":{"name":"-initWithClimateControlData:","abstract":"

                                Undocumented

                                ","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(py)moduleType":{"name":"moduleType","abstract":"

                                The moduleType indicates which type of data should be changed","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(py)radioControlData":{"name":"radioControlData","abstract":"

                                Undocumented

                                ","parent_name":"SDLModuleData"},"Classes/SDLModuleData.html#/c:objc(cs)SDLModuleData(py)climateControlData":{"name":"climateControlData","abstract":"

                                Undocumented

                                ","parent_name":"SDLModuleData"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(im)initWithTextFieldTypes:mainField2:":{"name":"-initWithTextFieldTypes:mainField2:","abstract":"

                                @abstract Constructs a newly allocated SDLMetadataType object with NSArrays

                                ","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(im)initWithTextFieldTypes:mainField2:mainField3:mainField4:":{"name":"-initWithTextFieldTypes:mainField2:mainField3:mainField4:","abstract":"

                                Undocumented

                                ","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(py)mainField1":{"name":"mainField1","abstract":"

                                @abstract The type of data contained in the mainField1 text field, Optional.

                                ","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(py)mainField2":{"name":"mainField2","abstract":"

                                @abstract The type of data contained in the mainField2 text field, Optional.

                                ","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(py)mainField3":{"name":"mainField3","abstract":"

                                @abstract The type of data contained in the mainField3 text field, Optional.

                                ","parent_name":"SDLMetadataTags"},"Classes/SDLMetadataTags.html#/c:objc(cs)SDLMetadataTags(py)mainField4":{"name":"mainField4","abstract":"

                                @abstract The type of data contained in the mainField4 text field, Optional.

                                ","parent_name":"SDLMetadataTags"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(im)initWithMenuName:":{"name":"-initWithMenuName:","abstract":"

                                Undocumented

                                ","parent_name":"SDLMenuParams"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(im)initWithMenuName:parentId:position:":{"name":"-initWithMenuName:parentId:position:","abstract":"

                                Undocumented

                                ","parent_name":"SDLMenuParams"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(py)parentID":{"name":"parentID","abstract":"

                                @abstract the unique ID of an existing submenu to which a command will be added","parent_name":"SDLMenuParams"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(py)position":{"name":"position","abstract":"

                                @abstract The position within the items of the parent Command Menu","parent_name":"SDLMenuParams"},"Classes/SDLMenuParams.html#/c:objc(cs)SDLMenuParams(py)menuName":{"name":"menuName","abstract":"

                                @abstract the menu name which appears in menu, representing this command

                                ","parent_name":"SDLMenuParams"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)configuration":{"name":"configuration","abstract":"

                                The configuration the manager was set up with.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)hmiLevel":{"name":"hmiLevel","abstract":"

                                The current HMI level of the running app.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)audioStreamingState":{"name":"audioStreamingState","abstract":"

                                The current audio streaming state of the running app.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)systemContext":{"name":"systemContext","abstract":"

                                The current system context of the running app.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)fileManager":{"name":"fileManager","abstract":"

                                The file manager to be used by the running app.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)permissionManager":{"name":"permissionManager","abstract":"

                                The permission manager monitoring RPC permissions.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)streamManager":{"name":"streamManager","abstract":"

                                The streaming media manager to be used for starting video sessions.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)registerResponse":{"name":"registerResponse","abstract":"

                                The response of a register call after it has been received.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)delegate":{"name":"delegate","abstract":"

                                The manager’s delegate.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(py)proxy":{"name":"proxy","abstract":"

                                Undocumented

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)initWithConfiguration:delegate:":{"name":"-initWithConfiguration:delegate:","abstract":"

                                Initialize the manager with a configuration. Call startWithHandler to begin waiting for a connection.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)startWithReadyHandler:":{"name":"-startWithReadyHandler:","abstract":"

                                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.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)stop":{"name":"-stop","abstract":"

                                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.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)sendRequest:":{"name":"-sendRequest:","abstract":"

                                Send an RPC request and don’t bother with the response or error. If you need the response or error, call sendRequest:withCompletionHandler: instead.

                                ","parent_name":"SDLManager"},"Classes/SDLManager.html#/c:objc(cs)SDLManager(im)sendRequest:withResponseHandler:":{"name":"-sendRequest:withResponseHandler:","abstract":"

                                Send an RPC request and set a completion handler that will be called with the response when the response returns.

                                ","parent_name":"SDLManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)modules":{"name":"modules","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)targets":{"name":"targets","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)filters":{"name":"filters","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)globalLogLevel":{"name":"globalLogLevel","abstract":"

                                Any modules that do not have an explicitly specified level will by default use this log level

                                ","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)formatType":{"name":"formatType","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)asynchronous":{"name":"asynchronous","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(py)errorsAsynchronous":{"name":"errorsAsynchronous","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(cpy)dateFormatter":{"name":"dateFormatter","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(cpy)logQueue":{"name":"logQueue","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(cm)sharedManager":{"name":"+sharedManager","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(cm)setConfiguration:":{"name":"+setConfiguration:","abstract":"

                                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.

                                ","parent_name":"SDLLogManager"},"Classes/SDLLogManager.html#/c:objc(cs)SDLLogManager(im)setConfiguration:":{"name":"-setConfiguration:","abstract":"

                                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.

                                ","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":"

                                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 SDLLogD.

                                ","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":"

                                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 SDLLogD.

                                ","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":"

                                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 SDLLogD.

                                ","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":"

                                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 SDLLogD.

                                ","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":"

                                Log to this sharedManager’s active log targets. This is used internally to log.

                                ","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":"

                                Log to this manager’s active log targets. This is used internally to log.

                                ","parent_name":"SDLLogManager"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(py)filter":{"name":"filter","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(im)initWithCustomFilter:":{"name":"-initWithCustomFilter:","abstract":"

                                Create a new filter with a custom filter block. The filter block will take a log model and return a BOOL of pass / fail.

                                ","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByDisallowingString:caseSensitive:":{"name":"+filterByDisallowingString:caseSensitive:","abstract":"

                                Returns a filter that only allows logs not containing the passed string within their message.

                                ","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByAllowingString:caseSensitive:":{"name":"+filterByAllowingString:caseSensitive:","abstract":"

                                Returns a filter that only allows logs containing the passed string within their message.

                                ","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByDisallowingRegex:":{"name":"+filterByDisallowingRegex:","abstract":"

                                Returns a filter that only allows logs not passing the passed regex against their message.

                                ","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByAllowingRegex:":{"name":"+filterByAllowingRegex:","abstract":"

                                Returns a filter that only allows logs passing the passed regex against their message.

                                ","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByDisallowingModules:":{"name":"+filterByDisallowingModules:","abstract":"

                                Returns a filter that only allows logs not within the specified file modules to be logged.

                                ","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByAllowingModules:":{"name":"+filterByAllowingModules:","abstract":"

                                Returns a filter that only allows logs of the specified file modules to be logged.

                                ","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByDisallowingFileNames:":{"name":"+filterByDisallowingFileNames:","abstract":"

                                Returns a filter that only allows logs not within the specified files to be logged.

                                ","parent_name":"SDLLogFilter"},"Classes/SDLLogFilter.html#/c:objc(cs)SDLLogFilter(cm)filterByAllowingFileNames:":{"name":"+filterByAllowingFileNames:","abstract":"

                                Returns a filter that only allows logs within the specified files to be logged.

                                ","parent_name":"SDLLogFilter"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(py)name":{"name":"name","abstract":"

                                The name of the this module, e.g. Transport

                                ","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(py)files":{"name":"files","abstract":"

                                All of the files contained within this module. When a log is logged, the __FILE__ (in Obj-C) or #file (in Swift) is automatically captured and checked to see if any module has a file in this set that matches. If it does, it will be logged using the module’s log level and the module’s name will be printed in the formatted log.

                                ","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(py)logLevel":{"name":"logLevel","abstract":"

                                The custom level of the log. This is SDLLogLevelDefault (whatever the current global log level is) by default.

                                ","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(im)init":{"name":"-init","abstract":"

                                This method is unavailable and may not be used.

                                ","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(im)initWithName:files:level:":{"name":"-initWithName:files:level:","abstract":"

                                Returns an initialized SDLLogFileModule that contains a custom name, set of files, and associated log level.

                                ","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(im)initWithName:files:":{"name":"-initWithName:files:","abstract":"

                                Returns an initialized SDLLogFileModule that contains a custom name and set of files. The logging level is the same as the current global logging file by using SDLLogLevelDefault.

                                ","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(cm)moduleWithName:files:":{"name":"+moduleWithName:files:","abstract":"

                                Returns an initialized SDLLogFileModule that contains a custom name and set of files. The logging level is the same as the current global logging file by using SDLLogLevelDefault.

                                ","parent_name":"SDLLogFileModule"},"Classes/SDLLogFileModule.html#/c:objc(cs)SDLLogFileModule(im)containsFile:":{"name":"-containsFile:","abstract":"

                                Returns whether or not this module contains a given file.

                                ","parent_name":"SDLLogFileModule"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)modules":{"name":"modules","abstract":"

                                Any custom logging modules used by the developer’s code. Defaults to none.

                                ","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)targets":{"name":"targets","abstract":"

                                Where the logs will attempt to output. Defaults to Console.

                                ","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)filters":{"name":"filters","abstract":"

                                What log filters will run over this session. Defaults to none.

                                ","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)formatType":{"name":"formatType","abstract":"

                                How detailed of logs will be output. Defaults to Default.

                                ","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)asynchronous":{"name":"asynchronous","abstract":"

                                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.

                                ","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)errorsAsynchronous":{"name":"errorsAsynchronous","abstract":"

                                Whether or not error logs will be dispatched to loggers asynchronously. Defaults to NO.

                                ","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(py)globalLogLevel":{"name":"globalLogLevel","abstract":"

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

                                A default logger for production. This sets the format type to Default, the log level to Error, and only enables the ASL logger.

                                ","parent_name":"SDLLogConfiguration"},"Classes/SDLLogConfiguration.html#/c:objc(cs)SDLLogConfiguration(cm)debugConfiguration":{"name":"+debugConfiguration","abstract":"

                                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.

                                ","parent_name":"SDLLogConfiguration"},"Classes/SDLLockScreenViewController.html#/c:objc(cs)SDLLockScreenViewController(py)appIcon":{"name":"appIcon","abstract":"

                                The app’s icon. This will be set by the lock screen configuration.

                                ","parent_name":"SDLLockScreenViewController"},"Classes/SDLLockScreenViewController.html#/c:objc(cs)SDLLockScreenViewController(py)vehicleIcon":{"name":"vehicleIcon","abstract":"

                                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.

                                ","parent_name":"SDLLockScreenViewController"},"Classes/SDLLockScreenViewController.html#/c:objc(cs)SDLLockScreenViewController(py)backgroundColor":{"name":"backgroundColor","abstract":"

                                The designated background color set in the lock screen configuration, or the default SDL gray-blue.

                                ","parent_name":"SDLLockScreenViewController"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(py)showInOptionalState":{"name":"showInOptionalState","abstract":"

                                Whether or not the lock screen should be shown in the lock screen optional state. Defaults to ‘NO’.

                                ","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(py)enableAutomaticLockScreen":{"name":"enableAutomaticLockScreen","abstract":"

                                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.

                                ","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(py)backgroundColor":{"name":"backgroundColor","abstract":"

                                The background color of the lock screen. This could be a branding color, or leave at the default for a dark blue-gray.

                                ","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(py)appIcon":{"name":"appIcon","abstract":"

                                Your app icon as it will appear on the lock screen.

                                ","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(py)customViewController":{"name":"customViewController","abstract":"

                                A custom view controller that the lock screen will manage the presentation of.

                                ","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(cm)disabledConfiguration":{"name":"+disabledConfiguration","abstract":"

                                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.

                                ","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(cm)enabledConfiguration":{"name":"+enabledConfiguration","abstract":"

                                Use this configuration for the basic default lock screen. A custom app icon will not be used.

                                ","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(cm)enabledConfigurationWithAppIcon:backgroundColor:":{"name":"+enabledConfigurationWithAppIcon:backgroundColor:","abstract":"

                                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.

                                ","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLockScreenConfiguration.html#/c:objc(cs)SDLLockScreenConfiguration(cm)enabledConfigurationWithViewController:":{"name":"+enabledConfigurationWithViewController:","abstract":"

                                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.

                                ","parent_name":"SDLLockScreenConfiguration"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)coordinate":{"name":"coordinate","abstract":"

                                @abstract Latitude/Longitude of the location

                                ","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)locationName":{"name":"locationName","abstract":"

                                @abstract Name of location.

                                ","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)addressLines":{"name":"addressLines","abstract":"

                                @abstract Location address for display purposes only.

                                ","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)locationDescription":{"name":"locationDescription","abstract":"

                                @abstract Description intended location / establishment.

                                ","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)phoneNumber":{"name":"phoneNumber","abstract":"

                                @abstract Phone number of location / establishment.

                                ","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)locationImage":{"name":"locationImage","abstract":"

                                @abstract Image / icon of intended location.

                                ","parent_name":"SDLLocationDetails"},"Classes/SDLLocationDetails.html#/c:objc(cs)SDLLocationDetails(py)searchAddress":{"name":"searchAddress","abstract":"

                                @abstract Address to be used by navigation engines for search.

                                ","parent_name":"SDLLocationDetails"},"Classes/SDLLocationCoordinate.html#/c:objc(cs)SDLLocationCoordinate(py)latitudeDegrees":{"name":"latitudeDegrees","abstract":"

                                @abstract Latitude of the location

                                ","parent_name":"SDLLocationCoordinate"},"Classes/SDLLocationCoordinate.html#/c:objc(cs)SDLLocationCoordinate(py)longitudeDegrees":{"name":"longitudeDegrees","abstract":"

                                @abstract Longitude of the location

                                ","parent_name":"SDLLocationCoordinate"},"Classes/SDLListFilesResponse.html#/c:objc(cs)SDLListFilesResponse(py)filenames":{"name":"filenames","abstract":"

                                Undocumented

                                ","parent_name":"SDLListFilesResponse"},"Classes/SDLListFilesResponse.html#/c:objc(cs)SDLListFilesResponse(py)spaceAvailable":{"name":"spaceAvailable","abstract":"

                                Undocumented

                                ","parent_name":"SDLListFilesResponse"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(cm)defaultConfigurationWithAppName:appId:":{"name":"+defaultConfigurationWithAppName:appId:","abstract":"

                                A production configuration that runs using IAP. Additional functionality should be customized on the properties.

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(cm)debugConfigurationWithAppName:appId:ipAddress:port:":{"name":"+debugConfigurationWithAppName:appId:ipAddress:port:","abstract":"

                                A debug configuration that runs using TCP. Additional functionality should be customized on the properties.

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)tcpDebugMode":{"name":"tcpDebugMode","abstract":"

                                Whether or not debug mode is enabled

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)tcpDebugIPAddress":{"name":"tcpDebugIPAddress","abstract":"

                                The ip address at which the library will look for a server

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)tcpDebugPort":{"name":"tcpDebugPort","abstract":"

                                The port at which the library will look for a server

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)appName":{"name":"appName","abstract":"

                                The full name of the app

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)appId":{"name":"appId","abstract":"

                                The app id. This must be the same as the app id received from the SDL developer portal or OEM.

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)resumeHash":{"name":"resumeHash","abstract":"

                                A hash id which should be passed to the remote system in the RegisterAppInterface

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)isMedia":{"name":"isMedia","abstract":"

                                This is an automatically set based on the app type

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)appType":{"name":"appType","abstract":"

                                The application type

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)language":{"name":"language","abstract":"

                                The default language to use

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)languagesSupported":{"name":"languagesSupported","abstract":"

                                An array of all the supported languages

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)appIcon":{"name":"appIcon","abstract":"

                                The application icon to be used on an app launching screen

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)shortAppName":{"name":"shortAppName","abstract":"

                                An abbrevited application name that will be used on the app launching screen if the full one would be truncated

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)ttsName":{"name":"ttsName","abstract":"

                                A Text to Speech String for voice recognition of the mobile application name.

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLLifecycleConfiguration.html#/c:objc(cs)SDLLifecycleConfiguration(py)voiceRecognitionCommandNames":{"name":"voiceRecognitionCommandNames","abstract":"

                                Additional voice recognition commands. May not interfere with any other app name or global commands.

                                ","parent_name":"SDLLifecycleConfiguration"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(im)initWithLanguage:layout:keypressMode:limitedCharacterList:autoCompleteText:":{"name":"-initWithLanguage:layout:keypressMode:limitedCharacterList:autoCompleteText:","abstract":"

                                Undocumented

                                ","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(py)language":{"name":"language","abstract":"

                                Undocumented

                                ","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(py)keyboardLayout":{"name":"keyboardLayout","abstract":"

                                Undocumented

                                ","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(py)keypressMode":{"name":"keypressMode","abstract":"

                                Undocumented

                                ","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(py)limitedCharacterList":{"name":"limitedCharacterList","abstract":"

                                Undocumented

                                ","parent_name":"SDLKeyboardProperties"},"Classes/SDLKeyboardProperties.html#/c:objc(cs)SDLKeyboardProperties(py)autoCompleteText":{"name":"autoCompleteText","abstract":"

                                Undocumented

                                ","parent_name":"SDLKeyboardProperties"},"Classes/SDLImageResolution.html#/c:objc(cs)SDLImageResolution(py)resolutionWidth":{"name":"resolutionWidth","abstract":"

                                Undocumented

                                ","parent_name":"SDLImageResolution"},"Classes/SDLImageResolution.html#/c:objc(cs)SDLImageResolution(py)resolutionHeight":{"name":"resolutionHeight","abstract":"

                                Undocumented

                                ","parent_name":"SDLImageResolution"},"Classes/SDLImageResolution.html#/c:objc(cs)SDLImageResolution(im)initWithWidth:height:":{"name":"-initWithWidth:height:","abstract":"

                                Undocumented

                                ","parent_name":"SDLImageResolution"},"Classes/SDLImageField.html#/c:objc(cs)SDLImageField(py)name":{"name":"name","abstract":"

                                Undocumented

                                ","parent_name":"SDLImageField"},"Classes/SDLImageField.html#/c:objc(cs)SDLImageField(py)imageTypeSupported":{"name":"imageTypeSupported","abstract":"

                                Undocumented

                                ","parent_name":"SDLImageField"},"Classes/SDLImageField.html#/c:objc(cs)SDLImageField(py)imageResolution":{"name":"imageResolution","abstract":"

                                Undocumented

                                ","parent_name":"SDLImageField"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(im)initWithName:ofType:":{"name":"-initWithName:ofType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(py)value":{"name":"value","abstract":"

                                @abstract The static hex icon value or the binary image file name identifier (sent by SDLPutFile)

                                ","parent_name":"SDLImage"},"Classes/SDLImage.html#/c:objc(cs)SDLImage(py)imageType":{"name":"imageType","abstract":"

                                @abstract Describes, whether it is a static or dynamic image

                                ","parent_name":"SDLImage"},"Classes/SDLIAPTransport.html#/c:objc(cs)SDLIAPTransport(py)controlSession":{"name":"controlSession","abstract":"

                                Undocumented

                                ","parent_name":"SDLIAPTransport"},"Classes/SDLIAPTransport.html#/c:objc(cs)SDLIAPTransport(py)session":{"name":"session","abstract":"

                                Undocumented

                                ","parent_name":"SDLIAPTransport"},"Classes/SDLHeadLampStatus.html#/c:objc(cs)SDLHeadLampStatus(py)lowBeamsOn":{"name":"lowBeamsOn","abstract":"

                                @abstract A boolean value. Status of the low beam lamps.

                                ","parent_name":"SDLHeadLampStatus"},"Classes/SDLHeadLampStatus.html#/c:objc(cs)SDLHeadLampStatus(py)highBeamsOn":{"name":"highBeamsOn","abstract":"

                                @abstract A boolean value. Status of the high beam lamps.

                                ","parent_name":"SDLHeadLampStatus"},"Classes/SDLHeadLampStatus.html#/c:objc(cs)SDLHeadLampStatus(py)ambientLightSensorStatus":{"name":"ambientLightSensorStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLHeadLampStatus"},"Classes/SDLHapticRect.html#/c:objc(cs)SDLHapticRect(im)initWithId:rect:":{"name":"-initWithId:rect:","abstract":"

                                Undocumented

                                ","parent_name":"SDLHapticRect"},"Classes/SDLHapticRect.html#/c:objc(cs)SDLHapticRect(py)id":{"name":"id","abstract":"

                                A user control spatial identifier","parent_name":"SDLHapticRect"},"Classes/SDLHapticRect.html#/c:objc(cs)SDLHapticRect(py)rect":{"name":"rect","abstract":"

                                Undocumented

                                ","parent_name":"SDLHapticRect"},"Classes/SDLHMIPermissions.html#/c:objc(cs)SDLHMIPermissions(py)allowed":{"name":"allowed","abstract":"

                                @abstract a set of all HMI levels that are permitted for this given RPC

                                ","parent_name":"SDLHMIPermissions"},"Classes/SDLHMIPermissions.html#/c:objc(cs)SDLHMIPermissions(py)userDisallowed":{"name":"userDisallowed","abstract":"

                                @abstract a set of all HMI levels that are prohibited for this given RPC

                                ","parent_name":"SDLHMIPermissions"},"Classes/SDLHMICapabilities.html#/c:objc(cs)SDLHMICapabilities(py)navigation":{"name":"navigation","abstract":"

                                Availability of built in Nav. True: Available, False: Not Available

                                ","parent_name":"SDLHMICapabilities"},"Classes/SDLHMICapabilities.html#/c:objc(cs)SDLHMICapabilities(py)phoneCall":{"name":"phoneCall","abstract":"

                                Availability of built in phone. True: Available, False: Not Available

                                ","parent_name":"SDLHMICapabilities"},"Classes/SDLHMICapabilities.html#/c:objc(cs)SDLHMICapabilities(py)videoStreaming":{"name":"videoStreaming","abstract":"

                                Availability of built in video streaming. True: Available, False: Not Available

                                ","parent_name":"SDLHMICapabilities"},"Classes/SDLGetWayPointsResponse.html#/c:objc(cs)SDLGetWayPointsResponse(py)waypoints":{"name":"waypoints","abstract":"

                                @abstract Array of waypoints

                                ","parent_name":"SDLGetWayPointsResponse"},"Classes/SDLGetWayPoints.html#/c:objc(cs)SDLGetWayPoints(im)initWithType:":{"name":"-initWithType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetWayPoints"},"Classes/SDLGetWayPoints.html#/c:objc(cs)SDLGetWayPoints(py)waypointType":{"name":"waypointType","abstract":"

                                To request for either the destination","parent_name":"SDLGetWayPoints"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)gps":{"name":"gps","abstract":"

                                @abstract A SDLGPSData* value. See GPSData.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)speed":{"name":"speed","abstract":"

                                @abstract The vehicle speed in kilometers per hour.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)rpm":{"name":"rpm","abstract":"

                                @abstract The number of revolutions per minute of the engine.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)fuelLevel":{"name":"fuelLevel","abstract":"

                                @abstract The fuel level in the tank (percentage)

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"

                                @abstract A SDLComponentVolumeStatus* value. The fuel level state.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"

                                @abstract The instantaneous fuel consumption in microlitres.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)externalTemperature":{"name":"externalTemperature","abstract":"

                                @abstract The external temperature in degrees celsius.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)vin":{"name":"vin","abstract":"

                                @abstract The Vehicle Identification Number

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)prndl":{"name":"prndl","abstract":"

                                @abstract See PRNDL.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)tirePressure":{"name":"tirePressure","abstract":"

                                @abstract A SDLTireStatus* value. See TireStatus.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)odometer":{"name":"odometer","abstract":"

                                @abstract Odometer reading in km.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)beltStatus":{"name":"beltStatus","abstract":"

                                @abstract A SDLBeltStatus* value. The status of the seat belts.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)bodyInformation":{"name":"bodyInformation","abstract":"

                                @abstract A SDLBodyInformation* value. The body information including power modes.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)deviceStatus":{"name":"deviceStatus","abstract":"

                                @abstract A SDLDeviceStatus* value. The device status including signal and battery strength.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)driverBraking":{"name":"driverBraking","abstract":"

                                @abstract A SDLVehicleDataResult* value. The status of the brake pedal.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)wiperStatus":{"name":"wiperStatus","abstract":"

                                @abstract A SDLWiperStatus* value. The status of the wipers.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)headLampStatus":{"name":"headLampStatus","abstract":"

                                @abstract A SDLHeadLampStatus* value. Status of the head lamps.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)engineTorque":{"name":"engineTorque","abstract":"

                                @abstract Torque value for engine (in Nm) on non-diesel variants.

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)accPedalPosition":{"name":"accPedalPosition","abstract":"

                                @abstract Accelerator pedal position (percentage depressed)

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"

                                @abstract Current angle of the steering wheel (in deg)

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)eCallInfo":{"name":"eCallInfo","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)airbagStatus":{"name":"airbagStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)emergencyEvent":{"name":"emergencyEvent","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)clusterModeStatus":{"name":"clusterModeStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleDataResponse"},"Classes/SDLGetVehicleDataResponse.html#/c:objc(cs)SDLGetVehicleDataResponse(py)myKey":{"name":"myKey","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)gps":{"name":"gps","abstract":"

                                @abstract A boolean value. If true, requests Gps data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)speed":{"name":"speed","abstract":"

                                @abstract A boolean value. If true, requests speed data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)rpm":{"name":"rpm","abstract":"

                                @abstract A boolean value. If true, requests rpm data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)fuelLevel":{"name":"fuelLevel","abstract":"

                                @abstract A boolean value. If true, requests FuelLevel data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)fuelLevel_State":{"name":"fuelLevel_State","abstract":"

                                @abstract A boolean value. If true, requests fuelLevel_State data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)instantFuelConsumption":{"name":"instantFuelConsumption","abstract":"

                                @abstract A boolean value. If true, requests instantFuelConsumption data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)externalTemperature":{"name":"externalTemperature","abstract":"

                                @abstract A boolean value. If true, requests externalTemperature data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)vin":{"name":"vin","abstract":"

                                @abstract A boolean value. If true, requests Vehicle Identification Number

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)prndl":{"name":"prndl","abstract":"

                                @abstract A boolean value. If true, requests Currently selected gear data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)tirePressure":{"name":"tirePressure","abstract":"

                                @abstract A boolean value. If true, requests tire pressure status data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)odometer":{"name":"odometer","abstract":"

                                @abstract A boolean value. If true, requests odometer data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)beltStatus":{"name":"beltStatus","abstract":"

                                @abstract A boolean value. If true, requests belt Status data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)bodyInformation":{"name":"bodyInformation","abstract":"

                                @abstract A boolean value. If true, requests body Information data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)deviceStatus":{"name":"deviceStatus","abstract":"

                                @abstract A boolean value. If true, requests device Status data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)driverBraking":{"name":"driverBraking","abstract":"

                                @abstract A boolean value. If true, requests driver Braking data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)wiperStatus":{"name":"wiperStatus","abstract":"

                                @abstract A boolean value. If true, requests wiper Status data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)headLampStatus":{"name":"headLampStatus","abstract":"

                                @abstract A boolean value. If true, requests Head Lamp Status data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)engineTorque":{"name":"engineTorque","abstract":"

                                @abstract A boolean value. If true, requests Engine Torque data

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)accPedalPosition":{"name":"accPedalPosition","abstract":"

                                @abstract A boolean value. If true, means the accPedalPosition data has been","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)steeringWheelAngle":{"name":"steeringWheelAngle","abstract":"

                                @abstract A boolean value. If true, means the steeringWheelAngle data has been","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)eCallInfo":{"name":"eCallInfo","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)airbagStatus":{"name":"airbagStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)emergencyEvent":{"name":"emergencyEvent","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)clusterModeStatus":{"name":"clusterModeStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetVehicleData.html#/c:objc(cs)SDLGetVehicleData(py)myKey":{"name":"myKey","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetVehicleData"},"Classes/SDLGetSystemCapabilityResponse.html#/c:objc(cs)SDLGetSystemCapabilityResponse(py)systemCapability":{"name":"systemCapability","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetSystemCapabilityResponse"},"Classes/SDLGetSystemCapability.html#/c:objc(cs)SDLGetSystemCapability(im)initWithType:":{"name":"-initWithType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetSystemCapability"},"Classes/SDLGetSystemCapability.html#/c:objc(cs)SDLGetSystemCapability(py)systemCapabilityType":{"name":"systemCapabilityType","abstract":"

                                They type of capability you’d like to receive in the response.

                                ","parent_name":"SDLGetSystemCapability"},"Classes/SDLGetInteriorVehicleDataResponse.html#/c:objc(cs)SDLGetInteriorVehicleDataResponse(py)moduleData":{"name":"moduleData","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetInteriorVehicleDataResponse"},"Classes/SDLGetInteriorVehicleDataResponse.html#/c:objc(cs)SDLGetInteriorVehicleDataResponse(py)isSubscribed":{"name":"isSubscribed","abstract":"

                                @abstract It is a conditional-mandatory parameter: must be returned in case subscribe parameter was present in the related request.","parent_name":"SDLGetInteriorVehicleDataResponse"},"Classes/SDLGetInteriorVehicleData.html#/c:objc(cs)SDLGetInteriorVehicleData(im)initWithModuleType:":{"name":"-initWithModuleType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetInteriorVehicleData"},"Classes/SDLGetInteriorVehicleData.html#/c:objc(cs)SDLGetInteriorVehicleData(im)initAndSubscribeToModuleType:":{"name":"-initAndSubscribeToModuleType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetInteriorVehicleData"},"Classes/SDLGetInteriorVehicleData.html#/c:objc(cs)SDLGetInteriorVehicleData(im)initAndUnsubscribeToModuleType:":{"name":"-initAndUnsubscribeToModuleType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetInteriorVehicleData"},"Classes/SDLGetInteriorVehicleData.html#/c:objc(cs)SDLGetInteriorVehicleData(py)moduleType":{"name":"moduleType","abstract":"

                                The type of a RC module to retrieve module data from the vehicle.

                                ","parent_name":"SDLGetInteriorVehicleData"},"Classes/SDLGetInteriorVehicleData.html#/c:objc(cs)SDLGetInteriorVehicleData(py)subscribe":{"name":"subscribe","abstract":"

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

                                Undocumented

                                ","parent_name":"SDLGetDTCsResponse"},"Classes/SDLGetDTCsResponse.html#/c:objc(cs)SDLGetDTCsResponse(py)dtc":{"name":"dtc","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetDTCsResponse"},"Classes/SDLGetDTCs.html#/c:objc(cs)SDLGetDTCs(im)initWithECUName:":{"name":"-initWithECUName:","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetDTCs"},"Classes/SDLGetDTCs.html#/c:objc(cs)SDLGetDTCs(im)initWithECUName:mask:":{"name":"-initWithECUName:mask:","abstract":"

                                Undocumented

                                ","parent_name":"SDLGetDTCs"},"Classes/SDLGetDTCs.html#/c:objc(cs)SDLGetDTCs(py)ecuName":{"name":"ecuName","abstract":"

                                @abstract 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":"

                                @abstract DTC Mask Byte to be sent in diagnostic request to module. NSNumber* dtcMask Minvalue:0; Maxvalue:255

                                ","parent_name":"SDLGetDTCs"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)longitudeDegrees":{"name":"longitudeDegrees","abstract":"

                                @abstract longitude degrees

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)latitudeDegrees":{"name":"latitudeDegrees","abstract":"

                                @abstract latitude degrees

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcYear":{"name":"utcYear","abstract":"

                                @abstract utc year

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcMonth":{"name":"utcMonth","abstract":"

                                @abstract utc month

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcDay":{"name":"utcDay","abstract":"

                                @abstract utc day

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcHours":{"name":"utcHours","abstract":"

                                @abstract utc hours

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcMinutes":{"name":"utcMinutes","abstract":"

                                @abstract utc minutes

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)utcSeconds":{"name":"utcSeconds","abstract":"

                                @abstract utc seconds

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)compassDirection":{"name":"compassDirection","abstract":"

                                Potential Compass Directions

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)pdop":{"name":"pdop","abstract":"

                                @abstract The 3D positional dilution of precision.

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)hdop":{"name":"hdop","abstract":"

                                @abstract The horizontal dilution of precision

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)vdop":{"name":"vdop","abstract":"

                                @abstract the vertical dilution of precision

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)actual":{"name":"actual","abstract":"

                                @abstract What the coordinates are based on

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)satellites":{"name":"satellites","abstract":"

                                @abstract The number of satellites in view

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)dimension":{"name":"dimension","abstract":"

                                The supported dimensions of the GPS

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)altitude":{"name":"altitude","abstract":"

                                @abstract altitude in meters

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)heading":{"name":"heading","abstract":"

                                @abstract Heading based on the GPS data.

                                ","parent_name":"SDLGPSData"},"Classes/SDLGPSData.html#/c:objc(cs)SDLGPSData(py)speed":{"name":"speed","abstract":"

                                @abstract speed in KPH

                                ","parent_name":"SDLGPSData"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(py)remoteFileNames":{"name":"remoteFileNames","abstract":"

                                A set of all names of files known on the remote head unit. Known files can be used or deleted on the remote system.

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(py)bytesAvailable":{"name":"bytesAvailable","abstract":"

                                The number of bytes still available for files for this app.

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(py)currentState":{"name":"currentState","abstract":"

                                The state of the file manager.

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(py)pendingTransactions":{"name":"pendingTransactions","abstract":"

                                The currently pending transactions (Upload, Delete, and List Files) in the file manager

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(py)suspended":{"name":"suspended","abstract":"

                                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.

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)init":{"name":"-init","abstract":"

                                Initialize the class…or not, since this method is unavailable. Dependencies must be injected using initWithConnectionManager:

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)initWithConnectionManager:":{"name":"-initWithConnectionManager:","abstract":"

                                Creates a new file manager with a specified connection manager

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)startWithCompletionHandler:":{"name":"-startWithCompletionHandler:","abstract":"

                                The manager stars up and attempts to fetch its initial list and transfer initial files.

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)stop":{"name":"-stop","abstract":"

                                Cancels all file manager operations and deletes all associated data.

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)deleteRemoteFileWithName:completionHandler:":{"name":"-deleteRemoteFileWithName:completionHandler:","abstract":"

                                Delete a file stored on the remote system

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)deleteRemoteFilesWithNames:completionHandler:":{"name":"-deleteRemoteFilesWithNames:completionHandler:","abstract":"

                                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.

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)uploadFile:completionHandler:":{"name":"-uploadFile:completionHandler:","abstract":"

                                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.

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)uploadFiles:progressHandler:completionHandler:":{"name":"-uploadFiles:progressHandler:completionHandler:","abstract":"

                                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.

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(im)uploadFiles:completionHandler:":{"name":"-uploadFiles:completionHandler:","abstract":"

                                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.

                                ","parent_name":"SDLFileManager"},"Classes/SDLFileManager.html#/c:objc(cs)SDLFileManager(cm)temporaryFileDirectory":{"name":"+temporaryFileDirectory","abstract":"

                                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.

                                ","parent_name":"SDLFileManager"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)persistent":{"name":"persistent","abstract":"

                                Whether or not the file should persist on disk between car ignition cycles.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)overwrite":{"name":"overwrite","abstract":"

                                Whether or not the file should overwrite an existing file on the remote disk with the same name.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)name":{"name":"name","abstract":"

                                The name the file should be stored under on the remote disk. This is how the file will be referenced in all later calls.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)fileURL":{"name":"fileURL","abstract":"

                                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.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)data":{"name":"data","abstract":"

                                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.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)fileSize":{"name":"fileSize","abstract":"

                                The size of the binary data of the SDLFile.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)fileType":{"name":"fileType","abstract":"

                                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.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(py)inputStream":{"name":"inputStream","abstract":"

                                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.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(im)init":{"name":"-init","abstract":"

                                Undocumented

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(im)initWithFileURL:name:persistent:":{"name":"-initWithFileURL:name:persistent:","abstract":"

                                The designated initializer for an SDL File. The only major property that is not set using this is overwrite, which defaults to NO.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(cm)persistentFileAtFileURL:name:":{"name":"+persistentFileAtFileURL:name:","abstract":"

                                Create an SDL file using a local file URL.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(cm)fileAtFileURL:name:":{"name":"+fileAtFileURL:name:","abstract":"

                                Create an SDL file using a local file URL.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(im)initWithData:name:fileExtension:persistent:":{"name":"-initWithData:name:fileExtension:persistent:","abstract":"

                                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.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(cm)persistentFileWithData:name:fileExtension:":{"name":"+persistentFileWithData:name:fileExtension:","abstract":"

                                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.

                                ","parent_name":"SDLFile"},"Classes/SDLFile.html#/c:objc(cs)SDLFile(cm)fileWithData:name:fileExtension:":{"name":"+fileWithData:name:fileExtension:","abstract":"

                                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.

                                ","parent_name":"SDLFile"},"Classes/SDLEncodedSyncPData.html#/c:objc(cs)SDLEncodedSyncPData(py)data":{"name":"data","abstract":"

                                Undocumented

                                ","parent_name":"SDLEncodedSyncPData"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(py)emergencyEventType":{"name":"emergencyEventType","abstract":"

                                Undocumented

                                ","parent_name":"SDLEmergencyEvent"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(py)fuelCutoffStatus":{"name":"fuelCutoffStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLEmergencyEvent"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(py)rolloverEvent":{"name":"rolloverEvent","abstract":"

                                Undocumented

                                ","parent_name":"SDLEmergencyEvent"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(py)maximumChangeVelocity":{"name":"maximumChangeVelocity","abstract":"

                                Undocumented

                                ","parent_name":"SDLEmergencyEvent"},"Classes/SDLEmergencyEvent.html#/c:objc(cs)SDLEmergencyEvent(py)multipleEvents":{"name":"multipleEvents","abstract":"

                                Undocumented

                                ","parent_name":"SDLEmergencyEvent"},"Classes/SDLECallInfo.html#/c:objc(cs)SDLECallInfo(py)eCallNotificationStatus":{"name":"eCallNotificationStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLECallInfo"},"Classes/SDLECallInfo.html#/c:objc(cs)SDLECallInfo(py)auxECallNotificationStatus":{"name":"auxECallNotificationStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLECallInfo"},"Classes/SDLECallInfo.html#/c:objc(cs)SDLECallInfo(py)eCallConfirmationStatus":{"name":"eCallConfirmationStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLECallInfo"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)displayType":{"name":"displayType","abstract":"

                                @abstract The type of display

                                ","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)textFields":{"name":"textFields","abstract":"

                                @abstract An array of SDLTextField structures, each of which describes a field in the HMI which the application can write to using operations such as SDLShow, SDLSetMediaClockTimer, etc.

                                ","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)imageFields":{"name":"imageFields","abstract":"

                                @abstract An array of SDLImageField elements

                                ","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)mediaClockFormats":{"name":"mediaClockFormats","abstract":"

                                @abstract An array of SDLMediaClockFormat elements, defining the valid string formats used in specifying the contents of the media clock field

                                ","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)graphicSupported":{"name":"graphicSupported","abstract":"

                                @abstract The display’s persistent screen supports.

                                ","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)templatesAvailable":{"name":"templatesAvailable","abstract":"

                                @abstract Number of presets the screen supports

                                ","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)screenParams":{"name":"screenParams","abstract":"

                                @abstract A set of all parameters related to a prescribed screen area (e.g. for video / touch input)

                                ","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDisplayCapabilities.html#/c:objc(cs)SDLDisplayCapabilities(py)numCustomPresetsAvailable":{"name":"numCustomPresetsAvailable","abstract":"

                                @abstract The number of on-screen custom presets available (if any); otherwise omitted

                                ","parent_name":"SDLDisplayCapabilities"},"Classes/SDLDialNumber.html#/c:objc(cs)SDLDialNumber(im)initWithNumber:":{"name":"-initWithNumber:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDialNumber"},"Classes/SDLDialNumber.html#/c:objc(cs)SDLDialNumber(py)number":{"name":"number","abstract":"

                                Up to 40 character string representing the phone number. All characters stripped except for ‘0’-'9’, ’*’, ’#’, ’,’, ’;’, and ’+’

                                ","parent_name":"SDLDialNumber"},"Classes/SDLDiagnosticMessageResponse.html#/c:objc(cs)SDLDiagnosticMessageResponse(py)messageDataResult":{"name":"messageDataResult","abstract":"

                                Undocumented

                                ","parent_name":"SDLDiagnosticMessageResponse"},"Classes/SDLDiagnosticMessage.html#/c:objc(cs)SDLDiagnosticMessage(im)initWithTargetId:length:data:":{"name":"-initWithTargetId:length:data:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDiagnosticMessage"},"Classes/SDLDiagnosticMessage.html#/c:objc(cs)SDLDiagnosticMessage(py)targetID":{"name":"targetID","abstract":"

                                Name of target ECU

                                ","parent_name":"SDLDiagnosticMessage"},"Classes/SDLDiagnosticMessage.html#/c:objc(cs)SDLDiagnosticMessage(py)messageLength":{"name":"messageLength","abstract":"

                                Length of message (in bytes)

                                ","parent_name":"SDLDiagnosticMessage"},"Classes/SDLDiagnosticMessage.html#/c:objc(cs)SDLDiagnosticMessage(py)messageData":{"name":"messageData","abstract":"

                                Array of bytes comprising CAN message.

                                ","parent_name":"SDLDiagnosticMessage"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)voiceRecOn":{"name":"voiceRecOn","abstract":"

                                @abstract Indicates whether the voice recognition is on or off

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)btIconOn":{"name":"btIconOn","abstract":"

                                @abstract Indicates whether the bluetooth connection established

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)callActive":{"name":"callActive","abstract":"

                                @abstract Indicates whether a call is being active

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)phoneRoaming":{"name":"phoneRoaming","abstract":"

                                @abstract Indicates whether the phone is in roaming mode

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)textMsgAvailable":{"name":"textMsgAvailable","abstract":"

                                @abstract Indicates whether a textmessage is available

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)battLevelStatus":{"name":"battLevelStatus","abstract":"

                                @abstract Battery level status

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)stereoAudioOutputMuted":{"name":"stereoAudioOutputMuted","abstract":"

                                @abstract The status of the stereo audio output channel

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)monoAudioOutputMuted":{"name":"monoAudioOutputMuted","abstract":"

                                @abstract The status of the mono audio output channel

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)signalLevelStatus":{"name":"signalLevelStatus","abstract":"

                                @abstract Signal level status

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)primaryAudioSource":{"name":"primaryAudioSource","abstract":"

                                @abstract The current primary audio source of SDL (if selected).

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceStatus.html#/c:objc(cs)SDLDeviceStatus(py)eCallEventActive":{"name":"eCallEventActive","abstract":"

                                @abstract Indicates if an emergency call is active

                                ","parent_name":"SDLDeviceStatus"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(cm)currentDevice":{"name":"+currentDevice","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)hardware":{"name":"hardware","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)firmwareRev":{"name":"firmwareRev","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)os":{"name":"os","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)osVersion":{"name":"osVersion","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)carrier":{"name":"carrier","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeviceInfo"},"Classes/SDLDeviceInfo.html#/c:objc(cs)SDLDeviceInfo(py)maxNumberRFCOMMPorts":{"name":"maxNumberRFCOMMPorts","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeviceInfo"},"Classes/SDLDeleteSubMenu.html#/c:objc(cs)SDLDeleteSubMenu(im)initWithId:":{"name":"-initWithId:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeleteSubMenu"},"Classes/SDLDeleteSubMenu.html#/c:objc(cs)SDLDeleteSubMenu(py)menuID":{"name":"menuID","abstract":"

                                @abstract the MenuID that identifies the SDLSubMenu to be delete","parent_name":"SDLDeleteSubMenu"},"Classes/SDLDeleteInteractionChoiceSet.html#/c:objc(cs)SDLDeleteInteractionChoiceSet(im)initWithId:":{"name":"-initWithId:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeleteInteractionChoiceSet"},"Classes/SDLDeleteInteractionChoiceSet.html#/c:objc(cs)SDLDeleteInteractionChoiceSet(py)interactionChoiceSetID":{"name":"interactionChoiceSetID","abstract":"

                                @abstract a unique ID that identifies the Choice Set","parent_name":"SDLDeleteInteractionChoiceSet"},"Classes/SDLDeleteFileResponse.html#/c:objc(cs)SDLDeleteFileResponse(py)spaceAvailable":{"name":"spaceAvailable","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeleteFileResponse"},"Classes/SDLDeleteFile.html#/c:objc(cs)SDLDeleteFile(im)initWithFileName:":{"name":"-initWithFileName:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeleteFile"},"Classes/SDLDeleteFile.html#/c:objc(cs)SDLDeleteFile(py)syncFileName":{"name":"syncFileName","abstract":"

                                @abstract a file reference name","parent_name":"SDLDeleteFile"},"Classes/SDLDeleteCommand.html#/c:objc(cs)SDLDeleteCommand(im)initWithId:":{"name":"-initWithId:","abstract":"

                                Undocumented

                                ","parent_name":"SDLDeleteCommand"},"Classes/SDLDeleteCommand.html#/c:objc(cs)SDLDeleteCommand(py)cmdID":{"name":"cmdID","abstract":"

                                @abstract 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":"

                                Undocumented

                                ","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(im)initWithHour:minute:second:millisecond:":{"name":"-initWithHour:minute:second:millisecond:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)millisecond":{"name":"millisecond","abstract":"

                                @abstract Milliseconds part of time

                                ","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)second":{"name":"second","abstract":"

                                @abstract Seconds part of time

                                ","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)minute":{"name":"minute","abstract":"

                                @abstract Minutes part of time

                                ","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)hour":{"name":"hour","abstract":"

                                @abstract Hour part of time

                                ","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)day":{"name":"day","abstract":"

                                @abstract Day of the month

                                ","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)month":{"name":"month","abstract":"

                                @abstract Month of the year

                                ","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)year":{"name":"year","abstract":"

                                @abstract The year in YYYY format

                                ","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)timezoneMinuteOffset":{"name":"timezoneMinuteOffset","abstract":"

                                @abstract Time zone offset in Min with regard to UTC

                                ","parent_name":"SDLDateTime"},"Classes/SDLDateTime.html#/c:objc(cs)SDLDateTime(py)timezoneHourOffset":{"name":"timezoneHourOffset","abstract":"

                                @abstract Time zone offset in Hours with regard to UTC

                                ","parent_name":"SDLDateTime"},"Classes/SDLDIDResult.html#/c:objc(cs)SDLDIDResult(py)resultCode":{"name":"resultCode","abstract":"

                                Undocumented

                                ","parent_name":"SDLDIDResult"},"Classes/SDLDIDResult.html#/c:objc(cs)SDLDIDResult(py)didLocation":{"name":"didLocation","abstract":"

                                Undocumented

                                ","parent_name":"SDLDIDResult"},"Classes/SDLDIDResult.html#/c:objc(cs)SDLDIDResult(py)data":{"name":"data","abstract":"

                                Undocumented

                                ","parent_name":"SDLDIDResult"},"Classes/SDLCreateInteractionChoiceSet.html#/c:objc(cs)SDLCreateInteractionChoiceSet(im)initWithId:choiceSet:":{"name":"-initWithId:choiceSet:","abstract":"

                                Undocumented

                                ","parent_name":"SDLCreateInteractionChoiceSet"},"Classes/SDLCreateInteractionChoiceSet.html#/c:objc(cs)SDLCreateInteractionChoiceSet(py)interactionChoiceSetID":{"name":"interactionChoiceSetID","abstract":"

                                @abstract A unique ID that identifies the Choice Set

                                ","parent_name":"SDLCreateInteractionChoiceSet"},"Classes/SDLCreateInteractionChoiceSet.html#/c:objc(cs)SDLCreateInteractionChoiceSet(py)choiceSet":{"name":"choiceSet","abstract":"

                                @abstract Array of choices, which the user can select by menu or voice recognition

                                ","parent_name":"SDLCreateInteractionChoiceSet"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(py)lifecycleConfig":{"name":"lifecycleConfig","abstract":"

                                The lifecycle configuration.

                                ","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(py)lockScreenConfig":{"name":"lockScreenConfig","abstract":"

                                The lock screen configuration.

                                ","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(py)loggingConfig":{"name":"loggingConfig","abstract":"

                                The log configuration.

                                ","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(py)streamingMediaConfig":{"name":"streamingMediaConfig","abstract":"

                                The configuration

                                ","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(im)initWithLifecycle:lockScreen:logging:":{"name":"-initWithLifecycle:lockScreen:logging:","abstract":"

                                Create a new configuration to be passed into SDLManager with a custom lifecycle, lock screen, and logging configuration.

                                ","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(cm)configurationWithLifecycle:lockScreen:logging:":{"name":"+configurationWithLifecycle:lockScreen:logging:","abstract":"

                                Create a new configuration to be passed into SDLManager with a custom lifecycle, lock screen, and logging configuration.

                                ","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(im)initWithLifecycle:lockScreen:logging:streamingMedia:":{"name":"-initWithLifecycle:lockScreen:logging:streamingMedia:","abstract":"

                                Create a new configuration to be passed into SDLManager with a custom lifecycle, lock screen, logging, and streaming media configuration.

                                ","parent_name":"SDLConfiguration"},"Classes/SDLConfiguration.html#/c:objc(cs)SDLConfiguration(cm)configurationWithLifecycle:lockScreen:logging:streamingMedia:":{"name":"+configurationWithLifecycle:lockScreen:logging:streamingMedia:","abstract":"

                                Create a new configuration to be passed into SDLManager with a custom lifecycle, lock screen, logging, and streaming media configuration.

                                ","parent_name":"SDLConfiguration"},"Classes/SDLClusterModeStatus.html#/c:objc(cs)SDLClusterModeStatus(py)powerModeActive":{"name":"powerModeActive","abstract":"

                                Undocumented

                                ","parent_name":"SDLClusterModeStatus"},"Classes/SDLClusterModeStatus.html#/c:objc(cs)SDLClusterModeStatus(py)powerModeQualificationStatus":{"name":"powerModeQualificationStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLClusterModeStatus"},"Classes/SDLClusterModeStatus.html#/c:objc(cs)SDLClusterModeStatus(py)carModeStatus":{"name":"carModeStatus","abstract":"

                                Undocumented

                                ","parent_name":"SDLClusterModeStatus"},"Classes/SDLClusterModeStatus.html#/c:objc(cs)SDLClusterModeStatus(py)powerModeStatus":{"name":"powerModeStatus","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)fanSpeed":{"name":"fanSpeed","abstract":"

                                @abstract Speed of Fan in integer

                                ","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)currentTemperature":{"name":"currentTemperature","abstract":"

                                @abstract The Current Temperature in SDLTemperature

                                ","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)desiredTemperature":{"name":"desiredTemperature","abstract":"

                                @abstract Desired Temperature in SDLTemperature

                                ","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)acEnable":{"name":"acEnable","abstract":"

                                @abstract Represents if AC is enabled.

                                ","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)circulateAirEnable":{"name":"circulateAirEnable","abstract":"

                                @abstract Represents if circulation of air is enabled.

                                ","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)autoModeEnable":{"name":"autoModeEnable","abstract":"

                                @abstract Represents if auto mode is enabled.

                                ","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)defrostZone":{"name":"defrostZone","abstract":"

                                @abstract Represents the kind of defrost zone

                                ","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)dualModeEnable":{"name":"dualModeEnable","abstract":"

                                @abstract Represents if dual mode is enabled.

                                ","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)acMaxEnable":{"name":"acMaxEnable","abstract":"

                                @abstract Represents if ac max is enabled.

                                ","parent_name":"SDLClimateControlData"},"Classes/SDLClimateControlData.html#/c:objc(cs)SDLClimateControlData(py)ventilationMode":{"name":"ventilationMode","abstract":"

                                @abstract Represents the kind of Ventilation zone

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)moduleName":{"name":"moduleName","abstract":"

                                @abstract The short friendly name of the climate control module.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)fanSpeedAvailable":{"name":"fanSpeedAvailable","abstract":"

                                @abstract Availability of the control of fan speed.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)desiredTemperatureAvailable":{"name":"desiredTemperatureAvailable","abstract":"

                                @abstract Availability of the control of desired temperature.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)acEnableAvailable":{"name":"acEnableAvailable","abstract":"

                                @abstract Availability of the control of turn on/off AC.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)acMaxEnableAvailable":{"name":"acMaxEnableAvailable","abstract":"

                                @abstract 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":"

                                @abstract 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":"

                                @abstract Availability of the control of enable/disable auto mode.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)dualModeEnableAvailable":{"name":"dualModeEnableAvailable","abstract":"

                                @abstract Availability of the control of enable/disable dual mode.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)defrostZoneAvailable":{"name":"defrostZoneAvailable","abstract":"

                                @abstract Availability of the control of defrost zones.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)defrostZone":{"name":"defrostZone","abstract":"

                                @abstract A set of all defrost zones that are controllable.

                                ","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)ventilationModeAvailable":{"name":"ventilationModeAvailable","abstract":"

                                @abstract Availability of the control of air ventilation mode.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLClimateControlCapabilities.html#/c:objc(cs)SDLClimateControlCapabilities(py)ventilationMode":{"name":"ventilationMode","abstract":"

                                @abstract A set of all ventilation modes that are controllable.","parent_name":"SDLClimateControlCapabilities"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(im)initWithId:menuName:vrCommands:":{"name":"-initWithId:menuName:vrCommands:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)choiceID":{"name":"choiceID","abstract":"

                                @abstract the application-scoped identifier that uniquely identifies this choice

                                ","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)menuName":{"name":"menuName","abstract":"

                                @abstract Text which appears in menu, representing this choice

                                ","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)vrCommands":{"name":"vrCommands","abstract":"

                                @abstract VR synonyms for this choice

                                ","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)image":{"name":"image","abstract":"

                                @abstract The image of the choice

                                ","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)secondaryText":{"name":"secondaryText","abstract":"

                                @abstract Optional secondary text to display; e.g. address of POI in a search result entry

                                ","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)tertiaryText":{"name":"tertiaryText","abstract":"

                                @abstract Optional tertiary text to display; e.g. distance to POI for a search result entry

                                ","parent_name":"SDLChoice"},"Classes/SDLChoice.html#/c:objc(cs)SDLChoice(py)secondaryImage":{"name":"secondaryImage","abstract":"

                                @abstract Optional secondary image for choice

                                ","parent_name":"SDLChoice"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(im)initWithLanguage:hmiDisplayLanguage:":{"name":"-initWithLanguage:hmiDisplayLanguage:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)language":{"name":"language","abstract":"

                                @abstract The language the app wants to change to

                                ","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)hmiDisplayLanguage":{"name":"hmiDisplayLanguage","abstract":"

                                @abstract HMI display language

                                ","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)appName":{"name":"appName","abstract":"

                                Request a new app name registration

                                ","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)ttsName":{"name":"ttsName","abstract":"

                                Request a new TTSName registration.

                                ","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)ngnMediaScreenAppName":{"name":"ngnMediaScreenAppName","abstract":"

                                Request a new app short name registration

                                ","parent_name":"SDLChangeRegistration"},"Classes/SDLChangeRegistration.html#/c:objc(cs)SDLChangeRegistration(py)vrSynonyms":{"name":"vrSynonyms","abstract":"

                                Request a new VR synonyms registration

                                ","parent_name":"SDLChangeRegistration"},"Classes/SDLButtonPress.html#/c:objc(cs)SDLButtonPress(im)initWithButtonName:moduleType:":{"name":"-initWithButtonName:moduleType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLButtonPress"},"Classes/SDLButtonPress.html#/c:objc(cs)SDLButtonPress(py)moduleType":{"name":"moduleType","abstract":"

                                The module where the button should be pressed.

                                ","parent_name":"SDLButtonPress"},"Classes/SDLButtonPress.html#/c:objc(cs)SDLButtonPress(py)buttonName":{"name":"buttonName","abstract":"

                                The name of supported RC climate or radio button.

                                ","parent_name":"SDLButtonPress"},"Classes/SDLButtonPress.html#/c:objc(cs)SDLButtonPress(py)buttonPressMode":{"name":"buttonPressMode","abstract":"

                                Indicates whether this is a LONG or SHORT button press event.

                                ","parent_name":"SDLButtonPress"},"Classes/SDLButtonCapabilities.html#/c:objc(cs)SDLButtonCapabilities(py)name":{"name":"name","abstract":"

                                @abstract The name of the SDL HMI button.

                                ","parent_name":"SDLButtonCapabilities"},"Classes/SDLButtonCapabilities.html#/c:objc(cs)SDLButtonCapabilities(py)shortPressAvailable":{"name":"shortPressAvailable","abstract":"

                                @abstract A NSNumber value indicates whether the button supports a SHORT press

                                ","parent_name":"SDLButtonCapabilities"},"Classes/SDLButtonCapabilities.html#/c:objc(cs)SDLButtonCapabilities(py)longPressAvailable":{"name":"longPressAvailable","abstract":"

                                @abstract A NSNumber value indicates whether the button supports a LONG press

                                ","parent_name":"SDLButtonCapabilities"},"Classes/SDLButtonCapabilities.html#/c:objc(cs)SDLButtonCapabilities(py)upDownAvailable":{"name":"upDownAvailable","abstract":"

                                @abstract A NSNumber value indicates whether the button supports button down and button up

                                ","parent_name":"SDLButtonCapabilities"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)parkBrakeActive":{"name":"parkBrakeActive","abstract":"

                                @abstract References signal PrkBrkActv_B_Actl.

                                ","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)ignitionStableStatus":{"name":"ignitionStableStatus","abstract":"

                                @abstract References signal Ignition_Switch_Stable. See IgnitionStableStatus.

                                ","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)ignitionStatus":{"name":"ignitionStatus","abstract":"

                                @abstract References signal Ignition_status. See IgnitionStatus.

                                ","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)driverDoorAjar":{"name":"driverDoorAjar","abstract":"

                                @abstract References signal DrStatDrv_B_Actl.

                                ","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)passengerDoorAjar":{"name":"passengerDoorAjar","abstract":"

                                @abstract References signal DrStatPsngr_B_Actl.

                                ","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)rearLeftDoorAjar":{"name":"rearLeftDoorAjar","abstract":"

                                @abstract References signal DrStatRl_B_Actl.

                                ","parent_name":"SDLBodyInformation"},"Classes/SDLBodyInformation.html#/c:objc(cs)SDLBodyInformation(py)rearRightDoorAjar":{"name":"rearRightDoorAjar","abstract":"

                                @abstract References signal DrStatRr_B_Actl.

                                ","parent_name":"SDLBodyInformation"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)driverBeltDeployed":{"name":"driverBeltDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)passengerBeltDeployed":{"name":"passengerBeltDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)passengerBuckleBelted":{"name":"passengerBuckleBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)driverBuckleBelted":{"name":"driverBuckleBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)leftRow2BuckleBelted":{"name":"leftRow2BuckleBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)passengerChildDetected":{"name":"passengerChildDetected","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)rightRow2BuckleBelted":{"name":"rightRow2BuckleBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)middleRow2BuckleBelted":{"name":"middleRow2BuckleBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)middleRow3BuckleBelted":{"name":"middleRow3BuckleBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)leftRow3BuckleBelted":{"name":"leftRow3BuckleBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)rightRow3BuckleBelted":{"name":"rightRow3BuckleBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)leftRearInflatableBelted":{"name":"leftRearInflatableBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)rightRearInflatableBelted":{"name":"rightRearInflatableBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)middleRow1BeltDeployed":{"name":"middleRow1BeltDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLBeltStatus.html#/c:objc(cs)SDLBeltStatus(py)middleRow1BuckleBelted":{"name":"middleRow1BuckleBelted","abstract":"

                                Undocumented

                                ","parent_name":"SDLBeltStatus"},"Classes/SDLAudioPassThruCapabilities.html#/c:objc(cs)SDLAudioPassThruCapabilities(py)samplingRate":{"name":"samplingRate","abstract":"

                                @abstract The sampling rate for AudioPassThru

                                ","parent_name":"SDLAudioPassThruCapabilities"},"Classes/SDLAudioPassThruCapabilities.html#/c:objc(cs)SDLAudioPassThruCapabilities(py)bitsPerSample":{"name":"bitsPerSample","abstract":"

                                @abstract The sample depth in bit for AudioPassThru

                                ","parent_name":"SDLAudioPassThruCapabilities"},"Classes/SDLAudioPassThruCapabilities.html#/c:objc(cs)SDLAudioPassThruCapabilities(py)audioType":{"name":"audioType","abstract":"

                                @abstract The audiotype for AudioPassThru

                                ","parent_name":"SDLAudioPassThruCapabilities"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(cm)artworkWithImage:name:asImageFormat:":{"name":"+artworkWithImage:name:asImageFormat:","abstract":"

                                Convenience Helper to create an ephemeral artwork from an image.

                                ","parent_name":"SDLArtwork"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(cm)persistentArtworkWithImage:name:asImageFormat:":{"name":"+persistentArtworkWithImage:name:asImageFormat:","abstract":"

                                Convenience Helper to create a persistent artwork from an image.

                                ","parent_name":"SDLArtwork"},"Classes/SDLArtwork.html#/c:objc(cs)SDLArtwork(im)initWithImage:name:persistent:asImageFormat:":{"name":"-initWithImage:name:persistent:asImageFormat:","abstract":"

                                Create a file for transmission to the remote system from a UIImage.

                                ","parent_name":"SDLArtwork"},"Classes/SDLAppInfo.html#/c:objc(cs)SDLAppInfo(cm)currentAppInfo":{"name":"+currentAppInfo","abstract":"

                                Undocumented

                                ","parent_name":"SDLAppInfo"},"Classes/SDLAppInfo.html#/c:objc(cs)SDLAppInfo(py)appDisplayName":{"name":"appDisplayName","abstract":"

                                Undocumented

                                ","parent_name":"SDLAppInfo"},"Classes/SDLAppInfo.html#/c:objc(cs)SDLAppInfo(py)appBundleID":{"name":"appBundleID","abstract":"

                                Undocumented

                                ","parent_name":"SDLAppInfo"},"Classes/SDLAppInfo.html#/c:objc(cs)SDLAppInfo(py)appVersion":{"name":"appVersion","abstract":"

                                Undocumented

                                ","parent_name":"SDLAppInfo"},"Classes/SDLAlertResponse.html#/c:objc(cs)SDLAlertResponse(py)tryAgainTime":{"name":"tryAgainTime","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlertResponse"},"Classes/SDLAlertManeuver.html#/c:objc(cs)SDLAlertManeuver(im)initWithTTS:softButtons:":{"name":"-initWithTTS:softButtons:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlertManeuver"},"Classes/SDLAlertManeuver.html#/c:objc(cs)SDLAlertManeuver(im)initWithTTSChunks:softButtons:":{"name":"-initWithTTSChunks:softButtons:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlertManeuver"},"Classes/SDLAlertManeuver.html#/c:objc(cs)SDLAlertManeuver(py)ttsChunks":{"name":"ttsChunks","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlertManeuver"},"Classes/SDLAlertManeuver.html#/c:objc(cs)SDLAlertManeuver(py)softButtons":{"name":"softButtons","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlertManeuver"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithAlertText1:alertText2:duration:":{"name":"-initWithAlertText1:alertText2:duration:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithAlertText1:alertText2:alertText3:":{"name":"-initWithAlertText1:alertText2:alertText3:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithAlertText1:alertText2:alertText3:duration:":{"name":"-initWithAlertText1:alertText2:alertText3:duration:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithAlertText1:alertText2:alertText3:duration:softButtons:":{"name":"-initWithAlertText1:alertText2:alertText3:duration:softButtons:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithTTS:playTone:":{"name":"-initWithTTS:playTone:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithTTS:alertText1:alertText2:playTone:duration:":{"name":"-initWithTTS:alertText1:alertText2:playTone:duration:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(im)initWithTTSChunks:playTone:":{"name":"-initWithTTSChunks:playTone:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)alertText1":{"name":"alertText1","abstract":"

                                @abstract The String to be displayed in the first field of the display during the Alert

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)alertText2":{"name":"alertText2","abstract":"

                                @abstract The String to be displayed in the second field of the display during the Alert

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)alertText3":{"name":"alertText3","abstract":"

                                @abstract 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":"

                                @abstract An array which, taken together, specify what is to be spoken to the user

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)duration":{"name":"duration","abstract":"

                                @abstract The duration of the displayed portion of the alert, in milliseconds.

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)playTone":{"name":"playTone","abstract":"

                                @abstract Whether the alert tone should be played before the TTS (if any) is spoken.

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)progressIndicator":{"name":"progressIndicator","abstract":"

                                @abstract 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.

                                ","parent_name":"SDLAlert"},"Classes/SDLAlert.html#/c:objc(cs)SDLAlert(py)softButtons":{"name":"softButtons","abstract":"

                                @abstract App defined SoftButtons.

                                ","parent_name":"SDLAlert"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)driverAirbagDeployed":{"name":"driverAirbagDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)driverSideAirbagDeployed":{"name":"driverSideAirbagDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)driverCurtainAirbagDeployed":{"name":"driverCurtainAirbagDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)passengerAirbagDeployed":{"name":"passengerAirbagDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)passengerCurtainAirbagDeployed":{"name":"passengerCurtainAirbagDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)driverKneeAirbagDeployed":{"name":"driverKneeAirbagDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)passengerSideAirbagDeployed":{"name":"passengerSideAirbagDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLAirbagStatus"},"Classes/SDLAirbagStatus.html#/c:objc(cs)SDLAirbagStatus(py)passengerKneeAirbagDeployed":{"name":"passengerKneeAirbagDeployed","abstract":"

                                Undocumented

                                ","parent_name":"SDLAirbagStatus"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(im)initWithId:menuName:":{"name":"-initWithId:menuName:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(im)initWithId:menuName:position:":{"name":"-initWithId:menuName:position:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(py)menuID":{"name":"menuID","abstract":"

                                @abstract a Menu ID that identifies a sub menu","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(py)position":{"name":"position","abstract":"

                                @abstract a position of menu","parent_name":"SDLAddSubMenu"},"Classes/SDLAddSubMenu.html#/c:objc(cs)SDLAddSubMenu(py)menuName":{"name":"menuName","abstract":"

                                @abstract a menuName which is displayed representing this submenu item","parent_name":"SDLAddSubMenu"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(im)initWithHandler:":{"name":"-initWithHandler:","abstract":"

                                Construct a SDLAddCommand with a handler callback when an event occurs.

                                ","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(im)initWithId:vrCommands:handler:":{"name":"-initWithId:vrCommands:handler:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(im)initWithId:vrCommands:menuName:handler:":{"name":"-initWithId:vrCommands:menuName:handler:","abstract":"

                                Undocumented

                                ","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":"

                                Undocumented

                                ","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(py)handler":{"name":"handler","abstract":"

                                A handler that will let you know when the button you created is subscribed.

                                ","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(py)cmdID":{"name":"cmdID","abstract":"

                                @abstract A Unique Command ID that identifies the command

                                ","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(py)menuParams":{"name":"menuParams","abstract":"

                                @abstract a SDLMenuParams pointer which will defined the command and how it is added to the Command Menu

                                ","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(py)vrCommands":{"name":"vrCommands","abstract":"

                                @abstract An array of strings to be used as VR synonyms for this command.

                                ","parent_name":"SDLAddCommand"},"Classes/SDLAddCommand.html#/c:objc(cs)SDLAddCommand(py)cmdIcon":{"name":"cmdIcon","abstract":"

                                @abstract Image struct containing a static or dynamic icon

                                ","parent_name":"SDLAddCommand"},"Classes/SDLAbstractTransport.html#/c:objc(cs)SDLAbstractTransport(py)delegate":{"name":"delegate","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractTransport"},"Classes/SDLAbstractTransport.html#/c:objc(cs)SDLAbstractTransport(py)debugConsoleGroupName":{"name":"debugConsoleGroupName","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractTransport"},"Classes/SDLAbstractTransport.html#/c:objc(cs)SDLAbstractTransport(im)connect":{"name":"-connect","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractTransport"},"Classes/SDLAbstractTransport.html#/c:objc(cs)SDLAbstractTransport(im)disconnect":{"name":"-disconnect","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractTransport"},"Classes/SDLAbstractTransport.html#/c:objc(cs)SDLAbstractTransport(im)sendData:":{"name":"-sendData:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractTransport"},"Classes/SDLAbstractTransport.html#/c:objc(cs)SDLAbstractTransport(im)retryDelay":{"name":"-retryDelay","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractTransport"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(py)debugConsoleGroupName":{"name":"debugConsoleGroupName","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(py)transport":{"name":"transport","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(py)protocolDelegateTable":{"name":"protocolDelegateTable","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(py)securityManager":{"name":"securityManager","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(py)appId":{"name":"appId","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)startServiceWithType:payload:":{"name":"-startServiceWithType:payload:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)startSecureServiceWithType:payload:completionHandler:":{"name":"-startSecureServiceWithType:payload:completionHandler:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)endServiceWithType:":{"name":"-endServiceWithType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)sendRPC:":{"name":"-sendRPC:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)sendRPC:encrypted:error:":{"name":"-sendRPC:encrypted:error:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)sendRawData:withServiceType:":{"name":"-sendRawData:withServiceType:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)sendEncryptedRawData:onService:":{"name":"-sendEncryptedRawData:onService:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html#/c:objc(cs)SDLAbstractProtocol(im)handleBytesFromTransport:":{"name":"-handleBytesFromTransport:","abstract":"

                                Undocumented

                                ","parent_name":"SDLAbstractProtocol"},"Classes/SDLAbstractProtocol.html":{"name":"SDLAbstractProtocol","abstract":"

                                Undocumented

                                "},"Classes/SDLAbstractTransport.html":{"name":"SDLAbstractTransport","abstract":"

                                Undocumented

                                "},"Classes/SDLAddCommand.html":{"name":"SDLAddCommand","abstract":"

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

                                "},"Classes.html#/c:objc(cs)SDLAddCommandResponse":{"name":"SDLAddCommandResponse","abstract":"

                                SDLAddCommandResponse is sent, when SDLAddCommand has been called

                                "},"Classes/SDLAddSubMenu.html":{"name":"SDLAddSubMenu","abstract":"

                                Add a SDLSubMenu to the Command Menu"},"Classes.html#/c:objc(cs)SDLAddSubMenuResponse":{"name":"SDLAddSubMenuResponse","abstract":"

                                SDLAddSubMenuResponse is sent, when SDLAddSubMenu has been called"},"Classes/SDLAirbagStatus.html":{"name":"SDLAirbagStatus","abstract":"

                                Undocumented

                                "},"Classes/SDLAlert.html":{"name":"SDLAlert","abstract":"

                                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.

                                "},"Classes/SDLAlertManeuver.html":{"name":"SDLAlertManeuver","abstract":"

                                @since SmartDeviceLink 1.0

                                "},"Classes.html#/c:objc(cs)SDLAlertManeuverResponse":{"name":"SDLAlertManeuverResponse","abstract":"

                                SDLAlertManeuverResponse is sent, when SDLAlertManeuver has been called.

                                "},"Classes/SDLAlertResponse.html":{"name":"SDLAlertResponse","abstract":"

                                Sent after SDLAlert has been sent"},"Classes/SDLAppInfo.html":{"name":"SDLAppInfo","abstract":"

                                Undocumented

                                "},"Classes/SDLArtwork.html":{"name":"SDLArtwork","abstract":"

                                Undocumented

                                "},"Classes/SDLAudioPassThruCapabilities.html":{"name":"SDLAudioPassThruCapabilities","abstract":"

                                Describes different audio type configurations for SDLPerformAudioPassThru, e.g. {8kHz,8-bit,PCM}"},"Classes/SDLBeltStatus.html":{"name":"SDLBeltStatus","abstract":"

                                Undocumented

                                "},"Classes/SDLBodyInformation.html":{"name":"SDLBodyInformation","abstract":"

                                The body information including power modes.

                                "},"Classes/SDLButtonCapabilities.html":{"name":"SDLButtonCapabilities","abstract":"

                                Provides information about the capabilities of a SDL HMI button.

                                "},"Classes/SDLButtonPress.html":{"name":"SDLButtonPress","abstract":"

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

                                "},"Classes.html#/c:objc(cs)SDLButtonPressResponse":{"name":"SDLButtonPressResponse","abstract":"

                                Undocumented

                                "},"Classes/SDLChangeRegistration.html":{"name":"SDLChangeRegistration","abstract":"

                                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.

                                "},"Classes.html#/c:objc(cs)SDLChangeRegistrationResponse":{"name":"SDLChangeRegistrationResponse","abstract":"

                                SDLChangeRegistrationResponse is sent, when SDLChangeRegistration has been called

                                "},"Classes/SDLChoice.html":{"name":"SDLChoice","abstract":"

                                A choice is an option which a user can select either via the menu or via voice recognition (VR) during an application initiated interaction."},"Classes/SDLClimateControlCapabilities.html":{"name":"SDLClimateControlCapabilities","abstract":"

                                Contains information about a climate control module’s capabilities.

                                "},"Classes/SDLClimateControlData.html":{"name":"SDLClimateControlData","abstract":"

                                Undocumented

                                "},"Classes/SDLClusterModeStatus.html":{"name":"SDLClusterModeStatus","abstract":"

                                Undocumented

                                "},"Classes/SDLConfiguration.html":{"name":"SDLConfiguration","abstract":"

                                Undocumented

                                "},"Classes/SDLCreateInteractionChoiceSet.html":{"name":"SDLCreateInteractionChoiceSet","abstract":"

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

                                "},"Classes.html#/c:objc(cs)SDLCreateInteractionChoiceSetResponse":{"name":"SDLCreateInteractionChoiceSetResponse","abstract":"

                                SDLCreateInteractionChoiceSetResponse is sent, when SDLCreateInteractionChoiceSet"},"Classes/SDLDIDResult.html":{"name":"SDLDIDResult","abstract":"

                                Undocumented

                                "},"Classes/SDLDateTime.html":{"name":"SDLDateTime","abstract":"

                                Undocumented

                                "},"Classes/SDLDeleteCommand.html":{"name":"SDLDeleteCommand","abstract":"

                                Removes a command from the Command Menu"},"Classes.html#/c:objc(cs)SDLDeleteCommandResponse":{"name":"SDLDeleteCommandResponse","abstract":"

                                SDLDeleteCommandResponse is sent, when SDLDeleteCommand has been called

                                "},"Classes/SDLDeleteFile.html":{"name":"SDLDeleteFile","abstract":"

                                Used to delete a file resident on the SDL module in the app’s local cache."},"Classes/SDLDeleteFileResponse.html":{"name":"SDLDeleteFileResponse","abstract":"

                                Delete File Response is sent, when DeleteFile has been called

                                "},"Classes/SDLDeleteInteractionChoiceSet.html":{"name":"SDLDeleteInteractionChoiceSet","abstract":"

                                Deletes an existing Choice Set identified by the parameter"},"Classes.html#/c:objc(cs)SDLDeleteInteractionChoiceSetResponse":{"name":"SDLDeleteInteractionChoiceSetResponse","abstract":"

                                SDLDeleteInteractionChoiceSetResponse is sent, when SDLDeleteInteractionChoiceSet has been called

                                "},"Classes/SDLDeleteSubMenu.html":{"name":"SDLDeleteSubMenu","abstract":"

                                Deletes a submenu from the Command Menu"},"Classes.html#/c:objc(cs)SDLDeleteSubMenuResponse":{"name":"SDLDeleteSubMenuResponse","abstract":"

                                SDLDeleteSubMenuResponse is sent, when SDLDeleteSubMenu has been called

                                "},"Classes/SDLDeviceInfo.html":{"name":"SDLDeviceInfo","abstract":"

                                Undocumented

                                "},"Classes/SDLDeviceStatus.html":{"name":"SDLDeviceStatus","abstract":"

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

                                "},"Classes/SDLDiagnosticMessage.html":{"name":"SDLDiagnosticMessage","abstract":"

                                Non periodic vehicle diagnostic request

                                "},"Classes/SDLDiagnosticMessageResponse.html":{"name":"SDLDiagnosticMessageResponse","abstract":"

                                SDLDiagnosticMessageResponse is sent, when SDLDiagnosticMessage has been called.

                                "},"Classes/SDLDialNumber.html":{"name":"SDLDialNumber","abstract":"

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

                                "},"Classes.html#/c:objc(cs)SDLDialNumberResponse":{"name":"SDLDialNumberResponse","abstract":"

                                Indicates the result, success, or failure of the SDLDialNumber request.

                                "},"Classes/SDLDisplayCapabilities.html":{"name":"SDLDisplayCapabilities","abstract":"

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

                                "},"Classes/SDLECallInfo.html":{"name":"SDLECallInfo","abstract":"

                                Undocumented

                                "},"Classes/SDLEmergencyEvent.html":{"name":"SDLEmergencyEvent","abstract":"

                                Undocumented

                                "},"Classes/SDLEncodedSyncPData.html":{"name":"SDLEncodedSyncPData","abstract":"

                                Undocumented

                                "},"Classes.html#/c:objc(cs)SDLEncodedSyncPDataResponse":{"name":"SDLEncodedSyncPDataResponse","abstract":"

                                Undocumented

                                "},"Classes.html#/c:objc(cs)SDLEndAudioPassThru":{"name":"SDLEndAudioPassThru","abstract":"

                                When this request is invoked, the audio capture stops

                                "},"Classes.html#/c:objc(cs)SDLEndAudioPassThruResponse":{"name":"SDLEndAudioPassThruResponse","abstract":"

                                SDLEndAudioPassThruResponse is sent, when SDLEndAudioPassThru has been called

                                "},"Classes/SDLFile.html":{"name":"SDLFile","abstract":"

                                Undocumented

                                "},"Classes/SDLFileManager.html":{"name":"SDLFileManager","abstract":"

                                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.

                                "},"Classes/SDLGPSData.html":{"name":"SDLGPSData","abstract":"

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

                                "},"Classes.html#/c:objc(cs)SDLGenericResponse":{"name":"SDLGenericResponse","abstract":"

                                Generic Response is sent, when the name of a received msg cannot be"},"Classes/SDLGetDTCs.html":{"name":"SDLGetDTCs","abstract":"

                                This RPC allows to request diagnostic module trouble codes from a certain"},"Classes/SDLGetDTCsResponse.html":{"name":"SDLGetDTCsResponse","abstract":"

                                SDLGetDTCsResponse is sent, when SDLGetDTCs has been called

                                "},"Classes/SDLGetInteriorVehicleData.html":{"name":"SDLGetInteriorVehicleData","abstract":"

                                Reads the current status value of specified remote control module (type)."},"Classes/SDLGetInteriorVehicleDataResponse.html":{"name":"SDLGetInteriorVehicleDataResponse","abstract":"

                                Undocumented

                                "},"Classes/SDLGetSystemCapability.html":{"name":"SDLGetSystemCapability","abstract":"

                                Undocumented

                                "},"Classes/SDLGetSystemCapabilityResponse.html":{"name":"SDLGetSystemCapabilityResponse","abstract":"

                                Undocumented

                                "},"Classes/SDLGetVehicleData.html":{"name":"SDLGetVehicleData","abstract":"

                                Requests surrent values of specific published vehicle data items."},"Classes/SDLGetVehicleDataResponse.html":{"name":"SDLGetVehicleDataResponse","abstract":"

                                Get Vehicle Data Response is sent, when SDLGetVehicleData has been called

                                "},"Classes/SDLGetWayPoints.html":{"name":"SDLGetWayPoints","abstract":"

                                Undocumented

                                "},"Classes/SDLGetWayPointsResponse.html":{"name":"SDLGetWayPointsResponse","abstract":"

                                Undocumented

                                "},"Classes/SDLHMICapabilities.html":{"name":"SDLHMICapabilities","abstract":"

                                Undocumented

                                "},"Classes/SDLHMIPermissions.html":{"name":"SDLHMIPermissions","abstract":"

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

                                "},"Classes/SDLHapticRect.html":{"name":"SDLHapticRect","abstract":"

                                Defines spatial for each user control object for video streaming application

                                "},"Classes/SDLHeadLampStatus.html":{"name":"SDLHeadLampStatus","abstract":"

                                Status of the head lamps

                                "},"Classes/SDLIAPTransport.html":{"name":"SDLIAPTransport","abstract":"

                                Undocumented

                                "},"Classes/SDLImage.html":{"name":"SDLImage","abstract":"

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

                                "},"Classes/SDLImageField.html":{"name":"SDLImageField","abstract":"

                                Undocumented

                                "},"Classes/SDLImageResolution.html":{"name":"SDLImageResolution","abstract":"

                                Undocumented

                                "},"Classes/SDLKeyboardProperties.html":{"name":"SDLKeyboardProperties","abstract":"

                                Undocumented

                                "},"Classes/SDLLifecycleConfiguration.html":{"name":"SDLLifecycleConfiguration","abstract":"

                                Configuration options for SDLManager

                                "},"Classes.html#/c:objc(cs)SDLListFiles":{"name":"SDLListFiles","abstract":"

                                Requests the current list of resident filenames for the registered app. Not"},"Classes/SDLListFilesResponse.html":{"name":"SDLListFilesResponse","abstract":"

                                SDLListFilesResponse is sent, when SDLListFiles has been called

                                "},"Classes/SDLLocationCoordinate.html":{"name":"SDLLocationCoordinate","abstract":"

                                Undocumented

                                "},"Classes/SDLLocationDetails.html":{"name":"SDLLocationDetails","abstract":"

                                Undocumented

                                "},"Classes/SDLLockScreenConfiguration.html":{"name":"SDLLockScreenConfiguration","abstract":"

                                Undocumented

                                "},"Classes/SDLLockScreenViewController.html":{"name":"SDLLockScreenViewController","abstract":"

                                Undocumented

                                "},"Classes/SDLLogConfiguration.html":{"name":"SDLLogConfiguration","abstract":"

                                Undocumented

                                "},"Classes/SDLLogFileModule.html":{"name":"SDLLogFileModule","abstract":"

                                Undocumented

                                "},"Classes/SDLLogFilter.html":{"name":"SDLLogFilter","abstract":"

                                Undocumented

                                "},"Classes/SDLLogManager.html":{"name":"SDLLogManager","abstract":"

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

                                "},"Classes.html#/c:objc(cs)SDLLogTargetAppleSystemLog":{"name":"SDLLogTargetAppleSystemLog","abstract":"

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

                                "},"Classes.html#/c:objc(cs)SDLLogTargetFile":{"name":"SDLLogTargetFile","abstract":"

                                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.

                                "},"Classes.html#/c:objc(cs)SDLLogTargetOSLog":{"name":"SDLLogTargetOSLog","abstract":"

                                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).

                                "},"Classes/SDLManager.html":{"name":"SDLManager","abstract":"

                                Undocumented

                                "},"Classes/SDLMenuParams.html":{"name":"SDLMenuParams","abstract":"

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

                                "},"Classes/SDLMetadataTags.html":{"name":"SDLMetadataTags","abstract":"

                                Undocumented

                                "},"Classes/SDLModuleData.html":{"name":"SDLModuleData","abstract":"

                                Undocumented

                                "},"Classes/SDLMyKey.html":{"name":"SDLMyKey","abstract":"

                                Undocumented

                                "},"Classes/SDLNavigationCapability.html":{"name":"SDLNavigationCapability","abstract":"

                                Undocumented

                                "},"Classes/SDLNotificationConstants.html":{"name":"SDLNotificationConstants","abstract":"

                                Undocumented

                                "},"Classes/SDLOasisAddress.html":{"name":"SDLOasisAddress","abstract":"

                                Undocumented

                                "},"Classes/SDLOnAppInterfaceUnregistered.html":{"name":"SDLOnAppInterfaceUnregistered","abstract":"

                                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.

                                "},"Classes.html#/c:objc(cs)SDLOnAudioPassThru":{"name":"SDLOnAudioPassThru","abstract":"

                                Binary data is in binary part of hybrid msg.

                                "},"Classes/SDLOnButtonEvent.html":{"name":"SDLOnButtonEvent","abstract":"

                                Notifies application that user has depressed or released a button to which"},"Classes/SDLOnButtonPress.html":{"name":"SDLOnButtonPress","abstract":"

                                Notifies application of button press events for buttons to which the"},"Classes/SDLOnCommand.html":{"name":"SDLOnCommand","abstract":"

                                This is called when a command was selected via VR after pressing the PTT button, or selected from the menu after"},"Classes/SDLOnDriverDistraction.html":{"name":"SDLOnDriverDistraction","abstract":"

                                Notifies the application of the current driver distraction state (whether driver distraction rules are in effect, or"},"Classes/SDLOnEncodedSyncPData.html":{"name":"SDLOnEncodedSyncPData","abstract":"

                                Undocumented

                                "},"Classes/SDLOnHMIStatus.html":{"name":"SDLOnHMIStatus","abstract":"

                                Notifies an application that HMI conditions have changed for the application. This indicates whether the application"},"Classes/SDLOnHashChange.html":{"name":"SDLOnHashChange","abstract":"

                                Undocumented

                                "},"Classes/SDLOnInteriorVehicleData.html":{"name":"SDLOnInteriorVehicleData","abstract":"

                                Undocumented

                                "},"Classes/SDLOnKeyboardInput.html":{"name":"SDLOnKeyboardInput","abstract":"

                                Undocumented

                                "},"Classes/SDLOnLanguageChange.html":{"name":"SDLOnLanguageChange","abstract":"

                                Provides information to what language the SDL HMI language was changed

                                "},"Classes/SDLOnLockScreenStatus.html":{"name":"SDLOnLockScreenStatus","abstract":"
                                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."},"Classes/SDLOnPermissionsChange.html":{"name":"SDLOnPermissionsChange","abstract":"

                                Provides update to app of which sets of functions are available

                                "},"Classes/SDLOnSyncPData.html":{"name":"SDLOnSyncPData","abstract":"

                                Undocumented

                                "},"Classes/SDLOnSystemRequest.html":{"name":"SDLOnSystemRequest","abstract":"

                                Undocumented

                                "},"Classes/SDLOnTBTClientState.html":{"name":"SDLOnTBTClientState","abstract":"

                                Undocumented

                                "},"Classes/SDLOnTouchEvent.html":{"name":"SDLOnTouchEvent","abstract":"

                                Undocumented

                                "},"Classes/SDLOnVehicleData.html":{"name":"SDLOnVehicleData","abstract":"

                                Request vehicle data.

                                "},"Classes/SDLOnWayPointChange.html":{"name":"SDLOnWayPointChange","abstract":"

                                Undocumented

                                "},"Classes/SDLParameterPermissions.html":{"name":"SDLParameterPermissions","abstract":"

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

                                "},"Classes/SDLPerformAudioPassThru.html":{"name":"SDLPerformAudioPassThru","abstract":"

                                This will open an audio pass thru session. By doing so the app can receive"},"Classes.html#/c:objc(cs)SDLPerformAudioPassThruResponse":{"name":"SDLPerformAudioPassThruResponse","abstract":"

                                Perform Audio Pass Thru Response is sent, when PerformAudioPassThru has been called

                                "},"Classes/SDLPerformInteraction.html":{"name":"SDLPerformInteraction","abstract":"

                                Performs an application-initiated interaction in which the user can select a"},"Classes/SDLPerformInteractionResponse.html":{"name":"SDLPerformInteractionResponse","abstract":"

                                PerformInteraction Response is sent, when SDLPerformInteraction has been called

                                "},"Classes/SDLPermissionItem.html":{"name":"SDLPermissionItem","abstract":"

                                Undocumented

                                "},"Classes/SDLPermissionManager.html":{"name":"SDLPermissionManager","abstract":"

                                Undocumented

                                "},"Classes/SDLPhoneCapability.html":{"name":"SDLPhoneCapability","abstract":"

                                Undocumented

                                "},"Classes/SDLPinchGesture.html":{"name":"SDLPinchGesture","abstract":"

                                Undocumented

                                "},"Classes/SDLPresetBankCapabilities.html":{"name":"SDLPresetBankCapabilities","abstract":"

                                Contains information about on-screen preset capabilities.

                                "},"Classes/SDLProtocol.html":{"name":"SDLProtocol","abstract":"

                                Undocumented

                                "},"Classes/SDLProtocolHeader.html":{"name":"SDLProtocolHeader","abstract":"

                                Undocumented

                                "},"Classes/SDLProtocolMessage.html":{"name":"SDLProtocolMessage","abstract":"

                                Undocumented

                                "},"Classes/SDLProxy.html":{"name":"SDLProxy","abstract":"

                                Undocumented

                                "},"Classes/SDLProxyFactory.html":{"name":"SDLProxyFactory","abstract":"

                                Undocumented

                                "},"Classes/SDLPutFile.html":{"name":"SDLPutFile","abstract":"

                                Used to push a binary data onto the SDL module from a mobile device, such as"},"Classes/SDLPutFileResponse.html":{"name":"SDLPutFileResponse","abstract":"

                                Put File Response is sent, when SDLPutFile has been called

                                "},"Classes/SDLRDSData.html":{"name":"SDLRDSData","abstract":"

                                Include the data defined in Radio Data System,"},"Classes/SDLRPCMessage.html":{"name":"SDLRPCMessage","abstract":"

                                Undocumented

                                "},"Classes.html#/c:objc(cs)SDLRPCNotification":{"name":"SDLRPCNotification","abstract":"

                                Undocumented

                                "},"Classes/SDLRPCNotificationNotification.html":{"name":"SDLRPCNotificationNotification","abstract":"

                                Undocumented

                                "},"Classes/SDLRPCRequest.html":{"name":"SDLRPCRequest","abstract":"

                                Undocumented

                                "},"Classes/SDLRPCResponse.html":{"name":"SDLRPCResponse","abstract":"

                                Undocumented

                                "},"Classes/SDLRPCResponseNotification.html":{"name":"SDLRPCResponseNotification","abstract":"

                                Undocumented

                                "},"Classes/SDLRPCStruct.html":{"name":"SDLRPCStruct","abstract":"

                                Undocumented

                                "},"Classes/SDLRadioControlCapabilities.html":{"name":"SDLRadioControlCapabilities","abstract":"

                                Contains information about a radio control module’s capabilities.

                                "},"Classes/SDLRadioControlData.html":{"name":"SDLRadioControlData","abstract":"

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

                                "},"Classes/SDLReadDID.html":{"name":"SDLReadDID","abstract":"

                                Non periodic vehicle data read request. This is an RPC to get diagnostics"},"Classes/SDLReadDIDResponse.html":{"name":"SDLReadDIDResponse","abstract":"

                                Read DID Response is sent, when ReadDID has been called

                                "},"Classes/SDLRectangle.html":{"name":"SDLRectangle","abstract":"

                                Undocumented

                                "},"Classes/SDLRegisterAppInterface.html":{"name":"SDLRegisterAppInterface","abstract":"

                                Registers the application’s interface with SDL®, declaring properties of"},"Classes/SDLRegisterAppInterfaceResponse.html":{"name":"SDLRegisterAppInterfaceResponse","abstract":"

                                @abstract Register AppInterface Response is sent, when SDLRegisterAppInterface has been called

                                "},"Classes/SDLRemoteControlCapabilities.html":{"name":"SDLRemoteControlCapabilities","abstract":"

                                Undocumented

                                "},"Classes/SDLResetGlobalProperties.html":{"name":"SDLResetGlobalProperties","abstract":"

                                Resets the passed global properties to their default values as defined by"},"Classes.html#/c:objc(cs)SDLResetGlobalPropertiesResponse":{"name":"SDLResetGlobalPropertiesResponse","abstract":"

                                Reset Global Properties Response is sent, when SDLResetGlobalProperties has been called

                                "},"Classes/SDLScreenParams.html":{"name":"SDLScreenParams","abstract":"

                                Undocumented

                                "},"Classes/SDLScrollableMessage.html":{"name":"SDLScrollableMessage","abstract":"

                                Creates a full screen overlay containing a large block of formatted text that"},"Classes.html#/c:objc(cs)SDLScrollableMessageResponse":{"name":"SDLScrollableMessageResponse","abstract":"

                                Scrollable Message Response is sent, when SDLScrollableMessage has been called

                                "},"Classes/SDLSendHapticData.html":{"name":"SDLSendHapticData","abstract":"

                                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.

                                "},"Classes.html#/c:objc(cs)SDLSendHapticDataResponse":{"name":"SDLSendHapticDataResponse","abstract":"

                                SDLSendHapticDataResponse is sent when SDLSendHapticData has been called

                                "},"Classes/SDLSendLocation.html":{"name":"SDLSendLocation","abstract":"

                                Undocumented

                                "},"Classes.html#/c:objc(cs)SDLSendLocationResponse":{"name":"SDLSendLocationResponse","abstract":"

                                Undocumented

                                "},"Classes/SDLSetAppIcon.html":{"name":"SDLSetAppIcon","abstract":"

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

                                SDLSetAppIconResponse is sent, when SDLSetAppIcon has been called.

                                "},"Classes/SDLSetDisplayLayout.html":{"name":"SDLSetDisplayLayout","abstract":"

                                Used to set an alternate display layout. If not sent, default screen for"},"Classes/SDLSetDisplayLayoutResponse.html":{"name":"SDLSetDisplayLayoutResponse","abstract":"

                                Set Display Layout Response is sent, when SetDisplayLayout has been called

                                "},"Classes/SDLSetGlobalProperties.html":{"name":"SDLSetGlobalProperties","abstract":"

                                Sets value(s) for the specified global property(ies)"},"Classes.html#/c:objc(cs)SDLSetGlobalPropertiesResponse":{"name":"SDLSetGlobalPropertiesResponse","abstract":"

                                Set Global Properties Response is sent, when SDLSetGlobalProperties has been called

                                "},"Classes/SDLSetInteriorVehicleData.html":{"name":"SDLSetInteriorVehicleData","abstract":"

                                This RPC allows a remote control type mobile application to"},"Classes/SDLSetInteriorVehicleDataResponse.html":{"name":"SDLSetInteriorVehicleDataResponse","abstract":"

                                Used to set the values of one remote control module

                                "},"Classes/SDLSetMediaClockTimer.html":{"name":"SDLSetMediaClockTimer","abstract":"

                                Sets the media clock/timer value and the update method (e.g.count-up,"},"Classes.html#/c:objc(cs)SDLSetMediaClockTimerResponse":{"name":"SDLSetMediaClockTimerResponse","abstract":"

                                Set Media Clock Timer Response is sent, when SDLSetMediaClockTimer has been called

                                "},"Classes/SDLShow.html":{"name":"SDLShow","abstract":"

                                Updates the application’s display text area, regardless of whether or not"},"Classes/SDLShowConstantTBT.html":{"name":"SDLShowConstantTBT","abstract":"

                                This RPC is used to update the user with navigation information

                                "},"Classes.html#/c:objc(cs)SDLShowConstantTBTResponse":{"name":"SDLShowConstantTBTResponse","abstract":"

                                SDLShowConstantTBTResponse is sent, when SDLShowConstantTBT has been called.

                                "},"Classes.html#/c:objc(cs)SDLShowResponse":{"name":"SDLShowResponse","abstract":"

                                Show Response is sent, when Show has been called

                                "},"Classes/SDLSingleTireStatus.html":{"name":"SDLSingleTireStatus","abstract":"

                                Tire pressure status of a single tire.

                                "},"Classes/SDLSlider.html":{"name":"SDLSlider","abstract":"

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

                                "},"Classes/SDLSliderResponse.html":{"name":"SDLSliderResponse","abstract":"

                                Slider Response is sent, when Slider has been called

                                "},"Classes/SDLSoftButton.html":{"name":"SDLSoftButton","abstract":"

                                Undocumented

                                "},"Classes/SDLSoftButtonCapabilities.html":{"name":"SDLSoftButtonCapabilities","abstract":"

                                Contains information about a SoftButton’s capabilities.

                                "},"Classes/SDLSpeak.html":{"name":"SDLSpeak","abstract":"

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

                                "},"Classes.html#/c:objc(cs)SDLSpeakResponse":{"name":"SDLSpeakResponse","abstract":"

                                Speak Response is sent, when Speak has been called

                                "},"Classes/SDLStartTime.html":{"name":"SDLStartTime","abstract":"

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

                                "},"Classes/SDLStreamingMediaConfiguration.html":{"name":"SDLStreamingMediaConfiguration","abstract":"

                                Undocumented

                                "},"Classes/SDLStreamingMediaManager.html":{"name":"SDLStreamingMediaManager","abstract":"

                                Undocumented

                                "},"Classes/SDLSubscribeButton.html":{"name":"SDLSubscribeButton","abstract":"

                                Establishes a subscription to button notifications for HMI buttons. Buttons"},"Classes.html#/c:objc(cs)SDLSubscribeButtonResponse":{"name":"SDLSubscribeButtonResponse","abstract":"

                                SubscribeButton Response is sent, when SDLSubscribeButton has been called

                                "},"Classes/SDLSubscribeVehicleData.html":{"name":"SDLSubscribeVehicleData","abstract":"

                                Subscribes for specific published vehicle data items. The data will be only"},"Classes/SDLSubscribeVehicleDataResponse.html":{"name":"SDLSubscribeVehicleDataResponse","abstract":"

                                Subscribe Vehicle Data Response is sent, when SDLSubscribeVehicleData has been called

                                "},"Classes.html#/c:objc(cs)SDLSubscribeWayPoints":{"name":"SDLSubscribeWayPoints","abstract":"

                                A SDLSubscribeWaypoints can be sent to subscribe"},"Classes.html#/c:objc(cs)SDLSubscribeWayPointsResponse":{"name":"SDLSubscribeWayPointsResponse","abstract":"

                                Undocumented

                                "},"Classes/SDLSyncMsgVersion.html":{"name":"SDLSyncMsgVersion","abstract":"

                                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.

                                "},"Classes.html#/c:objc(cs)SDLSyncPData":{"name":"SDLSyncPData","abstract":"

                                Undocumented

                                "},"Classes.html#/c:objc(cs)SDLSyncPDataResponse":{"name":"SDLSyncPDataResponse","abstract":"

                                Undocumented

                                "},"Classes/SDLSystemCapability.html":{"name":"SDLSystemCapability","abstract":"

                                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.

                                "},"Classes/SDLTCPTransport.html":{"name":"SDLTCPTransport","abstract":"

                                Undocumented

                                "},"Classes/SDLTTSChunk.html":{"name":"SDLTTSChunk","abstract":"

                                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).

                                "},"Classes/SDLTemperature.html":{"name":"SDLTemperature","abstract":"

                                Undocumented

                                "},"Classes/SDLTextField.html":{"name":"SDLTextField","abstract":"

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

                                "},"Classes/SDLTireStatus.html":{"name":"SDLTireStatus","abstract":"

                                Undocumented

                                "},"Classes/SDLTouch.html":{"name":"SDLTouch","abstract":"

                                Undocumented

                                "},"Classes/SDLTouchCoord.html":{"name":"SDLTouchCoord","abstract":"

                                Undocumented

                                "},"Classes/SDLTouchEvent.html":{"name":"SDLTouchEvent","abstract":"

                                Undocumented

                                "},"Classes/SDLTouchEventCapabilities.html":{"name":"SDLTouchEventCapabilities","abstract":"

                                Undocumented

                                "},"Classes/SDLTouchManager.html":{"name":"SDLTouchManager","abstract":"

                                Undocumented

                                "},"Classes/SDLTurn.html":{"name":"SDLTurn","abstract":"

                                Undocumented

                                "},"Classes.html#/c:objc(cs)SDLUnregisterAppInterface":{"name":"SDLUnregisterAppInterface","abstract":"

                                Terminates an application’s interface registration. This causes SDL® to"},"Classes.html#/c:objc(cs)SDLUnregisterAppInterfaceResponse":{"name":"SDLUnregisterAppInterfaceResponse","abstract":"

                                Unregister AppInterface Response is sent, when SDLUnregisterAppInterface has been called

                                "},"Classes/SDLUnsubscribeButton.html":{"name":"SDLUnsubscribeButton","abstract":"

                                Deletes a subscription to button notifications for the specified button. For"},"Classes.html#/c:objc(cs)SDLUnsubscribeButtonResponse":{"name":"SDLUnsubscribeButtonResponse","abstract":"

                                Unsubscribe Button Response is sent, when SDLUnsubscribeButton has been called

                                "},"Classes/SDLUnsubscribeVehicleData.html":{"name":"SDLUnsubscribeVehicleData","abstract":"

                                This function is used to unsubscribe the notifications from the"},"Classes/SDLUnsubscribeVehicleDataResponse.html":{"name":"SDLUnsubscribeVehicleDataResponse","abstract":"

                                Unsubscribe Vehicle Data Response is sent, when UnsubscribeVehicleData has been called

                                "},"Classes.html#/c:objc(cs)SDLUnsubscribeWayPoints":{"name":"SDLUnsubscribeWayPoints","abstract":"

                                Undocumented

                                "},"Classes.html#/c:objc(cs)SDLUnsubscribeWayPointsResponse":{"name":"SDLUnsubscribeWayPointsResponse","abstract":"

                                Undocumented

                                "},"Classes/SDLUpdateTurnList.html":{"name":"SDLUpdateTurnList","abstract":"

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

                                "},"Classes.html#/c:objc(cs)SDLUpdateTurnListResponse":{"name":"SDLUpdateTurnListResponse","abstract":"

                                SDLUpdateTurnListResponse is sent, when SDLUpdateTurnList has been called.

                                "},"Classes/SDLVehicleDataResult.html":{"name":"SDLVehicleDataResult","abstract":"

                                Undocumented

                                "},"Classes/SDLVehicleType.html":{"name":"SDLVehicleType","abstract":"

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

                                "},"Classes/SDLVideoStreamingCapability.html":{"name":"SDLVideoStreamingCapability","abstract":"

                                Undocumented

                                "},"Classes/SDLVideoStreamingFormat.html":{"name":"SDLVideoStreamingFormat","abstract":"

                                Undocumented

                                "},"Classes/SDLVRHelpItem.html":{"name":"SDLVRHelpItem","abstract":"

                                Undocumented

                                "},"Categories/NSString(SDLEnum).html#/c:objc(cs)NSString(im)isEqualToEnum:":{"name":"-isEqualToEnum:","abstract":"

                                Undocumented

                                ","parent_name":"NSString(SDLEnum)"},"Categories/NSString(SDLEnum).html":{"name":"NSString(SDLEnum)","abstract":"

                                Undocumented

                                "},"Categories.html":{"name":"Categories","abstract":"

                                The following categories are available globally.

                                "},"Classes.html":{"name":"Classes","abstract":"

                                The following classes are available globally.

                                "},"Constants.html":{"name":"Constants","abstract":"

                                The following constants are available globally.

                                "},"Enums.html":{"name":"Enums","abstract":"

                                The following enums are available globally.

                                "},"Protocols.html":{"name":"Protocols","abstract":"

                                The following protocols are available globally.

                                "},"Type Definitions.html":{"name":"Type Definitions","abstract":"

                                The following type definitions are available globally.

                                "}} \ No newline at end of file diff --git a/docs/undocumented.json b/docs/undocumented.json index b3951bb9d..d5c1a00ac 100644 --- a/docs/undocumented.json +++ b/docs/undocumented.json @@ -9,280 +9,189 @@ }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 13, + "line": 14, "symbol": "SDLAbstractProtocol", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 15, + "line": 16, "symbol": "SDLAbstractProtocol.debugConsoleGroupName", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 16, + "line": 17, "symbol": "SDLAbstractProtocol.transport", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 17, + "line": 18, "symbol": "SDLAbstractProtocol.protocolDelegateTable", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 18, + "line": 19, "symbol": "SDLAbstractProtocol.securityManager", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 19, + "line": 20, "symbol": "SDLAbstractProtocol.appId", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 22, - "symbol": "SDLAbstractProtocol.-sendStartSessionWithType:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", "line": 23, - "symbol": "SDLAbstractProtocol.-startServiceWithType:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 24, "symbol": "SDLAbstractProtocol.-startServiceWithType:payload:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 26, - "symbol": "SDLAbstractProtocol.-startSecureServiceWithType:completionHandler:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 27, + "line": 24, "symbol": "SDLAbstractProtocol.-startSecureServiceWithType:payload:completionHandler:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 29, - "symbol": "SDLAbstractProtocol.-sendEndSessionWithType:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 30, + "line": 25, "symbol": "SDLAbstractProtocol.-endServiceWithType:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 32, - "symbol": "SDLAbstractProtocol.-sendRPCRequest:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 33, + "line": 27, "symbol": "SDLAbstractProtocol.-sendRPC:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 34, + "line": 28, "symbol": "SDLAbstractProtocol.-sendRPC:encrypted:error:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 36, + "line": 30, "symbol": "SDLAbstractProtocol.-sendRawData:withServiceType:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 37, + "line": 31, "symbol": "SDLAbstractProtocol.-sendEncryptedRawData:onService:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 39, - "symbol": "SDLAbstractProtocol.-sendRawDataStream:withServiceType:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 40, - "symbol": "SDLAbstractProtocol.-sendHeartbeat", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 43, + "line": 34, "symbol": "SDLAbstractProtocol.-handleBytesFromTransport:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractProtocol.h", - "line": 44, - "symbol": "SDLAbstractProtocol.-dispose", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractTransport.h", - "line": 7, + "line": 9, "symbol": "SDLAbstractTransport", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractTransport.h", - "line": 9, + "line": 11, "symbol": "SDLAbstractTransport.delegate", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractTransport.h", - "line": 10, + "line": 12, "symbol": "SDLAbstractTransport.debugConsoleGroupName", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractTransport.h", - "line": 12, + "line": 14, "symbol": "SDLAbstractTransport.-connect", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractTransport.h", - "line": 13, + "line": 15, "symbol": "SDLAbstractTransport.-disconnect", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractTransport.h", - "line": 14, + "line": 16, "symbol": "SDLAbstractTransport.-sendData:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractTransport.h", - "line": 15, - "symbol": "SDLAbstractTransport.-dispose", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAbstractTransport.h", - "line": 16, + "line": 17, "symbol": "SDLAbstractTransport.-retryDelay", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAddCommand.h", - "line": 60, + "line": 50, "symbol": "SDLAddCommand.-initWithId:vrCommands:handler:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAddCommand.h", - "line": 62, + "line": 52, "symbol": "SDLAddCommand.-initWithId:vrCommands:menuName:handler:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAddCommand.h", - "line": 64, + "line": 54, "symbol": "SDLAddCommand.-initWithId:vrCommands:menuName:parentId:position:iconValue:iconType:handler:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAddCommandResponse.h", - "line": 15, - "symbol": "SDLAddCommandResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAddCommandResponse.h", - "line": 16, - "symbol": "SDLAddCommandResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAddSubMenu.h", - "line": 34, + "line": 24, "symbol": "SDLAddSubMenu.-initWithId:menuName:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAddSubMenu.h", - "line": 36, + "line": 26, "symbol": "SDLAddSubMenu.-initWithId:menuName:position:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAddSubMenuResponse.h", - "line": 13, - "symbol": "SDLAddSubMenuResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAddSubMenuResponse.h", - "line": 14, - "symbol": "SDLAddSubMenuResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAirbagStatus.h", - "line": 9, + "line": 10, "symbol": "SDLAirbagStatus", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" @@ -290,328 +199,258 @@ { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAirbagStatus.h", "line": 12, - "symbol": "SDLAirbagStatus.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAirbagStatus.h", - "line": 13, - "symbol": "SDLAirbagStatus.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAirbagStatus.h", - "line": 15, "symbol": "SDLAirbagStatus.driverAirbagDeployed", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAirbagStatus.h", - "line": 16, + "line": 13, "symbol": "SDLAirbagStatus.driverSideAirbagDeployed", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAirbagStatus.h", - "line": 17, + "line": 14, "symbol": "SDLAirbagStatus.driverCurtainAirbagDeployed", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAirbagStatus.h", - "line": 18, + "line": 15, "symbol": "SDLAirbagStatus.passengerAirbagDeployed", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAirbagStatus.h", - "line": 19, + "line": 16, "symbol": "SDLAirbagStatus.passengerCurtainAirbagDeployed", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAirbagStatus.h", - "line": 20, + "line": 17, "symbol": "SDLAirbagStatus.driverKneeAirbagDeployed", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAirbagStatus.h", - "line": 21, + "line": 18, "symbol": "SDLAirbagStatus.passengerSideAirbagDeployed", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAirbagStatus.h", - "line": 22, + "line": 19, "symbol": "SDLAirbagStatus.passengerKneeAirbagDeployed", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlert.h", - "line": 53, + "line": 44, "symbol": "SDLAlert.-initWithAlertText1:alertText2:duration:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlert.h", - "line": 55, + "line": 46, "symbol": "SDLAlert.-initWithAlertText1:alertText2:alertText3:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlert.h", - "line": 57, + "line": 48, "symbol": "SDLAlert.-initWithAlertText1:alertText2:alertText3:duration:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlert.h", - "line": 59, + "line": 50, "symbol": "SDLAlert.-initWithAlertText1:alertText2:alertText3:duration:softButtons:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlert.h", - "line": 61, + "line": 52, "symbol": "SDLAlert.-initWithTTS:playTone:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlert.h", - "line": 63, + "line": 54, "symbol": "SDLAlert.-initWithTTS:alertText1:alertText2:playTone:duration:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlert.h", - "line": 65, + "line": 56, "symbol": "SDLAlert.-initWithTTS:alertText1:alertText2:alertText3:playTone:duration:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlert.h", - "line": 67, + "line": 58, "symbol": "SDLAlert.-initWithTTSChunks:playTone:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlert.h", - "line": 69, + "line": 60, "symbol": "SDLAlert.-initWithTTSChunks:alertText1:alertText2:alertText3:playTone:softButtons:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlert.h", - "line": 71, + "line": 62, "symbol": "SDLAlert.-initWithTTSChunks:alertText1:alertText2:alertText3:playTone:duration:softButtons:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlertManeuver.h", - "line": 17, - "symbol": "SDLAlertManeuver.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlertManeuver.h", - "line": 18, - "symbol": "SDLAlertManeuver.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlertManeuver.h", - "line": 20, + "line": 19, "symbol": "SDLAlertManeuver.-initWithTTS:softButtons:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlertManeuver.h", - "line": 21, + "line": 20, "symbol": "SDLAlertManeuver.-initWithTTSChunks:softButtons:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlertManeuver.h", - "line": 23, + "line": 22, "symbol": "SDLAlertManeuver.ttsChunks", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlertManeuver.h", - "line": 24, + "line": 23, "symbol": "SDLAlertManeuver.softButtons", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlertManeuverResponse.h", - "line": 13, - "symbol": "SDLAlertManeuverResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlertManeuverResponse.h", - "line": 14, - "symbol": "SDLAlertManeuverResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlertResponse.h", - "line": 14, - "symbol": "SDLAlertResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "line": 16, + "symbol": "SDLAlertResponse.tryAgainTime", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlertResponse.h", - "line": 15, - "symbol": "SDLAlertResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAmbientLightStatus.h", + "line": 13, + "symbol": "SDLAmbientLightStatusNight", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAlertResponse.h", - "line": 17, - "symbol": "SDLAlertResponse.tryAgainTime", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAmbientLightStatus.h", + "line": 14, + "symbol": "SDLAmbientLightStatusTwilight1", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAmbientLightStatus.h", - "line": 14, - "symbol": "SDLAmbientLightStatus.+valueOf:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 15, + "symbol": "SDLAmbientLightStatusTwilight2", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAmbientLightStatus.h", - "line": 15, - "symbol": "SDLAmbientLightStatus.+values", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 16, + "symbol": "SDLAmbientLightStatusTwilight3", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAmbientLightStatus.h", "line": 17, - "symbol": "SDLAmbientLightStatus.+NIGHT", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLAmbientLightStatusTwilight4", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAmbientLightStatus.h", "line": 18, - "symbol": "SDLAmbientLightStatus.+TWILIGHT_1", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLAmbientLightStatusDay", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAmbientLightStatus.h", "line": 19, - "symbol": "SDLAmbientLightStatus.+TWILIGHT_2", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLAmbientLightStatusUnknown", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAmbientLightStatus.h", "line": 20, - "symbol": "SDLAmbientLightStatus.+TWILIGHT_3", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAmbientLightStatus.h", - "line": 21, - "symbol": "SDLAmbientLightStatus.+TWILIGHT_4", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLAmbientLightStatusInvalid", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAmbientLightStatus.h", - "line": 22, - "symbol": "SDLAmbientLightStatus.+DAY", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAppHMIType.h", + "line": 54, + "symbol": "SDLAppHMITypeBackgroundProcess", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAmbientLightStatus.h", - "line": 23, - "symbol": "SDLAmbientLightStatus.+UNKNOWN", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAppInfo.h", + "line": 8, + "symbol": "SDLAppInfo", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAmbientLightStatus.h", - "line": 24, - "symbol": "SDLAmbientLightStatus.+INVALID", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAppHMIType.h", - "line": 87, - "symbol": "SDLAppHMIType.+BACKGROUND_PROCESS", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAppInfo.h", - "line": 6, - "symbol": "SDLAppInfo", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAppInfo.h", - "line": 8, - "symbol": "SDLAppInfo.+currentAppInfo", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAppInfo.h", + "line": 10, + "symbol": "SDLAppInfo.+currentAppInfo", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAppInfo.h", - "line": 10, + "line": 12, "symbol": "SDLAppInfo.appDisplayName", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAppInfo.h", - "line": 11, + "line": 13, "symbol": "SDLAppInfo.appBundleID", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLAppInfo.h", - "line": 12, + "line": 14, "symbol": "SDLAppInfo.appVersion", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" @@ -653,7 +492,7 @@ }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLBeltStatus.h", - "line": 9, + "line": 10, "symbol": "SDLBeltStatus", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" @@ -661,342 +500,251 @@ { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLBeltStatus.h", "line": 12, - "symbol": "SDLBeltStatus.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLBeltStatus.h", - "line": 13, - "symbol": "SDLBeltStatus.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLBeltStatus.h", - "line": 15, "symbol": "SDLBeltStatus.driverBeltDeployed", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLBeltStatus.h", - "line": 16, + "line": 13, "symbol": "SDLBeltStatus.passengerBeltDeployed", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLBeltStatus.h", - "line": 17, + "line": 14, "symbol": "SDLBeltStatus.passengerBuckleBelted", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLBeltStatus.h", - "line": 18, + "line": 15, "symbol": "SDLBeltStatus.driverBuckleBelted", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLBeltStatus.h", - "line": 19, + "line": 16, "symbol": "SDLBeltStatus.leftRow2BuckleBelted", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLBeltStatus.h", - "line": 20, + "line": 17, "symbol": "SDLBeltStatus.passengerChildDetected", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLBeltStatus.h", - "line": 21, + "line": 18, "symbol": "SDLBeltStatus.rightRow2BuckleBelted", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLBeltStatus.h", - "line": 22, + "line": 19, "symbol": "SDLBeltStatus.middleRow2BuckleBelted", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLBeltStatus.h", - "line": 23, + "line": 20, "symbol": "SDLBeltStatus.middleRow3BuckleBelted", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLBeltStatus.h", - "line": 24, + "line": 21, "symbol": "SDLBeltStatus.leftRow3BuckleBelted", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLBeltStatus.h", - "line": 25, + "line": 22, "symbol": "SDLBeltStatus.rightRow3BuckleBelted", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLBeltStatus.h", - "line": 26, + "line": 23, "symbol": "SDLBeltStatus.leftRearInflatableBelted", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLBeltStatus.h", - "line": 27, + "line": 24, "symbol": "SDLBeltStatus.rightRearInflatableBelted", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLBeltStatus.h", - "line": 28, + "line": 25, "symbol": "SDLBeltStatus.middleRow1BeltDeployed", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLBeltStatus.h", - "line": 29, + "line": 26, "symbol": "SDLBeltStatus.middleRow1BuckleBelted", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLButtonName.h", - "line": 148, - "symbol": "SDLButtonName.+CUSTOM_BUTTON", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLButtonName.h", - "line": 150, - "symbol": "SDLButtonName.+SEARCH", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLCarModeStatus.h", - "line": 13, - "symbol": "SDLCarModeStatus.+valueOf:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLButtonPress.h", + "line": 18, + "symbol": "SDLButtonPress.-initWithButtonName:moduleType:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLCarModeStatus.h", - "line": 15, - "symbol": "SDLCarModeStatus.+values", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLButtonPressResponse.h", + "line": 9, + "symbol": "SDLButtonPressResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLChangeRegistration.h", - "line": 32, + "line": 22, "symbol": "SDLChangeRegistration.-initWithLanguage:hmiDisplayLanguage:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLChangeRegistration.h", - "line": 34, + "line": 24, "symbol": "SDLChangeRegistration.-initWithLanguage:hmiDisplayLanguage:appName:ttsName:ngnMediaScreenAppName:vrSynonyms:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLChangeRegistrationResponse.h", - "line": 15, - "symbol": "SDLChangeRegistrationResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLChangeRegistrationResponse.h", - "line": 16, - "symbol": "SDLChangeRegistrationResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLCharacterSet.h", - "line": 31, - "symbol": "SDLCharacterSet.+TYPE2SET", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 14, + "symbol": "SDLCharacterSetType2", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLCharacterSet.h", - "line": 33, - "symbol": "SDLCharacterSet.+TYPE5SET", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 16, + "symbol": "SDLCharacterSetType5", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLCharacterSet.h", - "line": 35, - "symbol": "SDLCharacterSet.+CID1SET", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 18, + "symbol": "SDLCharacterSetCID1", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLCharacterSet.h", - "line": 37, - "symbol": "SDLCharacterSet.+CID2SET", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 20, + "symbol": "SDLCharacterSetCID2", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLChoice.h", - "line": 67, + "line": 57, "symbol": "SDLChoice.-initWithId:menuName:vrCommands:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLChoice.h", - "line": 69, + "line": 59, "symbol": "SDLChoice.-initWithId:menuName:vrCommands:image:secondaryText:secondaryImage:tertiaryText:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLClusterModeStatus.h", - "line": 11, - "symbol": "SDLClusterModeStatus", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLClimateControlCapabilities.h", + "line": 16, + "symbol": "SDLClimateControlCapabilities.-initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable:dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLClusterModeStatus.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLClimateControlData.h", "line": 14, - "symbol": "SDLClusterModeStatus.-init", + "symbol": "SDLClimateControlData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLClimateControlData.h", + "line": 16, + "symbol": "SDLClimateControlData.-initWithFanSpeed:desiredTemperature:acEnable:circulateAirEnable:autoModeEnable:defrostZone:dualModeEnable:acMaxEnable:ventilationMode:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLClusterModeStatus.h", - "line": 15, - "symbol": "SDLClusterModeStatus.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "line": 12, + "symbol": "SDLClusterModeStatus", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLClusterModeStatus.h", - "line": 17, + "line": 14, "symbol": "SDLClusterModeStatus.powerModeActive", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLClusterModeStatus.h", - "line": 18, + "line": 15, "symbol": "SDLClusterModeStatus.powerModeQualificationStatus", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLClusterModeStatus.h", - "line": 19, + "line": 16, "symbol": "SDLClusterModeStatus.carModeStatus", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLClusterModeStatus.h", - "line": 20, + "line": 17, "symbol": "SDLClusterModeStatus.powerModeStatus", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLConfiguration.h", - "line": 16, + "line": 18, "symbol": "SDLConfiguration", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLConsoleController.h", - "line": 10, - "symbol": "SDLConsoleController", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLConsoleController.h", - "line": 11, - "symbol": "SDLConsoleController.messageList", - "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLConsoleController.h", - "line": 12, - "symbol": "SDLConsoleController.atBottom", - "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLConsoleController.h", - "line": 13, - "symbol": "SDLConsoleController.dateFormatter", - "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLConsoleController.h", - "line": 16, - "symbol": "SDLConsoleController.messageList", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLConsoleController.h", - "line": 18, - "symbol": "SDLConsoleController.-initWithTableView:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLCreateInteractionChoiceSet.h", - "line": 37, + "line": 26, "symbol": "SDLCreateInteractionChoiceSet.-initWithId:choiceSet:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h", - "line": 16, - "symbol": "SDLCreateInteractionChoiceSetResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h", - "line": 17, - "symbol": "SDLCreateInteractionChoiceSetResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDIDResult.h", - "line": 9, + "line": 10, "symbol": "SDLDIDResult", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" @@ -1004,5200 +752,4017 @@ { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDIDResult.h", "line": 12, - "symbol": "SDLDIDResult.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDIDResult.h", - "line": 13, - "symbol": "SDLDIDResult.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDIDResult.h", - "line": 15, "symbol": "SDLDIDResult.resultCode", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDIDResult.h", - "line": 16, + "line": 13, "symbol": "SDLDIDResult.didLocation", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDIDResult.h", - "line": 17, + "line": 14, "symbol": "SDLDIDResult.data", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDateTime.h", - "line": 6, + "line": 8, "symbol": "SDLDateTime", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDateTime.h", - "line": 8, + "line": 10, "symbol": "SDLDateTime.-initWithHour:minute:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDateTime.h", - "line": 10, + "line": 12, "symbol": "SDLDateTime.-initWithHour:minute:second:millisecond:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDateTime.h", - "line": 12, + "line": 14, "symbol": "SDLDateTime.-initWithHour:minute:second:millisecond:day:month:year:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDateTime.h", - "line": 14, + "line": 16, "symbol": "SDLDateTime.-initWithHour:minute:second:millisecond:day:month:year:timezoneMinuteOffset:timezoneHourOffset:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 11, - "symbol": "SDLDebugType", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeleteCommand.h", + "line": 24, + "symbol": "SDLDeleteCommand.-initWithId:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 11, - "symbol": "SDLDebugType", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeleteFile.h", + "line": 20, + "symbol": "SDLDeleteFile.-initWithFileName:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 12, - "symbol": "SDLDebugType.SDLDebugType_Debug", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeleteFileResponse.h", + "line": 17, + "symbol": "SDLDeleteFileResponse.spaceAvailable", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 13, - "symbol": "SDLDebugType.SDLDebugType_Transport_iAP", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeleteInteractionChoiceSet.h", + "line": 26, + "symbol": "SDLDeleteInteractionChoiceSet.-initWithId:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 14, - "symbol": "SDLDebugType.SDLDebugType_Transport_TCP", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeleteSubMenu.h", + "line": 24, + "symbol": "SDLDeleteSubMenu.-initWithId:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 15, - "symbol": "SDLDebugType.SDLDebugType_Protocol", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeviceInfo.h", + "line": 8, + "symbol": "SDLDeviceInfo", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 16, - "symbol": "SDLDebugType.SDLDebugType_RPC", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 17, - "symbol": "SDLDebugType.SDLDebugType_APP", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeviceInfo.h", + "line": 10, + "symbol": "SDLDeviceInfo.+currentDevice", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 20, - "symbol": "SDLDebugOutput", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeviceInfo.h", + "line": 12, + "symbol": "SDLDeviceInfo.hardware", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 20, - "symbol": "SDLDebugOutput", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeviceInfo.h", + "line": 13, + "symbol": "SDLDeviceInfo.firmwareRev", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 21, - "symbol": "SDLDebugOutput.SDLDebugOutput_All", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeviceInfo.h", + "line": 14, + "symbol": "SDLDeviceInfo.os", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 22, - "symbol": "SDLDebugOutput.SDLDebugOutput_DeviceConsole", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeviceInfo.h", + "line": 15, + "symbol": "SDLDeviceInfo.osVersion", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 23, - "symbol": "SDLDebugOutput.SDLDebugOutput_DebugToolConsole", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeviceInfo.h", + "line": 16, + "symbol": "SDLDeviceInfo.carrier", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 24, - "symbol": "SDLDebugOutput.SDLDebugOutput_File", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeviceInfo.h", + "line": 17, + "symbol": "SDLDeviceInfo.maxNumberRFCOMMPorts", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 28, - "symbol": "SDLDebugTool", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDiagnosticMessage.h", + "line": 17, + "symbol": "SDLDiagnosticMessage.-initWithTargetId:length:data:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 31, - "symbol": "SDLDebugTool.+enable", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDiagnosticMessageResponse.h", + "line": 15, + "symbol": "SDLDiagnosticMessageResponse.messageDataResult", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 32, - "symbol": "SDLDebugTool.+disable", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDialNumber.h", + "line": 17, + "symbol": "SDLDialNumber.-initWithNumber:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 33, - "symbol": "SDLDebugTool.+addConsole:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDisplayType.h", + "line": 19, + "symbol": "SDLDisplayTypeType2", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 34, - "symbol": "SDLDebugTool.+addConsole:toGroup:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDisplayType.h", + "line": 21, + "symbol": "SDLDisplayTypeType5", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 35, - "symbol": "SDLDebugTool.+removeConsole:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDisplayType.h", + "line": 28, + "symbol": "SDLDisplayTypeGen28DMA", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 36, - "symbol": "SDLDebugTool.+removeConsole:fromGroup:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDisplayType.h", + "line": 30, + "symbol": "SDLDisplayTypeGen26DMA", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 37, - "symbol": "SDLDebugTool.+logInfo:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDisplayType.h", + "line": 32, + "symbol": "SDLDisplayTypeMFD3", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 38, - "symbol": "SDLDebugTool.+logFormat:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDisplayType.h", + "line": 34, + "symbol": "SDLDisplayTypeMFD4", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 39, - "symbol": "SDLDebugTool.+logInfo:withType:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDisplayType.h", + "line": 36, + "symbol": "SDLDisplayTypeMFD5", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 40, - "symbol": "SDLDebugTool.+logInfo:withType:toOutput:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDisplayType.h", + "line": 38, + "symbol": "SDLDisplayTypeGen38Inch", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 41, - "symbol": "SDLDebugTool.+logInfo:andBinaryData:withType:toOutput:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDisplayType.h", + "line": 40, + "symbol": "SDLDisplayTypeGeneric", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 42, - "symbol": "SDLDebugTool.+logInfo:withType:toOutput:toGroup:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLECallInfo.h", + "line": 11, + "symbol": "SDLECallInfo", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 44, - "symbol": "SDLDebugTool.+enableDebugToLogFile", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLECallInfo.h", + "line": 13, + "symbol": "SDLECallInfo.eCallNotificationStatus", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 45, - "symbol": "SDLDebugTool.+disableDebugToLogFile", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLECallInfo.h", + "line": 14, + "symbol": "SDLECallInfo.auxECallNotificationStatus", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 46, - "symbol": "SDLDebugTool.+writeToLogFile:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLECallInfo.h", + "line": 15, + "symbol": "SDLECallInfo.eCallConfirmationStatus", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugTool.h", - "line": 48, - "symbol": "SDLDebugTool.+stringForDebugType:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEmergencyEvent.h", + "line": 12, + "symbol": "SDLEmergencyEvent", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugToolConsole.h", - "line": 7, - "symbol": "SDLDebugToolConsole", - "symbol_kind": "sourcekitten.source.lang.objc.decl.protocol", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEmergencyEvent.h", + "line": 14, + "symbol": "SDLEmergencyEvent.emergencyEventType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDebugToolConsole.h", - "line": 10, - "symbol": "SDLDebugToolConsole.-logInfo:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEmergencyEvent.h", + "line": 15, + "symbol": "SDLEmergencyEvent.fuelCutoffStatus", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeleteCommand.h", - "line": 35, - "symbol": "SDLDeleteCommand.-initWithId:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEmergencyEvent.h", + "line": 16, + "symbol": "SDLEmergencyEvent.rolloverEvent", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeleteCommandResponse.h", - "line": 15, - "symbol": "SDLDeleteCommandResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEmergencyEvent.h", + "line": 17, + "symbol": "SDLEmergencyEvent.maximumChangeVelocity", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeleteCommandResponse.h", - "line": 16, - "symbol": "SDLDeleteCommandResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEmergencyEvent.h", + "line": 18, + "symbol": "SDLEmergencyEvent.multipleEvents", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeleteFile.h", - "line": 30, - "symbol": "SDLDeleteFile.-initWithFileName:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEncodedSyncPData.h", + "line": 9, + "symbol": "SDLEncodedSyncPData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeleteFileResponse.h", - "line": 15, - "symbol": "SDLDeleteFileResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEncodedSyncPData.h", + "line": 11, + "symbol": "SDLEncodedSyncPData.data", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeleteFileResponse.h", - "line": 16, - "symbol": "SDLDeleteFileResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEncodedSyncPDataResponse.h", + "line": 9, + "symbol": "SDLEncodedSyncPDataResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeleteFileResponse.h", - "line": 18, - "symbol": "SDLDeleteFileResponse.spaceAvailable", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEnum.h", + "line": 10, + "symbol": "SDLEnum", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeleteInteractionChoiceSet.h", - "line": 37, - "symbol": "SDLDeleteInteractionChoiceSet.-initWithId:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEnum.h", + "line": 12, + "symbol": "NSString(SDLEnum)", + "symbol_kind": "sourcekitten.source.lang.objc.decl.category", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h", - "line": 15, - "symbol": "SDLDeleteInteractionChoiceSetResponse.-init", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEnum.h", + "line": 14, + "symbol": "NSString(SDLEnum).-isEqualToEnum:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLFile.h", "line": 16, - "symbol": "SDLDeleteInteractionChoiceSetResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "symbol": "SDLFile", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeleteSubMenu.h", - "line": 32, - "symbol": "SDLDeleteSubMenu.-initWithId:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLFile.h", + "line": 58, + "symbol": "SDLFile.-init", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeleteSubMenuResponse.h", - "line": 15, - "symbol": "SDLDeleteSubMenuResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLFileManager.h", + "line": 19, + "symbol": "SDLFileName", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeleteSubMenuResponse.h", - "line": 16, - "symbol": "SDLDeleteSubMenuResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLFileManager.h", + "line": 21, + "symbol": "SDLFileManagerStartupCompletionHandler", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeviceInfo.h", - "line": 7, - "symbol": "SDLDeviceInfo", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLFileManagerConstants.h", + "line": 15, + "symbol": "SDLFileName", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeviceInfo.h", - "line": 10, - "symbol": "SDLDeviceInfo.-init", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetDTCs.h", + "line": 21, + "symbol": "SDLGetDTCs.-initWithECUName:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeviceInfo.h", - "line": 11, - "symbol": "SDLDeviceInfo.-initWithDictionary:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetDTCs.h", + "line": 23, + "symbol": "SDLGetDTCs.-initWithECUName:mask:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeviceInfo.h", - "line": 13, - "symbol": "SDLDeviceInfo.+currentDevice", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetDTCsResponse.h", + "line": 17, + "symbol": "SDLGetDTCsResponse.ecuHeader", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeviceInfo.h", - "line": 15, - "symbol": "SDLDeviceInfo.hardware", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetDTCsResponse.h", + "line": 18, + "symbol": "SDLGetDTCsResponse.dtc", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeviceInfo.h", - "line": 16, - "symbol": "SDLDeviceInfo.firmwareRev", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetInteriorVehicleData.h", + "line": 20, + "symbol": "SDLGetInteriorVehicleData.-initWithModuleType:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeviceInfo.h", - "line": 17, - "symbol": "SDLDeviceInfo.os", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetInteriorVehicleData.h", + "line": 22, + "symbol": "SDLGetInteriorVehicleData.-initAndSubscribeToModuleType:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeviceInfo.h", - "line": 18, - "symbol": "SDLDeviceInfo.osVersion", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetInteriorVehicleData.h", + "line": 24, + "symbol": "SDLGetInteriorVehicleData.-initAndUnsubscribeToModuleType:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeviceInfo.h", - "line": 19, - "symbol": "SDLDeviceInfo.carrier", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h", + "line": 10, + "symbol": "SDLGetInteriorVehicleDataResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDeviceInfo.h", - "line": 20, - "symbol": "SDLDeviceInfo.maxNumberRFCOMMPorts", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h", + "line": 12, + "symbol": "SDLGetInteriorVehicleDataResponse.moduleData", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDiagnosticMessage.h", - "line": 15, - "symbol": "SDLDiagnosticMessage.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetSystemCapability.h", + "line": 16, + "symbol": "SDLGetSystemCapability", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDiagnosticMessage.h", - "line": 16, - "symbol": "SDLDiagnosticMessage.-initWithDictionary:", + "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/SDLDiagnosticMessage.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetSystemCapabilityResponse.h", "line": 18, - "symbol": "SDLDiagnosticMessage.-initWithTargetId:length:data:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "symbol": "SDLGetSystemCapabilityResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDiagnosticMessageResponse.h", - "line": 13, - "symbol": "SDLDiagnosticMessageResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetSystemCapabilityResponse.h", + "line": 20, + "symbol": "SDLGetSystemCapabilityResponse.systemCapability", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDiagnosticMessageResponse.h", - "line": 14, - "symbol": "SDLDiagnosticMessageResponse.-initWithDictionary:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleData.h", + "line": 23, + "symbol": "SDLGetVehicleData.-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:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDiagnosticMessageResponse.h", - "line": 16, - "symbol": "SDLDiagnosticMessageResponse.messageDataResult", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleData.h", + "line": 125, + "symbol": "SDLGetVehicleData.eCallInfo", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDialNumber.h", - "line": 14, - "symbol": "SDLDialNumber.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleData.h", + "line": 126, + "symbol": "SDLGetVehicleData.airbagStatus", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDialNumber.h", - "line": 15, - "symbol": "SDLDialNumber.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleData.h", + "line": 127, + "symbol": "SDLGetVehicleData.emergencyEvent", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDialNumber.h", - "line": 17, - "symbol": "SDLDialNumber.-initWithNumber:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleData.h", + "line": 128, + "symbol": "SDLGetVehicleData.clusterModeStatus", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDialNumberResponse.h", - "line": 14, - "symbol": "SDLDialNumberResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleData.h", + "line": 129, + "symbol": "SDLGetVehicleData.myKey", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDialNumberResponse.h", - "line": 15, - "symbol": "SDLDialNumberResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleDataResponse.h", + "line": 134, + "symbol": "SDLGetVehicleDataResponse.eCallInfo", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDisplayType.h", - "line": 38, - "symbol": "SDLDisplayType.+TYPE2", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleDataResponse.h", + "line": 135, + "symbol": "SDLGetVehicleDataResponse.airbagStatus", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDisplayType.h", - "line": 40, - "symbol": "SDLDisplayType.+TYPE5", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleDataResponse.h", + "line": 136, + "symbol": "SDLGetVehicleDataResponse.emergencyEvent", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDisplayType.h", - "line": 49, - "symbol": "SDLDisplayType.+GEN2_8_DMA", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleDataResponse.h", + "line": 137, + "symbol": "SDLGetVehicleDataResponse.clusterModeStatus", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDisplayType.h", - "line": 51, - "symbol": "SDLDisplayType.+GEN2_6_DMA", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleDataResponse.h", + "line": 138, + "symbol": "SDLGetVehicleDataResponse.myKey", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDisplayType.h", - "line": 53, - "symbol": "SDLDisplayType.+MFD3", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetWayPoints.h", + "line": 10, + "symbol": "SDLGetWayPoints", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDisplayType.h", - "line": 55, - "symbol": "SDLDisplayType.+MFD4", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetWayPoints.h", + "line": 12, + "symbol": "SDLGetWayPoints.-initWithType:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDisplayType.h", - "line": 57, - "symbol": "SDLDisplayType.+MFD5", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetWayPointsResponse.h", + "line": 10, + "symbol": "SDLGetWayPointsResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDisplayType.h", - "line": 59, - "symbol": "SDLDisplayType.+GEN3_8_INCH", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGlobalProperty.h", + "line": 24, + "symbol": "SDLGlobalPropertyVoiceRecognitionHelpTitle", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLDisplayType.h", - "line": 61, - "symbol": "SDLDisplayType.+GENERIC", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGlobalProperty.h", + "line": 26, + "symbol": "SDLGlobalPropertyVoiceRecognitionHelpItems", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLECallConfirmationStatus.h", - "line": 14, - "symbol": "SDLECallConfirmationStatus.+valueOf:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGlobalProperty.h", + "line": 28, + "symbol": "SDLGlobalPropertyMenuName", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLECallConfirmationStatus.h", - "line": 15, - "symbol": "SDLECallConfirmationStatus.+values", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGlobalProperty.h", + "line": 30, + "symbol": "SDLGlobalPropertyMenuIcon", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLECallInfo.h", - "line": 10, - "symbol": "SDLECallInfo", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGlobalProperty.h", + "line": 32, + "symbol": "SDLGlobalPropertyKeyboard", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLECallInfo.h", - "line": 13, - "symbol": "SDLECallInfo.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLHMICapabilities.h", + "line": 9, + "symbol": "SDLHMICapabilities", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLECallInfo.h", - "line": 14, - "symbol": "SDLECallInfo.-initWithDictionary:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLHapticRect.h", + "line": 22, + "symbol": "SDLHapticRect.-initWithId:rect:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLECallInfo.h", - "line": 16, - "symbol": "SDLECallInfo.eCallNotificationStatus", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLHapticRect.h", + "line": 30, + "symbol": "SDLHapticRect.rect", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLECallInfo.h", - "line": 17, - "symbol": "SDLECallInfo.auxECallNotificationStatus", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLHeadLampStatus.h", + "line": 26, + "symbol": "SDLHeadLampStatus.ambientLightSensorStatus", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLECallInfo.h", - "line": 18, - "symbol": "SDLECallInfo.eCallConfirmationStatus", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLIAPSessionDelegate.h", + "line": 10, + "symbol": "SDLIAPSessionDelegate", + "symbol_kind": "sourcekitten.source.lang.objc.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEmergencyEvent.h", - "line": 11, - "symbol": "SDLEmergencyEvent", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLIAPSessionDelegate.h", + "line": 12, + "symbol": "SDLIAPSessionDelegate.-onSessionInitializationCompleteForSession:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEmergencyEvent.h", - "line": 14, - "symbol": "SDLEmergencyEvent.-init", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLIAPSessionDelegate.h", + "line": 13, + "symbol": "SDLIAPSessionDelegate.-onSessionStreamsEnded:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEmergencyEvent.h", - "line": 15, - "symbol": "SDLEmergencyEvent.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLIAPTransport.h", + "line": 11, + "symbol": "SDLIAPTransport", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEmergencyEvent.h", - "line": 17, - "symbol": "SDLEmergencyEvent.emergencyEventType", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLIAPTransport.h", + "line": 13, + "symbol": "SDLIAPTransport.controlSession", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEmergencyEvent.h", - "line": 18, - "symbol": "SDLEmergencyEvent.fuelCutoffStatus", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLIAPTransport.h", + "line": 14, + "symbol": "SDLIAPTransport.session", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEmergencyEvent.h", - "line": 19, - "symbol": "SDLEmergencyEvent.rolloverEvent", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLIgnitionStableStatus.h", + "line": 24, + "symbol": "SDLIgnitionStableStatusMissingFromTransmitter", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEmergencyEvent.h", - "line": 20, - "symbol": "SDLEmergencyEvent.maximumChangeVelocity", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImage.h", + "line": 18, + "symbol": "SDLImage.-initWithName:ofType:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEmergencyEvent.h", - "line": 21, - "symbol": "SDLEmergencyEvent.multipleEvents", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageField.h", + "line": 13, + "symbol": "SDLImageField", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEmergencyEventType.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageField.h", "line": 15, - "symbol": "SDLEmergencyEventType.+valueOf:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLImageField.name", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEmergencyEventType.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageField.h", "line": 16, - "symbol": "SDLEmergencyEventType.+values", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLImageField.imageTypeSupported", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEncodedSyncPData.h", - "line": 7, - "symbol": "SDLEncodedSyncPData", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageField.h", + "line": 17, + "symbol": "SDLImageField.imageResolution", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEncodedSyncPData.h", - "line": 10, - "symbol": "SDLEncodedSyncPData.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageResolution.h", + "line": 9, + "symbol": "SDLImageResolution", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEncodedSyncPData.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageResolution.h", "line": 11, - "symbol": "SDLEncodedSyncPData.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEncodedSyncPData.h", - "line": 13, - "symbol": "SDLEncodedSyncPData.data", + "symbol": "SDLImageResolution.resolutionWidth", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEncodedSyncPDataResponse.h", - "line": 7, - "symbol": "SDLEncodedSyncPDataResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageResolution.h", + "line": 12, + "symbol": "SDLImageResolution.resolutionHeight", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEncodedSyncPDataResponse.h", - "line": 10, - "symbol": "SDLEncodedSyncPDataResponse.-init", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageResolution.h", + "line": 14, + "symbol": "SDLImageResolution.-initWithWidth:height:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEncodedSyncPDataResponse.h", - "line": 11, - "symbol": "SDLEncodedSyncPDataResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeyboardProperties.h", + "line": 12, + "symbol": "SDLKeyboardProperties", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEndAudioPassThruResponse.h", - "line": 15, - "symbol": "SDLEndAudioPassThruResponse.-init", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeyboardProperties.h", + "line": 14, + "symbol": "SDLKeyboardProperties.-initWithLanguage:layout:keypressMode:limitedCharacterList:autoCompleteText:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEndAudioPassThruResponse.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeyboardProperties.h", "line": 16, - "symbol": "SDLEndAudioPassThruResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "symbol": "SDLKeyboardProperties.language", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEnum.h", - "line": 8, - "symbol": "SDLEnum", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeyboardProperties.h", + "line": 17, + "symbol": "SDLKeyboardProperties.keyboardLayout", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEnum.h", - "line": 9, - "symbol": "SDLEnum.value", - "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeyboardProperties.h", + "line": 18, + "symbol": "SDLKeyboardProperties.keypressMode", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEnum.h", - "line": 12, - "symbol": "SDLEnum.-initWithValue:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeyboardProperties.h", + "line": 19, + "symbol": "SDLKeyboardProperties.limitedCharacterList", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEnum.h", - "line": 14, - "symbol": "SDLEnum.-isEqualToEnum:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeyboardProperties.h", + "line": 20, + "symbol": "SDLKeyboardProperties.autoCompleteText", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLEnum.h", - "line": 16, - "symbol": "SDLEnum.value", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", + "line": 17, + "symbol": "SDLLanguageEnSa", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLFile.h", - "line": 16, - "symbol": "SDLFile", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", + "line": 22, + "symbol": "SDLLanguageHeIl", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLFile.h", - "line": 49, - "symbol": "SDLFile.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", + "line": 27, + "symbol": "SDLLanguageRoRo", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLFileManager.h", - "line": 19, - "symbol": "SDLFileName", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", + "line": 32, + "symbol": "SDLLanguageUkUa", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLFileManager.h", - "line": 21, - "symbol": "SDLFileManagerStartupCompletionHandler", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", + "line": 37, + "symbol": "SDLLanguageIdId", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLFileManagerConstants.h", - "line": 13, - "symbol": "SDLFileManagerUploadCompletionHandler", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", + "line": 42, + "symbol": "SDLLanguageViVn", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLFileManagerConstants.h", - "line": 14, - "symbol": "SDLFileManagerDeleteCompletionHandler", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", + "line": 47, + "symbol": "SDLLanguageMsMy", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLFileManagerConstants.h", - "line": 15, - "symbol": "SDLFileManagerListFilesCompletionHandler", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", + "line": 52, + "symbol": "SDLLanguageHiIn", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGenericResponse.h", - "line": 15, - "symbol": "SDLGenericResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", + "line": 57, + "symbol": "SDLLanguageNlBe", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGenericResponse.h", - "line": 16, - "symbol": "SDLGenericResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", + "line": 62, + "symbol": "SDLLanguageElGr", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetDTCs.h", - "line": 30, - "symbol": "SDLGetDTCs.-initWithECUName:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", + "line": 67, + "symbol": "SDLLanguageHuHu", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetDTCs.h", - "line": 32, - "symbol": "SDLGetDTCs.-initWithECUName:mask:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", + "line": 72, + "symbol": "SDLLanguageFiFi", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetDTCsResponse.h", - "line": 15, - "symbol": "SDLGetDTCsResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", + "line": 77, + "symbol": "SDLLanguageSkSk", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetDTCsResponse.h", - "line": 16, - "symbol": "SDLGetDTCsResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", + "line": 82, + "symbol": "SDLLanguageEnUs", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetDTCsResponse.h", - "line": 18, - "symbol": "SDLGetDTCsResponse.ecuHeader", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", + "line": 87, + "symbol": "SDLLanguageEnIn", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetDTCsResponse.h", - "line": 19, - "symbol": "SDLGetDTCsResponse.dtc", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", + "line": 92, + "symbol": "SDLLanguageThTh", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetSystemCapability.h", - "line": 15, - "symbol": "SDLGetSystemCapability", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLifecycleConfiguration.h", + "line": 25, + "symbol": "SDLLifecycleConfiguration.-init", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetSystemCapability.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLListFilesResponse.h", "line": 17, - "symbol": "SDLGetSystemCapability.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "symbol": "SDLListFilesResponse.filenames", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetSystemCapability.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLListFilesResponse.h", "line": 18, - "symbol": "SDLGetSystemCapability.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "symbol": "SDLListFilesResponse.spaceAvailable", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetSystemCapability.h", - "line": 20, - "symbol": "SDLGetSystemCapability.-initWithType:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLocationCoordinate.h", + "line": 8, + "symbol": "SDLLocationCoordinate", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetSystemCapabilityResponse.h", - "line": 15, - "symbol": "SDLGetSystemCapabilityResponse", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLocationDetails.h", + "line": 12, + "symbol": "SDLLocationDetails", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetSystemCapabilityResponse.h", - "line": 17, - "symbol": "SDLGetSystemCapabilityResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLockScreenConfiguration.h", + "line": 14, + "symbol": "SDLLockScreenConfiguration", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetSystemCapabilityResponse.h", - "line": 18, - "symbol": "SDLGetSystemCapabilityResponse.-initWithDictionary:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLockScreenConfiguration.h", + "line": 41, + "symbol": "SDLLockScreenConfiguration.-init", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetSystemCapabilityResponse.h", - "line": 20, - "symbol": "SDLGetSystemCapabilityResponse.systemCapability", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleData.h", - "line": 33, - "symbol": "SDLGetVehicleData.-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:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLockScreenStatus.h", + "line": 9, + "symbol": "SDLLockScreenStatus", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleData.h", - "line": 135, - "symbol": "SDLGetVehicleData.eCallInfo", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLockScreenViewController.h", + "line": 13, + "symbol": "SDLLockScreenViewController", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleData.h", - "line": 136, - "symbol": "SDLGetVehicleData.airbagStatus", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogConfiguration.h", + "line": 20, + "symbol": "SDLLogConfiguration", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleData.h", - "line": 137, - "symbol": "SDLGetVehicleData.emergencyEvent", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogConstants.h", + "line": 23, + "symbol": "SDLLogBytesDirection", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleData.h", - "line": 138, - "symbol": "SDLGetVehicleData.clusterModeStatus", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogConstants.h", + "line": 23, + "symbol": "SDLLogBytesDirection", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleData.h", - "line": 139, - "symbol": "SDLGetVehicleData.myKey", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogConstants.h", + "line": 24, + "symbol": "SDLLogBytesDirection.SDLLogBytesDirectionTransmit", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleDataResponse.h", - "line": 144, - "symbol": "SDLGetVehicleDataResponse.eCallInfo", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogConstants.h", + "line": 25, + "symbol": "SDLLogBytesDirection.SDLLogBytesDirectionReceive", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleDataResponse.h", - "line": 145, - "symbol": "SDLGetVehicleDataResponse.airbagStatus", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogConstants.h", + "line": 37, + "symbol": "SDLLogFlag.SDLLogFlagError", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleDataResponse.h", - "line": 146, - "symbol": "SDLGetVehicleDataResponse.emergencyEvent", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogConstants.h", + "line": 38, + "symbol": "SDLLogFlag.SDLLogFlagWarning", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleDataResponse.h", - "line": 147, - "symbol": "SDLGetVehicleDataResponse.clusterModeStatus", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogConstants.h", + "line": 39, + "symbol": "SDLLogFlag.SDLLogFlagDebug", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetVehicleDataResponse.h", - "line": 148, - "symbol": "SDLGetVehicleDataResponse.myKey", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogConstants.h", + "line": 40, + "symbol": "SDLLogFlag.SDLLogFlagVerbose", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetWaypoints.h", - "line": 9, - "symbol": "SDLGetWayPoints", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogConstants.h", + "line": 54, + "symbol": "SDLLogLevel.SDLLogLevelDefault", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetWaypoints.h", - "line": 11, - "symbol": "SDLGetWayPoints.-initWithType:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogConstants.h", + "line": 55, + "symbol": "SDLLogLevel.SDLLogLevelOff", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetWaypoints.h", - "line": 24, - "symbol": "SDLGetWaypoints", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogConstants.h", + "line": 56, + "symbol": "SDLLogLevel.SDLLogLevelError", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetWaypointsResponse.h", - "line": 8, - "symbol": "SDLGetWayPointsResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogConstants.h", + "line": 57, + "symbol": "SDLLogLevel.SDLLogLevelWarning", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGetWaypointsResponse.h", - "line": 22, - "symbol": "SDLGetWaypointsResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogConstants.h", + "line": 58, + "symbol": "SDLLogLevel.SDLLogLevelDebug", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGlobalProperty.h", - "line": 40, - "symbol": "SDLGlobalProperty.+VRHELPTITLE", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogConstants.h", + "line": 59, + "symbol": "SDLLogLevel.SDLLogLevelVerbose", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGlobalProperty.h", - "line": 42, - "symbol": "SDLGlobalProperty.+VRHELPITEMS", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogConstants.h", + "line": 70, + "symbol": "SDLLogFormatType.SDLLogFormatTypeSimple", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGlobalProperty.h", - "line": 44, - "symbol": "SDLGlobalProperty.+MENUNAME", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogConstants.h", + "line": 71, + "symbol": "SDLLogFormatType.SDLLogFormatTypeDefault", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGlobalProperty.h", - "line": 46, - "symbol": "SDLGlobalProperty.+MENUICON", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogConstants.h", + "line": 72, + "symbol": "SDLLogFormatType.SDLLogFormatTypeDetailed", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLGlobalProperty.h", - "line": 48, - "symbol": "SDLGlobalProperty.+KEYBOARDPROPERTIES", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogFileModule.h", + "line": 16, + "symbol": "SDLLogFileModule", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLHMICapabilities.h", - "line": 7, - "symbol": "SDLHMICapabilities", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogFilter.h", + "line": 19, + "symbol": "SDLLogFilter", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLHMICapabilities.h", - "line": 9, - "symbol": "SDLHMICapabilities.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogFilter.h", + "line": 21, + "symbol": "SDLLogFilter.filter", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLHMICapabilities.h", - "line": 10, - "symbol": "SDLHMICapabilities.-initWithDictionary:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogFilter.h", + "line": 23, + "symbol": "SDLLogFilter.-init", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLHeadLampStatus.h", - "line": 32, - "symbol": "SDLHeadLampStatus.ambientLightSensorStatus", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogManager.h", + "line": 26, + "symbol": "SDLLogManager.modules", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLIAPSessionDelegate.h", - "line": 8, - "symbol": "SDLIAPSessionDelegate", - "symbol_kind": "sourcekitten.source.lang.objc.decl.protocol", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogManager.h", + "line": 27, + "symbol": "SDLLogManager.targets", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLIAPSessionDelegate.h", - "line": 10, - "symbol": "SDLIAPSessionDelegate.-onSessionInitializationCompleteForSession:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogManager.h", + "line": 28, + "symbol": "SDLLogManager.filters", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLIAPSessionDelegate.h", - "line": 11, - "symbol": "SDLIAPSessionDelegate.-onSessionStreamsEnded:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogManager.h", + "line": 32, + "symbol": "SDLLogManager.formatType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLIAPTransport.h", - "line": 10, - "symbol": "SDLIAPTransport", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogManager.h", + "line": 34, + "symbol": "SDLLogManager.asynchronous", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLIAPTransport.h", - "line": 12, - "symbol": "SDLIAPTransport.controlSession", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogManager.h", + "line": 35, + "symbol": "SDLLogManager.errorsAsynchronous", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLIAPTransport.h", - "line": 13, - "symbol": "SDLIAPTransport.session", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogManager.h", + "line": 37, + "symbol": "SDLLogManager.dateFormatter", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLIgnitionStableStatus.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogManager.h", + "line": 38, + "symbol": "SDLLogManager.logQueue", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogManager.h", "line": 40, - "symbol": "SDLIgnitionStableStatus.+MISSING_FROM_TRANSMITTER", + "symbol": "SDLLogManager.+sharedManager", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImage.h", - "line": 28, - "symbol": "SDLImage.-initWithName:ofType:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogTarget.h", + "line": 16, + "symbol": "SDLLogTarget", + "symbol_kind": "sourcekitten.source.lang.objc.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageField.h", - "line": 10, - "symbol": "SDLImageField", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLogTarget.h", + "line": 39, + "symbol": "SDLLogTarget.-teardownLogger", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageField.h", - "line": 13, - "symbol": "SDLImageField.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLManager.h", + "line": 28, + "symbol": "SDLManagerReadyBlock", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageField.h", - "line": 14, - "symbol": "SDLImageField.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLManager.h", + "line": 31, + "symbol": "SDLManager", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageField.h", - "line": 16, - "symbol": "SDLImageField.name", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLManager.h", + "line": 84, + "symbol": "SDLManager.proxy", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageField.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLManagerDelegate.h", + "line": 18, + "symbol": "SDLManagerDelegate", + "symbol_kind": "sourcekitten.source.lang.objc.decl.protocol", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLMenuParams.h", "line": 17, - "symbol": "SDLImageField.imageTypeSupported", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "symbol": "SDLMenuParams.-initWithMenuName:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageField.h", - "line": 18, - "symbol": "SDLImageField.imageResolution", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLMenuParams.h", + "line": 19, + "symbol": "SDLMenuParams.-initWithMenuName:parentId:position:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageFieldName.h", - "line": 16, - "symbol": "SDLImageFieldName.+valueOf:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLMetadataTags.h", + "line": 14, + "symbol": "SDLMetadataTags", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageFieldName.h", - "line": 17, - "symbol": "SDLImageFieldName.+values", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLMetadataTags.h", + "line": 21, + "symbol": "SDLMetadataTags.-initWithTextFieldTypes:mainField2:mainField3:mainField4:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageResolution.h", - "line": 7, - "symbol": "SDLImageResolution", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLModuleData.h", + "line": 13, + "symbol": "SDLModuleData", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageResolution.h", - "line": 10, - "symbol": "SDLImageResolution.-init", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLModuleData.h", + "line": 15, + "symbol": "SDLModuleData.-initWithRadioControlData:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageResolution.h", - "line": 11, - "symbol": "SDLImageResolution.-initWithDictionary:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLModuleData.h", + "line": 16, + "symbol": "SDLModuleData.-initWithClimateControlData:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageResolution.h", - "line": 13, - "symbol": "SDLImageResolution.resolutionWidth", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLModuleData.h", + "line": 25, + "symbol": "SDLModuleData.radioControlData", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLImageResolution.h", - "line": 14, - "symbol": "SDLImageResolution.resolutionHeight", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLModuleData.h", + "line": 27, + "symbol": "SDLModuleData.climateControlData", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLJingle.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLModuleType.h", "line": 7, - "symbol": "SDLJingle", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "symbol": "SDLModuleType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLJingle.h", - "line": 10, - "symbol": "SDLJingle.+NEGATIVE_JINGLE", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLMyKey.h", + "line": 9, + "symbol": "SDLMyKey", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLJingle.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLMyKey.h", "line": 11, - "symbol": "SDLJingle.+POSITIVE_JINGLE", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLJingle.h", - "line": 12, - "symbol": "SDLJingle.+LISTEN_JINGLE", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLMyKey.e911Override", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLJingle.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationCapability.h", "line": 13, - "symbol": "SDLJingle.+INITIAL_JINGLE", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLNavigationCapability", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLJingle.h", - "line": 14, - "symbol": "SDLJingle.+HELP_JINGLE", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationCapability.h", + "line": 15, + "symbol": "SDLNavigationCapability.-initWithSendLocation:waypoints:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeyboardEvent.h", - "line": 15, - "symbol": "SDLKeyboardEvent.+valueOf:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 28, + "symbol": "SDLNotificationName", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeyboardEvent.h", - "line": 16, - "symbol": "SDLKeyboardEvent.+values", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 30, + "symbol": "SDLNotificationUserInfoKey", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeyboardLayout.h", - "line": 15, - "symbol": "SDLKeyboardLayout.+valueOf:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 74, + "symbol": "SDLNotificationUserInfoObject", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeyboardLayout.h", - "line": 16, - "symbol": "SDLKeyboardLayout.+values", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 80, + "symbol": "SDLTransportDidDisconnect", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeyboardProperties.h", - "line": 11, - "symbol": "SDLKeyboardProperties", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 81, + "symbol": "SDLTransportDidConnect", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeyboardProperties.h", - "line": 14, - "symbol": "SDLKeyboardProperties.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 82, + "symbol": "SDLDidReceiveError", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeyboardProperties.h", - "line": 15, - "symbol": "SDLKeyboardProperties.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 83, + "symbol": "SDLDidReceiveLockScreenIcon", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeyboardProperties.h", - "line": 18, - "symbol": "SDLKeyboardProperties.-initWithLanguage:layout:keypressMode:limitedCharacterList:autoCompleteText:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 84, + "symbol": "SDLDidBecomeReady", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeyboardProperties.h", - "line": 20, - "symbol": "SDLKeyboardProperties.language", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 85, + "symbol": "SDLDidUpdateProjectionView", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeyboardProperties.h", - "line": 21, - "symbol": "SDLKeyboardProperties.keyboardLayout", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 91, + "symbol": "SDLDidReceiveAddCommandResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeyboardProperties.h", - "line": 22, - "symbol": "SDLKeyboardProperties.keypressMode", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 92, + "symbol": "SDLDidReceiveAddSubMenuResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeyboardProperties.h", - "line": 23, - "symbol": "SDLKeyboardProperties.limitedCharacterList", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 93, + "symbol": "SDLDidReceiveAlertResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeyboardProperties.h", - "line": 24, - "symbol": "SDLKeyboardProperties.autoCompleteText", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 94, + "symbol": "SDLDidReceiveAlertManeuverResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeypressMode.h", - "line": 17, - "symbol": "SDLKeypressMode.+valueOf:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 95, + "symbol": "SDLDidReceiveButtonPressResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLKeypressMode.h", - "line": 18, - "symbol": "SDLKeypressMode.+values", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 96, + "symbol": "SDLDidReceiveChangeRegistrationResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", - "line": 33, - "symbol": "SDLLanguage.+EN_SA", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 97, + "symbol": "SDLDidReceiveCreateInteractionChoiceSetResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", - "line": 38, - "symbol": "SDLLanguage.+HE_IL", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 98, + "symbol": "SDLDidReceiveDeleteCommandResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", - "line": 43, - "symbol": "SDLLanguage.+RO_RO", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 99, + "symbol": "SDLDidReceiveDeleteFileResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", - "line": 48, - "symbol": "SDLLanguage.+UK_UA", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 100, + "symbol": "SDLDidReceiveDeleteInteractionChoiceSetResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", - "line": 53, - "symbol": "SDLLanguage.+ID_ID", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 101, + "symbol": "SDLDidReceiveDeleteSubmenuResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", - "line": 58, - "symbol": "SDLLanguage.+VI_VN", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 102, + "symbol": "SDLDidReceiveDiagnosticMessageResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", - "line": 63, - "symbol": "SDLLanguage.+MS_MY", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 103, + "symbol": "SDLDidReceiveDialNumberResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", - "line": 68, - "symbol": "SDLLanguage.+HI_IN", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 104, + "symbol": "SDLDidReceiveEncodedSyncPDataResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", - "line": 73, - "symbol": "SDLLanguage.+NL_BE", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 105, + "symbol": "SDLDidReceiveEndAudioPassThruResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", - "line": 78, - "symbol": "SDLLanguage.+EL_GR", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 106, + "symbol": "SDLDidReceiveGenericResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", - "line": 83, - "symbol": "SDLLanguage.+HU_HU", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 107, + "symbol": "SDLDidReceiveGetDTCsResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", - "line": 88, - "symbol": "SDLLanguage.+FI_FI", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 108, + "symbol": "SDLDidReceiveGetInteriorVehicleDataResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", - "line": 93, - "symbol": "SDLLanguage.+SK_SK", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 109, + "symbol": "SDLDidReceiveGetSystemCapabilitiesResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", - "line": 98, - "symbol": "SDLLanguage.+EN_US", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 110, + "symbol": "SDLDidReceiveGetVehicleDataResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", - "line": 103, - "symbol": "SDLLanguage.+EN_IN", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 111, + "symbol": "SDLDidReceiveGetWaypointsResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLanguage.h", - "line": 108, - "symbol": "SDLLanguage.+TH_TH", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 112, + "symbol": "SDLDidReceiveListFilesResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLayoutMode.h", - "line": 15, - "symbol": "SDLLayoutMode.+valueOf:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 113, + "symbol": "SDLDidReceivePerformAudioPassThruResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLayoutMode.h", - "line": 16, - "symbol": "SDLLayoutMode.+values", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 114, + "symbol": "SDLDidReceivePerformInteractionResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLifecycleConfiguration.h", - "line": 19, - "symbol": "SDLLogOutput", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 115, + "symbol": "SDLDidReceivePutFileResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLifecycleConfiguration.h", - "line": 19, - "symbol": "SDLLogOutput", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 116, + "symbol": "SDLDidReceiveReadDIDResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLifecycleConfiguration.h", - "line": 20, - "symbol": "SDLLogOutput.SDLLogOutputNone", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 117, + "symbol": "SDLDidReceiveRegisterAppInterfaceResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLifecycleConfiguration.h", - "line": 21, - "symbol": "SDLLogOutput.SDLLogOutputConsole", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 118, + "symbol": "SDLDidReceiveResetGlobalPropertiesResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLifecycleConfiguration.h", - "line": 22, - "symbol": "SDLLogOutput.SDLLogOutputFile", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 119, + "symbol": "SDLDidReceiveScrollableMessageResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLifecycleConfiguration.h", - "line": 23, - "symbol": "SDLLogOutput.SDLLogOutputSiphon", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 120, + "symbol": "SDLDidReceiveSendHapticDataResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLifecycleConfiguration.h", - "line": 34, - "symbol": "SDLLifecycleConfiguration.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 121, + "symbol": "SDLDidReceiveSendLocationResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLListFilesResponse.h", - "line": 15, - "symbol": "SDLListFilesResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 122, + "symbol": "SDLDidReceiveSetAppIconResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLListFilesResponse.h", - "line": 16, - "symbol": "SDLListFilesResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 123, + "symbol": "SDLDidReceiveSetDisplayLayoutResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLListFilesResponse.h", - "line": 18, - "symbol": "SDLListFilesResponse.filenames", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 124, + "symbol": "SDLDidReceiveSetGlobalPropertiesResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLListFilesResponse.h", - "line": 19, - "symbol": "SDLListFilesResponse.spaceAvailable", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 125, + "symbol": "SDLDidReceiveSetInteriorVehicleDataResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLocationCoordinate.h", - "line": 6, - "symbol": "SDLLocationCoordinate", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 126, + "symbol": "SDLDidReceiveSetMediaClockTimerResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLocationDetails.h", - "line": 10, - "symbol": "SDLLocationDetails", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 127, + "symbol": "SDLDidReceiveShowConstantTBTResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLockScreenConfiguration.h", - "line": 14, - "symbol": "SDLLockScreenConfiguration", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 128, + "symbol": "SDLDidReceiveShowResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLockScreenConfiguration.h", - "line": 41, - "symbol": "SDLLockScreenConfiguration.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 129, + "symbol": "SDLDidReceiveSliderResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLockScreenStatus.h", - "line": 9, - "symbol": "SDLLockScreenStatus", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 130, + "symbol": "SDLDidReceiveSpeakResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLockScreenStatus.h", - "line": 10, - "symbol": "SDLLockScreenStatus.+valueOf:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 131, + "symbol": "SDLDidReceiveSubscribeButtonResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLockScreenStatus.h", - "line": 11, - "symbol": "SDLLockScreenStatus.+values", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 132, + "symbol": "SDLDidReceiveSubscribeVehicleDataResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLLockScreenViewController.h", - "line": 13, - "symbol": "SDLLockScreenViewController", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 133, + "symbol": "SDLDidReceiveSubscribeWaypointsResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLManager.h", - "line": 25, - "symbol": "SDLManagerReadyBlock", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 134, + "symbol": "SDLDidReceiveSyncPDataResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLManager.h", - "line": 28, - "symbol": "SDLManager", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 135, + "symbol": "SDLDidReceiveUpdateTurnListResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLManager.h", - "line": 71, - "symbol": "SDLManager.proxy", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 136, + "symbol": "SDLDidReceiveUnregisterAppInterfaceResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLManagerDelegate.h", - "line": 16, - "symbol": "SDLManagerDelegate", - "symbol_kind": "sourcekitten.source.lang.objc.decl.protocol", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 137, + "symbol": "SDLDidReceiveUnsubscribeButtonResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLMenuParams.h", - "line": 26, - "symbol": "SDLMenuParams.-initWithMenuName:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 138, + "symbol": "SDLDidReceiveUnsubscribeVehicleDataResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLMenuParams.h", - "line": 28, - "symbol": "SDLMenuParams.-initWithMenuName:parentId:position:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 139, + "symbol": "SDLDidReceiveUnsubscribeWaypointsResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLMetadataTags.h", - "line": 13, - "symbol": "SDLMetadataTags", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 145, + "symbol": "SDLDidChangeDriverDistractionStateNotification", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLMetadataTags.h", - "line": 33, - "symbol": "SDLMetadataTags.-initWithTextFieldTypes:mainField2:mainField3:mainField4:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 146, + "symbol": "SDLDidChangeHMIStatusNotification", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLMyKey.h", - "line": 9, - "symbol": "SDLMyKey", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 147, + "symbol": "SDLDidReceiveAudioPassThruNotification", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLMyKey.h", - "line": 12, - "symbol": "SDLMyKey.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 148, + "symbol": "SDLDidReceiveAppUnregisteredNotification", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLMyKey.h", - "line": 13, - "symbol": "SDLMyKey.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 149, + "symbol": "SDLDidReceiveButtonEventNotification", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLMyKey.h", - "line": 15, - "symbol": "SDLMyKey.e911Override", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 150, + "symbol": "SDLDidReceiveButtonPressNotification", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationCapability.h", - "line": 11, - "symbol": "SDLNavigationCapability", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 151, + "symbol": "SDLDidReceiveCommandNotification", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNavigationCapability.h", - "line": 24, - "symbol": "SDLNavigationCapability.-initWithSendLocation:waypoints:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", + "line": 152, + "symbol": "SDLDidReceiveEncodedDataNotification", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 24, - "symbol": "SDLNotificationName", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "line": 153, + "symbol": "SDLDidReceiveInteriorVehicleDataNotification", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 26, - "symbol": "SDLNotificationUserInfoKey", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "line": 154, + "symbol": "SDLDidReceiveKeyboardInputNotification", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 49, - "symbol": "SDLNotificationUserInfoObject", + "line": 155, + "symbol": "SDLDidChangeLanguageNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 55, - "symbol": "SDLTransportDidDisconnect", + "line": 156, + "symbol": "SDLDidChangeLockScreenStatusNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 56, - "symbol": "SDLTransportDidConnect", + "line": 157, + "symbol": "SDLDidReceiveNewHashNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 57, - "symbol": "SDLDidReceiveError", + "line": 158, + "symbol": "SDLDidReceiveVehicleIconNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 58, - "symbol": "SDLDidReceiveLockScreenIcon", + "line": 159, + "symbol": "SDLDidChangePermissionsNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 59, - "symbol": "SDLDidBecomeReady", + "line": 160, + "symbol": "SDLDidReceiveSystemRequestNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 65, - "symbol": "SDLDidReceiveAddCommandResponse", + "line": 161, + "symbol": "SDLDidChangeTurnByTurnStateNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 66, - "symbol": "SDLDidReceiveAddSubMenuResponse", + "line": 162, + "symbol": "SDLDidReceiveTouchEventNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 67, - "symbol": "SDLDidReceiveAlertResponse", + "line": 163, + "symbol": "SDLDidReceiveVehicleDataNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 68, - "symbol": "SDLDidReceiveAlertManeuverResponse", + "line": 164, + "symbol": "SDLDidReceiveWaypointNotification", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 69, - "symbol": "SDLDidReceiveChangeRegistrationResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "line": 166, + "symbol": "SDLNotificationConstants", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 70, - "symbol": "SDLDidReceiveCreateInteractionChoiceSetResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "line": 168, + "symbol": "SDLNotificationConstants.+allResponseNames", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 71, - "symbol": "SDLDidReceiveDeleteCommandResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "line": 169, + "symbol": "SDLNotificationConstants.+allButtonEventNotifications", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 72, - "symbol": "SDLDidReceiveDeleteFileResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOasisAddress.h", + "line": 8, + "symbol": "SDLOasisAddress", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 73, - "symbol": "SDLDidReceiveDeleteInteractionChoiceSetResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOasisAddress.h", + "line": 10, + "symbol": "SDLOasisAddress.-initWithSubThoroughfare:thoroughfare:locality:administrativeArea:postalCode:countryCode:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 74, - "symbol": "SDLDidReceiveDeleteSubmenuResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOasisAddress.h", + "line": 12, + "symbol": "SDLOasisAddress.-initWithSubThoroughfare:thoroughfare:locality:administrativeArea:postalCode:countryCode:countryName:subAdministrativeArea:subLocality:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 75, - "symbol": "SDLDidReceiveDiagnosticMessageResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnEncodedSyncPData.h", + "line": 8, + "symbol": "SDLOnEncodedSyncPData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 76, - "symbol": "SDLDidReceiveDialNumberResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnEncodedSyncPData.h", + "line": 10, + "symbol": "SDLOnEncodedSyncPData.data", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 77, - "symbol": "SDLDidReceiveEncodedSyncPDataResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnEncodedSyncPData.h", + "line": 11, + "symbol": "SDLOnEncodedSyncPData.URL", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 78, - "symbol": "SDLDidReceiveEndAudioPassThruResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnEncodedSyncPData.h", + "line": 12, + "symbol": "SDLOnEncodedSyncPData.Timeout", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 79, - "symbol": "SDLDidReceiveGenericResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnHashChange.h", + "line": 9, + "symbol": "SDLOnHashChange", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 80, - "symbol": "SDLDidReceiveGetDTCsResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnHashChange.h", + "line": 11, + "symbol": "SDLOnHashChange.hashID", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 81, - "symbol": "SDLDidReceiveGetSystemCapabilitiesResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnInteriorVehicleData.h", + "line": 10, + "symbol": "SDLOnInteriorVehicleData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 82, - "symbol": "SDLDidReceiveGetVehicleDataResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnInteriorVehicleData.h", + "line": 12, + "symbol": "SDLOnInteriorVehicleData.moduleData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 83, - "symbol": "SDLDidReceiveGetWaypointsResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnKeyboardInput.h", + "line": 10, + "symbol": "SDLOnKeyboardInput", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 84, - "symbol": "SDLDidReceiveListFilesResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnKeyboardInput.h", + "line": 12, + "symbol": "SDLOnKeyboardInput.event", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 85, - "symbol": "SDLDidReceivePerformAudioPassThruResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnKeyboardInput.h", + "line": 13, + "symbol": "SDLOnKeyboardInput.data", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 86, - "symbol": "SDLDidReceivePerformInteractionResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSyncPData.h", + "line": 9, + "symbol": "SDLOnSyncPData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 87, - "symbol": "SDLDidReceivePutFileResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSyncPData.h", + "line": 11, + "symbol": "SDLOnSyncPData.URL", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 88, - "symbol": "SDLDidReceiveReadDIDResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSyncPData.h", + "line": 12, + "symbol": "SDLOnSyncPData.Timeout", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 89, - "symbol": "SDLDidReceiveRegisterAppInterfaceResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSystemRequest.h", + "line": 11, + "symbol": "SDLOnSystemRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 90, - "symbol": "SDLDidReceiveResetGlobalPropertiesResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSystemRequest.h", + "line": 13, + "symbol": "SDLOnSystemRequest.requestType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 91, - "symbol": "SDLDidReceiveScrollableMessageResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSystemRequest.h", + "line": 14, + "symbol": "SDLOnSystemRequest.url", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 92, - "symbol": "SDLDidReceiveSendHapticDataResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSystemRequest.h", + "line": 15, + "symbol": "SDLOnSystemRequest.timeout", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 93, - "symbol": "SDLDidReceiveSendLocationResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSystemRequest.h", + "line": 16, + "symbol": "SDLOnSystemRequest.fileType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 94, - "symbol": "SDLDidReceiveSetAppIconResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSystemRequest.h", + "line": 17, + "symbol": "SDLOnSystemRequest.offset", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 95, - "symbol": "SDLDidReceiveSetDisplayLayoutResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSystemRequest.h", + "line": 18, + "symbol": "SDLOnSystemRequest.length", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 96, - "symbol": "SDLDidReceiveSetGlobalPropertiesResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnTBTClientState.h", + "line": 10, + "symbol": "SDLOnTBTClientState", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 97, - "symbol": "SDLDidReceiveSetMediaClockTimerResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnTBTClientState.h", + "line": 12, + "symbol": "SDLOnTBTClientState.state", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 98, - "symbol": "SDLDidReceiveShowConstantTBTResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnTouchEvent.h", + "line": 12, + "symbol": "SDLOnTouchEvent", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 99, - "symbol": "SDLDidReceiveShowResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnTouchEvent.h", + "line": 14, + "symbol": "SDLOnTouchEvent.type", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 100, - "symbol": "SDLDidReceiveSliderResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 101, - "symbol": "SDLDidReceiveSpeakResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 102, - "symbol": "SDLDidReceiveSubscribeButtonResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 103, - "symbol": "SDLDidReceiveSubscribeVehicleDataResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 104, - "symbol": "SDLDidReceiveSubscribeWaypointsResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 105, - "symbol": "SDLDidReceiveSyncPDataResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 106, - "symbol": "SDLDidReceiveUpdateTurnListResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 107, - "symbol": "SDLDidReceiveUnregisterAppInterfaceResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 108, - "symbol": "SDLDidReceiveUnsubscribeButtonResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 109, - "symbol": "SDLDidReceiveUnsubscribeVehicleDataResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 110, - "symbol": "SDLDidReceiveUnsubscribeWaypointsResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 116, - "symbol": "SDLDidChangeDriverDistractionStateNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 117, - "symbol": "SDLDidChangeHMIStatusNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 118, - "symbol": "SDLDidReceiveAudioPassThruNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 119, - "symbol": "SDLDidReceiveAppUnregisteredNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 120, - "symbol": "SDLDidReceiveButtonEventNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 121, - "symbol": "SDLDidReceiveButtonPressNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 122, - "symbol": "SDLDidReceiveCommandNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 123, - "symbol": "SDLDidReceiveEncodedDataNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 124, - "symbol": "SDLDidReceiveKeyboardInputNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 125, - "symbol": "SDLDidChangeLanguageNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 126, - "symbol": "SDLDidChangeLockScreenStatusNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 127, - "symbol": "SDLDidReceiveNewHashNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 128, - "symbol": "SDLDidReceiveVehicleIconNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 129, - "symbol": "SDLDidChangePermissionsNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 130, - "symbol": "SDLDidReceiveSystemRequestNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 131, - "symbol": "SDLDidChangeTurnByTurnStateNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 132, - "symbol": "SDLDidReceiveTouchEventNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 133, - "symbol": "SDLDidReceiveVehicleDataNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 134, - "symbol": "SDLDidReceiveWaypointNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 136, - "symbol": "SDLNotificationConstants", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 138, - "symbol": "SDLNotificationConstants.+allResponseNames", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLNotificationConstants.h", - "line": 139, - "symbol": "SDLNotificationConstants.+allButtonEventNotifications", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOasisAddress.h", - "line": 6, - "symbol": "SDLOasisAddress", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOasisAddress.h", - "line": 8, - "symbol": "SDLOasisAddress.-initWithSubThoroughfare:thoroughfare:locality:administrativeArea:postalCode:countryCode:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOasisAddress.h", - "line": 10, - "symbol": "SDLOasisAddress.-initWithSubThoroughfare:thoroughfare:locality:administrativeArea:postalCode:countryCode:countryName:subAdministrativeArea:subLocality:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnEncodedSyncPData.h", - "line": 7, - "symbol": "SDLOnEncodedSyncPData", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnEncodedSyncPData.h", - "line": 10, - "symbol": "SDLOnEncodedSyncPData.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnEncodedSyncPData.h", - "line": 11, - "symbol": "SDLOnEncodedSyncPData.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnEncodedSyncPData.h", - "line": 13, - "symbol": "SDLOnEncodedSyncPData.data", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnEncodedSyncPData.h", - "line": 14, - "symbol": "SDLOnEncodedSyncPData.URL", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnEncodedSyncPData.h", - "line": 15, - "symbol": "SDLOnEncodedSyncPData.Timeout", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnHashChange.h", - "line": 7, - "symbol": "SDLOnHashChange", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnHashChange.h", - "line": 10, - "symbol": "SDLOnHashChange.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnHashChange.h", - "line": 11, - "symbol": "SDLOnHashChange.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnHashChange.h", - "line": 13, - "symbol": "SDLOnHashChange.hashID", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnKeyboardInput.h", - "line": 9, - "symbol": "SDLOnKeyboardInput", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnKeyboardInput.h", - "line": 12, - "symbol": "SDLOnKeyboardInput.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnKeyboardInput.h", - "line": 13, - "symbol": "SDLOnKeyboardInput.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnKeyboardInput.h", - "line": 15, - "symbol": "SDLOnKeyboardInput.event", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnKeyboardInput.h", - "line": 16, - "symbol": "SDLOnKeyboardInput.data", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnLockScreenStatus.h", - "line": 22, - "symbol": "SDLOnLockScreenStatus.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnLockScreenStatus.h", - "line": 23, - "symbol": "SDLOnLockScreenStatus.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSyncPData.h", - "line": 7, - "symbol": "SDLOnSyncPData", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSyncPData.h", - "line": 10, - "symbol": "SDLOnSyncPData.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSyncPData.h", - "line": 11, - "symbol": "SDLOnSyncPData.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSyncPData.h", - "line": 13, - "symbol": "SDLOnSyncPData.URL", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSyncPData.h", - "line": 14, - "symbol": "SDLOnSyncPData.Timeout", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSystemRequest.h", - "line": 10, - "symbol": "SDLOnSystemRequest", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSystemRequest.h", - "line": 13, - "symbol": "SDLOnSystemRequest.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSystemRequest.h", - "line": 14, - "symbol": "SDLOnSystemRequest.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSystemRequest.h", - "line": 16, - "symbol": "SDLOnSystemRequest.requestType", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSystemRequest.h", - "line": 17, - "symbol": "SDLOnSystemRequest.url", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSystemRequest.h", - "line": 18, - "symbol": "SDLOnSystemRequest.timeout", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSystemRequest.h", - "line": 19, - "symbol": "SDLOnSystemRequest.fileType", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSystemRequest.h", - "line": 20, - "symbol": "SDLOnSystemRequest.offset", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnSystemRequest.h", - "line": 21, - "symbol": "SDLOnSystemRequest.length", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnTBTClientState.h", - "line": 9, - "symbol": "SDLOnTBTClientState", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnTBTClientState.h", - "line": 12, - "symbol": "SDLOnTBTClientState.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnTBTClientState.h", - "line": 13, - "symbol": "SDLOnTBTClientState.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnTBTClientState.h", - "line": 15, - "symbol": "SDLOnTBTClientState.state", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnTouchEvent.h", - "line": 9, - "symbol": "SDLOnTouchEvent", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnTouchEvent.h", - "line": 12, - "symbol": "SDLOnTouchEvent.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnTouchEvent.h", - "line": 13, - "symbol": "SDLOnTouchEvent.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnTouchEvent.h", - "line": 15, - "symbol": "SDLOnTouchEvent.type", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnTouchEvent.h", - "line": 16, - "symbol": "SDLOnTouchEvent.event", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnVehicleData.h", - "line": 143, - "symbol": "SDLOnVehicleData.eCallInfo", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnVehicleData.h", - "line": 144, - "symbol": "SDLOnVehicleData.airbagStatus", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnVehicleData.h", - "line": 145, - "symbol": "SDLOnVehicleData.emergencyEvent", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnVehicleData.h", - "line": 146, - "symbol": "SDLOnVehicleData.clusterModeStatus", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnVehicleData.h", - "line": 147, - "symbol": "SDLOnVehicleData.myKey", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnWaypointChange.h", - "line": 8, - "symbol": "SDLOnWayPointChange", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnWaypointChange.h", - "line": 20, - "symbol": "SDLOnWaypointChange", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformAudioPassThru.h", - "line": 36, - "symbol": "SDLPerformAudioPassThru.-initWithSamplingRate:bitsPerSample:audioType:maxDuration:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformAudioPassThru.h", - "line": 38, - "symbol": "SDLPerformAudioPassThru.-initWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:bitsPerSample:audioType:maxDuration:muteAudio:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformInteraction.h", - "line": 41, - "symbol": "SDLPerformInteraction.-initWithInteractionChoiceSetId:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformInteraction.h", - "line": 43, - "symbol": "SDLPerformInteraction.-initWithInteractionChoiceSetIdList:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformInteraction.h", - "line": 45, - "symbol": "SDLPerformInteraction.-initWithInitialPrompt:initialText:interactionChoiceSetID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformInteraction.h", - "line": 47, - "symbol": "SDLPerformInteraction.-initWithInitialPrompt:initialText:interactionChoiceSetID:vrHelp:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformInteraction.h", - "line": 49, - "symbol": "SDLPerformInteraction.-initWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformInteraction.h", - "line": 51, - "symbol": "SDLPerformInteraction.-initWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:vrHelp:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformInteraction.h", - "line": 54, - "symbol": "SDLPerformInteraction.-initWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeoutChunks:interactionMode:timeout:vrHelp:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformInteraction.h", - "line": 56, - "symbol": "SDLPerformInteraction.-initWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeoutChunks:interactionMode:timeout:vrHelp:interactionLayout:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformInteraction.h", - "line": 102, - "symbol": "SDLPerformInteraction.interactionLayout", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPermissionConstants.h", - "line": 15, - "symbol": "SDLPermissionRPCName", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPermissionConstants.h", - "line": 16, - "symbol": "SDLPermissionObserverIdentifier", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPermissionItem.h", - "line": 10, - "symbol": "SDLPermissionItem", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPermissionItem.h", - "line": 13, - "symbol": "SDLPermissionItem.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPermissionItem.h", - "line": 14, - "symbol": "SDLPermissionItem.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPermissionItem.h", - "line": 16, - "symbol": "SDLPermissionItem.rpcName", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPermissionItem.h", - "line": 17, - "symbol": "SDLPermissionItem.hmiPermissions", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPermissionItem.h", - "line": 18, - "symbol": "SDLPermissionItem.parameterPermissions", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPermissionManager.h", - "line": 19, - "symbol": "SDLPermissionManager", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPhoneCapability.h", - "line": 11, - "symbol": "SDLPhoneCapability", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPhoneCapability.h", - "line": 24, - "symbol": "SDLPhoneCapability.-initWithDialNumber:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeQualificationStatus.h", - "line": 7, - "symbol": "SDLPowerModeQualificationStatus", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeQualificationStatus.h", - "line": 10, - "symbol": "SDLPowerModeQualificationStatus.+valueOf:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeQualificationStatus.h", - "line": 11, - "symbol": "SDLPowerModeQualificationStatus.+values", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeQualificationStatus.h", - "line": 13, - "symbol": "SDLPowerModeQualificationStatus.+POWER_MODE_UNDEFINED", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeQualificationStatus.h", - "line": 14, - "symbol": "SDLPowerModeQualificationStatus.+POWER_MODE_EVALUATION_IN_PROGRESS", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeQualificationStatus.h", - "line": 15, - "symbol": "SDLPowerModeQualificationStatus.+NOT_DEFINED", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeQualificationStatus.h", - "line": 16, - "symbol": "SDLPowerModeQualificationStatus.+POWER_MODE_OK", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", - "line": 7, - "symbol": "SDLPowerModeStatus", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", - "line": 10, - "symbol": "SDLPowerModeStatus.+valueOf:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", - "line": 11, - "symbol": "SDLPowerModeStatus.+values", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", - "line": 13, - "symbol": "SDLPowerModeStatus.+KEY_OUT", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", - "line": 14, - "symbol": "SDLPowerModeStatus.+KEY_RECENTLY_OUT", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", - "line": 15, - "symbol": "SDLPowerModeStatus.+KEY_APPROVED_0", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", - "line": 16, - "symbol": "SDLPowerModeStatus.+POST_ACCESORY_0", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", - "line": 17, - "symbol": "SDLPowerModeStatus.+ACCESORY_1", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", - "line": 18, - "symbol": "SDLPowerModeStatus.+POST_IGNITION_1", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", - "line": 19, - "symbol": "SDLPowerModeStatus.+IGNITION_ON_2", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", - "line": 20, - "symbol": "SDLPowerModeStatus.+RUNNING_2", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", - "line": 21, - "symbol": "SDLPowerModeStatus.+CRANK_3", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", - "line": 7, - "symbol": "SDLPredefinedLayout", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", - "line": 10, - "symbol": "SDLPredefinedLayout.+valueOf:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", - "line": 11, - "symbol": "SDLPredefinedLayout.+values", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", - "line": 13, - "symbol": "SDLPredefinedLayout.+DEFAULT", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", - "line": 14, - "symbol": "SDLPredefinedLayout.+MEDIA", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnTouchEvent.h", "line": 15, - "symbol": "SDLPredefinedLayout.+NON_MEDIA", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", - "line": 16, - "symbol": "SDLPredefinedLayout.+ONSCREEN_PRESETS", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", - "line": 17, - "symbol": "SDLPredefinedLayout.+NAV_FULLSCREEN_MAP", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", - "line": 18, - "symbol": "SDLPredefinedLayout.+NAV_LIST", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", - "line": 19, - "symbol": "SDLPredefinedLayout.+NAV_KEYBOARD", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", - "line": 20, - "symbol": "SDLPredefinedLayout.+GRAPHIC_WITH_TEXT", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", - "line": 21, - "symbol": "SDLPredefinedLayout.+TEXT_WITH_GRAPHIC", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", - "line": 22, - "symbol": "SDLPredefinedLayout.+TILES_ONLY", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", - "line": 23, - "symbol": "SDLPredefinedLayout.+TEXTBUTTONS_ONLY", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLOnTouchEvent.event", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", - "line": 24, - "symbol": "SDLPredefinedLayout.+GRAPHIC_WITH_TILES", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnVehicleData.h", + "line": 133, + "symbol": "SDLOnVehicleData.eCallInfo", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", - "line": 25, - "symbol": "SDLPredefinedLayout.+TILES_WITH_GRAPHIC", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnVehicleData.h", + "line": 134, + "symbol": "SDLOnVehicleData.airbagStatus", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", - "line": 26, - "symbol": "SDLPredefinedLayout.+GRAPHIC_WITH_TEXT_AND_SOFTBUTTONS", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnVehicleData.h", + "line": 135, + "symbol": "SDLOnVehicleData.emergencyEvent", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", - "line": 27, - "symbol": "SDLPredefinedLayout.+TEXT_AND_SOFTBUTTONS_WITH_GRAPHIC", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnVehicleData.h", + "line": 136, + "symbol": "SDLOnVehicleData.clusterModeStatus", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", - "line": 28, - "symbol": "SDLPredefinedLayout.+GRAPHIC_WITH_TEXTBUTTONS", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnVehicleData.h", + "line": 137, + "symbol": "SDLOnVehicleData.myKey", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", - "line": 29, - "symbol": "SDLPredefinedLayout.+TEXTBUTTONS_WITH_GRAPHIC", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLOnWayPointChange.h", + "line": 10, + "symbol": "SDLOnWayPointChange", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformAudioPassThru.h", "line": 30, - "symbol": "SDLPredefinedLayout.+LARGE_GRAPHIC_WITH_SOFTBUTTONS", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", - "line": 31, - "symbol": "SDLPredefinedLayout.+DOUBLE_GRAPHIC_WITH_SOFTBUTTONS", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLPerformAudioPassThru.-initWithSamplingRate:bitsPerSample:audioType:maxDuration:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformAudioPassThru.h", "line": 32, - "symbol": "SDLPredefinedLayout.+LARGE_GRAPHIC_ONLY", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPrerecordedSpeech.h", - "line": 7, - "symbol": "SDLPrerecordedSpeech", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPrerecordedSpeech.h", - "line": 10, - "symbol": "SDLPrerecordedSpeech.+valueOf:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPrerecordedSpeech.h", - "line": 11, - "symbol": "SDLPrerecordedSpeech.+values", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPrerecordedSpeech.h", - "line": 13, - "symbol": "SDLPrerecordedSpeech.+HELP_JINGLE", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPrerecordedSpeech.h", - "line": 14, - "symbol": "SDLPrerecordedSpeech.+INITIAL_JINGLE", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPrerecordedSpeech.h", - "line": 15, - "symbol": "SDLPrerecordedSpeech.+LISTEN_JINGLE", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPrerecordedSpeech.h", - "line": 16, - "symbol": "SDLPrerecordedSpeech.+POSITIVE_JINGLE", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLPerformAudioPassThru.-initWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:bitsPerSample:audioType:maxDuration:muteAudio:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPrerecordedSpeech.h", - "line": 17, - "symbol": "SDLPrerecordedSpeech.+NEGATIVE_JINGLE", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformAudioPassThru.h", + "line": 34, + "symbol": "SDLPerformAudioPassThru.-initWithSamplingRate:bitsPerSample:audioType:maxDuration:audioDataHandler:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", - "line": 8, - "symbol": "SDLProtocolError", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformAudioPassThru.h", + "line": 36, + "symbol": "SDLPerformAudioPassThru.-initWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:bitsPerSample:audioType:maxDuration:muteAudio:audioDataHandler:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", - "line": 8, - "symbol": "SDLProtocolError", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformInteraction.h", + "line": 33, + "symbol": "SDLPerformInteraction.-initWithInteractionChoiceSetId:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", - "line": 9, - "symbol": "SDLProtocolError.SDLProtocolErrorNoSecurityManager", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformInteraction.h", + "line": 35, + "symbol": "SDLPerformInteraction.-initWithInteractionChoiceSetIdList:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", - "line": 12, - "symbol": "SDLProtocolSecurityErrorDomain", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformInteraction.h", + "line": 37, + "symbol": "SDLPerformInteraction.-initWithInitialPrompt:initialText:interactionChoiceSetID:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", - "line": 14, - "symbol": "SDLProtocol", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformInteraction.h", + "line": 39, + "symbol": "SDLPerformInteraction.-initWithInitialPrompt:initialText:interactionChoiceSetID:vrHelp:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", - "line": 17, - "symbol": "SDLProtocol.-sendStartSessionWithType:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformInteraction.h", + "line": 41, + "symbol": "SDLPerformInteraction.-initWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", - "line": 18, - "symbol": "SDLProtocol.-startServiceWithType:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformInteraction.h", + "line": 43, + "symbol": "SDLPerformInteraction.-initWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:vrHelp:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", - "line": 19, - "symbol": "SDLProtocol.-startServiceWithType:payload:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformInteraction.h", + "line": 45, + "symbol": "SDLPerformInteraction.-initWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeoutChunks:interactionMode:timeout:vrHelp:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", - "line": 21, - "symbol": "SDLProtocol.-startSecureServiceWithType:completionHandler:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformInteraction.h", + "line": 47, + "symbol": "SDLPerformInteraction.-initWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeoutChunks:interactionMode:timeout:vrHelp:interactionLayout:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", - "line": 22, - "symbol": "SDLProtocol.-startSecureServiceWithType:payload:completionHandler:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPerformInteraction.h", + "line": 93, + "symbol": "SDLPerformInteraction.interactionLayout", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", - "line": 24, - "symbol": "SDLProtocol.-sendEndSessionWithType:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPermissionConstants.h", + "line": 15, + "symbol": "SDLPermissionRPCName", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", - "line": 25, - "symbol": "SDLProtocol.-endServiceWithType:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPermissionConstants.h", + "line": 16, + "symbol": "SDLPermissionObserverIdentifier", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", - "line": 26, - "symbol": "SDLProtocol.-sendRPC:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPermissionItem.h", + "line": 11, + "symbol": "SDLPermissionItem", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", - "line": 27, - "symbol": "SDLProtocol.-sendRPC:encrypted:error:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPermissionItem.h", + "line": 13, + "symbol": "SDLPermissionItem.rpcName", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", - "line": 28, - "symbol": "SDLProtocol.-sendRPCRequest:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPermissionItem.h", + "line": 14, + "symbol": "SDLPermissionItem.hmiPermissions", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", - "line": 29, - "symbol": "SDLProtocol.-sendRawData:withServiceType:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPermissionItem.h", + "line": 15, + "symbol": "SDLPermissionItem.parameterPermissions", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", - "line": 30, - "symbol": "SDLProtocol.-sendEncryptedRawData:onService:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPermissionManager.h", + "line": 19, + "symbol": "SDLPermissionManager", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", - "line": 33, - "symbol": "SDLProtocol.-handleBytesFromTransport:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPhoneCapability.h", + "line": 13, + "symbol": "SDLPhoneCapability", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 7, - "symbol": "SDLFrameType", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPhoneCapability.h", + "line": 15, + "symbol": "SDLPhoneCapability.-initWithDialNumber:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 7, - "symbol": "SDLFrameType", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPinchGesture.h", + "line": 15, + "symbol": "SDLPinchGesture", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 8, - "symbol": "SDLFrameType.SDLFrameType_Control", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeQualificationStatus.h", + "line": 7, + "symbol": "SDLPowerModeQualificationStatus", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeQualificationStatus.h", "line": 9, - "symbol": "SDLFrameType.SDLFrameType_Single", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "symbol": "SDLPowerModeQualificationStatusUndefined", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeQualificationStatus.h", "line": 10, - "symbol": "SDLFrameType.SDLFrameType_First", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "symbol": "SDLPowerModeQualificationStatusEvaluationInProgress", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeQualificationStatus.h", "line": 11, - "symbol": "SDLFrameType.SDLFrameType_Consecutive", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "symbol": "SDLPowerModeQualificationStatusNotDefined", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 14, - "symbol": "SDLServiceType", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeQualificationStatus.h", + "line": 12, + "symbol": "SDLPowerModeQualificationStatusOk", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 14, - "symbol": "SDLServiceType", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", + "line": 7, + "symbol": "SDLPowerModeStatus", "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 15, - "symbol": "SDLServiceType.SDLServiceType_Control", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 16, - "symbol": "SDLServiceType.SDLServiceType_RPC", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 17, - "symbol": "SDLServiceType.SDLServiceType_Audio", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", + "line": 9, + "symbol": "SDLPowerModeStatusKeyOut", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 18, - "symbol": "SDLServiceType.SDLServiceType_Video", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", + "line": 10, + "symbol": "SDLPowerModeStatusKeyRecentlyOut", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 19, - "symbol": "SDLServiceType.SDLServiceType_BulkData", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", + "line": 11, + "symbol": "SDLPowerModeStatusKeyApproved", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 22, - "symbol": "SDLFrameData", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", + "line": 12, + "symbol": "SDLPowerModeStatusPostAccessory", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 22, - "symbol": "SDLFrameData", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", + "line": 13, + "symbol": "SDLPowerModeStatusAccessory", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 23, - "symbol": "SDLFrameData.SDLFrameData_Heartbeat", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", + "line": 14, + "symbol": "SDLPowerModeStatusPostIgnition", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 24, - "symbol": "SDLFrameData.SDLFrameData_StartSession", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", + "line": 15, + "symbol": "SDLPowerModeStatusIgnitionOn", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 25, - "symbol": "SDLFrameData.SDLFrameData_StartSessionACK", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", + "line": 16, + "symbol": "SDLPowerModeStatusRunning", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 26, - "symbol": "SDLFrameData.SDLFrameData_StartSessionNACK", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPowerModeStatus.h", + "line": 17, + "symbol": "SDLPowerModeStatusCrank", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 27, - "symbol": "SDLFrameData.SDLFrameData_EndSession", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 7, + "symbol": "SDLPredefinedLayout", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 28, - "symbol": "SDLFrameData.SDLFrameData_EndSessionACK", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 9, + "symbol": "SDLPredefinedLayoutDefault", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 29, - "symbol": "SDLFrameData.SDLFrameData_EndSessionNACK", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 10, + "symbol": "SDLPredefinedLayoutMedia", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 30, - "symbol": "SDLFrameData.SDLFrameData_ServiceDataACK", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 11, + "symbol": "SDLPredefinedLayoutNonMedia", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 31, - "symbol": "SDLFrameData.SDLFrameData_HeartbeatACK", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 12, + "symbol": "SDLPredefinedLayoutOnscreenPresets", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 33, - "symbol": "SDLFrameData.SDLFrameData_SingleFrame", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 13, + "symbol": "SDLPredefinedLayoutNavigationFullscreenMap", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 35, - "symbol": "SDLFrameData.SDLFrameData_FirstFrame", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 14, + "symbol": "SDLPredefinedLayoutNavigationList", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 37, - "symbol": "SDLFrameData.SDLFrameData_ConsecutiveLastFrame", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 15, + "symbol": "SDLPredefinedLayoutNavigationKeyboard", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 41, - "symbol": "SDLProtocolHeader", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 16, + "symbol": "SDLPredefinedLayoutGraphicWithText", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 42, - "symbol": "SDLProtocolHeader._version", - "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 17, + "symbol": "SDLPredefinedLayoutTextWithGraphic", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 43, - "symbol": "SDLProtocolHeader._size", - "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 18, + "symbol": "SDLPredefinedLayoutTilesOnly", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 46, - "symbol": "SDLProtocolHeader.version", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 19, + "symbol": "SDLPredefinedLayoutTextButtonsOnly", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 47, - "symbol": "SDLProtocolHeader.size", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 20, + "symbol": "SDLPredefinedLayoutGraphicWithTiles", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 48, - "symbol": "SDLProtocolHeader.compressed", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 21, + "symbol": "SDLPredefinedLayoutTilesWithGraphic", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 49, - "symbol": "SDLProtocolHeader.encrypted", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 22, + "symbol": "SDLPredefinedLayoutGraphicWithTextAndSoftButtons", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 50, - "symbol": "SDLProtocolHeader.frameType", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 23, + "symbol": "SDLPredefinedLayoutTextAndSoftButtonsWithGraphic", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 51, - "symbol": "SDLProtocolHeader.serviceType", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 24, + "symbol": "SDLPredefinedLayoutGraphicWithTextButtons", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 52, - "symbol": "SDLProtocolHeader.frameData", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 25, + "symbol": "SDLPredefinedLayoutTextButtonsWithGraphic", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 53, - "symbol": "SDLProtocolHeader.sessionID", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 26, + "symbol": "SDLPredefinedLayoutLargeGraphicWithSoftButtons", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 54, - "symbol": "SDLProtocolHeader.bytesInPayload", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 27, + "symbol": "SDLPredefinedLayoutDoubleGraphicWithSoftButtons", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 56, - "symbol": "SDLProtocolHeader.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPredefinedLayout.h", + "line": 28, + "symbol": "SDLPredefinedLayoutLargeGraphicOnly", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 57, - "symbol": "SDLProtocolHeader.-data", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPrerecordedSpeech.h", + "line": 7, + "symbol": "SDLPrerecordedSpeech", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 58, - "symbol": "SDLProtocolHeader.-parse:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPrerecordedSpeech.h", + "line": 9, + "symbol": "SDLPrerecordedSpeechHelp", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 59, - "symbol": "SDLProtocolHeader.-description", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPrerecordedSpeech.h", + "line": 10, + "symbol": "SDLPrerecordedSpeechInitial", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 60, - "symbol": "SDLProtocolHeader.+headerForVersion:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPrerecordedSpeech.h", + "line": 11, + "symbol": "SDLPrerecordedSpeechListen", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", - "line": 61, - "symbol": "SDLProtocolHeader.+determineVersion:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPrerecordedSpeech.h", + "line": 12, + "symbol": "SDLPrerecordedSpeechPositive", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", - "line": 9, - "symbol": "SDLProtocolListener", - "symbol_kind": "sourcekitten.source.lang.objc.decl.protocol", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPrerecordedSpeech.h", + "line": 13, + "symbol": "SDLPrerecordedSpeechNegative", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", - "line": 13, - "symbol": "SDLProtocolListener.-handleProtocolStartServiceACKMessage:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", + "line": 10, + "symbol": "SDLProtocolError", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", - "line": 14, - "symbol": "SDLProtocolListener.-handleProtocolStartServiceNAKMessage:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", + "line": 10, + "symbol": "SDLProtocolError", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", - "line": 15, - "symbol": "SDLProtocolListener.-handleProtocolEndServiceACKMessage:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", + "line": 11, + "symbol": "SDLProtocolError.SDLProtocolErrorNoSecurityManager", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", - "line": 16, - "symbol": "SDLProtocolListener.-handleProtocolEndServiceNAKMessage:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", + "line": 14, + "symbol": "SDLProtocolSecurityErrorDomain", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", - "line": 19, - "symbol": "SDLProtocolListener.-handleProtocolStartSessionACK:sessionID:version:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", + "line": 17, + "symbol": "SDLProtocol", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", "line": 20, - "symbol": "SDLProtocolListener.-handleProtocolStartSessionACK:", + "symbol": "SDLProtocol.-startServiceWithType:payload:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", "line": 21, - "symbol": "SDLProtocolListener.-handleProtocolStartSessionNACK:", + "symbol": "SDLProtocol.-startSecureServiceWithType:payload:completionHandler:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", "line": 22, - "symbol": "SDLProtocolListener.-handleProtocolEndSessionACK:", + "symbol": "SDLProtocol.-endServiceWithType:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", "line": 23, - "symbol": "SDLProtocolListener.-handleProtocolEndSessionNACK:", + "symbol": "SDLProtocol.-sendRPC:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", "line": 24, - "symbol": "SDLProtocolListener.-handleHeartbeatForSession:", + "symbol": "SDLProtocol.-sendRPC:encrypted:error:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", "line": 25, - "symbol": "SDLProtocolListener.-handleHeartbeatACK", + "symbol": "SDLProtocol.-sendRawData:withServiceType:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", "line": 26, - "symbol": "SDLProtocolListener.-onProtocolMessageReceived:", + "symbol": "SDLProtocol.-sendEncryptedRawData:onService:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", - "line": 27, - "symbol": "SDLProtocolListener.-onProtocolOpened", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocol.h", + "line": 29, + "symbol": "SDLProtocol.-handleBytesFromTransport:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", - "line": 28, - "symbol": "SDLProtocolListener.-onProtocolClosed", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 7, + "symbol": "SDLFrameType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", - "line": 29, - "symbol": "SDLProtocolListener.-onError:exception:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 7, + "symbol": "SDLFrameType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolMessage.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", "line": 8, - "symbol": "SDLProtocolMessage", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "symbol": "SDLFrameType.SDLFrameTypeControl", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolMessage.h", - "line": 10, - "symbol": "SDLProtocolMessage.header", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 9, + "symbol": "SDLFrameType.SDLFrameTypeSingle", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolMessage.h", - "line": 11, - "symbol": "SDLProtocolMessage.payload", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 10, + "symbol": "SDLFrameType.SDLFrameTypeFirst", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolMessage.h", - "line": 12, - "symbol": "SDLProtocolMessage.data", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 11, + "symbol": "SDLFrameType.SDLFrameTypeConsecutive", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolMessage.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", "line": 14, - "symbol": "SDLProtocolMessage.+messageWithHeader:andPayload:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLServiceType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolMessage.h", - "line": 16, - "symbol": "SDLProtocolMessage.-size", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 14, + "symbol": "SDLServiceType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolMessage.h", - "line": 17, - "symbol": "SDLProtocolMessage.-description", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 15, + "symbol": "SDLServiceType.SDLServiceTypeControl", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolMessage.h", - "line": 18, - "symbol": "SDLProtocolMessage.-rpcDictionary", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 16, + "symbol": "SDLServiceType.SDLServiceTypeRPC", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolMessage.h", - "line": 20, - "symbol": "SDLProtocolMessage.+determineVersion:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 17, + "symbol": "SDLServiceType.SDLServiceTypeAudio", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", "line": 18, - "symbol": "SDLProxy", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "symbol": "SDLServiceType.SDLServiceTypeVideo", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", "line": 19, - "symbol": "SDLProxy._version", - "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", + "symbol": "SDLServiceType.SDLServiceTypeBulkData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", - "line": 20, - "symbol": "SDLProxy._bulkSessionID", - "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 22, + "symbol": "SDLFrameInfo", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", - "line": 21, - "symbol": "SDLProxy._isConnected", - "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 22, + "symbol": "SDLFrameInfo", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", - "line": 22, - "symbol": "SDLProxy._alreadyDestructed", - "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 23, + "symbol": "SDLFrameInfo.SDLFrameInfoHeartbeat", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 24, + "symbol": "SDLFrameInfo.SDLFrameInfoStartService", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", "line": 25, - "symbol": "SDLProxy.protocol", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "symbol": "SDLFrameInfo.SDLFrameInfoStartServiceACK", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", "line": 26, - "symbol": "SDLProxy.transport", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "symbol": "SDLFrameInfo.SDLFrameInfoStartServiceNACK", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", "line": 27, - "symbol": "SDLProxy.proxyListeners", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "symbol": "SDLFrameInfo.SDLFrameInfoEndService", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", "line": 28, - "symbol": "SDLProxy.startSessionTimer", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "symbol": "SDLFrameInfo.SDLFrameInfoEndServiceACK", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", "line": 29, - "symbol": "SDLProxy.debugConsoleGroupName", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "symbol": "SDLFrameInfo.SDLFrameInfoEndServiceNACK", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", "line": 30, - "symbol": "SDLProxy.proxyVersion", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "symbol": "SDLFrameInfo.SDLFrameInfoServiceDataAck", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", "line": 31, - "symbol": "SDLProxy.streamingMediaManager", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "symbol": "SDLFrameInfo.SDLFrameInfoHeartbeatACK", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", "line": 33, - "symbol": "SDLProxy.-initWithTransport:protocol:delegate:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", - "line": 36, - "symbol": "SDLProxy.-dispose", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", - "line": 38, - "symbol": "SDLProxy.-addDelegate:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "symbol": "SDLFrameInfo.SDLFrameInfoSingleFrame", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", - "line": 39, - "symbol": "SDLProxy.-removeDelegate:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 35, + "symbol": "SDLFrameInfo.SDLFrameInfoFirstFrame", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", - "line": 41, - "symbol": "SDLProxy.-sendRPC:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 37, + "symbol": "SDLFrameInfo.SDLFrameInfoConsecutiveLastFrame", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", "line": 42, - "symbol": "SDLProxy.-sendRPCRequest:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "symbol": "SDLProtocolHeader", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", - "line": 44, - "symbol": "SDLProxy.-handleRPCDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 43, + "symbol": "SDLProtocolHeader._version", + "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", - "line": 45, - "symbol": "SDLProxy.-handleRpcMessage:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 44, + "symbol": "SDLProtocolHeader._size", + "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", "line": 47, - "symbol": "SDLProxy.-handleProtocolMessage:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", - "line": 49, - "symbol": "SDLProxy.-addSecurityManagers:forAppId:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", - "line": 51, - "symbol": "SDLProxy.+enableSiphonDebug", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", - "line": 52, - "symbol": "SDLProxy.+disableSiphonDebug", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyFactory.h", - "line": 11, - "symbol": "SDLProxyFactory", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "symbol": "SDLProtocolHeader.version", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyFactory.h", - "line": 14, - "symbol": "SDLProxyFactory.+buildSDLProxyWithListener:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 48, + "symbol": "SDLProtocolHeader.size", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyFactory.h", - "line": 16, - "symbol": "SDLProxyFactory.+buildSDLProxyWithListener:tcpIPAddress:tcpPort:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 49, + "symbol": "SDLProtocolHeader.encrypted", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 74, - "symbol": "SDLProxyListener", - "symbol_kind": "sourcekitten.source.lang.objc.decl.protocol", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 50, + "symbol": "SDLProtocolHeader.frameType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 76, - "symbol": "SDLProxyListener.-onOnDriverDistraction:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 51, + "symbol": "SDLProtocolHeader.serviceType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 77, - "symbol": "SDLProxyListener.-onOnHMIStatus:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 52, + "symbol": "SDLProtocolHeader.frameData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 78, - "symbol": "SDLProxyListener.-onProxyClosed", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 53, + "symbol": "SDLProtocolHeader.sessionID", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 79, - "symbol": "SDLProxyListener.-onProxyOpened", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 54, + "symbol": "SDLProtocolHeader.bytesInPayload", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 83, - "symbol": "SDLProxyListener.-onAddCommandResponse:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 56, + "symbol": "SDLProtocolHeader.-init", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 84, - "symbol": "SDLProxyListener.-onAddSubMenuResponse:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 57, + "symbol": "SDLProtocolHeader.-data", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 85, - "symbol": "SDLProxyListener.-onAlertManeuverResponse:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 58, + "symbol": "SDLProtocolHeader.-parse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 86, - "symbol": "SDLProxyListener.-onAlertResponse:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 59, + "symbol": "SDLProtocolHeader.-description", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 87, - "symbol": "SDLProxyListener.-onChangeRegistrationResponse:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 60, + "symbol": "SDLProtocolHeader.+headerForVersion:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 88, - "symbol": "SDLProxyListener.-onCreateInteractionChoiceSetResponse:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolHeader.h", + "line": 61, + "symbol": "SDLProtocolHeader.+determineVersion:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 89, - "symbol": "SDLProxyListener.-onDeleteCommandResponse:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", + "line": 10, + "symbol": "SDLProtocolListener", + "symbol_kind": "sourcekitten.source.lang.objc.decl.protocol", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 90, - "symbol": "SDLProxyListener.-onDeleteFileResponse:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", + "line": 14, + "symbol": "SDLProtocolListener.-handleProtocolStartServiceACKMessage:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 91, - "symbol": "SDLProxyListener.-onDeleteInteractionChoiceSetResponse:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", + "line": 15, + "symbol": "SDLProtocolListener.-handleProtocolStartServiceNAKMessage:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 92, - "symbol": "SDLProxyListener.-onDeleteSubMenuResponse:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", + "line": 16, + "symbol": "SDLProtocolListener.-handleProtocolEndServiceACKMessage:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 93, - "symbol": "SDLProxyListener.-onDiagnosticMessageResponse:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", + "line": 17, + "symbol": "SDLProtocolListener.-handleProtocolEndServiceNAKMessage:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 94, - "symbol": "SDLProxyListener.-onDialNumberResponse:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", + "line": 20, + "symbol": "SDLProtocolListener.-handleHeartbeatForSession:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 95, - "symbol": "SDLProxyListener.-onEncodedSyncPDataResponse:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", + "line": 21, + "symbol": "SDLProtocolListener.-handleHeartbeatACK", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 96, - "symbol": "SDLProxyListener.-onEndAudioPassThruResponse:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", + "line": 22, + "symbol": "SDLProtocolListener.-onProtocolMessageReceived:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 97, - "symbol": "SDLProxyListener.-onError:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", + "line": 23, + "symbol": "SDLProtocolListener.-onProtocolOpened", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 98, - "symbol": "SDLProxyListener.-onGenericResponse:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", + "line": 24, + "symbol": "SDLProtocolListener.-onProtocolClosed", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 99, - "symbol": "SDLProxyListener.-onGetDTCsResponse:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolListener.h", + "line": 25, + "symbol": "SDLProtocolListener.-onError:exception:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 100, - "symbol": "SDLProxyListener.-onGetSystemCapabilityResponse:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolMessage.h", + "line": 10, + "symbol": "SDLProtocolMessage", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 101, - "symbol": "SDLProxyListener.-onGetVehicleDataResponse:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolMessage.h", + "line": 12, + "symbol": "SDLProtocolMessage.header", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 102, - "symbol": "SDLProxyListener.-onGetWayPointsResponse:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolMessage.h", + "line": 13, + "symbol": "SDLProtocolMessage.payload", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 103, - "symbol": "SDLProxyListener.-onListFilesResponse:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolMessage.h", + "line": 14, + "symbol": "SDLProtocolMessage.data", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 104, - "symbol": "SDLProxyListener.-onReceivedLockScreenIcon:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolMessage.h", + "line": 16, + "symbol": "SDLProtocolMessage.+messageWithHeader:andPayload:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 105, - "symbol": "SDLProxyListener.-onOnAppInterfaceUnregistered:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolMessage.h", + "line": 18, + "symbol": "SDLProtocolMessage.-size", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 106, - "symbol": "SDLProxyListener.-onOnAudioPassThru:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolMessage.h", + "line": 19, + "symbol": "SDLProtocolMessage.-description", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 107, - "symbol": "SDLProxyListener.-onOnButtonEvent:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProtocolMessage.h", + "line": 20, + "symbol": "SDLProtocolMessage.-rpcDictionary", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 108, - "symbol": "SDLProxyListener.-onOnButtonPress:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "line": 19, + "symbol": "SDLProxy", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 109, - "symbol": "SDLProxyListener.-onOnCommand:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "line": 20, + "symbol": "SDLProxy._version", + "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 110, - "symbol": "SDLProxyListener.-onOnEncodedSyncPData:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "line": 21, + "symbol": "SDLProxy._bulkSessionID", + "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 111, - "symbol": "SDLProxyListener.-onOnHashChange:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "line": 22, + "symbol": "SDLProxy._isConnected", + "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 112, - "symbol": "SDLProxyListener.-onOnKeyboardInput:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "line": 25, + "symbol": "SDLProxy.protocol", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 113, - "symbol": "SDLProxyListener.-onOnLanguageChange:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "line": 26, + "symbol": "SDLProxy.transport", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 114, - "symbol": "SDLProxyListener.-onOnLockScreenNotification:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "line": 27, + "symbol": "SDLProxy.proxyListeners", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 115, - "symbol": "SDLProxyListener.-onOnPermissionsChange:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "line": 28, + "symbol": "SDLProxy.startSessionTimer", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 116, - "symbol": "SDLProxyListener.-onOnSyncPData:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "line": 29, + "symbol": "SDLProxy.debugConsoleGroupName", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 117, - "symbol": "SDLProxyListener.-onOnSystemRequest:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "line": 30, + "symbol": "SDLProxy.proxyVersion", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 118, - "symbol": "SDLProxyListener.-onOnTBTClientState:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "line": 32, + "symbol": "SDLProxy.-initWithTransport:protocol:delegate:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 119, - "symbol": "SDLProxyListener.-onOnTouchEvent:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "line": 36, + "symbol": "SDLProxy.-addDelegate:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 120, - "symbol": "SDLProxyListener.-onOnVehicleData:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "line": 37, + "symbol": "SDLProxy.-removeDelegate:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 121, - "symbol": "SDLProxyListener.-onOnWayPointChange:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "line": 39, + "symbol": "SDLProxy.-sendRPC:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 122, - "symbol": "SDLProxyListener.-onPerformAudioPassThruResponse:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "line": 41, + "symbol": "SDLProxy.-handleRPCDictionary:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 123, - "symbol": "SDLProxyListener.-onPerformInteractionResponse:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "line": 43, + "symbol": "SDLProxy.-handleProtocolMessage:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 124, - "symbol": "SDLProxyListener.-onPutFileResponse:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxy.h", + "line": 45, + "symbol": "SDLProxy.-addSecurityManagers:forAppId:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 125, - "symbol": "SDLProxyListener.-onReadDIDResponse:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyFactory.h", + "line": 13, + "symbol": "SDLProxyFactory", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 126, - "symbol": "SDLProxyListener.-onRegisterAppInterfaceResponse:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyFactory.h", + "line": 16, + "symbol": "SDLProxyFactory.+buildSDLProxyWithListener:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 127, - "symbol": "SDLProxyListener.-onResetGlobalPropertiesResponse:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyFactory.h", + "line": 18, + "symbol": "SDLProxyFactory.+buildSDLProxyWithListener:tcpIPAddress:tcpPort:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 128, - "symbol": "SDLProxyListener.-onScrollableMessageResponse:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "line": 79, + "symbol": "SDLProxyListener", + "symbol_kind": "sourcekitten.source.lang.objc.decl.protocol", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 129, - "symbol": "SDLProxyListener.-onSendHapticDataResponse:", + "line": 81, + "symbol": "SDLProxyListener.-onOnDriverDistraction:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 130, - "symbol": "SDLProxyListener.-onSendLocationResponse:", + "line": 82, + "symbol": "SDLProxyListener.-onOnHMIStatus:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 131, - "symbol": "SDLProxyListener.-onSetAppIconResponse:", + "line": 83, + "symbol": "SDLProxyListener.-onProxyClosed", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 132, - "symbol": "SDLProxyListener.-onSetDisplayLayoutResponse:", + "line": 84, + "symbol": "SDLProxyListener.-onProxyOpened", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 133, - "symbol": "SDLProxyListener.-onSetGlobalPropertiesResponse:", + "line": 88, + "symbol": "SDLProxyListener.-onAddCommandResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 134, - "symbol": "SDLProxyListener.-onSetMediaClockTimerResponse:", + "line": 89, + "symbol": "SDLProxyListener.-onAddSubMenuResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 135, - "symbol": "SDLProxyListener.-onShowConstantTBTResponse:", + "line": 90, + "symbol": "SDLProxyListener.-onAlertManeuverResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 136, - "symbol": "SDLProxyListener.-onShowResponse:", + "line": 91, + "symbol": "SDLProxyListener.-onAlertResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 137, - "symbol": "SDLProxyListener.-onSliderResponse:", + "line": 92, + "symbol": "SDLProxyListener.-onButtonPressResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 138, - "symbol": "SDLProxyListener.-onSpeakResponse:", + "line": 93, + "symbol": "SDLProxyListener.-onChangeRegistrationResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 139, - "symbol": "SDLProxyListener.-onSubscribeButtonResponse:", + "line": 94, + "symbol": "SDLProxyListener.-onCreateInteractionChoiceSetResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 140, - "symbol": "SDLProxyListener.-onSubscribeVehicleDataResponse:", + "line": 95, + "symbol": "SDLProxyListener.-onDeleteCommandResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 141, - "symbol": "SDLProxyListener.-onSubscribeWayPointsResponse:", + "line": 96, + "symbol": "SDLProxyListener.-onDeleteFileResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 142, - "symbol": "SDLProxyListener.-onSyncPDataResponse:", + "line": 97, + "symbol": "SDLProxyListener.-onDeleteInteractionChoiceSetResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 143, - "symbol": "SDLProxyListener.-onUpdateTurnListResponse:", + "line": 98, + "symbol": "SDLProxyListener.-onDeleteSubMenuResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 144, - "symbol": "SDLProxyListener.-onUnregisterAppInterfaceResponse:", + "line": 99, + "symbol": "SDLProxyListener.-onDiagnosticMessageResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 145, - "symbol": "SDLProxyListener.-onUnsubscribeButtonResponse:", + "line": 100, + "symbol": "SDLProxyListener.-onDialNumberResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 146, - "symbol": "SDLProxyListener.-onUnsubscribeVehicleDataResponse:", + "line": 101, + "symbol": "SDLProxyListener.-onEncodedSyncPDataResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", - "line": 147, - "symbol": "SDLProxyListener.-onUnsubscribeWayPointsResponse:", + "line": 102, + "symbol": "SDLProxyListener.-onEndAudioPassThruResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPutFile.h", - "line": 32, - "symbol": "SDLPutFile.-initWithFileName:fileType:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 103, + "symbol": "SDLProxyListener.-onError:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPutFile.h", - "line": 34, - "symbol": "SDLPutFile.-initWithFileName:fileType:persistentFile:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 104, + "symbol": "SDLProxyListener.-onGenericResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPutFile.h", - "line": 37, - "symbol": "SDLPutFile.-initWithFileName:fileType:persistentFile:systemFile:offset:length:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 105, + "symbol": "SDLProxyListener.-onGetDTCsResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPutFileResponse.h", - "line": 23, - "symbol": "SDLPutFileResponse.spaceAvailable", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", - "line": 8, - "symbol": "SDLRPCMessage", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", - "line": 9, - "symbol": "SDLRPCMessage.function", - "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", - "line": 10, - "symbol": "SDLRPCMessage.parameters", - "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", - "line": 11, - "symbol": "SDLRPCMessage.messageType", - "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", - "line": 14, - "symbol": "SDLRPCMessage.-initWithName:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 106, + "symbol": "SDLProxyListener.-onGetInteriorVehicleDataResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", - "line": 15, - "symbol": "SDLRPCMessage.-initWithDictionary:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 107, + "symbol": "SDLProxyListener.-onGetSystemCapabilityResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", - "line": 16, - "symbol": "SDLRPCMessage.-getFunctionName", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 108, + "symbol": "SDLProxyListener.-onGetVehicleDataResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", - "line": 17, - "symbol": "SDLRPCMessage.-setFunctionName:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 109, + "symbol": "SDLProxyListener.-onGetWayPointsResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", - "line": 18, - "symbol": "SDLRPCMessage.-getParameters:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 110, + "symbol": "SDLProxyListener.-onListFilesResponse:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", - "line": 19, - "symbol": "SDLRPCMessage.-setParameters:value:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 111, + "symbol": "SDLProxyListener.-onReceivedLockScreenIcon:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", - "line": 21, - "symbol": "SDLRPCMessage.bulkData", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", - "line": 22, - "symbol": "SDLRPCMessage.name", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", - "line": 23, - "symbol": "SDLRPCMessage.messageType", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessageType.h", - "line": 6, - "symbol": "SDLRPCMessageType", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessageType.h", - "line": 6, - "symbol": "SDLRPCMessageType", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessageType.h", - "line": 7, - "symbol": "SDLRPCMessageType.SDLRPCMessageTypeRequest", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessageType.h", - "line": 8, - "symbol": "SDLRPCMessageType.SDLRPCMessageTypeResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessageType.h", - "line": 9, - "symbol": "SDLRPCMessageType.SDLRPCMessageTypeNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCNotification.h", - "line": 7, - "symbol": "SDLRPCNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 112, + "symbol": "SDLProxyListener.-onOnAppInterfaceUnregistered:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCNotification.h", - "line": 10, - "symbol": "SDLRPCNotification.-initWithName:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 113, + "symbol": "SDLProxyListener.-onOnAudioPassThru:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCNotification.h", - "line": 11, - "symbol": "SDLRPCNotification.-initWithDictionary:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 114, + "symbol": "SDLProxyListener.-onOnButtonEvent:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCNotificationNotification.h", - "line": 16, - "symbol": "SDLRPCNotificationNotification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 115, + "symbol": "SDLProxyListener.-onOnButtonPress:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCNotificationNotification.h", - "line": 18, - "symbol": "SDLRPCNotificationNotification.notification", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 116, + "symbol": "SDLProxyListener.-onOnCommand:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCNotificationNotification.h", - "line": 20, - "symbol": "SDLRPCNotificationNotification.-initWithName:object:rpcNotification:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 117, + "symbol": "SDLProxyListener.-onOnEncodedSyncPData:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequest.h", - "line": 7, - "symbol": "SDLRPCRequest", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 118, + "symbol": "SDLProxyListener.-onOnHashChange:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequest.h", - "line": 10, - "symbol": "SDLRPCRequest.correlationID", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 119, + "symbol": "SDLProxyListener.-onOnInteriorVehicleData:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 63, - "symbol": "SDLRPCRequestFactory", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 120, + "symbol": "SDLProxyListener.-onOnKeyboardInput:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 67, - "symbol": "SDLRPCRequestFactory.+buildAddCommandWithID:menuName:parentID:position:vrCommands:iconValue:iconType:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 121, + "symbol": "SDLProxyListener.-onOnLanguageChange:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 70, - "symbol": "SDLRPCRequestFactory.+buildAddCommandWithID:menuName:vrCommands:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 122, + "symbol": "SDLProxyListener.-onOnLockScreenNotification:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 72, - "symbol": "SDLRPCRequestFactory.+buildAddCommandWithID:vrCommands:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 123, + "symbol": "SDLProxyListener.-onOnPermissionsChange:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 74, - "symbol": "SDLRPCRequestFactory.+buildAddCommandWithID:menuName:parentID:position:vrCommands:iconValue:iconType:handler:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 124, + "symbol": "SDLProxyListener.-onOnSyncPData:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 76, - "symbol": "SDLRPCRequestFactory.+buildAddCommandWithID:menuName:vrCommands:handler:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 125, + "symbol": "SDLProxyListener.-onOnSystemRequest:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 78, - "symbol": "SDLRPCRequestFactory.+buildAddCommandWithID:vrCommands:handler:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 126, + "symbol": "SDLProxyListener.-onOnTBTClientState:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 83, - "symbol": "SDLRPCRequestFactory.+buildAddSubMenuWithID:menuName:position:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 127, + "symbol": "SDLProxyListener.-onOnTouchEvent:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 85, - "symbol": "SDLRPCRequestFactory.+buildAddSubMenuWithID:menuName:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 128, + "symbol": "SDLProxyListener.-onOnVehicleData:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 90, - "symbol": "SDLRPCRequestFactory.+buildAlertWithTTS:alertText1:alertText2:alertText3:playTone:duration:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 129, + "symbol": "SDLProxyListener.-onOnWayPointChange:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 92, - "symbol": "SDLRPCRequestFactory.+buildAlertWithTTS:alertText1:alertText2:playTone:duration:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 130, + "symbol": "SDLProxyListener.-onPerformAudioPassThruResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 94, - "symbol": "SDLRPCRequestFactory.+buildAlertWithTTS:playTone:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 131, + "symbol": "SDLProxyListener.-onPerformInteractionResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 97, - "symbol": "SDLRPCRequestFactory.+buildAlertWithTTSChunks:alertText1:alertText2:alertText3:playTone:duration:softButtons:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 132, + "symbol": "SDLProxyListener.-onPutFileResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 99, - "symbol": "SDLRPCRequestFactory.+buildAlertWithTTSChunks:playTone:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 133, + "symbol": "SDLProxyListener.-onReadDIDResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 102, - "symbol": "SDLRPCRequestFactory.+buildAlertWithAlertText1:alertText2:alertText3:duration:softButtons:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 134, + "symbol": "SDLProxyListener.-onRegisterAppInterfaceResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 104, - "symbol": "SDLRPCRequestFactory.+buildAlertWithAlertText1:alertText2:alertText3:duration:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 135, + "symbol": "SDLProxyListener.-onResetGlobalPropertiesResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 106, - "symbol": "SDLRPCRequestFactory.+buildAlertWithAlertText1:alertText2:duration:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 136, + "symbol": "SDLProxyListener.-onScrollableMessageResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 109, - "symbol": "SDLRPCRequestFactory.+buildAlertManeuverwithTTSchunks:softButtons:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 137, + "symbol": "SDLProxyListener.-onSendHapticDataResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 111, - "symbol": "SDLRPCRequestFactory.+buildChangeRegistrationWithLanguage:hmiDisplayLanguage:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 138, + "symbol": "SDLProxyListener.-onSendLocationResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 113, - "symbol": "SDLRPCRequestFactory.+buildCreateInteractionChoiceSetWithID:choiceSet:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 139, + "symbol": "SDLProxyListener.-onSetAppIconResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 115, - "symbol": "SDLRPCRequestFactory.+buildDeleteCommandWithID:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 140, + "symbol": "SDLProxyListener.-onSetDisplayLayoutResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 117, - "symbol": "SDLRPCRequestFactory.+buildDeleteFileWithName:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 141, + "symbol": "SDLProxyListener.-onSetGlobalPropertiesResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 119, - "symbol": "SDLRPCRequestFactory.+buildDialNumberWithNumber:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 142, + "symbol": "SDLProxyListener.-onSetInteriorVehicleDataResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 121, - "symbol": "SDLRPCRequestFactory.+buildListFilesWithCorrelationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 143, + "symbol": "SDLProxyListener.-onSetMediaClockTimerResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 123, - "symbol": "SDLRPCRequestFactory.+buildDeleteInteractionChoiceSetWithID:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 144, + "symbol": "SDLProxyListener.-onShowConstantTBTResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 125, - "symbol": "SDLRPCRequestFactory.+buildDeleteSubMenuWithID:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 145, + "symbol": "SDLProxyListener.-onShowResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 127, - "symbol": "SDLRPCRequestFactory.+buildEndAudioPassThruWithCorrelationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 146, + "symbol": "SDLProxyListener.-onSliderResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 129, - "symbol": "SDLRPCRequestFactory.+buildGetDTCsWithECUName:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 147, + "symbol": "SDLProxyListener.-onSpeakResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 131, - "symbol": "SDLRPCRequestFactory.+buildGetVehicleDataWithGPS:speed:rpm:fuelLevel:fuelLevelState:instantFuelConsumption:externalTemperature:vin:prndl:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 148, + "symbol": "SDLProxyListener.-onSubscribeButtonResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 133, - "symbol": "SDLRPCRequestFactory.+buildPerformAudioPassThruWithInitialPrompt:audioPassThruDisplayText1:audioPassThruDisplayText2:samplingRate:maxDuration:bitsPerSample:audioType:muteAudio:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 149, + "symbol": "SDLProxyListener.-onSubscribeVehicleDataResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 137, - "symbol": "SDLRPCRequestFactory.+buildPerformInteractionWithInitialChunks:initialText:interactionChoiceSetIDList:helpChunks:timeoutChunks:interactionMode:timeout:vrHelp:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 150, + "symbol": "SDLProxyListener.-onSubscribeWayPointsResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 140, - "symbol": "SDLRPCRequestFactory.+buildPerformInteractionWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:vrHelp:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 151, + "symbol": "SDLProxyListener.-onSyncPDataResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 142, - "symbol": "SDLRPCRequestFactory.+buildPerformInteractionWithInitialPrompt:initialText:interactionChoiceSetID:vrHelp:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 152, + "symbol": "SDLProxyListener.-onUpdateTurnListResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 144, - "symbol": "SDLRPCRequestFactory.+buildPerformInteractionWithInitialPrompt:initialText:interactionChoiceSetIDList:helpPrompt:timeoutPrompt:interactionMode:timeout:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 153, + "symbol": "SDLProxyListener.-onUnregisterAppInterfaceResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 146, - "symbol": "SDLRPCRequestFactory.+buildPerformInteractionWithInitialPrompt:initialText:interactionChoiceSetID:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 154, + "symbol": "SDLProxyListener.-onUnsubscribeButtonResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 149, - "symbol": "SDLRPCRequestFactory.+buildPutFileWithFileName:fileType:persistentFile:correlationId:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 155, + "symbol": "SDLProxyListener.-onUnsubscribeVehicleDataResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 150, - "symbol": "SDLRPCRequestFactory.+buildPutFileWithFileName:fileType:persisistentFile:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLProxyListener.h", + "line": 156, + "symbol": "SDLProxyListener.-onUnsubscribeWayPointsResponse:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 152, - "symbol": "SDLRPCRequestFactory.+buildReadDIDWithECUName:didLocation:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPutFile.h", + "line": 21, + "symbol": "SDLPutFile.-initWithFileName:fileType:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 155, - "symbol": "SDLRPCRequestFactory.+buildRegisterAppInterfaceWithAppName:ttsName:vrSynonyms:isMediaApp:languageDesired:hmiDisplayLanguageDesired:appID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPutFile.h", + "line": 23, + "symbol": "SDLPutFile.-initWithFileName:fileType:persistentFile:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 157, - "symbol": "SDLRPCRequestFactory.+buildRegisterAppInterfaceWithAppName:isMediaApp:languageDesired:appID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPutFile.h", + "line": 25, + "symbol": "SDLPutFile.-initWithFileName:fileType:persistentFile:systemFile:offset:length:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 159, - "symbol": "SDLRPCRequestFactory.+buildRegisterAppInterfaceWithAppName:languageDesired:appID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLPutFileResponse.h", + "line": 17, + "symbol": "SDLPutFileResponse.spaceAvailable", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 162, - "symbol": "SDLRPCRequestFactory.+buildResetGlobalPropertiesWithProperties:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRDSData.h", + "line": 17, + "symbol": "SDLRDSData.-initWithProgramService:radioText:clockText:programIdentification:programType:trafficProgramIdentification:trafficAnnouncementIdentification:region:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 164, - "symbol": "SDLRPCRequestFactory.+buildSendLocationWithLongitude:latitude:locationName:locationDescription:address:phoneNumber:image:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", + "line": 10, + "symbol": "SDLRPCMessage", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 166, - "symbol": "SDLRPCRequestFactory.+buildScrollableMessage:timeout:softButtons:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", + "line": 11, + "symbol": "SDLRPCMessage.function", + "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 168, - "symbol": "SDLRPCRequestFactory.+buildSetAppIconWithFileName:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", + "line": 12, + "symbol": "SDLRPCMessage.parameters", + "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 170, - "symbol": "SDLRPCRequestFactory.+buildSetDisplayLayout:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", + "line": 13, + "symbol": "SDLRPCMessage.messageType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 174, - "symbol": "SDLRPCRequestFactory.+buildSetGlobalPropertiesWithHelpText:timeoutText:vrHelpTitle:vrHelp:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", + "line": 16, + "symbol": "SDLRPCMessage.-initWithName:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 176, - "symbol": "SDLRPCRequestFactory.+buildSetGlobalPropertiesWithHelpText:timeoutText:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", + "line": 17, + "symbol": "SDLRPCMessage.-initWithDictionary:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 181, - "symbol": "SDLRPCRequestFactory.+buildSetMediaClockTimerWithHours:minutes:seconds:updateMode:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", + "line": 18, + "symbol": "SDLRPCMessage.-getFunctionName", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 183, - "symbol": "SDLRPCRequestFactory.+buildSetMediaClockTimerWithUpdateMode:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", + "line": 19, + "symbol": "SDLRPCMessage.-setFunctionName:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 188, - "symbol": "SDLRPCRequestFactory.+buildShowWithMainField1:mainField2:mainField3:mainField4:statusBar:mediaClock:mediaTrack:alignment:graphic:softButtons:customPresets:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", + "line": 20, + "symbol": "SDLRPCMessage.-getParameters:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 190, - "symbol": "SDLRPCRequestFactory.+buildShowWithMainField1:mainField2:statusBar:mediaClock:mediaTrack:alignment:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", + "line": 21, + "symbol": "SDLRPCMessage.-setParameters:value:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 192, - "symbol": "SDLRPCRequestFactory.+buildShowWithMainField1:mainField2:alignment:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", + "line": 23, + "symbol": "SDLRPCMessage.bulkData", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 197, - "symbol": "SDLRPCRequestFactory.+buildSliderDynamicFooterWithNumTicks:position:sliderHeader:sliderFooter:timeout:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", + "line": 24, + "symbol": "SDLRPCMessage.name", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 199, - "symbol": "SDLRPCRequestFactory.+buildSliderStaticFooterWithNumTicks:position:sliderHeader:sliderFooter:timeout:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessage.h", + "line": 25, + "symbol": "SDLRPCMessage.messageType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 202, - "symbol": "SDLRPCRequestFactory.+buildSoftButtonWithType:text:image:highlighted:buttonID:systemAction:handler:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessageType.h", + "line": 6, + "symbol": "SDLRPCMessageType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 205, - "symbol": "SDLRPCRequestFactory.+buildSpeakWithTTSChunks:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessageType.h", + "line": 6, + "symbol": "SDLRPCMessageType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 208, - "symbol": "SDLRPCRequestFactory.+buildSpeakWithTTS:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessageType.h", + "line": 7, + "symbol": "SDLRPCMessageType.SDLRPCMessageTypeRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 211, - "symbol": "SDLRPCRequestFactory.+buildSubscribeButtonWithName:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessageType.h", + "line": 8, + "symbol": "SDLRPCMessageType.SDLRPCMessageTypeResponse", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 213, - "symbol": "SDLRPCRequestFactory.+buildSubscribeButtonWithName:handler:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCMessageType.h", + "line": 9, + "symbol": "SDLRPCMessageType.SDLRPCMessageTypeNotification", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 215, - "symbol": "SDLRPCRequestFactory.+buildSubscribeVehicleDataWithGPS:speed:rpm:fuelLevel:fuelLevelState:instantFuelConsumption:externalTemperature:prndl:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCNotification.h", + "line": 9, + "symbol": "SDLRPCNotification", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 217, - "symbol": "SDLRPCRequestFactory.+buildShowConstantTBTWithString:navigationText2:eta:timeToDestination:totalDistance:turnIcon:nextTurnIcon:distanceToManeuver:distanceToManeuverScale:maneuverComplete:softButtons:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCNotificationNotification.h", + "line": 16, + "symbol": "SDLRPCNotificationNotification", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 219, - "symbol": "SDLRPCRequestFactory.+buildUnregisterAppInterfaceWithCorrelationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCNotificationNotification.h", + "line": 18, + "symbol": "SDLRPCNotificationNotification.notification", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 221, - "symbol": "SDLRPCRequestFactory.+buildUnsubscribeButtonWithName:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCNotificationNotification.h", + "line": 20, + "symbol": "SDLRPCNotificationNotification.-initWithName:object:rpcNotification:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 223, - "symbol": "SDLRPCRequestFactory.+buildUnsubscribeVehicleDataWithGPS:speed:rpm:fuelLevel:fuelLevelState:instantFuelConsumption:externalTemperature:prndl:tirePressure:odometer:beltStatus:bodyInformation:deviceStatus:driverBraking:wiperStatus:headLampStatus:engineTorque:accPedalPosition:steeringWheelAngle:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequest.h", + "line": 9, + "symbol": "SDLRPCRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequestFactory.h", - "line": 225, - "symbol": "SDLRPCRequestFactory.+buildUpdateTurnListWithTurnList:softButtons:correlationID:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCRequest.h", + "line": 11, + "symbol": "SDLRPCRequest.correlationID", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCResponse.h", - "line": 9, + "line": 11, "symbol": "SDLRPCResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCResponse.h", - "line": 12, + "line": 13, "symbol": "SDLRPCResponse.correlationID", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCResponse.h", - "line": 13, + "line": 14, "symbol": "SDLRPCResponse.success", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCResponse.h", - "line": 14, + "line": 15, "symbol": "SDLRPCResponse.resultCode", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCResponse.h", - "line": 15, + "line": 16, "symbol": "SDLRPCResponse.info", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" @@ -6225,287 +4790,287 @@ }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCStruct.h", - "line": 9, + "line": 11, "symbol": "SDLRPCStruct", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCStruct.h", - "line": 10, + "line": 12, "symbol": "SDLRPCStruct.store", "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCStruct.h", - "line": 13, + "line": 15, "symbol": "SDLRPCStruct.-initWithDictionary:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCStruct.h", - "line": 14, + "line": 16, "symbol": "SDLRPCStruct.-init", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRPCStruct.h", - "line": 16, + "line": 18, "symbol": "SDLRPCStruct.-serializeAsDictionary:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLReadDID.h", - "line": 33, - "symbol": "SDLReadDID.-initWithECUName:didLocation:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRadioBand.h", + "line": 8, + "symbol": "SDLRadioBand", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRadioControlCapabilities.h", + "line": 14, + "symbol": "SDLRadioControlCapabilities.-initWithModuleName:radioEnableAvailable:radioBandAvailable:radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLReadDIDResponse.h", - "line": 15, - "symbol": "SDLReadDIDResponse.-init", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRadioControlData.h", + "line": 19, + "symbol": "SDLRadioControlData.-initWithFrequencyInteger:frequencyFraction:band:hdChannel:radioEnable:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLReadDIDResponse.h", - "line": 16, - "symbol": "SDLReadDIDResponse.-initWithDictionary:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLReadDID.h", + "line": 24, + "symbol": "SDLReadDID.-initWithECUName:didLocation:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLReadDIDResponse.h", - "line": 18, + "line": 19, "symbol": "SDLReadDIDResponse.didResult", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRectangle.h", - "line": 13, + "line": 11, "symbol": "SDLRectangle", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRegisterAppInterface.h", - "line": 100, + "line": 91, "symbol": "SDLRegisterAppInterface.-initWithLifecycleConfiguration:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRegisterAppInterface.h", - "line": 102, + "line": 93, "symbol": "SDLRegisterAppInterface.-initWithAppName:appId:languageDesired:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRegisterAppInterface.h", - "line": 104, + "line": 95, "symbol": "SDLRegisterAppInterface.-initWithAppName:appId:languageDesired:isMediaApp:appType:shortAppName:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRegisterAppInterface.h", - "line": 106, + "line": 97, "symbol": "SDLRegisterAppInterface.-initWithAppName:appId:languageDesired:isMediaApp:appType:shortAppName:ttsName:vrSynonyms:hmiDisplayLanguageDesired:resumeHash:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestHandler.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRemoteControlCapabilities.h", + "line": 13, + "symbol": "SDLRemoteControlCapabilities", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRemoteControlCapabilities.h", "line": 15, - "symbol": "SDLRequestHandler", - "symbol_kind": "sourcekitten.source.lang.objc.decl.protocol", + "symbol": "SDLRemoteControlCapabilities.-initWithClimateControlCapabilities:radioControlCapabilities:buttonCapabilities:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", "line": 7, "symbol": "SDLRequestType", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", + "line": 9, + "symbol": "SDLRequestTypeHTTP", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", "line": 10, - "symbol": "SDLRequestType.+valueOf:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLRequestTypeFileResume", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", "line": 11, - "symbol": "SDLRequestType.+values", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLRequestTypeAuthenticationRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", + "line": 12, + "symbol": "SDLRequestTypeAuthenticationChallenge", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", "line": 13, - "symbol": "SDLRequestType.+HTTP", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLRequestTypeAuthenticationAck", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", "line": 14, - "symbol": "SDLRequestType.+FILE_RESUME", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLRequestTypeProprietary", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", "line": 15, - "symbol": "SDLRequestType.+AUTH_REQUEST", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLRequestTypeQueryApps", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", "line": 16, - "symbol": "SDLRequestType.+AUTH_CHALLENGE", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLRequestTypeLaunchApp", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", "line": 17, - "symbol": "SDLRequestType.+AUTH_ACK", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLRequestTypeLockScreenIconURL", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", "line": 18, - "symbol": "SDLRequestType.+PROPRIETARY", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLRequestTypeTrafficMessageChannel", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", "line": 19, - "symbol": "SDLRequestType.+QUERY_APPS", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLRequestTypeDriverProfile", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", "line": 20, - "symbol": "SDLRequestType.+LAUNCH_APP", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", - "line": 21, - "symbol": "SDLRequestType.+LOCK_SCREEN_ICON_URL", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", - "line": 22, - "symbol": "SDLRequestType.+TRAFFIC_MESSAGE_CHANNEL", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", - "line": 23, - "symbol": "SDLRequestType.+DRIVER_PROFILE", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", - "line": 24, - "symbol": "SDLRequestType.+VOICE_SEARCH", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol": "SDLRequestTypeVoiceSearch", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", - "line": 25, - "symbol": "SDLRequestType.+NAVIGATION", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 21, + "symbol": "SDLRequestTypeNavigation", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", - "line": 26, - "symbol": "SDLRequestType.+PHONE", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 22, + "symbol": "SDLRequestTypePhone", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", - "line": 27, - "symbol": "SDLRequestType.+CLIMATE", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 23, + "symbol": "SDLRequestTypeClimate", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", - "line": 28, - "symbol": "SDLRequestType.+SETTINGS", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 24, + "symbol": "SDLRequestTypeSettings", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", - "line": 29, - "symbol": "SDLRequestType.+VEHICLE_DIAGNOSTICS", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 25, + "symbol": "SDLRequestTypeVehicleDiagnostics", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", - "line": 30, - "symbol": "SDLRequestType.+EMERGENCY", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 26, + "symbol": "SDLRequestTypeEmergency", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", - "line": 31, - "symbol": "SDLRequestType.+MEDIA", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 27, + "symbol": "SDLRequestTypeMedia", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLRequestType.h", - "line": 32, - "symbol": "SDLRequestType.+FOTA", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 28, + "symbol": "SDLRequestTypeFOTA", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLResetGlobalProperties.h", - "line": 39, + "line": 30, "symbol": "SDLResetGlobalProperties.-initWithProperties:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLResult.h", - "line": 46, - "symbol": "SDLResult.+CHAR_LIMIT_EXCEEDED", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 32, + "symbol": "SDLResultCharacterLimitExceeded", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLScreenParams.h", - "line": 10, + "line": 11, "symbol": "SDLScreenParams", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" @@ -6513,41 +5078,27 @@ { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLScreenParams.h", "line": 13, - "symbol": "SDLScreenParams.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLScreenParams.h", - "line": 14, - "symbol": "SDLScreenParams.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLScreenParams.h", - "line": 16, "symbol": "SDLScreenParams.resolution", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLScreenParams.h", - "line": 17, + "line": 14, "symbol": "SDLScreenParams.touchEventAvailable", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLScrollableMessage.h", - "line": 32, + "line": 23, "symbol": "SDLScrollableMessage.-initWithMessage:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLScrollableMessage.h", - "line": 34, + "line": 25, "symbol": "SDLScrollableMessage.-initWithMessage:timeout:softButtons:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" @@ -6608,443 +5159,289 @@ "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", "warning": "undocumented" }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSendHapticDataResponse.h", - "line": 12, - "symbol": "SDLSendHapticDataResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSendHapticDataResponse.h", - "line": 14, - "symbol": "SDLSendHapticDataResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSendHapticDataResponse.h", - "line": 15, - "symbol": "SDLSendHapticDataResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSendLocation.h", - "line": 14, + "line": 16, "symbol": "SDLSendLocation", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSendLocation.h", - "line": 16, + "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": 18, + "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/SDLSendLocationResponse.h", - "line": 7, + "line": 9, "symbol": "SDLSendLocationResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSendLocationResponse.h", - "line": 9, - "symbol": "SDLSendLocationResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSendLocationResponse.h", - "line": 10, - "symbol": "SDLSendLocationResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetAppIcon.h", - "line": 27, + "line": 19, "symbol": "SDLSetAppIcon.-initWithFileName:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetAppIconResponse.h", - "line": 13, - "symbol": "SDLSetAppIconResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetAppIconResponse.h", - "line": 14, - "symbol": "SDLSetAppIconResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetDisplayLayout.h", - "line": 29, + "line": 20, "symbol": "SDLSetDisplayLayout.-initWithPredefinedLayout:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetDisplayLayout.h", - "line": 31, - "symbol": "SDLSetDisplayLayout.-initWithLayout:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetDisplayLayoutResponse.h", "line": 22, - "symbol": "SDLSetDisplayLayoutResponse.-initWithDictionary:", + "symbol": "SDLSetDisplayLayout.-initWithLayout:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetDisplayLayoutResponse.h", - "line": 24, + "line": 21, "symbol": "SDLSetDisplayLayoutResponse.displayCapabilities", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetDisplayLayoutResponse.h", - "line": 25, + "line": 22, "symbol": "SDLSetDisplayLayoutResponse.buttonCapabilities", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetDisplayLayoutResponse.h", - "line": 26, + "line": 23, "symbol": "SDLSetDisplayLayoutResponse.softButtonCapabilities", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetDisplayLayoutResponse.h", - "line": 27, + "line": 24, "symbol": "SDLSetDisplayLayoutResponse.presetBankCapabilities", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetGlobalProperties.h", - "line": 34, + "line": 26, "symbol": "SDLSetGlobalProperties.-initWithHelpText:timeoutText:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetGlobalProperties.h", - "line": 37, + "line": 28, "symbol": "SDLSetGlobalProperties.-initWithHelpText:timeoutText:vrHelpTitle:vrHelp:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetGlobalProperties.h", - "line": 40, + "line": 30, "symbol": "SDLSetGlobalProperties.-initWithHelpText:timeoutText:vrHelpTitle:vrHelp:menuTitle:menuIcon:keyboardProperties:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetGlobalProperties.h", - "line": 100, + "line": 90, "symbol": "SDLSetGlobalProperties.menuTitle", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetGlobalProperties.h", - "line": 101, + "line": 91, "symbol": "SDLSetGlobalProperties.menuIcon", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetGlobalProperties.h", - "line": 102, + "line": 92, "symbol": "SDLSetGlobalProperties.keyboardProperties", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetInteriorVehicleData.h", + "line": 18, + "symbol": "SDLSetInteriorVehicleData.-initWithModuleData:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "warning": "undocumented" + }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSetMediaClockTimer.h", - "line": 35, + "line": 25, "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": 37, + "line": 27, "symbol": "SDLSetMediaClockTimer.-initWithUpdateMode:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShow.h", - "line": 48, + "line": 41, "symbol": "SDLShow.-initWithMainField1:mainField2:alignment:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShow.h", - "line": 50, + "line": 43, "symbol": "SDLShow.-initWithMainField1:mainField1Type:mainField2:mainField2Type:alignment:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShow.h", - "line": 52, + "line": 45, "symbol": "SDLShow.-initWithMainField1:mainField2:mainField3:mainField4:alignment:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShow.h", - "line": 54, + "line": 47, "symbol": "SDLShow.-initWithMainField1:mainField1Type:mainField2:mainField2Type:mainField3:mainField3Type:mainField4:mainField4Type:alignment:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShow.h", - "line": 56, + "line": 49, "symbol": "SDLShow.-initWithMainField1:mainField2:alignment:statusBar:mediaClock:mediaTrack:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShow.h", - "line": 58, - "symbol": "SDLShow.-initWithMainField1:mainField2:mainField3:mainField4:alignment:statusBar:mediaClock:mediaTrack:graphic:softButtons:customPresets:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShow.h", - "line": 60, + "line": 51, "symbol": "SDLShow.-initWithMainField1:mainField2:mainField3:mainField4:alignment:statusBar:mediaClock:mediaTrack:graphic:softButtons:customPresets:textFieldMetadata:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", - "line": 19, - "symbol": "SDLShowConstantTBT.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", "line": 20, - "symbol": "SDLShowConstantTBT.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", - "line": 22, "symbol": "SDLShowConstantTBT.-initWithNavigationText1:navigationText2:eta:timeToDestination:totalDistance:turnIcon:nextTurnIcon:distanceToManeuver:distanceToManeuverScale:maneuverComplete:softButtons:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", - "line": 24, + "line": 22, "symbol": "SDLShowConstantTBT.navigationText1", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", - "line": 25, - "symbol": "SDLShowConstantTBT.navigationText2", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", - "line": 26, - "symbol": "SDLShowConstantTBT.eta", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", - "line": 27, - "symbol": "SDLShowConstantTBT.timeToDestination", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", - "line": 28, - "symbol": "SDLShowConstantTBT.totalDistance", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", - "line": 29, - "symbol": "SDLShowConstantTBT.turnIcon", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", - "line": 30, - "symbol": "SDLShowConstantTBT.nextTurnIcon", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", - "line": 31, - "symbol": "SDLShowConstantTBT.distanceToManeuver", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", - "line": 32, - "symbol": "SDLShowConstantTBT.distanceToManeuverScale", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", - "line": 33, - "symbol": "SDLShowConstantTBT.maneuverComplete", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", - "line": 34, - "symbol": "SDLShowConstantTBT.softButtons", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBTResponse.h", - "line": 13, - "symbol": "SDLShowConstantTBTResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBTResponse.h", - "line": 14, - "symbol": "SDLShowConstantTBTResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSiphonServer.h", - "line": 7, - "symbol": "SDLSiphonServer", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", + "line": 23, + "symbol": "SDLShowConstantTBT.navigationText2", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSiphonServer.h", - "line": 10, - "symbol": "SDLSiphonServer.+enableSiphonDebug", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", + "line": 24, + "symbol": "SDLShowConstantTBT.eta", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSiphonServer.h", - "line": 11, - "symbol": "SDLSiphonServer.+disableSiphonDebug", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", + "line": 25, + "symbol": "SDLShowConstantTBT.timeToDestination", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSiphonServer.h", - "line": 12, - "symbol": "SDLSiphonServer.+_siphonRawTransportDataFromApp:msgBytesLength:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", + "line": 26, + "symbol": "SDLShowConstantTBT.totalDistance", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSiphonServer.h", - "line": 13, - "symbol": "SDLSiphonServer.+_siphonRawTransportDataFromSDL:msgBytesLength:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", + "line": 27, + "symbol": "SDLShowConstantTBT.turnIcon", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSiphonServer.h", - "line": 14, - "symbol": "SDLSiphonServer.+_siphonNSLogData:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", + "line": 28, + "symbol": "SDLShowConstantTBT.nextTurnIcon", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSiphonServer.h", - "line": 15, - "symbol": "SDLSiphonServer.+_siphonFormattedTraceData:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", + "line": 29, + "symbol": "SDLShowConstantTBT.distanceToManeuver", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSiphonServer.h", - "line": 16, - "symbol": "SDLSiphonServer.+_siphonIsActive", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", + "line": 30, + "symbol": "SDLShowConstantTBT.distanceToManeuverScale", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSiphonServer.h", - "line": 17, - "symbol": "SDLSiphonServer.+init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", + "line": 31, + "symbol": "SDLShowConstantTBT.maneuverComplete", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSiphonServer.h", - "line": 18, - "symbol": "SDLSiphonServer.+dealloc", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLShowConstantTBT.h", + "line": 32, + "symbol": "SDLShowConstantTBT.softButtons", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSlider.h", - "line": 28, + "line": 19, "symbol": "SDLSlider.-initWithNumTicks:position:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSlider.h", - "line": 30, + "line": 21, "symbol": "SDLSlider.-initWithNumTicks:position:sliderHeader:sliderFooter:timeout:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSlider.h", - "line": 32, + "line": 23, "symbol": "SDLSlider.-initWithNumTicks:position:sliderHeader:sliderFooters:timeout:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" @@ -7058,91 +5455,77 @@ }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSoftButton.h", - "line": 17, - "symbol": "SDLSoftButton.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSoftButton.h", - "line": 18, + "line": 16, "symbol": "SDLSoftButton.-initWithHandler:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSoftButton.h", - "line": 19, - "symbol": "SDLSoftButton.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSoftButton.h", - "line": 21, + "line": 18, "symbol": "SDLSoftButton.-initWithType:text:image:highlighted:buttonId:systemAction:handler:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSoftButton.h", - "line": 23, + "line": 20, "symbol": "SDLSoftButton.handler", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSoftButton.h", - "line": 25, + "line": 22, "symbol": "SDLSoftButton.type", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSoftButton.h", - "line": 26, + "line": 23, "symbol": "SDLSoftButton.text", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSoftButton.h", - "line": 27, + "line": 24, "symbol": "SDLSoftButton.image", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSoftButton.h", - "line": 28, + "line": 25, "symbol": "SDLSoftButton.isHighlighted", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSoftButton.h", - "line": 29, + "line": 26, "symbol": "SDLSoftButton.softButtonID", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSoftButton.h", - "line": 30, + "line": 27, "symbol": "SDLSoftButton.systemAction", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSpeak.h", - "line": 55, + "line": 46, "symbol": "SDLSpeak.-initWithTTS:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSpeak.h", - "line": 57, + "line": 48, "symbol": "SDLSpeak.-initWithTTSChunks:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" @@ -7151,861 +5534,693 @@ "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSpeechCapabilities.h", "line": 12, "symbol": "SDLSpeechCapabilities", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSpeechCapabilities.h", - "line": 38, - "symbol": "SDLSpeechCapabilities.+SAPI_PHONEMES", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 19, + "symbol": "SDLSpeechCapabilitiesSAPIPhonemes", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSpeechCapabilities.h", - "line": 40, - "symbol": "SDLSpeechCapabilities.+LHPLUS_PHONEMES", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 21, + "symbol": "SDLSpeechCapabilitiesLHPlusPhonemes", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSpeechCapabilities.h", - "line": 42, - "symbol": "SDLSpeechCapabilities.+PRE_RECORDED", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 23, + "symbol": "SDLSpeechCapabilitiesPrerecorded", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSpeechCapabilities.h", - "line": 44, - "symbol": "SDLSpeechCapabilities.+SILENCE", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 25, + "symbol": "SDLSpeechCapabilitiesSilence", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStartTime.h", - "line": 26, + "line": 17, "symbol": "SDLStartTime.-initWithHours:minutes:seconds:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 23, - "symbol": "SDLStreamingVideoError", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 23, - "symbol": "SDLStreamingVideoError", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 24, - "symbol": "SDLStreamingVideoError.SDLStreamingVideoErrorHeadUnitNACK", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 25, - "symbol": "SDLStreamingVideoError.SDLSTreamingVideoErrorInvalidOperatingSystemVersion", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaConfiguration.h", + "line": 19, + "symbol": "SDLStreamingMediaConfiguration", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", "line": 26, - "symbol": "SDLStreamingVideoError.SDLStreamingVideoErrorInvalidOperatingSystemVersion", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 27, - "symbol": "SDLStreamingVideoError.SDLStreamingVideoErrorConfigurationCompressionSessionCreationFailure", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 28, - "symbol": "SDLStreamingVideoError.SDLStreamingVideoErrorConfigurationAllocationFailure", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "symbol": "SDLStreamingMediaManager", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 29, - "symbol": "SDLStreamingVideoError.SDLStreamingVideoErrorConfigurationCompressionSessionSetPropertyFailure", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "line": 100, + "symbol": "SDLStreamingMediaManager.-init", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 32, - "symbol": "SDLEncryptionFlag", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManagerConstants.h", + "line": 13, + "symbol": "SDLStreamingEncryptionFlag", "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 32, - "symbol": "SDLEncryptionFlag", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManagerConstants.h", + "line": 13, + "symbol": "SDLStreamingEncryptionFlag", "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 33, - "symbol": "SDLEncryptionFlag.SDLEncryptionFlagNone", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 34, - "symbol": "SDLEncryptionFlag.SDLEncryptionFlagAuthenticateOnly", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManagerConstants.h", + "line": 14, + "symbol": "SDLStreamingEncryptionFlag.SDLStreamingEncryptionFlagNone", "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 35, - "symbol": "SDLEncryptionFlag.SDLEncryptionFlagAuthenticateAndEncrypt", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManagerConstants.h", + "line": 15, + "symbol": "SDLStreamingEncryptionFlag.SDLStreamingEncryptionFlagAuthenticateOnly", "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 38, - "symbol": "SDLStreamingAudioError", - "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 38, - "symbol": "SDLStreamingAudioError", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 39, - "symbol": "SDLStreamingAudioError.SDLStreamingAudioErrorHeadUnitNACK", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManagerConstants.h", + "line": 16, + "symbol": "SDLStreamingEncryptionFlag.SDLStreamingEncryptionFlagAuthenticateAndEncrypt", "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 42, - "symbol": "SDLErrorDomainStreamingMediaVideo", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 43, - "symbol": "SDLErrorDomainStreamingMediaAudio", - "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 45, + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManagerConstants.h", + "line": 19, "symbol": "SDLDefaultScreenSize", "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 47, - "symbol": "SDLStreamingStartBlock", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 48, - "symbol": "SDLStreamingEncryptionStartBlock", - "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 53, - "symbol": "SDLStreamingMediaManager", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 55, - "symbol": "SDLStreamingMediaManager.videoSessionConnected", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 56, - "symbol": "SDLStreamingMediaManager.audioSessionConnected", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 58, - "symbol": "SDLStreamingMediaManager.videoSessionEncrypted", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 59, - "symbol": "SDLStreamingMediaManager.audioSessionEncrypted", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManagerConstants.h", + "line": 21, + "symbol": "SDLVideoStreamDidStartNotification", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 99, - "symbol": "SDLStreamingMediaManager.-initWithProtocol:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManagerConstants.h", + "line": 22, + "symbol": "SDLVideoStreamDidStopNotification", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 101, - "symbol": "SDLStreamingMediaManager.-initWithProtocol:displayCapabilities:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManagerConstants.h", + "line": 24, + "symbol": "SDLAudioStreamDidStartNotification", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManager.h", - "line": 163, - "symbol": "SDLStreamingMediaManager.-startAudioSessionWithTLS:startBlock:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLStreamingMediaManagerConstants.h", + "line": 25, + "symbol": "SDLAudioStreamDidStopNotification", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSubscribeButton.h", - "line": 87, + "line": 72, "symbol": "SDLSubscribeButton.-initWithButtonName:handler:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSubscribeVehicleData.h", - "line": 37, + "line": 27, "symbol": "SDLSubscribeVehicleData.-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSubscribeVehicleData.h", - "line": 135, + "line": 125, "symbol": "SDLSubscribeVehicleData.eCallInfo", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSubscribeVehicleData.h", - "line": 136, + "line": 126, "symbol": "SDLSubscribeVehicleData.airbagStatus", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSubscribeVehicleData.h", - "line": 137, + "line": 127, "symbol": "SDLSubscribeVehicleData.emergencyEvent", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSubscribeVehicleData.h", - "line": 138, + "line": 128, "symbol": "SDLSubscribeVehicleData.clusterModeStatus", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSubscribeVehicleData.h", - "line": 139, + "line": 129, "symbol": "SDLSubscribeVehicleData.myKey", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h", - "line": 124, + "line": 113, "symbol": "SDLSubscribeVehicleDataResponse.eCallInfo", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h", - "line": 125, + "line": 114, "symbol": "SDLSubscribeVehicleDataResponse.airbagStatus", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h", - "line": 126, + "line": 115, "symbol": "SDLSubscribeVehicleDataResponse.emergencyEvent", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h", - "line": 127, + "line": 116, "symbol": "SDLSubscribeVehicleDataResponse.clusterModes", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h", - "line": 128, + "line": 117, "symbol": "SDLSubscribeVehicleDataResponse.myKey", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSubscribeWaypoints.h", - "line": 18, - "symbol": "SDLSubscribeWaypoints", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSubscribeWaypointsResponse.h", - "line": 6, + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSubscribeWayPointsResponse.h", + "line": 8, "symbol": "SDLSubscribeWayPointsResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSubscribeWaypointsResponse.h", - "line": 11, - "symbol": "SDLSubscribeWaypointsResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSyncMsgVersion.h", - "line": 27, - "symbol": "SDLSyncMsgVersion.-initWithMajorVersion:minorVersion:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSyncMsgVersion.h", - "line": 29, + "line": 17, "symbol": "SDLSyncMsgVersion.-initWithMajorVersion:minorVersion:patchVersion:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSyncPData.h", - "line": 7, + "line": 9, "symbol": "SDLSyncPData", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSyncPData.h", - "line": 10, - "symbol": "SDLSyncPData.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSyncPData.h", - "line": 11, - "symbol": "SDLSyncPData.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSyncPDataResponse.h", - "line": 7, + "line": 9, "symbol": "SDLSyncPDataResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSyncPDataResponse.h", - "line": 10, - "symbol": "SDLSyncPDataResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSyncPDataResponse.h", - "line": 11, - "symbol": "SDLSyncPDataResponse.-initWithDictionary:", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSystemCapability.h", + "line": 27, + "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": 35, - "symbol": "SDLSystemCapability.-initWithNavigationCapability:", + "line": 29, + "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": 37, - "symbol": "SDLSystemCapability.-initWithPhoneCapability:", + "line": 31, + "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": 39, - "symbol": "SDLSystemCapability.-initWithVideoStreamingCapability:", + "line": 33, + "symbol": "SDLSystemCapability.-initWithRemoteControlCapability:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSystemCapability.h", - "line": 41, + "line": 35, "symbol": "SDLSystemCapability.systemCapabilityType", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSystemCapability.h", - "line": 43, + "line": 37, "symbol": "SDLSystemCapability.navigationCapability", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSystemCapability.h", - "line": 45, + "line": 39, "symbol": "SDLSystemCapability.phoneCapability", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSystemCapability.h", - "line": 47, + "line": 41, "symbol": "SDLSystemCapability.videoStreamingCapability", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTBTState.h", - "line": 7, - "symbol": "SDLTBTState", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTBTState.h", - "line": 10, - "symbol": "SDLTBTState.+valueOf:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLSystemCapability.h", + "line": 43, + "symbol": "SDLSystemCapability.remoteControlCapability", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTBTState.h", - "line": 11, - "symbol": "SDLTBTState.+values", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 7, + "symbol": "SDLTBTState", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTBTState.h", - "line": 13, - "symbol": "SDLTBTState.+ROUTE_UPDATE_REQUEST", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 9, + "symbol": "SDLTBTStateRouteUpdateRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTBTState.h", - "line": 14, - "symbol": "SDLTBTState.+ROUTE_ACCEPTED", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 10, + "symbol": "SDLTBTStateRouteAccepted", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTBTState.h", - "line": 15, - "symbol": "SDLTBTState.+ROUTE_REFUSED", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 11, + "symbol": "SDLTBTStateRouteRefused", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTBTState.h", - "line": 16, - "symbol": "SDLTBTState.+ROUTE_CANCELLED", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 12, + "symbol": "SDLTBTStateRouteCancelled", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTBTState.h", - "line": 17, - "symbol": "SDLTBTState.+ETA_REQUEST", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 13, + "symbol": "SDLTBTStateETARequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTBTState.h", - "line": 18, - "symbol": "SDLTBTState.+NEXT_TURN_REQUEST", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 14, + "symbol": "SDLTBTStateNextTurnRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTBTState.h", - "line": 19, - "symbol": "SDLTBTState.+ROUTE_STATUS_REQUEST", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 15, + "symbol": "SDLTBTStateRouteStatusRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTBTState.h", - "line": 20, - "symbol": "SDLTBTState.+ROUTE_SUMMARY_REQUEST", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 16, + "symbol": "SDLTBTStateRouteSummaryRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTBTState.h", - "line": 21, - "symbol": "SDLTBTState.+TRIP_STATUS_REQUEST", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 17, + "symbol": "SDLTBTStateTripStatusRequest", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTBTState.h", - "line": 22, - "symbol": "SDLTBTState.+ROUTE_UPDATE_REQUEST_TIMEOUT", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 18, + "symbol": "SDLTBTStateRouteUpdateRequestTimeout", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTCPTransport.h", - "line": 6, + "line": 8, "symbol": "SDLTCPTransport", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTCPTransport.h", - "line": 7, + "line": 9, "symbol": "SDLTCPTransport.socket", "symbol_kind": "sourcekitten.source.lang.objc.decl.ivar", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTCPTransport.h", - "line": 10, + "line": 12, "symbol": "SDLTCPTransport.hostName", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTCPTransport.h", - "line": 11, + "line": 13, "symbol": "SDLTCPTransport.portNumber", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTTSChunk.h", - "line": 55, + "line": 44, "symbol": "SDLTTSChunk.-initWithText:type:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTTSChunk.h", - "line": 57, + "line": 46, "symbol": "SDLTTSChunk.+textChunksFromString:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTTSChunk.h", - "line": 59, + "line": 48, "symbol": "SDLTTSChunk.+sapiChunksFromString:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTTSChunk.h", - "line": 61, + "line": 50, "symbol": "SDLTTSChunk.+lhPlusChunksFromString:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTTSChunk.h", - "line": 63, + "line": 52, "symbol": "SDLTTSChunk.+prerecordedChunksFromString:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTTSChunk.h", - "line": 65, + "line": 54, "symbol": "SDLTTSChunk.+silenceChunks", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTTSChunkFactory.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTemperature.h", "line": 10, - "symbol": "SDLTTSChunkFactory", + "symbol": "SDLTemperature", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTTSChunkFactory.h", - "line": 13, - "symbol": "SDLTTSChunkFactory.+buildTTSChunkForString:type:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTemperature.h", + "line": 12, + "symbol": "SDLTemperature.-initWithUnit:value:", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTTSChunkFactory.h", - "line": 14, - "symbol": "SDLTTSChunkFactory.+buildTTSChunksFromSimple:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTemperatureUnit.h", + "line": 8, + "symbol": "SDLTemperatureUnit", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTimerMode.h", "line": 7, "symbol": "SDLTimerMode", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTimerMode.h", - "line": 10, - "symbol": "SDLTimerMode.+valueOf:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTimerMode.h", - "line": 11, - "symbol": "SDLTimerMode.+values", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTimerMode.h", - "line": 13, - "symbol": "SDLTimerMode.+UP", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 9, + "symbol": "SDLTimerModeUp", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTimerMode.h", - "line": 14, - "symbol": "SDLTimerMode.+DOWN", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 10, + "symbol": "SDLTimerModeDown", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTimerMode.h", - "line": 15, - "symbol": "SDLTimerMode.+NONE", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 11, + "symbol": "SDLTimerModeNone", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTireStatus.h", - "line": 10, + "line": 12, "symbol": "SDLTireStatus", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTireStatus.h", - "line": 13, - "symbol": "SDLTireStatus.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "line": 14, + "symbol": "SDLTireStatus.pressureTelltale", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTireStatus.h", - "line": 14, - "symbol": "SDLTireStatus.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "line": 15, + "symbol": "SDLTireStatus.leftFront", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTireStatus.h", "line": 16, - "symbol": "SDLTireStatus.pressureTelltale", + "symbol": "SDLTireStatus.rightFront", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTireStatus.h", "line": 17, - "symbol": "SDLTireStatus.leftFront", + "symbol": "SDLTireStatus.leftRear", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTireStatus.h", "line": 18, - "symbol": "SDLTireStatus.rightFront", + "symbol": "SDLTireStatus.rightRear", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTireStatus.h", "line": 19, - "symbol": "SDLTireStatus.leftRear", + "symbol": "SDLTireStatus.innerLeftRear", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTireStatus.h", "line": 20, - "symbol": "SDLTireStatus.rightRear", + "symbol": "SDLTireStatus.innerRightRear", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTireStatus.h", - "line": 21, - "symbol": "SDLTireStatus.innerLeftRear", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouch.h", + "line": 13, + "symbol": "", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouch.h", + "line": 13, + "symbol": "SDLTouchIdentifier", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouch.h", + "line": 13, + "symbol": "SDLTouchIdentifier.", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enum", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouch.h", + "line": 14, + "symbol": ".SDLTouchIdentifierFirstFinger", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouch.h", + "line": 14, + "symbol": "SDLTouchIdentifier..SDLTouchIdentifierFirstFinger", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouch.h", + "line": 15, + "symbol": ".SDLTouchIdentifierSecondFinger", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTireStatus.h", - "line": 22, - "symbol": "SDLTireStatus.innerRightRear", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouch.h", + "line": 15, + "symbol": "SDLTouchIdentifier..SDLTouchIdentifierSecondFinger", + "symbol_kind": "sourcekitten.source.lang.objc.decl.enumcase", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchCoord.h", - "line": 7, - "symbol": "SDLTouchCoord", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouch.h", + "line": 20, + "symbol": "SDLTouch", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchCoord.h", - "line": 10, - "symbol": "SDLTouchCoord.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "line": 9, + "symbol": "SDLTouchCoord", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchCoord.h", "line": 11, - "symbol": "SDLTouchCoord.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchCoord.h", - "line": 13, "symbol": "SDLTouchCoord.x", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchCoord.h", - "line": 14, + "line": 12, "symbol": "SDLTouchCoord.y", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchEvent.h", - "line": 7, + "line": 11, "symbol": "SDLTouchEvent", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchEvent.h", - "line": 10, - "symbol": "SDLTouchEvent.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchEvent.h", - "line": 11, - "symbol": "SDLTouchEvent.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchEventCapabilities.h", - "line": 7, + "line": 9, "symbol": "SDLTouchEventCapabilities", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchEventCapabilities.h", - "line": 10, - "symbol": "SDLTouchEventCapabilities.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchEventCapabilities.h", "line": 11, - "symbol": "SDLTouchEventCapabilities.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchEventCapabilities.h", - "line": 13, "symbol": "SDLTouchEventCapabilities.pressAvailable", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchEventCapabilities.h", - "line": 14, + "line": 12, "symbol": "SDLTouchEventCapabilities.multiTouchAvailable", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchEventCapabilities.h", - "line": 15, + "line": 13, "symbol": "SDLTouchEventCapabilities.doublePressAvailable", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchManager.h", - "line": 14, + "line": 20, + "symbol": "SDLTouchEventHandler", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchManager.h", + "line": 23, "symbol": "SDLTouchManager", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchManager.h", - "line": 16, - "symbol": "SDLTouchManager.touchEventDelegate", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "line": 77, + "symbol": "SDLTouchManager.-init", + "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { @@ -8019,82 +6234,68 @@ "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchType.h", "line": 7, "symbol": "SDLTouchType", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchType.h", - "line": 10, - "symbol": "SDLTouchType.+valueOf:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchType.h", - "line": 11, - "symbol": "SDLTouchType.+values", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchType.h", - "line": 13, - "symbol": "SDLTouchType.+BEGIN", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 9, + "symbol": "SDLTouchTypeBegin", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchType.h", - "line": 14, - "symbol": "SDLTouchType.+MOVE", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 10, + "symbol": "SDLTouchTypeMove", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchType.h", - "line": 15, - "symbol": "SDLTouchType.+END", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 11, + "symbol": "SDLTouchTypeEnd", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTouchType.h", - "line": 16, - "symbol": "SDLTouchType.+CANCEL", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.class", + "line": 12, + "symbol": "SDLTouchTypeCancel", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTransportDelegate.h", - "line": 4, + "line": 6, "symbol": "SDLTransportDelegate", "symbol_kind": "sourcekitten.source.lang.objc.decl.protocol", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTransportDelegate.h", - "line": 6, + "line": 8, "symbol": "SDLTransportDelegate.-onTransportConnected", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTransportDelegate.h", - "line": 7, + "line": 9, "symbol": "SDLTransportDelegate.-onTransportDisconnected", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTransportDelegate.h", - "line": 8, + "line": 10, "symbol": "SDLTransportDelegate.-onDataReceived:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTurn.h", - "line": 9, + "line": 10, "symbol": "SDLTurn", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" @@ -8102,195 +6303,160 @@ { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTurn.h", "line": 12, - "symbol": "SDLTurn.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTurn.h", - "line": 13, - "symbol": "SDLTurn.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTurn.h", - "line": 15, "symbol": "SDLTurn.-initWithNavigationText:turnIcon:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTurn.h", - "line": 17, + "line": 14, "symbol": "SDLTurn.navigationText", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLTurn.h", - "line": 18, + "line": 15, "symbol": "SDLTurn.turnIcon", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUnsubscribeButton.h", - "line": 36, + "line": 27, "symbol": "SDLUnsubscribeButton.-initWithButtonName:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUnsubscribeVehicleData.h", - "line": 34, + "line": 24, "symbol": "SDLUnsubscribeVehicleData.-initWithAccelerationPedalPosition:airbagStatus:beltStatus:bodyInformation:clusterModeStatus:deviceStatus:driverBraking:eCallInfo:emergencyEvent:engineTorque:externalTemperature:fuelLevel:fuelLevelState:gps:headLampStatus:instantFuelConsumption:myKey:odometer:prndl:rpm:speed:steeringWheelAngle:tirePressure:wiperStatus:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUnsubscribeVehicleData.h", - "line": 125, + "line": 115, "symbol": "SDLUnsubscribeVehicleData.steeringWheelAngle", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUnsubscribeVehicleData.h", - "line": 126, + "line": 116, "symbol": "SDLUnsubscribeVehicleData.eCallInfo", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUnsubscribeVehicleData.h", - "line": 127, + "line": 117, "symbol": "SDLUnsubscribeVehicleData.airbagStatus", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUnsubscribeVehicleData.h", - "line": 128, + "line": 118, "symbol": "SDLUnsubscribeVehicleData.emergencyEvent", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUnsubscribeVehicleData.h", - "line": 129, + "line": 119, "symbol": "SDLUnsubscribeVehicleData.clusterModeStatus", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUnsubscribeVehicleData.h", - "line": 130, + "line": 120, "symbol": "SDLUnsubscribeVehicleData.myKey", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h", - "line": 123, + "line": 113, "symbol": "SDLUnsubscribeVehicleDataResponse.eCallInfo", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h", - "line": 124, + "line": 114, "symbol": "SDLUnsubscribeVehicleDataResponse.airbagStatus", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h", - "line": 125, + "line": 115, "symbol": "SDLUnsubscribeVehicleDataResponse.emergencyEvent", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h", - "line": 126, + "line": 116, "symbol": "SDLUnsubscribeVehicleDataResponse.clusterModes", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h", - "line": 127, + "line": 117, "symbol": "SDLUnsubscribeVehicleDataResponse.myKey", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUnsubscribeWaypoints.h", - "line": 6, + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUnsubscribeWayPoints.h", + "line": 8, "symbol": "SDLUnsubscribeWayPoints", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUnsubscribeWaypoints.h", - "line": 11, - "symbol": "SDLUnsubscribeWaypoints", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUnsubscribeWaypointsResponse.h", - "line": 6, + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUnsubscribeWayPointsResponse.h", + "line": 8, "symbol": "SDLUnsubscribeWayPointsResponse", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUnsubscribeWaypointsResponse.h", - "line": 11, - "symbol": "SDLUnsubscribeWaypointsResponse", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUpdateTurnList.h", - "line": 18, - "symbol": "SDLUpdateTurnList.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUpdateTurnList.h", - "line": 19, - "symbol": "SDLUpdateTurnList.-initWithDictionary:", + "line": 20, + "symbol": "SDLUpdateTurnList.-initWithTurnList:softButtons:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUpdateTurnList.h", - "line": 21, - "symbol": "SDLUpdateTurnList.-initWithTurnList:softButtons:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVehicleDataEventStatus.h", + "line": 14, + "symbol": "SDLVehicleDataEventStatusNoEvent", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUpdateTurnListResponse.h", - "line": 13, - "symbol": "SDLUpdateTurnListResponse.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVehicleDataEventStatus.h", + "line": 16, + "symbol": "SDLVehicleDataEventStatusNo", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLUpdateTurnListResponse.h", - "line": 14, - "symbol": "SDLUpdateTurnListResponse.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVehicleDataEventStatus.h", + "line": 18, + "symbol": "SDLVehicleDataEventStatusYes", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVehicleDataResult.h", - "line": 10, + "line": 11, "symbol": "SDLVehicleDataResult", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" @@ -8298,113 +6464,113 @@ { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVehicleDataResult.h", "line": 13, - "symbol": "SDLVehicleDataResult.-init", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "symbol": "SDLVehicleDataResult.dataType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVehicleDataResult.h", "line": 14, - "symbol": "SDLVehicleDataResult.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVehicleDataResult.h", - "line": 16, - "symbol": "SDLVehicleDataResult.dataType", + "symbol": "SDLVehicleDataResult.resultCode", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVehicleDataResult.h", - "line": 17, - "symbol": "SDLVehicleDataResult.resultCode", - "symbol_kind": "sourcekitten.source.lang.objc.decl.property", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVentilationMode.h", + "line": 7, + "symbol": "SDLVentilationMode", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVideoStreamingCapability.h", - "line": 14, + "line": 16, "symbol": "SDLVideoStreamingCapability", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVideoStreamingCapability.h", - "line": 27, - "symbol": "SDLVideoStreamingCapability.-initWithVideoStreaming:maxBitrate:supportedFormats:hapticDataSupported:", + "line": 18, + "symbol": "SDLVideoStreamingCapability.-initWithPreferredResolution:maxBitrate:supportedFormats:hapticDataSupported:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVideoStreamingFormat.h", - "line": 14, + "line": 12, "symbol": "SDLVideoStreamingFormat", "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVrHelpItem.h", - "line": 9, - "symbol": "SDLVRHelpItem", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", - "warning": "undocumented" - }, - { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVrHelpItem.h", - "line": 12, - "symbol": "SDLVRHelpItem.-init", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVideoStreamingFormat.h", + "line": 24, + "symbol": "SDLVideoStreamingFormat.-initWithCodec:protocol:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVrHelpItem.h", - "line": 13, - "symbol": "SDLVRHelpItem.-initWithDictionary:", - "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", + "line": 10, + "symbol": "SDLVRHelpItem", + "symbol_kind": "sourcekitten.source.lang.objc.decl.class", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVrHelpItem.h", - "line": 15, + "line": 12, "symbol": "SDLVRHelpItem.-initWithText:image:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVrHelpItem.h", - "line": 17, + "line": 14, "symbol": "SDLVRHelpItem.-initWithText:image:position:", "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVrHelpItem.h", - "line": 19, + "line": 16, "symbol": "SDLVRHelpItem.text", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVrHelpItem.h", - "line": 20, + "line": 17, "symbol": "SDLVRHelpItem.image", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLVrHelpItem.h", - "line": 21, + "line": 18, "symbol": "SDLVRHelpItem.position", "symbol_kind": "sourcekitten.source.lang.objc.decl.property", "warning": "undocumented" }, { - "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLWaypointType.h", + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLWayPointType.h", "line": 6, - "symbol": "SDLWaypointType", - "symbol_kind": "sourcekitten.source.lang.objc.decl.class", + "symbol": "SDLWayPointType", + "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLWayPointType.h", + "line": 8, + "symbol": "SDLWayPointTypeAll", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", + "warning": "undocumented" + }, + { + "file": "/Users/joel/Projects/SDL/sdl_ios/SmartDeviceLink/SDLWayPointType.h", + "line": 9, + "symbol": "SDLWayPointTypeDestination", + "symbol_kind": "sourcekitten.source.lang.objc.decl.constant", "warning": "undocumented" }, {